OK, as promised to my 1 riveted reader(s), (and no, that was not generated by a script... just my attempt to be funny), I am resuming the blog.
So, after a long trek down math lane, I've got three strategies that are operating now. And hell yeah, I was RIGHT to code my own infrastructure. First off, I am easily able to do things that (from inside knowledge) are not so simple with "professional" packages. And it didn't cost me anything (unless you count two years of my life). Assuming I make $0 an hour, that is a good bargain.
Don't think too much about that last statement. Please.
Anyhoo, I've learned several things (not all at once... this stuff takes months (that means 15-18, not 1 or 2) of live trading to learn):
1. Shit happens, so be ready for it. The part of your code that is commented with, "I'll code this later -- very improbable" will get run more often than you think.
a. You can get fills before ACKs and many other seemingly incorrect behaviors... be ready for them.
b. You can have orders "hanging" with no ACK, or REJ for quite some time (minutes if not longer!)
c. Be ready for odd lots. Plenty of them, mein froind. If you're trading less than round lots, I would (seriously) recommend doing at least 100 shares. Dealers LOVE you if you do odd-lots with them, and market structure rules don't protect you as much.
d. Don't assume that you get good fills from your broker. You often get fills waaaay outside of the market, and you have to phone them and have a FIX log pissing contest. Be a turd, because it's your money. 9 times out of 10 you are right.
e. Quotes frequently get stale. I could have a whole blog on data sources, scrubbing, filtering, and sampling.
f. Trades get printed late (as per the 90-second rule). Don't use trade volume or price as an "immediate" indicator.
f. Symbols change names. They get acquired. They delist. Other symbols take their place (oh, that was fun when that one happened).
g. Corporate actions. Learn it, live it, love it. "f" is really a corollary to this.
2. You model will break. Then it will SEEM to unbreak. Then it will break. Trust me, it was broken to begin with. Go back and see what was going on. Many times you have overfitted (i.e., biased your model to the data). To get rid of this, you can do out-of-sample tests. You may also have a model that is not explanatory. Add more indicators but only enough such that you don't overfit. I would recommend either the AIC (Akaike Information Criterion) of BIC (Bayesian Information Criterion) to make sure that the new indicators are worth it.
3. Don't count on all the academic papers/theories to be right. They're brilliant works to be sure, but they are very academic. It's good to use as a way of viewing a problem, not always as a way of solving a problem. Kind of like how all that trig you took is an interesting way of viewing triangles, but not a great way to build a pyramid
Here's some more tidbits.
First, trading is a LOT of psychology. Seriously. Listen to the guys like Jim Cramer with his rules. Another one I like is George Sleezak (futures trader, used to play with a guy who founded the band "Chicago". Very cool). This stuff is pretty sound advice. One of my favorites that a buddy (Chris H.) came up with:
"If you have a position, imagine yourself on the opposite side. If you feel comfortable, then get out NOW." This does have psychological underpinnings because we tend to see potential gains differently than potential loss in terms of risk.
Another one (very important, even for a guy like myself):
Reverse entry points are NOT exit points. Every trade should have a separate piece of expectational logic to decide when to ENTER and when to EXIT. Translation: If your model goes long a name, then generates a sell signal in the same name, you are going to get hurt if you use that ENTRY signal (in the reverse direction) as an exit point. Worse yet, as a reverse point.
Each trade is it's own journey. You exit the desert because you run out of water.... you don't exit Atlantis for the same reason. OK I was never that good at literature but hopefully you get my analogy.
OK now for the geeky part of things:
1. Trading is about (duh) maximizing gains while minimizing risk. What the heck does that MEAN though? Well, financial engineers will tell you it's about maximizing the Sharpe (or for some, Sortino) ratios. Simply not true unless you are trading for a mutual fund. More on this in a moment. Remember, these are marketing terms and mutual funds use them to raise money because they make a ton of dough on MAINTENANCE fees.
2. Why is it that GAINS and LOSSES and so easily quantified in terms of dollars, whereas RISK is such a slippery pig? BARRA will have one definition, Northfield will have another, there are many models out there. One thing is true though: If you completely eliminate risk from your portfolio, then you should (theoretically) have returns like a T-Bill but with more transaction costs and tax implications. Instead of using other people's models, how about this notion: What does risk mean to YOU? Think upon that and come up with an answer before you hit the button.
3. Diversification. Wow. Markowitz was a very smart dude, but there are a few key assumptions that we should ALL take a closer look at (disclaimer: he has a Nobel Prize and I don't. But I'm hopeful.) :
a. Most of modern economics assumes rational investors. This is why they (when talking about Paraeto efficiency) speak of purchasing a baskets of GOODS. Who would buy a basket of BADS? In truth, some investors are NOT rational.
b. Also realize that people either "can" or "should" do rational things. If you "should" do something but for some reason "can't", well then you have an inefficiency.
More on the next blog, I hope you enjoyed my humor and content (I think I'd prefer it, in fact, if you enjoyed them in that order).