プログラミング

「連敗停止モード」の実装方法

◎機能仕様

  • MT4の売買履歴から損益合計額を取得して、設定した損失合計額を超えた場合、該当EAを停止する(例えば、10万円の損失合計を超えたら、該当EAを停止する)。

 

◎詳細仕様

1、変数の宣言

//損失合計額

extern double LimitLoss=-100000;

2、関数定義

double checkOrderHistoryTotal(){

int j;
double profit=0;
double totalProfit=0;

for(j=0; j < OrdersHistoryTotal(); j++) {

//売買履歴を選択する。
if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY) == false) return(false);

//売買履歴の中から決済部分のみ取得
if(OrderSymbol() == Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL)){

//損益を取得
profit=OrderProfit();

//トータル損益に足し込む。
totalProfit = totalProfit + profit;
Print(“totalProfit=”,totalProfit,” “,”profit=”,profit);
}
}

return(totalProfit);
}

 

3、OnTick関数内に記述

double tl =checkOrderHistoryTotal();

//トータル損益が損失合計額を超えていたら、処理を終了する。
if(tl > LimitLoss){
//safety
return;
}

ABOUT ME
yumokin
EA開発会社(FX、ビットコイン)を経営しています。GogoJungle AWARD2020 EA部門受賞。