【MQL】簡易なバイナリーオプション検証EA【EA】
本記事は、プログラミング学習の備忘録です。本記事のコード等をご利用になる際は、ご自身の責任においてご利用ください。
1.内容
バイナリーオプションの検証を手軽にできたらと思い、簡易版バイナリーオプション検証EAを作成しました。
具体的には、
【 検証期間 】 2019.1.1~2019.12.31
【 検証期間 】 2019.1.1~2019.12.31
【 ローソク足 】 USDJPY1分足・始値のみのモデル
【エントリ―条件】 RSIが25より小さくなったら次の足の始値で買い
【イグジット条件】 エントリー5分後
の条件下での、
・トレード回数
・勝ち回数
・負け回数
・勝率
をcomment関数を使ってチャート上に表示しました。
2.コード
#property version "1.00"
#property strict
input int EXIT_TIME_M = 5; //決済時間(分)
double Total = 0; //トレード回数
double Win = 0; //勝ち
double Entry = 0; //エントリー価格
double Exit = 0; //イグジット価格
datetime Entry_time; //エントリー時間
void OnTick()
{
double rsi1 = iRSI(NULL, 0, 14, PRICE_CLOSE, 1);
double rsi2 = iRSI(NULL, 0, 14, PRICE_CLOSE, 2);
if(Entry == 0 && rsi2 > 25 && rsi1 < 25 ) { //ポジションなし&条件発生
Total = Total + 1; //トレード回数を1回追加
Entry = Open[0]; //エントリー価格を記録
Entry_time = Time[0]; //エントリー時間を記録
Print("エントリー価格:", Entry, " エントリー時間:", Entry_time);
}
if(Entry !=0 && (TimeCurrent() - Entry_time) >= (EXIT_TIME_M * 60) ){ //ポジション保有&条件発生
Exit = Open[0]; //イグジット価格を記録
if(Entry < Exit ){ //価格上昇なら
Win = Win + 1; //勝ちを1回追加
}
Print("イグジット価格:", Exit, " イグジット時間:", Time[0]);
Entry = 0; //ポジションを0にする
if(Total!=0){
Comment("トレード回数:",(int)Total, " 勝ち:", (int)Win, " 負け:", (int)Total - (int)Win, " 勝率:", NormalizeDouble(Win / Total * 100, 1), "%");
}
else{
Print("トレードなし");
}
}
}
3.コードのファイル
4.実行結果
左上に、
・トレード回数
・勝ち回数
・負け回数
・勝率
が表示されました。思ったより勝率が良くてびっくりしました。
これでは、お遊び程度の検証しかできないですが、勉強して時間別や曜日別で結果を表示したりできるものを作りたいです。結果をcsvで出してエクセルで分析するほうが良いかもしれませんが…
この記事が気に入ったらサポートをしてみませんか?