Alpha is Only Part of the Puzzle
If I had to pick between having good alpha and good execution, I’d pick the latter. This might seem counter-intuitive but I can tell from personal experience that it is possible to trade profitably with zero alpha (an operational issue which persisted undetected for a few months!) given a good infrastructure setup, but very hard to make money with a good model but uncompetitive execution.
A Toy Example
Suppose you are given a black box model which produces a price prediction on a regular grid timer; the output is either +1 (-1) if the model expects the mid price to go up (down) over the next interval. It outputs zero when no change of the mid is expected. The model has an error rate E when the sign of the output is flipped (the error only affects non-zero predictions).
You now try to monetize this alpha with the following simple execution strategy: If the prediction is positive (negative), place a BUY (SELL) order on the passive touch, joining the back of the queue. If the order has not been filled by the end of the interval AND the prediction has not changed AND the BBO price has not changed, then keep the order open (preserving its queue position), otherwise cancel/modify it based on the latest prediction. In case of a zero prediction, cancel any outstanding order and do nothing until the start of the next interval.
Results
The chart below shows the performance of such a model/execution pair vs. the model’s prediction horizon and its error rate (we also assume a position limit and order size of 1 to minimize the noise introduced by large positions). The upper boundary represent a pure coin flip, the bottom edge that of an oracle.
Observations:
A model can be “better” in terms of R2, AUC, accuracy, recall, … and still perform worse in PnL terms than a seemingly “worse” model. Hence, the quality of the model has to be measured in combination with an execution algo. In general, model accuracy decreases with increasing horizon. Is it better to have an accurate short-term model or a less accurate longer-term model? Only a backtest will be able to tell.
领英推荐
Methodology
2. At each timestamp, look ahead to the next row and determine the actual mid change and generate a -1/0/+1 prediction.
3. With probability E, flip the sign of the prediction.
4. Cancel/submit order to touch (while not breaking the position limit); their PriorityTimestamp is the priority of the last order in the queue + 1
5. At the end of the interval (i.e., reading the next row of data), check if the order (if any) has been filled by checking if either
6. Keep track of position and pnl.
What about a taker model? Is it easier/harder? What would the graph look like and at which point would a pure taker model be profitable?
Quant at QRT
2 年A naive question: Why is it so? "this probability is much larger, however, in those small number of cases where the prediction is wrong."
Algorithmic trading
2 年For comparison, did you try simulating a strategy with good priority (perhaps with zero alpha as mentioned)?