エラー、バグ、質問 - ページ 846

 
教えてください、さらなる作業(修正)のために位置を送信することができる関数は、使用しています , ulong deal; // チケット取引、それが前に覚えて、取引のチケットで作られている場合?おそらく、そのような選択には、何か複雑なアルゴリズムが必要なのでしょう。例えば、左手で右の耳を磨くとか?
 
Dimka-novitsek:
教えてください、さらなる作業(修正)のために位置を送信することができる関数は、使用しています , ulong deal; // チケット取引、それが前に覚えて、取引のチケットで作られている場合?おそらく、この選択には、左手で右耳を磨くような、複雑なアルゴリズムが必要になるのではないでしょうか?
各取引には、ポジションの識別子があります。この識別子を用いて、ポジション自体の検索を試みる。
 

みなさん、こんばんは。この支店に興味を持つ人がいるんですね。チャンピオンシップについて...

まだ専門家が、選手権のために閉じた情報から送信された私のデータをチェックしていない - チェックされた!?

いつチェックされるのですか?

 
Leo:

みなさん、こんばんは。この支店の人たちは興味があるようですね。チャンピオンシップについて...

まだ専門家が、選手権のために閉じた情報から送信された私のデータをチェックしていない - チェックされた!?

いつチェックされるのですか?

ロボットがエラーなくチェックされていれば、心配はありません。私の理解では、エキスパートのチェックは自動で行われますが、個人情報のチェックは手動で行われます。
 
Leo:

みなさん、こんばんは。この支店の人たちは興味があるようですね。チャンピオンシップについて...

まだ専門家が、選手権のために閉じた情報から送信された私のデータをチェックしていない - チェックした

いつチェックされるのですか?

他でもアドバイスされていることですが、もし何か疑問があれば、登録した競技者が自分の選手権ページの「ディスカッション」欄に簡単に問題を書き込むことができるのです。メッセージは、フォーラムを経由するよりもはるかに速く宛先に届きます。
 

質問があります。

記事にあった、新しいバーの開始を定義するコードがあります。

   static datetime Old_Time;
   datetime New_Time[1];
   bool IsNewBar=false;

// копируем время текущего бара в элемент New_Time[0]
   int copied=CopyTime(_Symbol,_Period,0,1,New_Time);
   if(copied>0) // ok, успешно скопировано
     {
      if(Old_Time!=New_Time[0]) // если старое время не равно
        {
         IsNewBar=true;   // новый бар
         if(MQL5InfoInteger(MQL5_DEBUGGING)) 
            Print("Новый бар",New_Time[0],"старый бар",Old_Time);
            Old_Time=New_Time[0];   // сохраняем время бара
        }
     }
   else
     {
      Alert("Ошибка копирования времени, номер ошибки =",GetLastError());
      ResetLastError();
      return;
     }

//--- советник должен проверять условия совершения новой торговой операции только при новом баре
   if(IsNewBar==false)
     {
      return;
     }

すべて正常に動作しています。しかし、最後のifに異なる重い統計の計算を含めたいのです。新しいバーの瞬間に最小限の計算をさせたい。

ここで質問です。統計が比較的長い時間(例えば2秒)計算され、古いバーと新しいバーのティックの間のギャップが最小である場合、このコードはどのように動作するのでしょうか。

私の理解では、OnTick()関数が 計算している間、ティックはスキップされますが、次のティックはEAにとって新しいものでしょうか、それはバー内の最初のものではありませんが。

手動チェックはまだうまくいっていない

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
St.Vitaliy: 比較的長い時間(例えば2秒間)統計情報を読み込んだ場合、このコードはどのように動作するか
OnTick() 関数が 2 秒間実行されると、この間に来たすべての相場は Expert Advisor によって無視されます。これが明らかにしたかった点ですか?Expert Advisor の「新しい」相場は、OnTick()関数が実行された直後に到着した相場であり、その相場が「バー上の最初のティック」でない場合でも、「新しい」相場になります。
 
Yedelkin:
OnTick()関数が 2秒間実行されると、この間に来たすべての相場はEAによって無視されます。明確にしたかったのは、この点でしょうか?

ここでは、この2秒間は無視されますが(この間のティックも)、例えば3回目のティックでは、別のティックが来て、コードはそれをバー内の新しいものとして認識するのでしょうか?

これは、EAを実行すると、次のティックが必ず1番になることで間接的に確認できます。

90秒間の統計計算を行った場合、M1の新しいティックの条件は少なくとも1回は実行されるのでしょうか?

 
Yedelkin:
各取引には、ポジションの識別子があります。この識別子を使用して、ポジション自体を検索することができます。
ありがとうございます!!!
 
St.Vitaliy: ここでは、この2秒は無視されますが(この間のティックも)、例えば3秒目に別のティックが来て、コードはそれをバーの新しいティックとして受け入れるのでしょうか?間接的には、EAを実行すると、次のティックが常に最初のティックになることで証明されています。 別の質問ですが、統計が90秒間計算される場合、M1の新しいティックの条件が満たされることはありますか?

まあ、上記で既に完成しているんですけどね。繰り返しになりますが、Expert Advisor の「新しい」気配値は、次の OnTick() 関数の完了直後に到着する気配値で、この気配値が「バーの最初のティック」でない場合もあります。 新しいバーが来るというあなたの条件

if(Old_Time!=New_Time[0])

は、Expert Advisor が「前の」バーに来た気配値の処理を終えた後にのみチェックされます。 ...OnTick() 関数が 90 秒間実行されて 00.00.00 に開始された場合、「M1 の新しいティックの条件は、ある時点、すなわち 00.01.30 以降で実行されます」。