How to use PRT walk foward test
Forums › ProRealTime English forum › ProOrder support › How to use PRT walk foward test
- This topic has 16 replies, 5 voices, and was last updated 7 years ago by dajvop.
Tagged: walk forward
-
-
04/06/2017 at 8:41 AM #31198
I am little bit confuse about PRT walk foward test result.
Left pic run with fixed parameters (48) which I use in my live system.
Right is run with optimized parameters (from 24 to 240), none of the result from walk foward choose 48 which I think perform much stable.
Anyone know the result determine what kind of insight?
04/06/2017 at 9:57 AM #31217Its a bit confusing with all the values
I use it (right or wrong?) only to see if a system is good and can be profitable with optimization
I run WFE on all available data only to see if the efficiency is over 50% on more than 50% of the tests (if 5 then at least 3 should pass) and if all tests looks “good” no big difference in one or two
Then i run a simple optimization on 80% of the data to get the values and then backtest on the last 20%
Hope i did not confuse it even more with my bad english?
04/06/2017 at 12:19 PM #31247Hi Eric
You’re English is very very good! Had you not said I would have thought English was you’re first language!
I’ve been waiting for somebody to post on Walk Forward (WF) … seems not to have made the ‘big bang’ I expected! 😉
I am also confused at some of the results I get with WF.
I agree value 48 gives you good results for the whole / 1 full period. WF is splitting the periods up into 5 periods and so 48 appears not to be optimum for any of the 5 periods. How close was the nearest WF optimised value to 48?
Were both WF (shown on 2 images above) completed on Anchored or Non-Anchored?
I will play with WF more and let you know any more thoughts I have.
GraHal
04/06/2017 at 12:42 PM #3124904/06/2017 at 12:46 PM #31250Hahaha I am confusing myself! Sorry @Bin I just realised you started this Thread, I thought it was Eric.
You get around 5K / 16% more profit after WF Optimisation (WFO) so your results show that your Bot will benefit from periodic WFO? Anybody agree?
Just for the discussion, please post here the 5 WFO figures you got for the 5 periods compared with 48 as the overall figure?
Regards
GraHal04/06/2017 at 12:52 PM #31251Yes I agree now I look at WF results and compare, the WF Efficiency is more consistent with value 48.
I got similar confusing results when I did WF also. It’s as if WF skips some values in the optimisation range specified?
We need to keep this discussion going until we reach a conclusion?
04/06/2017 at 1:21 PM #3125404/06/2017 at 3:02 PM #3126204/06/2017 at 4:16 PM #31273What happened to period 5 in the right image?
As the lowest in your range was 24 and WF chose 24, you need to try range as 4 to 30 for example??
Also if you do WF over 1 period only and set 70% In Sample and 30 % Out of Sample and let us know what you get please?
Up to now though I’d say stick with variable as 48? Logic being that 48 does not maximise profit per period, but less chance of losing in any period. Still weird though how none of the WF chosen are close to 48??
What is the range you enter when Backtest chooses 48?
GraHal
04/07/2017 at 6:27 AM #31315Hi Grahal
left was fixed, right was from range 24-240.
Result show PRT WF is calculate the best value (and only show) for in sample period, and then pitch in to out sample period.
Because it cannot show other value, we still need extra work to determine which value is most stable instead of most profitable.
04/07/2017 at 6:37 AM #3131904/07/2017 at 9:40 AM #31329we still need extra work to determine which value is most stable instead of most profitable.
It’s true, like the “normal” optimisation module of the platform (without WF), the given result is the best performance first, but since WF module only return 1 result, you have to do the job by yourself by modifying the range of your variables values to find the best result that should fit your needs (less drawdown, better profit factor, less trades during a period, etc..). This is something I pointed to PRT developers and should be an improvement in future versions.
About how you should read the walk forward results:
Please keep in mind that this module is only suppose to help you have a clue about your strategy robustness by testing optimised variables in Out Of Sample periods (OOS), in 1 or more iterations.. As I already talked here and there about overfitting, it’s always a better idea to backtest a strategy on 70% of history while you develop it (IS), and then test it on the remaining 30% (OOS). If your result look similar in OOS than your IS test, the strategy have a better chance to continue performing the same way. Why? Because the 70% have certainly included a wide variety of price behaviour of the instrument (ranging, trending, market noises, economic news,..). With the WF Module you can now multiply this kind of tests in the past history with X iterations: understand X times making the same test in the past, optimise 70% and test in 30%, and so on until the end of the tests history.
Real life example:
Let’s imagine you have optimised a strategy over the last year (from January to December 2016), this is the IN SAMPLE period. The result seems great to you and then you decide to give it a try with your live account, so since January 1st 2017 you are trading it live, this is the OUT OF SAMPLE period. In March you take a look at the results and they are not the one expected, they are very bad instead. In conclusion, you have lost 3 months and real money. The WF module would have saved you from this inconvenience by making this job for you, on your computer screen while drinking a cup of coffee.
Because I seen so many times and so many people encountered this situation, I believe this tool was definitely something needed. It is now available, please use it! 🙂
So to be clear, this is 3 ways to use the new Walk Forward module:
- if you want to optimise the old way, you can! but instead of using the old optimiser, use the WF module and use only 1 iteration with 70/30 (better chance to have a strategy to be not so overfitted)
- you can also use the WF to determine how much (per your customized period, per year, per month, etc..) and so when relaunch a new optimisation by making many iterations in the WF window: if many of the OOS tests are >+50% (WFE=Walk Forward Efficiency), the strategy should be robust and benefit of X optimisations per period.
- use it with no optimisation at all. Instead, make an optimisation with a dummy variable that means nothing in your code to get the result of the OOS test, instead of do it manually (develop in 70% period and test in 30% period, like I said in the previous paragraph). This should replace completely the way you are using the backtester now!
I hope I’ve been clear, please don’t hesitate to ask questions. This thread could be the centralization about WF questions.
04/07/2017 at 10:40 AM #3133904/07/2017 at 11:16 AM #31346@Bin the range 24 to 240, step=24 you used is very wide in my opinion. As Optimiser chose 72 I suggest to redo / refine using 48 to 96 step 2 or step 4.
As a general rule, I tend to use …
1 to 10, step 1
OR
10 to 50 step 5
OR
50 to 250 step 10
And then refine if required.@Nicolas than you for the useful guide above. I also look forward to improved WF features! I feel less confused now as I was thinking … is this all we are getting? 🙂 I must be more patient, I must be more patient … etc!
@Bin I was going to ask … how you did WF with one value of variable … did you do as below?
use it with no optimisation at all. Instead, make an optimisation with a dummy variable that means nothing in your code to get the result of the OOS test,
GraHal
04/07/2017 at 11:45 AM #31354Hi Grahal
Let me explain my system, all the component was learn and copy from this forum (eg: Nicolas TStop, time management, Reiner seasonal multiplier etc), core indicator was Double Smooth Stochastic with a MA filter, becuase it work on 1 hr time frame and I want the MA filter work at daily basis, thats why the step was 24 (please don’t laugh, coz I think 24bar equal to 1 day).
Day back to no WF built in, I did a lot of backtest, record 5 to 7 in out sample result, and choose the most stable value (Or I think it can work on future) for the system before go live.
So I think MA=72 is quite solid, that’s the reason why I use fixed number 72 to test by entry at optimization min, max and step field with same value, then press (probacktest my system) button.
-
AuthorPosts
Find exclusive trading pro-tools on