How to use PRT walk foward test

Forums ProRealTime English forum ProOrder support How to use PRT walk foward test

Tagged: 

Viewing 15 posts - 1 through 15 (of 17 total)
  • #31198
    BC

    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?

    #31217

    Its 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?

    #31247

    Hi 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

    #31249
    BC

    Hi Grahal

    Both test were in not anchored mode. 48 not only perform stable on whole period,   it also stable at 5 repetitions period with efficiency over 50%.

    #31250

    Hahaha 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
    GraHal

    #31251

    Yes 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?

    #31254

    @Bin also it be good if you could do WFO in Anchored mode also and post results then we can compare.

    I’m going to get my WF going again now … you’ve got me fired up on it again! 🙂

    #31262
    BC

    Hi Grahal

    Anchored attached, left was fixed 48, right was optimized parameters (from 24 to 240), all result show 24.

    #31273

    What 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

    #31315
    BC

    Hi 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.

     

    #31319
    BC

    one more, I wrongly type the value 48, it should be 72, test arange is from 24 to 240, step=24.

    #31329

    we 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:

    1. 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)
    2. 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.
    3. 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.

     

    2 users thanked author for this post.
    #31339
    BC

    Thanks Nicolas, you explain very well. I think I am clear now. Looking foward WF module upgrade to output more result as you mentioned.

    #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     

    #31354
    BC

    Hi 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.

Viewing 15 posts - 1 through 15 (of 17 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login