バックテストのやり方について2

・・・さて、前回の説明で
ごく基本的な『条件』の組み方は
ご理解頂けたと思うが、
今回は
さらに一歩進んだやり方について説明しよう。


変数#1に次の一文を入力する。

TimeHour(CurTime())

これは『時間=hour』を取得する時に使う。
何度もバックテストをやろうとする時には
頻繁に使う一文でもあるので
『単語/用例の登録』かなにかで
登録した方が便利かもしれない・・・。




今回は変数は#5まで使うので
ポチポチ押していって
#5まで用意し、
残りは全部
Moving Average(=移動平均線) に設定する。

Periodの部分をそれぞれ

#2=6
#3=12
#4=21
#5=77

に設定してみる。




『買い戦略』は今回2つ使う。
#1の右にあるANDは特に意味が無いので
気にする必要はないが、
#2の右にあるANDは
#1の条件と#2の条件が両方とも満たされなければ
発動しないと言う意味をなすので
今回の場合は必ず『AND』でなければならない。

ちなみに

#1「OR#2」 とした場合、
#1か#2のどちらかの条件が満たされれば発動

#1「OR#2」「AND#3」とした場合、
#1の条件が満たされるか#2と#3の両方が満たされれば発動

#「OR#2」「AND#3」「OR#4」とした場合、
#1の条件か#2#3の両方(片方だけでは不発)か
#4の条件が満たされれば発動する事を意味している。

(#1の左のANDとかORは全く無意味なので無視しても差し支えない)

話を元に戻して
上の図の青い枠の部分は画面に入りきれないほど
長くなってしまったので
下記のように入力。

Var1 >= 14 && Var1 <= 17 && Var2 > Var3 && Var3 > Var4 && Var4 > Var5

・・・簡単に説明すると
最初のVar1で定義した
TimeHour(CurTime())は
このツールの時間で考えなければならない。
つまり『日本時間』ではない。
このツールの時間は
日本時間から7時間遅れているので
日本時間に換算するにはこの時差を計算に入れなければならない。
(メンドクサイ・・・)

つまり14と入力した場合、
日本時間に換算すると+7で21時、
17と入力した場合、
日本時間に換算すると+7で24時という意味になる。

つまりエントリーする時間は
日本時間で21時~24時(台)までの間にせよ
という意味になるのである。

#2には

Var2 - Var5 <= 0.0050

と入力するが、
これはMA6(6移動平均)からMA77(77移動平均)を
引いた値が50pips以下と言う意味である。





お次は『決済(買い)戦略』・・・。

Var1 == 0

とはもう説明の必要も無いかもしれないが
日本時間の朝7時になったら
問答無用で決済せよ
と言う意味である。




『売り戦略』も買い戦略と同じ大体同じ要領である。
青い枠の中身は
買い戦略とは真逆である。

Var1 >= 14 && Var1 <= 17 && Var2 < Var3 && Var3 < Var4 && Var4 < Var5

・・・あとは画面の通りに入力する。





『決済(売り)戦略』
これは決済(買い)戦略と全く同じ。
午前7時でポジが残っていたらここで決済。

ここまで入力したら
画面左下の『Complete!』を押して
入力した条件をDLする。




出て来たファイルの名前は
前回とは違う名前を変えてみよう・・・。
(同じ名前だとなぜか上手く動かなくなる事があるのだ・・・)




前回と同じ要領で
『experts』のフォルダの中に入れて
MT4を起動してみる・・・。

『Expert Advisor』に入れたファイルと同一の名前のものに合わせる。

今回は『期間』をH1(1時間足)に設定し、

『Expert properties』をクリックする。




『Sign alMail』
『Each TickMode』

『UseStopLoss』
『UseTakeProfit』
『UseTrailingStop』

の5箇所全部が『false』である事を確認する。





ストップもリミットもなく
無制限に取引をした場合のレポートを確認してみる・・・。

PF 1.17 +155.0pipsで辛うじてプラスとなったようだ・・・。







『Expert properties』をクリックして
パラメーターの入力の欄をいじってみる事にしてみよう・・・。

今回はリミット200pipsストップ30pipsで
OCOを入れてみることにしよう・・・。

『UseStopLoss』の右にある欄を『true』
その下の『StopLoss』にチェックを入れ、右の数字の欄に300と入力。

同じように
『Use TakeProfit』の右にある欄にも『true』
その下の『TakeProfit』にチェックを入れ、右の数字の欄に2000と入力。

どうもこのツールはpipsにおいては
一桁ずれるようで
1と入力すると
0.1pipsという意味になるらしい・・・。

入力が終わったら『OK』をクリックしてもう一度
『スタート』をしてみよう・・・。





今度は
PF 1.18 +171.9pipsという結果が得られたようだ・・・。

少しは改善されたようだが
もっとウマイやり方がないかを
今度は自分の力で探し続けてみよう!