当日の取引回数を算出する関数 getTradeCountDaily

MetaTrader 4
GogoJungle
2019/08/02 20:55
36

当日の取引回数を計算する関数です。
一日あたりの取引回数を制限したい場合などにご利用下さい。

int getTradeCountDaily(int magic);

パラメータ
magic
取引回数を計算するポジションのマジックナンバー

戻り値
当日のうちにエントリーした回数。(待機注文は除く)
日付はサーバー時間を基準に計算されます。
計算中にエラーが発生した場合は結果が-1となります。

int getTradeCountDaily(int magic){
   int count = 0;
   MqlDateTime server, trade;
   TimeCurrent(server);
   
   int year  = server.year;
   int month = server.mon;
   int day   = server.day;
   
   for(int i = OrdersTotal() - 1; i >= 0; i--){
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) return(-1);
      if(OrderMagicNumber() != magic) continue;
      if(OrderSymbol() != Symbol()) continue;
      if(OrderType() == OP_BUY || OrderType() == OP_SELL){
         TimeToStruct(OrderOpenTime(), trade);
         if(trade.year != year)  continue;
         if(trade.mon  != month) continue;
         if(trade.day  != day)   continue;
         count++;
      }
   }
   for(int i = OrdersHistoryTotal() - 1; i >= 0; i--){
      if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == false) return(-1);
      if(OrderMagicNumber() != magic) continue;
      if(OrderSymbol() != Symbol()) continue;
      if(OrderType() == OP_BUY || OrderType() == OP_SELL){
         TimeToStruct(OrderOpenTime(), trade);
         if(trade.year != year)  continue;
         if(trade.mon  != month) continue;
         if(trade.day  != day)   continue;
         count++;
      }
   }
   return(count);
}

コメント

テストマン
2019/08/19 12:09

関連項目

検索結果がありません。