ユーザーさんから依頼がありましたので「ブレイクスキャルシステム」の検証をします。
「ユーザーのチカラでEA品質を向上させよう!」という活動です。
是非、皆さんからの依頼をお待ちしております。
ブレイクスキャルシステムを簡単に説明すると
レンジ相場などのボックスブレイクを狙った手法です。
逆指値でエントリーを狙う→ボックス上限や下限を狙う
ブレイクしたら大抵の場合、勢いが付くのでそのまま勢いに乗ってスキャってしまおうという作戦です。
お詫び
今回はアルパリデータについてお詫びをしてから検証します。
私が保有しているアルパリデータはアルパリUKとアルパリJPの混合データです。
アルパリGMT=冬+2、夏+3と思っていたのですが
アルパリUK=冬+1、夏+2(2000年~2011年12月31日)
アルパリJP=冬+2、夏+3(2012年1月1日~2015年1月15日)
というデータだったということに気づきました。
今回からアルパリUKデータのGMTを冬+2、夏+3へ修正しています。
つまり今回からアルパリデータで正確なバックテスト結果をお届けします。
バックテストの設定について
翌週持ち越しをするとMT4の都合上、大窓が発生してもSL値で計算してしまい
ドローダウンなど正確なバックテスト結果が得られないのでマーケットクローズを利用します。
そこで設定を確認すると
・Position_Lifetime = 24
→ポジションをホールドする最大時間です(単位:15分)
デフォルト値は15分☓24=6時間の設定です
・MarketCloseFilter = false→true
→trueに設定すると、マーケットクローズ前にエントリーしないようにします。
・NoEntryHours = 6→8
マーケットクローズからこの時間前(デフォルトだと6時間)より新規注文を行いません。
※デフォルト設定にしておくと、理屈上、翌週への持ち越しはありません。
・Difference_from_EET = 0→-2(Tickstoryのみ)
EETとはヨーロッパ時間を基準としたものらしいです。
つまりデフォルト設定の場合は
エントリーしてからポジション保有時間6時間
エントリー制限がマーケットクローズ6時間前
どのようなプログラミングをされているか分かりませんが
これはぎりぎり「アウト」です。
全てのブローカーがEET時間金曜23:59ギリギリまでトレードできるとは限りません。
金曜23:50で終了するブローカーもあったりします。
またスプレッドが拡大しているタイミングで決済することになり宜しくありません。
なのでNoEntryHours = 6→8としてスプレッドがまだ落ち着いている時間帯で決済できるようにします。
Tickstoryの場合はGMT=0で出力しているので、サマータイムなどの影響を受けてしまいます。
厳密には正確ではありませんが「週末持ち越しをさせない」という点で
十分に参考にできるバックテスト内容になると考えます。
サマータイム毎にバックテストするというのは非常に手間が掛かりますので
やる価値があると判断したEAにしか行いません。
アルパリバックテスト(EURUSD)
データ:アルパリUKのGMTを冬+2、夏+3へ修正しJPとの整合性を統一したもの
Break Scal System-r15-EURUSD-アルパリ-2000.02.01-2015.01.15-スプ5
Break Scal System-r15-EURUSD-アルパリ-2000.02.01-2015.01.15-スプ10
Break Scal System-r15-EURUSD-アルパリ-2000.02.01-2015.01.15-スプ15
ブレイクスキャルシステム-アルパリ結果合成値
1年間の運用見込み利益(15年割)=$79.63(0.95万円相当)
スプ5最大ドローダウン=$536.47(6.43万円相当)
スプ10最大ドローダウン=$1508.89(18.10万円相当)
スプ15最大ドローダウン=$1940.17(23.28万円相当)
合成ドローダウン=$1328.51(15.94万円相当)
リスク対期待値=0.059
Tickstoryバックテスト(EURUSD)
Break Scal System-r15-EURUSD-Tickstory-2003.06.02-2015.09.20-スプ10
ブレイクスキャルシステム-Tickstory結果
1年間の運用見込み利益(12年割)=$-140.14(-1.68万円相当)
スプ10最大ドローダウン=$2785.47(33.41万円相当)
リスク対期待値=0
カスタムバックテスト
今回はユーザーさんからカスタムでの検証依頼がありましたので行います。
AccurateModeの使用とM5での検証です。
・AccurateMode = false
→trueにすることで、エントリー精度をあげたモードに変更できます。1時間足などに変更してご利用ください。
ただし、エントリー回数がかなり減ることになりますので、Scal_Pipsパラメータを上げて一回の利確幅を大きくしたり、ストップロス値も合わせて修正する必要などがあります。
本モードを作動させる場合は、バックテストを行った上でご利用ください。
M15-AccurateMode
Break Scal System-r15-EURUSD-アルパリ-2000.02.01-2015.01.15-AccurateMode-スプ5
Break Scal System-r15-EURUSD-アルパリ-2000.02.01-2015.01.15-AccurateMode-スプ10
Break Scal System-r15-EURUSD-アルパリ-2000.02.01-2015.01.15-AccurateMode-スプ15
ブレイクスキャルシステム-アルパリ結果合成値
1年間の運用見込み利益(15年割)=$579.49(6.95万円相当)
スプ5最大ドローダウン=$570.09(6.84万円相当)
スプ10最大ドローダウン=$768.83(9.22万円相当)
スプ15最大ドローダウン=$822.23(9.86万円相当)
合成ドローダウン=$720.38(8.64万円相当)
リスク対期待値=0.804
Break Scal System-r15-EURUSD-Tickstory-2003.06.02-2015.09.20-AccurateMode-スプ10
ブレイクスキャルシステム-Tickstory結果
1年間の運用見込み利益(12年割)=$-6.90(-0.08万円相当)
スプ10最大ドローダウン=$1045.57(12.54万円相当)
リスク対期待値=0
M5-AccurateMode
Break Scal System-r15-EURUSD-アルパリ-2000.02.01-2015.01.15-M5-AccurateMode-スプ5
Break Scal System-r15-EURUSD-アルパリ-2000.02.01-2015.01.15-M5-AccurateMode-スプ10
Break Scal System-r15-EURUSD-アルパリ-2000.02.01-2015.01.15-M5-AccurateMode-スプ15
ブレイクスキャルシステム-アルパリ結果合成値
1年間の運用見込み利益(15年割)=$431.55(5.17万円相当)
スプ5最大ドローダウン=$348.54(4.18万円相当)
スプ10最大ドローダウン=$366.74(4.40万円相当)
スプ15最大ドローダウン=$494.15(5.92万円相当)
合成ドローダウン=$403.14(4.83万円相当)
リスク対期待値=1.070
Break Scal System-r15-EURUSD-Tickstory-2003.06.02-2015.09.20-M5-AccurateMode-スプ10
ブレイクスキャルシステム-Tickstory結果
1年間の運用見込み利益(12年割)=$91.45(1.09万円相当)
スプ10最大ドローダウン=$557.13(6.68万円相当)
リスク対期待値=0.163
まとめ
スプレッド5程度でないと使いものにならないEAです。
アルパリとTickstoryで結果に大きな違いがあるのでヒストリカルデータに左右されるEAです。
それでも利用したい場合には「スプレッドが常に低く」かつ「ブローカーとの相性を確認する」ことが必須と判断します。
今回、普段MT4で逆指値を多用しないのでスプレッドについて確認しました。
「もしかして指値、逆指値の場合はスプレッド関係ないかも?」と思ったからです。
5社程度に問い合わせしましたが、
「成行だろうと指値だろうとAsk/Bidでの売買となるのでスプレッドコストはある」との回答でした。
ということで、やっぱりスプレッド5程度でないと使い物にならないEAという判断です。
次回はドル円での検証をお届けします。