この記事では、いわゆる「前日の高値・安値ブレイク手法」をMT4で検証を行う様子を記していきたいと思います。
実際にリアルタイムで行っている検証なので、何回かに分けてお送りしていきます。
検証全体の流れについて
まずは検証全体の流れについて確認しておきます。今回は「トレーディングシステムの開発検証と最適化」と「システムトレード検証と実践」という2冊の本に追加して、藍崎さんのnoteに基づいて検証を進めていきます。
以上は「トレーディングシステムの開発と検証と最適化」で紹介されているワークフローです。
ただし、今回はスプレッドの狭い通貨ペア(ドル円、ユーロドルのどちらか)を作りたいとい希望があるので、多期間多市場テストに関しては、「多期間テスト」のみを行いたいと思います。
上図に「予備チェック」という項目がありますが、「システムトレード検証と実践」では、「モンキーテスト」という名前で紹介されています。
モンキーテストの合格基準には、藍崎さんのnoteにある上位10%という基準を採用していこうと思います。
以上を踏まえた上で今回の検証では、おおまかに以下のような手順で検証を行っていきます。
- トレーディング戦略を準備する
- トレーディングシステムの最適化
- モンキーテスト
- 多期間テスト
- ウォークフォワードテスト
トレーディング戦略を準備する
まずは、トレードシステム自体を用意する必要があります。MQL4でEAをプログラミングすることはもちろんですが、それ以外にも以下のことをする必要があります。
- 戦略の方針を明文化
- エントリー決済ルールの規定
戦略の方針を明文化
戦略を漠然とプログラミングし始めるよりも、どのようなトレードシステムを望んでいるか、また望んでいないのかを明確にしておくことが大切です。
望むこと | 望まないこと |
---|---|
最大ドローダウンは30%以内(純利益に対して | 目視による複雑なチャートパターン確認(まちがいが起こりやすい) |
年次リターン50%→2500万円稼ぐためには年利50% | 頻繁なチャート確認(1分足や5分足は採用しない) |
Fintokeiによる収入が年1000万円→ 引き出すのは口座の50%で80%の利益を獲得できるので、2500万円の年利が必要 | 当初口座資金から10%減すること |
オーバーナイトリスクを防ぐために、その日中に手仕舞いを行うこと | 経済指標時にトレードを行うこと |
100%メカニカル | |
指標は2つまで | |
チャート画面は1画面か2画面 | |
スプレッドの狭い主要通貨ペア | |
ポートフォリオを組んで、ドローダウンを最小化する |
以上のように「望むこと」「望まないこと」が明確になったら、SMARTの法則に則ってトレードシステムを明文化してみましょう。
- Specific(具体的)
- Measurable(測定可能)
- Attainable(達成可能)
- Relavant(関連性がある)
- Time bound(期限を決める)
ぼくもSMARTの法則に則って希望するトレードシステムを以下のように明文化してみました。
1年以内(3/20)にまでにデイトレードシステムを完成させる。
このトレードシステムはスプレッドの狭い通貨ペアによるポートフォリオから形成され、年次平均リターンは50%、許容最大ドローダウンは30%を目指す
ちなみに、デイトレードシステムにしたい理由は、これまでのトレード経験からオーバーナイトポジションを持つことの不安さや危険さを知っているからです。
また、スプレッドの狭い通貨に限定する理由は、長期の運用になればなるほどスプレッド分の手数料が馬鹿にならなくなってくるからです。
意図通りにプログラムが機能しているかのチェック
まずは、意図通りにプログラムが機能しているかを目視で確認します。今回は、前日の高値・安値ブレイクに関する手法を検証していくので、以下のようなトレードルールにします。
【仕掛けルール】
X日間の高値の最大値をY時間足の実体で更新したらロング
X日間の安値の最小値をY時間足の実体で更新したらショート
最適化対象パラメータ:X、Y
ただし、パラメータYは多期間多市場テストの一環で堅牢性を確かめるとともに、最適化するものとする。
【手仕舞いルール】
ドテン戦略
トレードシステムのプロトタイプとしては、以上のような非常にシンプルな手法にしてみます。仕掛けにおける値XとYに最適化の余地を残しています。
パラメータYはのちに行う多期間多市場テストの一環で最適化を行います。多期間多市場にわたって利益を上げられるトレードモデルであることが分かったうえで、最適と思われる期間で最適化します。
最適化を実際行う前に、Xのスキャンレンジを決める必要があります。
まとめ
現在プログラムを組んでいるのですが、なかなかルール通りに動かないため、一旦ここまでにします。