Aug. 18, 2019

Was posted in a Quantopian forum recently as a follow-up to my article Reengineering for More, which presented a remarkable trading strategy with outsized performance levels (Quantopian shut down in 2020). 

The described trading strategy used the CVXOPT optimizer.

First, let it be said. It is extremely difficult to extract some decent alpha using an optimizer.

The optimizer can only give you what it sees, and you have no control over how it will trade.

It will simply do its thing. That is: determine when to buy and sell, at what prices, and in what quantities.

In fact, in using an optimizer, you delegate the whole trading process to this mathematical contraption. I wrote a book on the above-cited trading strategy as a demonstration that it was feasible. It concluded with the displayed results in the above-cited article. Yet, it seems as if no one is exploring these extraordinary possibilities.

I am very critical of my work. I do not let anything pass. It is only with a backtest over some long-term trading interval and under harsh trading conditions (that is, including all frictional costs) that I might accept the outcome of a trading strategy as something that might be worthwhile.

However, from my observations, it goes like this: if you want more than your peers, then you will have to do more. It is not by looking at the problem the same way as everyone else and then trying to duplicate what they did that you will get different results. It can only lead to about the same results or a variation on a theme.

A simulation should be designed to answer: what would have happened IF... You have no access to future data, so you use past data as simulation ground, trying to extract some justifiable alpha out of this big blob of market data subject to the whims of quasi-unpredictable variance.

However, the trading rules and procedures you set in your backtest will nonetheless be hard-coded in your program and, therefore, will also do the same thing they are programmed for going forward. This does not mean you will get the same answer or the same performance level, only that whatever triggered a trade in the past will also be triggered going forward should the same conditions be met.

A trading program is like a bounded obstacle course where a trade is triggered each time the price hits a wall or crosses a preset barrier. You do not know when such a parameter crossing will occur, but you do know that if it is crossed, a trade will be triggered, and thereafter, it will generate an unspecified profit or loss.

Some think that because they cannot achieve very high returns on their own, it is impossible for anyone else to do so.

Well, the results shown in the above-cited article, using the CVXOPT optimizer, definitely disagree with that statement.

You can do more, but it will require that you actually do more, even if it is with what I would call amazingly simple math wizardry.


Related articles:

Reengineering For More II

Reengineering For More III
(the above article contains a view of the equation used for this trading strategy) 

Reengineering For More IV

Reengineering For More V

Created. Aug. 18, 2019, © Guy R. Fleury. All rights reserved.