About Me

Things to know about me:

  • I’m partial to mean-reversion.
  • I trade short, medium and long term, but my passion is for trades lasting a few days.
  • I think Technical Analysis is like reading tea leaves.
  • I don’t like tea.
  • I like hard numbers and statistics.
  • I dabble with quant stuff like GARCH, ARIMA, machine learning etc, but I’m no expert.
  • I can program a little Python.

~ Matt Haines

 

3 thoughts on “About Me”

  1. Hi Matt

    I do appreciate the humor, and I agree you were on the moral side of the trade with that long pharmaceutical stock position, but regarding your ‘day job’, I would say the moral thing to do is to try to stop the poor man in probably his most difficult day of his entire life.

    Ok, enough with the easy jokes on the misery of married men, and let’s get back to our own misery: Mr. Market. 1 question: What data do you use for backtesting? You wrote somewhere that you tested all stocks that were members of russell 1000 at moment X. How do you know that info? You also mentioned AmiBroker; I am not familiar with that; AmiBroker provides you this info (the members of stock index X at point Y in the past)?

    1. Hah! 🙂

      As for data…

      I use Norgate Premium Data for my end-of-day data, and recently subscribed to the delisted stocks portion of it as well as the currently listed stocks. I don’t have data for historic index constituents. As a time-saver, I will usually develop using the current list of Russell 3000 members, but test at a point in the past when some of them might not be members. It speeds up processing time for me to limit to a subset. But then when I think I’ve got a good system, I will then test on ALL stocks in the database, including delisted stocks. I can’t select for historical index members, so I must winnow them out another way. I’ll usually restrict my test to a historical price being over X and average 10day volume being over Y. This is actually a tougher test to pass, since it might pull in some stocks that weren’t in an index at the time. At the very least, it doesn’t skew the data toward false positives.

      There are backtest systems that allow you to specify historical index membership, along with historical fundamental data etc. Portfolio123 is a good example of an online backtester that looks pretty rigorous. Many of these systems though have safeguards in place that try to prevent future leaks, but at the expense of not being able to test certain styles of trading. For example, many of my systems buy or sell at the close, if the close is less than or greater than some value. Technically you can’t know the closing price before it happens, so these systems won’t allow a system like that. But in reality, you can look at a price 15 minutes before the close and say to yourself, yes that’s way over the minimum so I’m going to trade it. Amibroker will allow you to test that way if you want. For me, Amibroker is just enough nerdy coding to do what I want, without going the Python/R route and falling down the rabbit hole of automated quant trading.

      Hope that helps!

      -Matt

      1. I see, thanks. I use the free end-of-day data from Quandl, and I use my custom code written in Ruby to test (read: invalidate) my ideas. I use Ruby because at the moment I started this journey, and now too, Ruby was the language I preferred. I have my small library of indicators, and I can code new ones when I find something that may look interesting, and of course my library is not even close to the existing Python or R open source libraries, but for now at least, I don’t want to switch to Python/R because I don’t think that 1 extra indicator is what’s missing me in order to beat Mr. Market. Still, I won’t recommend anyone use Ruby, because based on my experience so far, I can say Ruby is incompatible with profitable strategies :D.

Leave a Reply

Your email address will not be published. Required fields are marked *