March 30, 2013

Designing a Trading Machine IV

In Designing a Trading Machine III, I was making the point that ΔP > 0 was a sufficient condition to make a profit: P(out) – P(in) > 0. It says nothing about how the profit is made, but it does say that to have one, the relation must hold. This relation could be considered time, and size independent.

It is not enough to have a ΔP > 0, you have to compensate for all the friction costs as well as all the incurred losses generated by your trading strategy over the whole trading interval. So you will need something more like a ΔP > T where T is a certain threshold that will cover everything: commissions, slippage, errors and losses with some left over for actual profits. It becomes evident that you need an edge, a positive trade expectancy over time.

The following spreadsheet (sorry, no longer available) might help in determining the viability of your trading strategy even before writing a single line of code. It's an old Excel file where you fill in your numbers to see how your trading strategy would do over time. It is rudimentary but it should make its point.

Having established that we do need a ΔP > T, then the task is to find ways of doing so. 

There are many ways to achieve this goal. From the excel trading story file one could determine apparent limiting factors; some of which are: the number of trades a trader can handle at a time, the number of stocks that can be traded simultaneously, and of course the available trading capital.

A discretionary trader should relinquish the thought of handling 10 stocks at a time ten times a day; one should look at automation for that; and doing so, automation will become the real limiting factor. If you can not do automation, or can not design an automated trading strategy, then redesign your trading procedures to operate within the constraints of the discretionary level trader. There is no reason a discretionary trader can not win at this game, but even there, a game plan and trading rules should not be considered a luxury but a basic requirements.

Wishing to have a software program do all the automated trading brings its own set of problems which also have to be addressed. One the my own problems has been, at times, the difficulty to translate what I have in mind into coded procedures that would fit within more complex trading strategies without interfering with existing code and still improve long term expectancy.

Once you have accepted that you need a ΔP > T, then the hunt begins: where are these ΔPs, how many are available and how many can you catch? These sound like reasonable questions but appear to have undefined answers. What the excel file in the previous post hinted to was that you need an edge. It does not matter what it is, or how you got it, but it is needed.

What would be the answer to: How many stocks have at least a $0.50 move in a single trading day? And for second question: How many of these moves can I catch that turn out to be profitable? It's not enough to just detect, you have to put the money on the table. It is the only way to win or lose.

I don't think there is a lack of opportunities, however at a minimum, someone should first look at where those opportunities are. Looking for a $0.50 move on a $1.00 or a $100 stock do not have the same daily probability of occurrence. This should be evident. One would be hard press to find stocks trading over $100 not having at least a $0.50 move in a day.

I did such a study recently on IBM for the past 13 years (some 3,316 trading days) which resulted in the following numbers: mean or average daily ΔP = $ 0.03 per day; standard deviation: σ = $ 1.89; variance: σ2 = $3.56. 99% of daily price moves were be in the range +/- $ 5.66 (3σ); with daily drift of $ 0.0246. To answer the last question: IBM had 99.7% of trading days with moves in excess of $ 0.50 and 45% of daily moves resulting in ranges greater than $ 2.00.

Based on the above numbers, someone playing the Buy & Hold strategy with IBM would be getting on average 2.46 cents a day on his $112.44 original investment some 13 years ago, about a 6.1% CAGR.

You might not know much about where prices are going, (turned out to be: average ΔP = $ 0.03 per day) but you do know prices will vary a lot point wise (variance = $3.56), at IBM's price level. And since you are looking for a ΔP > T, might as well look to find them where they are.

Your objective, technically, is to find and select some n(ΔP > T) on a daily basis (or any interval of choice) where n is the number of occurrences that you can, not only detect from the possibilities presented, but also select as potentially more probable and profitable.

People start by looking at indicators to find ΔP > T, but often, the indicators used have so many false signals and cause so much market friction that the profit generated are lost in all the noise and whipsaws encountered, meanwhile, the clock is ticking and the portfolio is not increase.

Using indicators only provide decision points (entry and exit) with no discrimination in between. I often describe what I do as designing holding functions for the simple reason that I know it takes time for prices to gyrate for here to there.

And as was presented in the first installment; there is a decisive incentive to reduce the trading interval as much as possible by what ever means might be at your disposal.

Then maybe, it should be time to look at the problem from a different angle. You have tried indicators, you have tried momentum plays, dip buyers and I don't know how many other methods. All of these methods can be modified to perform better. 

In the end, it is all comes down to common sense in the face of uncertainty. And an automated trading strategy can certainly select and execute more potentially profitable trades than even someone with really fast fingers.

Created... March 30th, 2013 © Guy R. Fleury. All rights reserved.


Alpha Project