Over the last 2 years I’ve been trying to construct an algorithm that could rank potential trades in a meaningful manner. The past few months I’ve done a lot of research using recent trade performance (Expectancy) as a means to rank the potential of new trades. This requires a move away from the traditional time / bars analysis to a “Non Time Based” analysis using the performance of past trades. After reviewing my findings, Ed has incorporated the new “Expectancy Block” to use as a filter in OT 2017. What follows are my initial results using this new capability.
The Expectancy block is inserted as a filter at the end of whatever System you’re using. It utilizes a very flexible grid to choose various parameters that can be entered to determine whether the current trade will be entered based on the performance of trades that were previously signaled by the System with that particular symbol. The real benefit is that this is done as a walk forward in time – so the only requirement that compares to a “Back Test” is the need for a sufficient amount of time for the system to generate enough trades to satisfy your Expectancy rules.
IMPORTANT NOTE: if you want the Expectancy Filter to use the previous 7-10 trades, that could mean that you’d need 5-6 years of trading designated as a “Back Test” period in OT in order to have a sufficient number of trades prior to the period designated as a “Forward Test” when using the Expectancy filter. To accomplish that, I’ve set my OT data periods to 5,000 and I’ve set up my “To Do List / Test Settings” so that I have 7 years of data in the “Back Test” prior to the “Forward Test” period;
This is an example of the entries I used in the Expectancy block to require that the VBX3 system had to have a Min PPT of 2% over the previous 9 trades in order for the next trade to be taken (setting the Lookback to 5,000 is just to ensure there’s sufficient data);
The recent OT 2017 update to PreRelease 2C enables the use of the Expectancy Block in Strategy Wizard. While my development testing in Excel took 100s of hours, now it’s possible to run multiple combinations of trade filters in mere minutes. Incredibly better!
For my first tests I used a list of 435 ETFs and only used the VBX3 RTM System. My goal was to use the filter to selectively choose better trades walking forward.
I was concerned that I might just be picking a “best case / spike” with my Expectancy settings, so I ran Nirvana’s excellent Strategy Wizard using a range of 1-3% in steps of 0.25% and # Trades from 6-11. The charts below show a smooth improvement in the results - with my requirement of a Minimum of 2% PPT for the previous 9 Trades in the middle. Hopefully, those settings are robust enough that future trades that generate statistics close to my settings shouldn’t have a large effect either way on the results;
The unfiltered VBX System produced ~13,500 trades from 1/1/2007 – 1/1/2017.
Using an Expectancy filter requiring a Min of 2% PPT in the previous 9 Trades reduced that to ~1,000 trades.
A) The original PPT of 0.71 increased to 1.76 using the Expectancy Filter
B) The original Avg APR of 62 increased to 162 using the Expectancy Filter
C) The original Avg Win of 1.89 increased to 3.25 using the Expectancy Filter
My original research on Expectancy using Excel only used PPT, and Nirvana added 3 more possibilities. I wanted to see what would happen when using Avg APR as a filter. I also wanted to test a larger range of values (0 – 200% Avg APR in steps of 20% and 0 – 20 Trades) to confirm that the results were smooth - so my Strategy Wizard run for this more extensive test took about 15 hours to run. I believe the smooth results obtained confirm that the concept has great potential;
A) The original PPT of 0.71 increased to 1.24 using the Expectancy Filter
B) The original Avg APR of 62 increased to 111 using the Expectancy Filter
C) The original Avg Win of 1.89 increased to 2.42 using the Expectancy Filter
I’m currently running more tests with various stock groups, and will post those results when I’m finished.
This is a new concept that Nirvana implemented in OT 2017. It should allow us to utilize Systems that generate a lot of trades – and enable this filter to dynamically choose which trades to take walking forward based on the System’s recent individual performance with each Symbol in the list. I hope this will be dramatically more robust vs the old method of using fixed settings that were chosen to fit the data over a long period in the past.
As always, please pass on your opinions and experiences – and good luck in your trading,
[Edited by mholstius on 1/13/2017 11:00 AM]
Attached file : 00-Test Settings.png (26KB - 1255 downloads)
Attached file : 01-Expectancy Entries.png (43KB - 1256 downloads)
Attached file : 02-Expectancy Filter Using Avg PPT.png (453KB - 1204 downloads)
Attached file : 03-Expectancy Filter Using Avg APR.png (485KB - 1200 downloads)