Thursday, 30 January 2020

Improving Strategies

A crazy cool way to use Build Alpha. I have to admit that I did not come up with this idea, but it was suggested to me by a potential Build Alpha user.

He was wondering if Build Alpha could help come up with some rules of when he should avoid trading his existing strategy or even when to fade his existing strategy. Heck any improvement is a plus, right?

**Please note Build Alpha now accepts data in this format:  mm/dd/yyyy, hh:mm, open, high, low, close, volume, OI. Please refer to buildalpha.com/demo page for adding own data instructions**

*I say we found one strategy but we actually found tons that would be an improvement to his original strategy. Him and I only spoke specifically about one so that’s why in the video I slip and say we found one strategy. Did not feel like making a new video to clarify this minor point.*

He had a day trading system and compiled profit and loss results for that system in the following (Build Alpha accepted) format. Date, time, open, high, low, close, volume.  (*note BuildAlpha now accepts the time column as intraday capabilities are becoming fully operational*).

Below is his sample file. We purposely left the open (high and low) columns as all 0’s. The close column contains the end of day p&l from his original strategy.

We then set Build Alpha to have a maximum one bar holding period and to ONLY enter on the next bar’s open and to the ONLY exit on the next bar’s close. I will explain why this is in a minute.


We then chose the underlying symbol the original strategy was built on as market2. So for example, his original strategy trades ES (S&P500 Emini futures) so we only select Build Alpha signals calculated on Market2 which is set for ES.

So now if Build Alpha calculates a rule on ES-like close[0] <= square root(high[0] * low[0]) then we would “buy” the next bar’s open of market1 (again his results – which are 0) and “sell” the next bar’s close of his results which is the original strategy’s p&l for that day. This would essentially say that if this rule is true then go ahead with a green light to trade the original strategy the next day. If the rules are not true, then don’t trade the original strategy the next day. Ideally, we can find rules that increase risk-adjusted returns for the original strategy (which we did).

Now, what is even cooler is if we set Build Alpha to find short strategies we would essentially be “fading” his original strategy or finding rules of when to go opposite his original strategy.

Build Alpha found some good short/ “fade” rules to use as well. Here is an example that did quite well fading his original strategy (even out of sample – highlighted section).


After emailing him the results here is what he had to say in his email response:

“There are 2028 negative periods in my data with a gross loss of -1,217,880.26. That’s the theoretical maximum a short rule can achieve, if it were to find all losses. Your graph seems to show 380,000 short rule profits. That’s already 31% of all losses. If I don’t trade on these days, my net profit would go up by 380,000, a 46% increase.”

I thought this was a really unique way to use BuildAlpha and I wanted to share. I think the same analysis can be done on strategies with longer holding periods too. I would just import daily marked to market results of the original strategy and Build Alpha would essentially find rules of when to hedge your strategy or fade it for a day or two. I think this is certainly a unique approach to add some alpha to performance.

Anyways, thanks for reading as always and keep a lookout for some MAJOR upgrades coming to Build Alpha very soon!

0 comments:

Post a Comment