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

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

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);
}
TwitterでシェアFacebookでシェアGoogle+でシェアはてなブックマークに追加

TOPへ