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 |