Advice for aspiring algo-traders

This has been an interesting thread, albeit it seems to have got a bit sidetracked down the alley of robust trading system design (still interesting!).

Your list is excellent, although personally I'd include more of an emphasis on avoiding too much leverage and too much fitting.

Let me deal with #7 first. I think the easiest win in systematic trading is basically capturing risk premia that a discretionary trader is uncomfortable with. And although it's true that there are probably a little more premia in illiquid markets, there's still plenty of juice across liquid markets. In fact it's probably safer, until you are very comfortable with your execution, to stick to highly liquid markets. Indeed in my own system I deliberately avoid markets which are highly illiquid.

It depends on the time of trading you are doing; if you are trying to capture a liquidity premium through some kind of mean reversion or market making strategy, arguably illiquidity is a major source of income as well as giving you plenty of downside risk. If you are trading at the sort of time scale I am trading at, then illiquidity is just a pain as it makes the execution riskier without any clear benefit (the distinction is that the execution for me is a way to get into the trade, but for a shorter term / market maker type it is the trade). That also means I place less emphasis on #23 live executions matching the model: I don't even look at this.

For #2 I think there are a number of issues with the 'off the shelf' systems. The main ones that come to mind are a lack of flexibility (although the scripting languages they provide might be theoretically Turing complete, it is tortorous to do certain things, like for example continous rather than binary trading if the system thinks only in terms of discrete trades; or they lack data to do things like calculate a futures carry signal), and making it far too easy to overfit a model.

I'd say an off the shelf system would be fine for someone who is happy using a fairly simple discrete system that fits into the neat box provided by the scripting language; something like a simple weighted average of momentum rules for example, which hasn't been fitted beyond the bare minimum. Of course such a system could equally be run in Excel, but that wouldn't give you the automated execution.

GAT

do you consider your trend following system to be capturing risk premium? If so, what risk premium is that?
 
Just debating. If you never miss a trade and win rate is not sooper dooper, then you have higher transaction fees also.

yeah, it is not small. Our cost of business includes commissions and slippage. The idea to never miss a valid trade. That is why fully automated works great for us.
 
do you consider your trend following system to be capturing risk premium? If so, what risk premium is that?

I believe momentum is a risk premia, and it's usually included in the standard list of factors (albeit in it's cross sectional equity form). In terms of explanation, I'm most convinced by the behavioural explanation related to prospect theory.

GAT
 
"......That also means I place less emphasis on #23 live executions matching the model: I don't even look at this."

than, what do you really model/trade? If reality has nothing to do with the model.

I look at aggregate trade costs every few months, but never at individual trade fills or execution details.

My trades are effectively generated from a nightly backtest using the previous days closing prices. So my expected trades will always be identical to the backtest. No value in comparing them.

In terms of p&l I assume in the backtest that they are executed at the following days close and I know the effect that has on the backtested p&l (basically zero).

I periodically (maybe once or twice a year) look at all my actual trades and see how much this delay actually cost me summed across all my trades (from previous days close to mid price when I actually got around to executing the order).

I also assume I have to cross the spread when I execute, and again I periodically compare the backtested spread to what it actually is when I come to market. If it's way out of line I'll adjust the backtest cost assumptions as this will change my expected trading speed.

(In practice I usually pay less than the spread because of my execution algo, but I don't model this benefit in the backtest; though I do periodically check that the algo is making some money, as long as it breaks even I couldn't give a stuff how much)

If a trade isn't executed for some reason then reality will be different from the backtest. I have good reporting telling me when my expected and actual positions are out of line. Normally there will be a good reason (perhaps the market is closed), and I'll know I have a problem to address. But I don't need to look at the individual trades.

Obviously this is very different from a trading strategy where trades are issued in reaction to intraday price movements.

GAT
 
I believe momentum is a risk premia, and it's usually included in the standard list of factors (albeit in it's cross sectional equity form). In terms of explanation, I'm most convinced by the behavioural explanation related to prospect theory.

GAT

why do you think momentum is a form of risk premia?

i've always defined risk premia as the risk someone lays off to you so that they can sleep at night. Like risk arbitrage premium exists because people don't want to be long the deal just in case it busts.
 
"......That also means I place less emphasis on #23 live executions matching the model: I don't even look at this."



I look at aggregate trade costs every few months, but never at individual trade fills or execution details.

My trades are effectively generated from a nightly backtest using the previous days closing prices. So my expected trades will always be identical to the backtest. No value in comparing them.

In terms of p&l I assume in the backtest that they are executed at the following days close and I know the effect that has on the backtested p&l (basically zero).

I periodically (maybe once or twice a year) look at all my actual trades and see how much this delay actually cost me summed across all my trades (from previous days close to mid price when I actually got around to executing the order).

I also assume I have to cross the spread when I execute, and again I periodically compare the backtested spread to what it actually is when I come to market. If it's way out of line I'll adjust the backtest cost assumptions as this will change my expected trading speed.

(In practice I usually pay less than the spread because of my execution algo, but I don't model this benefit in the backtest; though I do periodically check that the algo is making some money, as long as it breaks even I couldn't give a stuff how much)

If a trade isn't executed for some reason then reality will be different from the backtest. I have good reporting telling me when my expected and actual positions are out of line. Normally there will be a good reason (perhaps the market is closed), and I'll know I have a problem to address. But I don't need to look at the individual trades.

Obviously this is very different from a trading strategy where trades are issued in reaction to intraday price movements.

GAT

makes sense. Thanks a lot for explaining. Our algos trade based on intra day price movements, and that is why it is very important for us for actual to relate to the model.
 
why do you think momentum is a form of risk premia?

i've always defined risk premia as the risk someone lays off to you so that they can sleep at night. Like risk arbitrage premium exists because people don't want to be long the deal just in case it busts.


People don't seem to like owning long momentum portfolios, because they like taking quick profits. The not sleeping at night occurs because they are worried about profits turning to losses.

GAT
 
Back
Top