先週(東京時間1月11日)の記事で"SteadyWinner"にラリー・ウィリアムズの新指標"William's Percent Range*3(W%R*3)"を使用する記事を書いた。本日、再度バックテストすると前回と同じ結果になるどころか大きく性能が低下してしまった。具体的な"W%R*3"のソースコードの改変方法を掲載していなかったものの、誤ったバックテスト結果を掲載してしまい、誠に申し訳ありませんでした。
本日は、一般的なW%Rを使用して性能を向上させる方法を掲載します。
今回のソースコードの変更は、一つの期間のW%Rを複数のW%Rの平均値へ置換して、W%Rの精度を高めようとするものです。まず、「// indicators」のコメントアウト直下にある次のソースコードを改変します。

// indicatior
double diWPR1 = iWPR(NULL, int timeframe, int period, int shift);

※「int timeframe」「int period」「int shift」に当たる数値はソースコードを確認してください。

これを次のように修正する。
// indicator
double diWPR1 = ( iWPR(NULL, int timeframe, int period, int shift)
+ iWPR(NULL, int timeframe, int period -55 , int shift)
+ iWPR(NULL, int timeframe, int period +45 , int shift)
)/3;

これで完了。William's Percent Range*3(W%R*3)と全く同じではないものの、ほぼ同じ傾向を示します。
このカスタマイズによるバックテスト結果は次のとおり。

期間 1時間足 2007.01.02 01:00 - 2011.01.06 23:00
Initial deposit 1000.00
Total net profit 3429.62
Gross profit 7172.55
Gross loss -3742.93
Profit factor 1.92
Expected payoff 3.37
Absolute drawdown 2.50
Maximal drawdown 194.91 (10.36%)
Relative drawdown 10.36% (194.91)
Total trades 1019
Short positions (won %) 435 (72.87%)
Long positions (won %) 584 (83.05%)
Profit trades (% of total) 802 (78.70%)
Loss trades (% of total) 217 (21.30%)
Largest profit trade 51.70 / loss trade -92.41
Average profit trade 8.94 / loss trade -17.25
22_Custom_x3_7pips_RSI2x3_20_iwpr6665

昨日のバックテスト結果に比べ、総利益は上昇しているが、最大ドローダウン幅やプロフィットファクターは低下している。特に、ショートの勝率の低下は問題だと思う。このカスタマイズはまだ不完全。正しいWilliam's Percent Range*3(W%R*3)を正確に使用した方を良いと思うので検証を続けています。
とりあえず、先日のバックテスト結果に誤りがありましたので、取り急ぎ、代替措置として一般的なW%Rを使用する方法を含めて掲載します。このカスタマイズをされる方は、必ずご自身でバックテストを試してみてください。