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

MetaTrader 4
GogoJungle
2019/08/02 20:56
3321

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

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);
}

コメント

tas
2019/08/03 08:50

さっそく引用させてもらいましたが、以下の部分コンパイルエラーになっていますよ。

  for(int i = OrdersHistoryTotal() - 1; i >= 0; i–){

for(int i = OrdersHistoryTotal() - 1; i >= 0; i--){
GogoJungle
2021/06/02 20:21

ご指摘ありがとうございました。修正いたしました。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。