単純なブレイクアウトを使ってみる
EA作成中
行き詰ったら基本に戻りましょう。
大成功を収めた昔の投資集団のタートルズを見習って、ドンチャンブレイクアウトを試してみます。
MT4のインジケータ(昔、自分で作ったやつ)を掘り起こしてきました。
今回は、MT5への移植とドンチャンブレイクアウト手法を思い出すことですね。
このインジケータはスプレッドを考慮していない、検証が出来ていないので、まだまだブラッシュアップをしないといけませんが、MT5へ移植して動かしてみました。
ドンチャンブレイクアウト
- 終値が、過去の40期間の最高値を更新したら仕掛ける
- 終値が、過去の20期間の最安値を更新したら手仕舞い
ただこれだけの、トレンドに乗ってけー!という単純な手法です。
タートルズ改ブレイクアウト
- 終値が、過去の20期間の最高値を更新したら仕掛ける (1)
- 終値が、過去の10期間の最安値を更新したら手仕舞い (1)
- 終値が、過去の55期間の最高値を更新したら仕掛ける (2)
- 終値が、過去の20期間の最安値を更新したら手仕舞い (2)
4回までの追加オーダー(ピラミッディング)を行います。
S/Lはオーダー時のATRで計算します。
他にも市場の選定や金額などのルールがありますが、上記のタートルズ法で実装しています。
(インジケータは10000期間表示)
シグナルはブレイクアウトで出ている感じはしますが、スプレッドは考慮していません。
今回のインジケータでは58%という高い勝率でしたが、通常の勝率は20%前後です。
(バグがあると思われます w( ̄o ̄)w)
以前MT4インジケータで試した時には、20%の勝率でもトントンな利益率になっていました。
・・・もう一度検証してみないとダメですね。どちらがバグなのか。
(他のサイトを見ると勝率は低いのが一般的です)
なぜブレイクアウト
簡単なテクニカル・シグナルで低い勝率、かつ利益率が良いならば、少し勝率が高くなれば大きな利益率になります。
以前は移動平均線でのトレンドフィルターや、ADXなどのオシレータを使ったフィルターを入れても、20%を大きく上回ることはありませんでした。
他のオシレータでフィルターを試しても良いのですが、試行錯誤が面倒ww
ということで、機械学習でフィルターしてみては?
オーバーフィッティングにならないように、大まかにデータを区切ってやれば、ある程度使えるかもしれません。
そして!ランダムフォレストでフィルターすれば使用したオシレータの重要度が見られます!
ブレイクアウト+機械学習
勝率に関してはEAにしてバックテストすればはっきりします。
まずは(タートルズ改)ブレイクアウト手法をEAにします。
ロジックの基本はインジケータで実装していますので、そこまで時間はかからないと思います。
しかし!
ブレイクアウト、ピラミッディング、手仕舞いが正常に動作しているのか検証するデータを取るのが難しいですね。
検証しやすいデータにしないと後から見て「???」になること間違いなし!
そこから機械学習フィルターの実装ですが、こちらも学習データの選定が難しいですね。
なにごとも、データ命です( ̄- ̄;)
ブレイクアウト以外にも、いろいろなテクニカルが候補になります。
パーフェクトオーダーとか、GMMAとか順番だけで学習させれば汎化できそうなテクニカルありますねー
まだまだやることいっぱい┐( ̄。 ̄)┌
- 関連記事
-
- ナンピンEA作成中 (2021/08/26)
- ナンピン・マーチンゲールEA作成記 (2020/12/28)
- 単純なブレイクアウトを使ってみる (2020/07/12)
- 機械学習EA出来てはみたものの・・・ (2020/06/21)
- iCustomからライブラリ化 (2020/06/14)
コメント