イェーイ!
//+------------------------------------------------------------------+ //| 取引環境の "未定義 "状態を返す。 //+------------------------------------------------------------------+ bool IsUncertainStateEnv(const string symbol_name,const ulong magic_number) { if(MQLInfoInteger(MQL_TESTER)) return false; int total=OrdersTotal(); for(int i=total-1; i>WRONG_VALUE; i--) { if(OrderGetTicket(i)==0) continue; if(OrderGetInteger(ORDER_TYPE)>ORDER_TYPE_SELL) continue; if(OrderGetInteger(ORDER_MAGIC)!=magic_number) continue; if(!OrderGetInteger(ORDER_POSITION_ID) && OrderGetString(ORDER_SYMBOL)==symbol_name) return true; } return false; } //+------------------------------------------------------------------+ ||ポジション・チケット・アレイを埋める| //+------------------------------------------------------------------+ bool FillingListTickets(const uint number_of_attempts) { //--- 環境の状態をチェックする int n=0,attempts=int(number_of_attempts<1 ? 1 : number_of_attempts); while(IsUncertainStateEnv(symb,InpMagic) && n<attempts && !IsStopped()) { n++; Sleep(sleep); } if(n>=attempts && IsUncertainStateEnv(symb,InpMagic)) { Print(__FUNCTION__,": Uncertain state of the environment. Please try again."); return false; } //--- //+------------------------------------------------------------------+ //| エキスパート・ティック機能| //+------------------------------------------------------------------+ void OnTick() { //--- ゼロ価格をチェックする if(!RefreshRates() || Point()==0) return; //--- チケットリストへの記入 int positions_total=PositionsTotal(); if(prev_total!=positions_total) { if(FillingListTickets(num_attempts)) prev_total=positions_total; else return; }
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
SerialMA_EA:
このエキスパートアドバイザーは動的移動平均に基づいています。
作者: Scriptor