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

Bitcoinの自動売買のあれこれ

バイナリーオプション(ハイローオーストラリア)の1分足 ターボ エントリー のバックテスト検証

半分自分用メモ

先日コメントで検証依頼があり、真剣に1分足を検証してみました。
今迄1分足は次足エントリー検証がほとんどでしてターボ特有の○○秒後ってのは試していませんでした。
※ちなみに5分足の即エントリーは15分足の残り5分でエントリーさせます。

■前提知識

まずバイナリーオプションのハイローオーストラリアで1分足即エントリーロジックのバックテストは注意が必要。
単純に Close[1](一つ前の終値)で判断してバックテストする事が出来ません。

ハイローオーストラリアの1分足はターボしかないためエントリーしてから1分後をカウントする必要があります。
通常のバックテストの様に1分足の締めで計測出来ないです。
つまり手動でのバックテスト(検証)も基本出来ないです。
フォワードテストであればストップウォッチ片手に出来ない事もないと考えますが手間過ぎるかな。


通常のエントリーは締めの時間が決まっているのでバックテストは簡単に計測出来ます。
例えば1時間足の場合。逆張りエントリーする前提(順張りでもやってる事は同じで条件設定が違うだけ)

エントリープライスが110円だとしたら

if (エントリープライス < High[1]){ //エントリー要件達成
 if (エントリープライス > Close[1]){ //エントリーの勝敗確認
 Print("win");
 }
}

// ↓ 上記を数値で書き出すとこんな感じ

if (110 < 115){ //エントリー要件達成
 if (110 > 108){ //エントリーの勝敗確認
  Print("win");
 }
}

ヒゲで逆張りして"勝ち"。
High[1]もClose[1]も簡単に取得する事が出来ます。(書くだけでOK)このwinの所にCSVファイルで勝敗を記録して集計してやればって感じ。


ですが1分足のターボだと上記方法は使えません。
ローソク足の締めとターボのエントリーの締めの時間が違う為、別のロジックが必要で自身で締めの時間と価格を出さないとダメ。

■ハイローオーストラリア ターボ バックテスト 対応方法

ターボはターボ用のロジックを組めって事。
但し、このターボである程度正確にバックテストをする為にはティックデータが必要になってきます。
通常のHSTデータだけではティックデータが入っていないのでターボ用のロジックのバックテストは難しいと考えています。(この時点で普通の人は無理かもです。)

ティックデータを取得する方法は過去記事をご参考に。
MT4 1分足のモデリング品質を25%=>99.9%にする方法
abitra.hatenablog.com


"ティックデータを使う"を利用してバックテストを行う。
f:id:hogehoge_kato:20190624163820p:plain

バイナリーオプションの1分足ターボエントリーのバックテストロジック 例
■やってる事
  1. エントリーした時のClose[0]を変数に代入
  2. エントリーした時の時間に + 61秒後を変数に代入

以下簡単に。

if (エントリープライス < Close[0] && ここに連続エントリー防止処理の変数など設定){ //エントリー要件達成
 	entry_price = Close[0]; // 現在の価格を代入
    dt_s60 = TimeCurrent() + 61; // 1分後の時間を代入 一応61秒に設定
}

if (TimeCurrent() >= dt_s60 && entry_price > Close[0] && ここにhigh or lowの判定処理){
	Print("win");
	ここらに連続エントリー防止処理などの変数設定いれとくといいかな。
}

かなり省略していますが、やってる事はこんな感じw
確定足を使えないので値段判定はClose[0]しか使いません。

■懸念点

ティックデータを使っていますがそもそもティックデータが正確なのか分かりませんのでその辺りは、ある程度諦めるなどしないといけないかもです。
DTS及びdukascopyを疑っているわけではないですが、完璧に再現出来ているかなどの検証もしていませんので。。。
↑これら言い出すと何も出来なくなるので出来る範囲で最善の方法を行っていたらOKでしょ精神。

■その他

もし検証して欲しい手法があればお気軽にコメント下さいませー