当日の合計損益を算出する getTotalProfitDaily

当日の合計損益を計算する関数です。
一日に一定金額以上稼いだ場合に取引を終了したい場合や、一定以上の損失を出した場合に取引を終了させたい場合にご利用下さい。

double getTotalProfitDaily(int magic);


magic
   計算の対象とするポジションのマジックナンバー


当日のうちに決済された取引の合計損益。(保有中ポジションの含み損益は計算から除いています)
日付はサーバー時間を基準に計算されます。
計算中にエラーが発生した場合は結果が0となります。


double getTotalProfitDaily(int magic){
double profit = 0;
MqlDateTime server, trade;
TimeCurrent(server);

int year = server.year;
int month = server.mon;
int day = server.day;

for(int i = OrdersHistoryTotal() - 1; i >= 0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == false) return(0);
if(OrderMagicNumber() != magic) continue;
if(OrderSymbol() != Symbol()) continue;
if(OrderType() == OP_BUY || OrderType() == OP_SELL){
TimeToStruct(OrderCloseTime(), trade);
if(trade.year != year) continue;
if(trade.mon != month) continue;
if(trade.day != day) continue;
profit += OrderProfit();
}
}
return(profit);
}
TwitterでシェアFacebookでシェアGoogle+でシェアはてなブックマークに追加

TOPへ