[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
カテゴリー:エコトレFXのMAマスターをテスト
ポンド円の1時間足です。
x=16
y=30
z=13
a=100
で以下の感じでした。
ヒストリーデータの都合でバックテストは2008/11/12~2011/7/16までしかできませんでした。
売買回数と損益が合う感じのパラメータを選択してみました。
以下が本家の損益グラフです。
横軸が違うのでかなり違うように見えます。
本家の横軸は日付です。バックテストの横軸は売買回数です。
短期間に大量にシグナルが発生したり長い間シグナルが発生しなかったりすると
グラフの進み方が異なってきます。
オージー円の1時間足です。
x=19
y=33
z=7
a=21
で以下の感じでした。
ヒストリーデータの都合でバックテストは2008/11/18~2011/7/16までしかできませんでした。
売買回数と損益が合う感じのパラメータを選択してみました。
以下が本家の損益グラフです。
3年間のランキング1位のシステムですが
よかったのは前半だけで後半は全く増えていません。
我慢して使い続ければ抜け出せるのでしょうか?
パラメータを調整して本家の損益グラフに近づけることができないか試してみました。
この3年間絶好調のユーロ円の1時間足で挑戦しました。
いきなりですが以下のパラメータ近辺が本家に近いと感じました。
x:5
y:31
z:21
a:25
3年間の比較です。
EAでは2008/11/18~2011/7/16のバックテストしかできませんでした。
以下の枠の範囲がそれくらいの期間です。
本家の3年間の損益グラフです。
EAのバックテストのグラフです。本家より成績がいいのでオーバーフィッティング気味です。
本家の1年間の損益グラフです。
EAのバックテストのグラフです。売買回数や損益も似た感じです。
本家の6か月の損益グラフです。
EAのバックテストのグラフです。売買回数と損益も似ています。
3年間のグラフを合わせようとしたら6か月のほうが合わなくなって
6か月のほうに合わせようとしたら3年間のほうが合わなくなる感じがしたので
もしかしたら本家は時々パラメータを微調整しているかもしれないです。
レートが違うだけかもしれないですが。
でも売買回数や損益が近いので本家のパラメータは
この近辺である可能性がかなり高いと思います。
このパラメータ付近だと3年間の結果は以下になったようです。
ユーロ円はMAマスターとの相性が抜群だったようです。今後どうなるかはわかりませんが。
反転が確定した次の足にシグナルを表示しました。
procedure Calculate(index: integer); stdcall; var i:integer; sum:double; begin if Bars < index + 21 then exit; MA1[index] := GetMA(index, 0, 5, ma_SMA, pt_Close) -
GetMA(index, 0, 20, ma_SMA, pt_Close); if Bars < index + 41 then exit; sum := 0; for i:=index to index + 20 - 1 do sum := sum + MA1[i]; MA2[index] := sum / 20; if (MA2[index + 3] >= MA2[index + 2]) and (MA2[index + 2] < MA2[index + 1]) then SGB[index] := MA2[index]; if (MA2[index + 3] <= MA2[index + 2]) and (MA2[index + 2] > MA2[index + 1]) then SGS[index] := MA2[index]; end;
MA1は見にくくなるのでds_Noneにして消しています。
決済をトレールにして損切りを小さくすれば面白そうです。
わかっていたことですがMACD(5,20,20)のシグナルとほぼ同じです。
procedure Calculate(index: integer); stdcall; var i:integer; sum:double; begin if Bars < index + 21 then exit; MA1[index] := GetMA(index, 0, 5, ma_SMA, pt_Close) - GetMA(index, 0, 20, ma_SMA, pt_Close); if Bars < index + 41 then exit; sum := 0; for i:=index to index + 20 - 1 do sum := sum + MA1[i]; MA2[index] := sum / 20; end;
赤が乖離で黄色が乖離の20期間の平均です。
計算部分だけのコードです。
procedure Calculate(index: integer); stdcall; begin if Bars < index + 20 then exit; MA1[index] := GetMA(index, 0, 5, ma_SMA, pt_Close); MA2[index] := GetMA(index, 0, 20, ma_SMA, pt_Close); end;
5と20の移動平均線にしました。終値を使用しました。
パラメータを変更できるようにはしていません。
パラメータ変更する時は再コンパイルする自分仕様です。
ひまわり証券の自動売買システム「エコトレFX」で人気のシステム
「MAマスター」をForexTester2でバックテストしてみようと思います。
「MAマスター」売買ルール
Ⅰ.買いルール
1.前提条件:下記条件を満たした場合のみ、仕掛けルールを適用する
・2本の単純移動平均線(x期間・y期間)の乖離幅(z期間の平均値)が、
「縮小」から「拡大」に転じる
2.仕掛けルール:買いポジションを作るときのルール
・上記の前提条件を満たした期間(以下、期間〔t〕)の直後の期間
(以下、期間〔t+1〕)の始値で買い
3.手仕舞いルール:買いポジションを手仕舞うときのルール
①過去a期間の最安値で転売 または、
②前提条件である乖離幅が「拡大」から「縮小」に転じたら、途転売り
※途転とは、ポジションを決済する(手仕舞う)と同時に、決済前とは
逆のポジションを新規に建てること。
Ⅱ.売りルール
1.前提条件:下記条件を満たした場合のみ、仕掛けルールを適用する
・2本の単純移動平均線(x期間・y期間)の乖離幅(z期間の平均値)が、
「拡大」から「縮小」に転じる
2.仕掛けルール:売りポジションを作るときのルール
・上記の前提条件を満たした期間(以下、期間〔t〕)の直後の期間
(以下、期間〔t+1〕)の始値で売り
3.手仕舞いルール:売りポジションを手仕舞うときのルール
①過去a期間の最高値で買戻し または、
②前提条件である乖離幅が「縮小」から「拡大」に転じたら、途転買い
※途転とは、ポジションを決済する(手仕舞う)と同時に、決済前とは
逆のポジションを新規に建てること。
最初はForexTester2に売買タイミングを表示させてみようと思います。
可能なら自動で売買させてみたいです。無理かもしれないですけど。
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
自分で売買ルールを作成してテストして自信をもってリアルトレードしたいです。