Reply

New Method Of Building Strategies

2 replies

kainc301

Customer, bbp_participant, community, 54 replies.

Visit profile

4 years ago #254665

Hey everybody, I was thinking about new approaches to build algorithms and I came up with an idea I would like some feedback on. Any implementation of such an idea will take a while to build so I am not looking for this to become a feature any time soon.

Currently, the way SQX builds strategies is additive. In other words, each strategy starts with a minimal amount of indicator blocks and blocks are either added or modified on subsequent generations when building.

I think we should also look at integrating a subtractive method. Instead of starting with a small set of indicator blocks and building on top of that foundation, you can simulate buy/sell trades for all indicator blocks selected and then take off the blocks that are the least profitable in each successive generation.

In this method, all indicator blocks would be loaded into memory at once with buy and sell trades taken at random for each indicator block. Then blocks are grouped into strategies based on which simulated blocks were simultaneously in profit. Indicator blocks are removed on subsequent generations based on which indicator blocks profited the least (or based on custom fitness optimization). A rolling maximum of distance in profit (X ATR or X pips) can be taken for each block and averaged between blocks in order to suggest a TP value, and vice versa from SL values with losses. If symmetry is selected, strategies would be built with symmetric indicator blocks and remove the respective indicator blocks on both sides. If using an indicator block for TP/SL, a set of blocks should be selected for possible TP/SL, and they are simulated simultaneously with the generated strategies.

The theory behind this is based on ensemble learning, however because we are using a version of a random forest, this is essentially an inverted random forest in that all indicators are tested at once and then reduced as generations continue. The downsides to this are that it may be complex to simulate all of this data simultaneously and would be slower than the current method. It should get faster as generations progress as indicators are being removed on subsequent generations. There may also be room for parallel computation to speed up this process as all the indicator blocks are simulated simultaneously.

I listed the feature request for it here:

https://roadmap.strategyquant.com/tasks/sq4_5741

Of course, there are much more important issues to worry about in the backlog at the moment. I just wanted to know if anyone else thought this could be worth looking into.

0

ivan

Subscriber, bbp_participant, community, 236 replies.

Visit profile

4 years ago #254713

  In this method, all indicator blocks would be loaded into memory at once 

i suspect you will need a very powerful hardware, the kind that only major companies or state agencies have. This would be like a corporate SXQ

Timisoara, Romania
3900X 3.8 Ghz 12 cores, 64GB RAM DDR4 3000Mhz, Samsung 970 EVO Plus M.2 NVMe

0

kainc301

Customer, bbp_participant, community, 54 replies.

Visit profile

4 years ago #254731

i suspect you will need a very powerful hardware, the kind that only major companies or state agencies have. This would be like a corporate SXQ

I think managing the computations is the biggest hurdle for an idea like this just because of the amount of parallel operations. I just don’t know to what degree that would be. If it is done the way I am suggesting, there would only need to be one parallel operation done per generation instead of per strategy. So this may be only a small hurdle if done correctly, in which case, we could use the hardware we have now at the cost of a slightly slower build process instead of an exponentially slower build process. Loading all indicator blocks into memory may be challenging as well.

0

Viewing 2 replies - 1 through 2 (of 2 total)