Bitcoin 裁定取引と自動取引 abitra.netのブログ

Bitcoinの自動売買のあれこれ

TMシグナルインジケーターの全通貨バックテスト検証及び評価レビューなど その2 それと5分足次足の○○秒前測定

前回はUSDJPYの1通貨のバックテストを行いましたが他の通貨のヒストリカルデータのダウンロードも完了したので全ての通貨をバックテスト。


"TMシグナルインジケーターのバックテスト検証及び評価など バイナリーオプション用"
abitra.hatenablog.com




TMシグナルインジケーターの全16通貨のバックテスト及び検証が完了しました。
全てMT4でバックテストで行ったので時間が掛かりました。。。期間は2014年から約5年程なのですがMomentをtrueとfalseに設定しての検証なので同じ通貨を2回検証してといった感じ。

条件など

通貨ペア : EURJPY,EURUSD,AUDJPY,AUDUSD,AUDNZD,CADJPY,USDCAD,NZDUSD,CHFJPY,USDCHF,EURAUD,GBPJPY,GBPUSD,EURGBP,GBPAUD
時間 M5(5分足)
ヒストリカルデータ Dukascopy
期間 2014/1/1 - 2018/12/30 5年程
Moment false, true


バックテストのデータは適当に時期をみて公開しようかな。
簡単に結果を伝えておくと時間帯などきちんと考慮して運用出来ればいい結果です。
※時間帯は考慮しなくてもある程度良い結果になるますが市場の特性などを考えて時間帯をみるとより良い結果になります。(まぁあたりまえかw)
Momentはtrueの方が成果が良いです。


ますますロジックが気になります。
今回改めて感じたのはMT4だとバックテストの時間が掛かるので5分足以上バックテストはエクセル又はスプレッドシートにて検証した方がいいのかな。
即エントリーのターボだとMT4になりますがそれ以外はエクセルの方が複数の条件を一括でバックテスト出来ていいかも。
PCのコア数もMT4だと生かせていない問題もあるし。。。

TMシグナルインジゲータの運用について

現在デモ取引で自動売買のテストを行っています。
Momentはtrueにて運用。
そこでMomentをtrueにして問題になってくるのがアラートが出ても一瞬だけ矢印とアラートが出てすぐに消える問題。
Momentをfalseにしておくと確定してのアラートなので消える問題は気にしなくてもいいのですがね。


裁量で行っているのであれば消える問題は関係ないです。
目視で確認すればいいのでw


自動売買の場合は矢印が表示されているのかどうなのかをエントリー直前で判断しておかないといけません。
私は足の終わる15秒前に矢印があるかどうかを判断しています。

○○秒前に矢印の有無を判定するmql4プログラム

例 5分足で15秒前の場合。

int remaining_time = 0;
int start(){
	remaining_time = (Time[0]+1*Period()*60 - TimeCurrent());
	if ( remaining_time < 15) {
	 // ここに足が終わる15秒以内で行う処理
	 // iCustomでTMシグナルインジゲータを読み込み。
	}
}


たったこれだけです。


※ 注意 正確には15秒前でないのでご了承下さいませ。インジゲータで動かしているのでティックデータでのカウントになり深夜帯などティックデータの更新が少ない場合は10秒前になったりしてズレます。
startは価格更新がトリガーで動くので価格更新がないと動かないのが理由です。
正確に計るのであればsleepを使えるエキスパートアドバイザで測定した方がいいのかな(エキスパートアドバイザで試していないので想像で書いてます。)

説明

何をやっているのか説明すると、Time[0]+1*Period()*60 で次足の時間を計算させてます。
その計算させた時刻(TimeCurrent())から現在の時刻を引いてます。



ポイントは int remaining_time で intにしています。これしておかなと時刻が返ってくるので面倒。intだと数値(秒)。
でremaining_timeが15未満の時にTMシグナルインジゲータを読み込んで矢印があるか判定。


まとめ

とりま動かして様子をみる。
今の所利益がプラス。まぁ2-3カ月様子を見て判断出来ればいいかなーと。