Diamond Backtesting with Walk Forward Manager (BTWFMgr) Diagnostics
(Professional Software Solutions)

Click here for general Walk Forward Help.
The BTWFMgr Walk Forward(WF) Analysis offers several additional diagnostic options
shown within the Walk Forward(WF) Optimization parameter window:
I
For each Walk Forward analysis a WF base folder is created with the name combining the Period definition, Filer and sort definition:
Example:
P[1C_1C]+F[PFMin]+S[SortMix1] - combines:
P[1C_1C] (Custom Period Definition#1)
F[PFMin] (Filter Definition: PFMin)
S[SortMix1] (Sort Definition SortMix1)

As each WF Period is processed - the logfile shows:
Starting Period#001 (ISA 20090801 -> 20090831) 
etc...
and the status window in the WF optimization box shows:
Period#1(1C_1C): Range#1: 20090801 to 20090831 - Calculating 11 Trading Permutations
etc...

Save Optimization Run Results
Creates a spreadsheet(CSV) with the period In/OutSample details for each WF DateRange/Period 
The files are in a new sub folder for each period variation below the WF base folder with a CSV file for each optimization permutation:
P001[1C_1C]+F[PFMin]+S[SortMix1]/OPT0000001_P001_F0001_S0001.csv
... until the last WF Optimization - for example:
P001[1C_1C]+F[PFMin]+S[SortMix1]/OPT0000028_P001_F0007_S0004.csv
Click here for an example of a optimization result file OPT0000001_P001_F0001_S0001.csv (Open in MS Excel)

INI Setting: SaveDateRngSet - Flag: WFO_FLG_SAVEDATERNGSET
Filter+Sort Details 
Creates a spreadsheet(CSV) with the list of trade permutations which passed the filter!
The candidates which survived the filter are sorted by the requested sort criteria and the show also current filter value(s).
Click here for en example (OPT0000001_P001_F0001_S0001_Rng001_20090801.csv) all files of a run here (Hits.zip)
for each WF Optimization AND WF/date period a new file is created in a new sub folder "Hits"

INI Setting: SaveOptPerm - Flag: WFO_FLG_SAVEOPTPERM
Tracking WalkFwd Filter FAIL/PASS Results
You can also track the WalkFwd Filter process - simply define the filter variable to be monitored In the C:/BTWFMgr/ BTWFMgr.ini configuration file - Example
[BTWFMGR]
WFTrackVariable=$PF
Example:  
WFTrackVariable=$TrdPerYr  
Which will create a diagnostic file: C:/BTWFMgr/TrackFilter.txt showing the variable value for all filter calculations - with the filter PASS/FAIL results:
FAIL: Perm#000001 $TrdPerYr= 58.7009 StartDate=20131231 EndDate=20140224 WFOpt#0001
FAIL: Perm#000002 $TrdPerYr= 65.2232 StartDate=20131231 EndDate=20140224 WFOpt#0001
FAIL: Perm#000003 $TrdPerYr= 58.7009 StartDate=20131231 EndDate=20140224 WFOpt#0001
...
FAIL: Perm#000001 $TrdPerYr= 58.7009 StartDate=20131231 EndDate=20140224 WFOpt#0002
FAIL: Perm#000002 $TrdPerYr= 65.2232 StartDate=20131231 EndDate=20140224 WFOpt#0002
FAIL: Perm#000003 $TrdPerYr= 58.7009 StartDate=20131231 EndDate=20140224 WFOpt#0002
...
FAIL: Perm#000001 $TrdPerYr= 52.1786 StartDate=20140107 EndDate=20140303 WFOpt#0001
PASS: Perm#000002 $TrdPerYr= 78.2679 StartDate=20140107 EndDate=20140303 WFOpt#0001
FAIL: Perm#000003 $TrdPerYr= 52.1786 StartDate=20140107 EndDate=20140303 WFOpt#0001
...
FAIL: Perm#000073 $TrdPerYr= 32.6116 StartDate=20150407 EndDate=20150601 WFOpt#0004
FAIL: Perm#000074 $TrdPerYr= 32.6116 StartDate=20150407 EndDate=20150601 WFOpt#0004
FAIL: Perm#000075 $TrdPerYr= 39.1339 StartDate=20150407 EndDate=20150601 WFOpt#0004

Also show the tracking in the Log File:  WFAOPT: Tracking Variable: $TrdPerYr (36)
Range+Permutation (very detailed)
Creates a spreadsheet(CSV) with the list of all trade permutations details
Click here for en example (Rng0001_20090801_20090831.csv) 
for each WF Optimization Preiod in  a new file is created in a new sub folder "TradePermutations"

INI Setting: SaveTrdPerm - Flag: WFO_FLG_SAVETRDPERM
Run Log 
Creates a spreadsheet(CSV) with the list of all the WF optimzations and statistics

INI Setting: SaveRunLog - Flag: WFO_FLG_SAVERUNLOG
Show OOS Sample Overlaps
Adds for each OutOfSample(OOS) position a diagnostic to the log file:
OOSOverlapChk: WFOOpt#000001: Period0001, PosEnd=Vol=8000 Short, 
Entry=20090928 07:34:00(46.1400), Exit=20091001 07:34:00(43.7400), PL=19184.00$, Perm=8, Dur=3.000 Days, Bar#=15168

If a OOS Positiion is deleted BTWFMgr shows:
OOSOverlapChk: WFOOpt#000001: Period0001, PosCurrDel Vol=8000
Short, Entry=20090928 07:34:00(46.1400), Exit=20091001 07:34:00(43.7400), PL=19184.00$, Perm=8, Dur=3.000 Days, Bar#=15168

-OR-
OOSOverlapChk: WFOOpt#000001: Period0001, PosNextDel Vol=8000
Short, Entry=20090928 07:34:00(46.1400), Exit=20091001 07:34:00(43.7400), PL=19184.00$, Perm=8, Dur=3.000 Days, Bar#=15168

The way overlapping OutOfSample(OOS) positions are handled can be customized with the OSAStyle setting in the configuration:
File/Configuration and go to the "Walk Forward Optimization" section:

OSAStyle (default style is 0)
Define how Walk Forward Out Of Sample Positions are handled which cross/overlap across the begin or end of the OSA Period:
0 = include all overlapped positions in OSA Period
1 = Exclude ending/last overlapped position from OSA period
2 = Exclude the starting/first overlapped position from OSA period
3 = Exclude the starting/first and ending/last overlapped position from 


INI Setting: OSAStyleVerbose - Flag: WFO_FLG_SAVE_SHOWOL