I have a strategy. Call it "W0". I set up the Training like this
Code:
StartDate = 20110101;
    EndDate = 20121231;
    BarPeriod = 60;
    Weekend = 1;
    LookBack = 600;
    Hedge = 2;
    DataSplit = 85;
    set(TESTNOW);
    set(PARAMETERS+FACTORS);
    NumOptCycles = 2;


The backtest results are like
Profit 149$ MI 80$ DD 23$ Capital 572$
Trades 13 Win 46% Avg +10.6p Bars 30
AR 169% PF 3.94 SR 3.07 UI 19% R2 0.70

This is my starting point.
I add
Code:
>     NumWFOCycles = 1;


Call this "W1".
The behavior of the Training is the same. The performance report is identical. I'm not sure what I was expecting. But, I wanted to point out that these two settings are equivalent
Code:
NumWFOCycles = 0; // default[
NumWFOCycles = 1;  // equivalent


Alright, on to
Code:
<     NumWFOCycles = 1;
---
>     NumWFOCycles = 2;


call this "W2".

The difference in the performance report is interesting. The numbers and date ranges are the same (good!). We gain glyphs indicating per asset x algo performance in our only cycle.
Code:
< Out-of-Sample Test w1 portfolio - performance report
---
> Walk-Forward Test w2 portfolio - performance report
3a4
> Simulation period   15.11.2010-31.12.2012
6,7c7,8
< Out of sample test  1868 bars (16 weeks)
< Training period     10585 bars (91 weeks)
---
> WFO test cycles     1 x 1868 bars (16 weeks)
> Training cycles     2 x 10585 bars (91 weeks)
55c56
< Portfolio analysis  OptF  ProF  Win/Loss  Wgt%
---
> Portfolio analysis  OptF  ProF  Win/Loss  Wgt%  Cycles
57,69c58,70
< EUR/USD avg         .999  2.37   12/15    95.9  
< GBP/USD avg         .000  0.00    0/2     -0.6  
< USD/JPY avg         .499  1.54    6/5      4.7  
< 
< EUR/USD             .999  2.37   12/15    95.9  
< EUR/USD:L           .999  3.28    7/6     69.6  
< EUR/USD:S           .999  1.66    5/9     26.3  
< GBP/USD             .000  0.00    0/2     -0.6  
< GBP/USD:L           .000  0.00    0/1     -0.5  
< GBP/USD:S           .000  0.00    0/1     -0.1  
< USD/JPY             .999  1.54    6/5      4.7  
< USD/JPY:L           .999  5.23    5/1      9.1  
< USD/JPY:S           .000  0.32    1/4     -4.4  
---
> EUR/USD avg         .999  2.37   12/15    95.9  /
> GBP/USD avg         .000  0.00    0/2     -0.6  \
> USD/JPY avg         .499  1.54    6/5      4.7  X
> 
> EUR/USD             .999  2.37   12/15    95.9  /
> EUR/USD:L           .999  3.28    7/6     69.6  /
> EUR/USD:S           .999  1.66    5/9     26.3  /
> GBP/USD             .000  0.00    0/2     -0.6  \
> GBP/USD:L           .000  0.00    0/1     -0.5  \
> GBP/USD:S           .000  0.00    0/1     -0.1  \
> USD/JPY             .999  1.54    6/5      4.7  X
> USD/JPY:L           .999  5.23    5/1      9.1  /
> USD/JPY:S           .000  0.32    1/4     -4.4  \


But, what is surprising about this is the Training time. W0 and W1 finish in 43 seconds. W2 takes almost twice as long, 84 seconds.

Looking at the train.log, it appears that W2 (NumWFOCycles=2) spends time to create a second w2.par file. But this calculation has no effect on the performance report compared to NumWFOCycles={0,1}.

Can you elaborate?

Last edited by GPEngine; 06/03/15 05:28. Reason: I meant TRAINing time