見出し画像

(番外編)RSIとローソク足の並びを使ってハイローを検証したら、なかなか良い結果が得られた

RSIとローソク足の並び方からハイローなどのバイナリーオプションの勝率を検証してみたら、思った以上に良い結果が得られたのでご紹介します。

検証に使用したのは、私自身が自作しているサインツールインジケータです。


バイナリーオプションの自作サインツールの紹介

これまでのサインツールのコードは無料で紹介していますので、良かったら参考にしてみてください。

今後、いろいろな条件で検証可能なインジケータを開発・変更していくのですが、現状のインジケータで検証してみた結果の一部を紹介していこうと思います。

前回までの内容はこちらから。


ペイアウト率から必要な勝率を計算する

ペイアウト率から必要な勝率を計算します。計算は簡単で、1をペイアウト率で割るだけです。

1.8倍であれば、55.6%以上。
1.85倍であれば、54.0%以上。
1.9倍であれば、52.6%以上。
1.93倍であれば、51.8%以上。
1.95倍であれば、51.2%以上の勝率があればOKです。

例えば、ハイローオーストラリアのドル円・Turbo・1分足の場合、ペイアウト率は1.95倍なので、51.2%以上の勝率でプラスになります。3分足ならペイアウト率は1.9倍なので52.6%以上です。簡単ですね。


必要な試行回数

次に必要な試行回数について考えてみます。

勝率が60%だとしても、月に1回、年に20回程度の試行回数では少なすぎます。確率が収束することも考えると、年間1000回以上2000~3000回くらいのエントリー回数は欲しいところです。

以下にペイアウト率1.95倍の対象に対して51%から56%の勝率でトレードを行い、その試行回数が100回、500回、1000回、2000回の場合を100回ずつ検証した結果を示します。pythonを使用しました。

ペイアウト率1.95倍なので、利益は0.95、損失は1です。

結果はいくつかをピックアップして紹介します。


① 勝率51% 試行回数100回の場合

ペイアウト率1.95倍の必要勝率は51.2%以上なので、勝率は足りていません。試行回数が100回なので上振れしているものもありますが、全体的に下がる傾向のようです。


② 勝率51% 試行回数3000回の場合

一部上振れしていますが、全体的に右下下がりです。


③ 勝率51% 試行回数3000回の場合

一部上振れしていますが、全体的に右下下がりです。

ここからは試行回数1000回で、勝率だけ変更して検証してみます。


④ 勝率52% 試行回数1000回の場合

まだまだ確実に勝てる状況とは言えないです。


⑤ 勝率53% 試行回数1000回の場合

まだ駄目ですね。


⑥ 勝率54% 試行回数1000回の場合

少し右肩上がりが増え始めました。


⑦ 勝率55% 試行回数1000回の場合

このあたりから実用性がありそうです。


⑧ 勝率56% 試行回数1000回の場合

文句なしですね。USDJPY1分足では、56%以上あれば最高ってことですね。


⑨ 勝率56% 試行回数100回の場合

たとえ勝率が56%であったとしても、試行回数が100回程度であれば右肩上がりに収束することはないようです。


⑨ 勝率56% 試行回数500回の場合

500回でも厳しいので、やはり1000回以上は欲しいですね。


⑩ 勝率54% 試行回数2000回の場合

勝率54%なら2000回程度はほしいところ。


⑪ 勝率53% 試行回数3000回の場合

53%なら3000回でようやくといった感じです。


以上より、ペイアウト率1.95倍の場合、56%で500回、54%で2000回、53%で3000回くらいの試行回数が稼げるポイントを探すと良いようです。

その他の場合もまた検証して紹介しますね。



ローソク足だけで勝率を求める

2020年から2023年のローソク足を使用して、各パターンが生じる確率を計算して表にまとめました。


① 陰線の次も陰線 陽線の次も陽線になる確率

同じ色の足が続く確率は50%以下でした。


② 陰線の次は陽線 陽線の次は陰線になる確率

①の陰線続き、陽線続きより少しだけ確率が高くなりました。BTCUSDは30分以上で陽線と陰線が交互に現れる確率が、若干高いようです。


③ 陰線→陰線→陰線 陽線→陽線→陽線になる確率

①の陰線続きと同じく50%以下の確率でした。


④ 陰線→陰線→陽線 陽線→陽線→陰線になる確率

GOLD、BTCUSDで50%以上が多く見られます。このあたりを基本に条件を足していきます。


⑤ 陰線→陰線→陰線→陰線 陽線→陽線→陽線→陽線になる確率

同じ足が4本続く確率は、47%以下ですね。


⑥ 陰線→陰線→陰線→陽線 陽線→陽線→陽線→陰線になる確率

同じ足が3本続いた後、反転する確率は50%を超えるものが多いようです。特にBTCUSDで顕著ですね。


⑦ 陰線→陰線→陰線 陽線→陽線→陽線で順番に足のサイズが小さくなってから反転する確率

EURUSDやGBPUSDの短期足で悪化したものの、4時間などの長期足では改善されています。長期的反転は、少しずつ織り込まれていくのかもしれません。


⑧ 陰線→陰線→陰線 陽線→陽線→陽線で順番に足のサイズが大きくなってから反転する確率

60分以下の短期足でかなり改善されました。特にBTCUSDで57%以上の結果が出ています。GBPJPYも良さげです。これに追加条件を加えることで実用化可能ですね。


以上より、ローソク足だけの検証において次の足の方向は、反転を狙った方が確率が良くなる傾向があるようです。

次は、このローソク足の反転狙いにRSIの要素を取り入れて検証してみます。


RSIも加えて勝率を計算してみる

① 期間20のRSI(RSI20)が40%以下で陰線→陽線 RSI20が60%以上で陽線→陰線する確率


② 期間20のRSI(RSI20)が40%以下で陰線→陰線→陽線 RSI20が60%以上で陽線→陽線→陰線する確率


③ 期間20のRSI(RSI20)が40%以下で陰線→陰線→陰線→陽線 RSI20が60%以上で陽線→陽線→陽線→陰線する確率


④ 期間20のRSI(RSI20)が40%以下で陰線→陰線→陰線→陽線 RSI20が60%以上で陽線→陽線→陽線→陰線する確率 (1個目>2個目>3個目)


⑤ 期間20のRSI(RSI20)が40%以下で陰線→陰線→陰線→陽線 RSI20が60%以上で陽線→陽線→陽線→陰線する確率 (1個目<2個目<3個目)

なかなか強くなってきましたね。GBPJPYの5分はペイアウト率が1.87倍なので必要勝率は53.4%以上。54.3%なのでギリギリクリアですね。15分はペイアウト率が1.85倍なので必要勝率は54%以上。54.8%なので、こちらもギリギリクリアです。

この状態で、4年間の試行回数を調べてみました。

15分以下なら年間1000回以上の試行回数がありそうです。

施行回数に余裕がありそうなので、もう少し条件を高めてみてもいいかもしれません。

ちなみにBTCUSDは勝率が高いですが、その分ペイアウト率が低いです。


⑥ 期間20のRSI(RSI20)が35%以下で陰線→陰線→陰線→陽線 RSI20が65%以上で陽線→陽線→陽線→陰線する確率 (1個目<2個目<3個目)

GBPJPYの5分足が54.3%から55.1%に改善しました。

試行回数は半分くらいになってしまいましたが、まだ年間500回くらいはありそうです。


⑦ 期間20のRSI(RSI20)が30%以下で陰線→陰線→陰線→陽線 RSI20が70%以上で陽線→陽線→陽線→陰線する確率 (1個目<2個目<3個目)

GBPJPYの5分足が54.3%から55.8%に改善しました。

しかし、試行回数が年間250回くらいなので年間で下振れしてしまう可能性がありそうです。


自作サインツールで検証してみた

ハイロー判定の関数部分を以下のように変更して検証してみた。期間は2024年1月から本日まで。GBPJPYの5分足です。

// HighLow判定用の条件関数 trueとfalseを返す
bool HLCondition(string HL, int num)
{
   // numから過去に3本分取得
   CopyOpen(_Symbol,PERIOD_CURRENT,num,3,mOpen);
   CopyHigh(_Symbol,PERIOD_CURRENT,num,3,mHigh);
   CopyLow(_Symbol,PERIOD_CURRENT,num,3,mLow);
   CopyClose(_Symbol,PERIOD_CURRENT,num,3,mClose);
   CopyTime(_Symbol,PERIOD_CURRENT,num,3,mTime);

   // RSIインジケータ 期間14
   RSIhandle = iRSI(_Symbol,PERIOD_CURRENT,RSIperiod,PRICE_CLOSE);

   // RSIの条件を配列に取得
   CopyBuffer(RSIhandle,0,num,3,RSI);
   
   bool HLC=false;
   // Lowになる条件 RSIが60以上 2つ前が陽線 1つ前が陽線 サイズ拡大
   if(HL=="Low" && RSI[0]>RSIUpper && mOpen[2]<mClose[2] && mOpen[1]<mClose[1] && mOpen[0]<mClose[0] && MathAbs(mOpen[2]-mClose[2])<MathAbs(mOpen[1]-mClose[1]) && MathAbs(mOpen[1]-mClose[1])<MathAbs(mOpen[0]-mClose[0])){
      HLC=true;
   // Highになる条件 RSIが40以上 2つ前が陰線 1つ前が陰線 サイズ拡大
   }else if(HL=="High" && RSI[0]<RSILower && mOpen[2]>mClose[2] && mOpen[1]>mClose[1] && mOpen[0]>mClose[0] && MathAbs(mOpen[2]-mClose[2])<MathAbs(mOpen[1]-mClose[1]) && MathAbs(mOpen[1]-mClose[1])<MathAbs(mOpen[0]-mClose[0])){
      HLC=true;
   }
   return (HLC);
}


① 期間20のRSI(RSI20)が40%以下で陰線→陰線→陰線→陽線 RSI20が60%以上で陽線→陽線→陽線→陰線する確率 (1個目<2個目<3個目)

勝率は54.2%でした。試行回数は343回。


② 期間20のRSI(RSI20)が35%以下で陰線→陰線→陰線→陽線 RSI20が65%以上で陽線→陽線→陽線→陰線する確率 (1個目<2個目<3個目)

勝率は56.7%でした。試行回数は187回。


③ 期間20のRSI(RSI20)が30%以下で陰線→陰線→陰線→陽線 RSI20が70%以上で陽線→陽線→陽線→陰線する確率 (1個目<2個目<3個目)

勝率は55.6%でした。試行回数は90回。


35%、65%あたりが良さそうですね。


まとめ

自作のサインツールを使って勝率を検証してみました。GBP5分足においてローソク足の形状が3本陰線、3本陽線の反転を狙うと結果が良かったです。また、3本のローソク足は拡大していく方が反転の傾向が強かったです。さらに、RSIが35%以下もしくは65%以上であればなおよいようです。

施行回数も年間1000回くらいは狙えそうです。

今後、サインツールをさらに使いやすく改善するともに、検証結果も報告していくので良かったらフォローお願いします。

ここまで読んでいただきありがとうございました。


使用したサインツール


この記事が気に入ったらサポートをしてみませんか?