Last month, after a week of designing on paper a trading system, I spent another three trying to formalize in code its trading procedures. At its core, I needed a special derivative function as I thought it might enable a different perspective on trading cycles. On paper, it showed a huge profit potential.
After putting it all to code, on the backtest, the derivative function was returning 1 for whatever the variable's input value. After checking for coding errors, it became apparent that it was, in fact, the right answer. It was not an error, but simply the actual output of the derivative. This, in itself, rendered the whole program totally useless since the said procedures were part of the trade triggering mechanism. Just to show, you don't win all the time.
After analysis, the reason for the derivative to always return 1 was that the variable's range was too restrictive and that within its window of values all it could do was return 1, or something very close to it.
This did not make the basic concept valueless. The attempt only showed that the differentiating methods used were not appropriate. They were not discriminating enough, or maybe too much. Either way, the program's output was real enough: zero value. So, in this case, it is back to the drawing board.
You can spend a lot of time designing trading systems, you can debug them, and make the program work, but that does not guarantee that the output of the program will be worthwhile. It is only after having programmed a concept and tested it over a sufficiently large data set, over an extensive period of time, that you can say if it has value or not.
This turned out to be quite different than my other programs which tend to generate alpha over the long term and at the portfolio level. But here, it was understandable why the trade triggering process misfired. I will have to do better, the concept has that much potential. Theoretically, it could even surpass my current preferred strategy: DEVX8. You can find some details on it here.
A concept without code is not enough. And once programmed, it needs to be tested. To me, this trading script did not show that the concept was worthless. But it did show that my problem might be with the methods used to program the trading procedures. What I need to do is find other ways of programming this. Naturally, it will take more time and more ingenuity.
Created... June 7, 2016, © Guy R. Fleury. All rights reserved