統計手法(相関分析)を使い、400個以上のテクニカル指標やロジックの中から最適な組み合わせを見つけて作成したEA
1.概要
EAを開発する場合、複数のテクニカル指標やロジックを組み合わせますが、
どの組み合わせが一番有効かどうかなかなか分からず、EA作ってはバックテストを
し、うまくいかないと組み合わせを変えて、再作成という試行錯誤を繰り返すという手法を
従来は使っていました。
これですと、時間がかかりなかなか良いEAができません。
そこで、MT4で取得したデータを統計的な関数が豊富にあるEXCELに移行して統計手法
(相関分析)を使ってロジックを開発する手法を考えてましたので、ご紹介します。
2.通常のEAの作成方法
・チャートにいくつかのインジケータをいれて、チャートをみながら、
クロス、矢印、レベル等を考慮して、ここでエントリ、ここで決済といった方法で決めます。
・従来方法の欠点
① たまたま、ある期間(チャートをチェックした期間)だけうまく機能していることが多い。
② 長期間で安定した利益が得られず、収益曲線がきれいな右上がり曲線になりません。
③ 完成までに時間がかかる。
3.EXCELの相関分析を用いたEAの作成方法
<手順>
① トレード回数の多い単純なEAを作成する
② バックテストにより、エントリ時間を収集(基本データ)
③ エントリ時間での200種類以上のテクニカルデータを収集
④ EXCELに移行して、利益に対する相関分析を行い、最適なフィルタを求める。
⑤ 最適フィルタを①のEAにかける
⑥ よいフィルタがなかった場合は③のテクニカルデータを変える。
4.基本データの収集(1)
基本データの収集のためのEAの作成します。
(例)
・買いのエントリ、
長期間の移動平均線が上昇トレンドを示す時、
RSIがある値より小さい時、
・買いのポジションの決済
ボリバンの上のバンドに当った時
・出来る限り、トレード回数が多いほうがよい。
・両建てなし、最大ポジションは1が好ましい。
5.基本データの収集(2)
作成したEAのバックテストより、トレードのエントリ時間と損益データを求める
6.テクニカルデータの収集
基本データのエントリ時のテクニカルデータを収集する。
<テクニカルデータ例>
・上位移動平均線の過去数十時間との偏差
・ボリバンの幅、上のバンドの傾き、下のバンドの傾き、拡がり
・ストキャス、MACD (メインとシグナルの差、メインの傾き)
・最高値/最安値(幅、現在値との差)
・Zigzagによる高値切り上げ、安値切り上げ
・陽線・陰線の幅
・上髭、下髭
上記を複数の時間軸、複数の期間で200種類以上のデータを取得し、csvファイルで保存
7.EXCELへの移行
8.相関分析
EXCELのデータ分析にある相関分析で、利益に対する相関係数を求める。
相関係数の高いテクニカルデータを求める。
9.VBAによる最適値の算出
VBAで200種類以上の相関係数の高いデータを変化させて、最適値を求める。
パラメータの最適化を行うと
10.EAへ組み込み
下記のように改善されました。
利益:2,203 --> 3,886
PF:1.08 --> 1.31
回数:4,631 --> 2,173
最大ドローダウン:601 --> 377
勝率:62.9% --> 64.8%
11.改善された資産曲線
・改善前
・改善後
12. この手法で開発したEA
千紫万紅
https://www.gogojungle.co.jp/systemtrade/fx/14944
山紫水明
https://www.gogojungle.co.jp/systemtrade/fx/15576
花紅柳緑
https://www.gogojungle.co.jp/systemtrade/fx/17258
Is it OK?