【MQL】バイナリーオプションで使用するアローインジケーターの勝率表示
FXやバイナリーオプションなどの投資において様々なインジケーターが世の中に存在します。
しかし、その勝率の真意や直近の正確な勝率を知らずに使用していませんか?
MQLでプログラムが作れたとしてもex4で取引条件が分からなくてはバックテストを取るのが難しいのが実情です。
そこでこの記事では、取引条件から勝率を計算するのではなく表示されているアローから勝率を算出する方法をMQLを交えながら説明します。
この記事を読み終わるころにはあなたも下記の様な勝率を表示できるようになります。
少し難しい内容も含まれますが、MQLへの理解も深まり応用して使う事も出来ます。
最後にこのインジケーターのプレゼントもあるので是非最後までご覧ください。
勝率表示インジケーターの作り方
前提としてバッファーインデックスが分かるものに関しては一般的に世に出回っているバックテストツールであるアナライザーを使用することでバックテストが取れます。
しかし、今回はバッファーインデックスを特定できないインジケーターでかつアローがアローとしてチャートに表示されている必要があります。
→シグナルが出ているところのアローの名前を取得
→名前からバーシフトを取得
→バーシフトから終値を取得
→シグナルのバーシフトから次足の終値を取得し勝敗を決める
これでシグナルの勝敗を計算できるようになります。
そして必要期間繰り返し計算すことで期間内の勝率を出すことができるようになります。
後は表示させることで完成です。
MQLで解説
for(int i = ObjectsTotal(); i >0 ; i–)
↑最新のオブジェクトは大きい数字となるので0からではなく足すのではなくMaxから引いていく
{
string obj_name = ObjectName(i);
↑オブジェクトの名前の取得
int bar_index = ObjectGet(ObjectName(i),0);
int barsift=iBarShift(0,0,bar_index,false);
↑バーシフトを取得
double arrowcode= ObjectGetInteger(0,ObjectName(i),OBJPROP_ARROWCODE,0);
↑アローコードの取得
if(arrowcode==HA&&barsift<kikan)
↑HA(アローコード233など)で上か下か判定するかつバーシフトが期間内のみ計算する
{
if(Open[barsift-1] < Close[barsift-1])
↑勝ち
{
wHigh += 1;
↑勝ちに集計する
}
else if(Open[barsift-1] >= Close[barsift-1])
↑負け
{
lHigh += 1;
↑負けに集計する
}
else{}
}else{}
↓下記同様
if(arrowcode==LA&&barsift<kikan)
{
if(Open[barsift-1] > Close[barsift-1])
{
wLow += 1;
}
else if(Open[barsift-1] <= Close[barsift-1])
{
lLow += 1;
}
else{}
}else{}
}
以上がメインのプログラムになります。
そして、これらの結果をチャート上に表示していきます。
ObjectCreate(“Low”,OBJ_LABEL,0,0,0);
ObjectSetText(“Low”,”Low “+IntegerToString(wLow)+”/” +IntegerToString(lLow)+” “+DoubleToStr(lowp,1)+”%”,Price_font_size, “Arial”, Price_Color);
ObjectSet(“Low”, OBJPROP_CORNER, corner1);
ObjectSet(“Low”, OBJPROP_XDISTANCE, Price_offset_X);
ObjectSet(“Low”, OBJPROP_YDISTANCE, Price_offset_Y);
ObjectCreate(“High”,OBJ_LABEL,0,0,0);
ObjectSetText(“High”,”High “+IntegerToString(wHigh)+”/”+IntegerToString(lHigh,0)+” “+DoubleToStr(Highp,1)+”%”,
Price_font_size, “Arial”, Price_Color);
ObjectSet(“High”, OBJPROP_CORNER, corner1);
ObjectSet(“High”, OBJPROP_XDISTANCE, Price_offset_X1);
ObjectSet(“High”, OBJPROP_YDISTANCE, Price_offset_Y1);
以上がチャートに勝率を表示するものとなります。
するとこのように勝率を表示され直近での勝率を確認することができます。
まとめ
いかがでしょうかMQLが難しいと感じた方も安心してください。
ここまで見ていただいたあなたにはこちらよりダウンロードできますのでぜひ活用してみてください。
またこのベースがあれば冒頭の画像のようにカスタムもできます。
今回の場合5分後判定や1分後判定ですが少し手を加えれば直近判定などにもカスタムできます。
気になる方はLINEなどで聞いてください。
※この勝率はオブジェクト表示されていることが絶対条件です。
”表示中のライン等リスト”からArrow、名前が確認することができるか調べてみてください。
また、ご使用の際はアローコードの確認をしてインジケーターのパラメーターをあなたに合ったものに変更してください。
コメント