初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 667

 
Leo59:
残念ながら、うまくいきません。 init(); if(IsTradeAllowed())Print("取引が許可されました"); if(!IsTradeAllowed())Print("Trade is NOT allowed");





取引承認済み」と書いてある

他に方法があるはずだ。どうやって?

こんな風に試してみてください。

starttime=(int)TimeCurrent()+sec; // например +5 секунд. Эту строку в OnInit

if(TimeCurrent()>starttime) {
...
}

原理は明確で、刻みがない限りTimeCurrentは 変化しないのだと思います

 
Vitaly Muzichenko:

この方法で試してみてください。

starttime=(int)TimeCurrent()+sec; // например +5 секунд

if(TimeCurrent()>starttime) {
...
}

原理は明確で、刻みがない限りTimeCurrentは 変化しないのだと思います

そうですね、Forexの場合はダニがよく来るので良いですね。FX向けでない場合は?
 
Leo59:
そうですね、FXの場合はダニがよく来るので良いですね。FXに向いてないかも?
ポイントは、初期化時に変数「starttime」がサーバー時間より 数秒長くなることです。つまり、ティックがマーケットオープン時に 来る場合、TimeCurrentは常にstarttimeより大きく なり、ティックは重要ではありません - この条件は満たされており、例えばタイムフレームの切り替えやターミナルの再ロードなど、次の再初期化まで満たさ れます。
 
Vitaly Muzichenko:
ポイントは、初期化時に「starttime」変数の時間がサーバーの時間より数秒長くなることです。
最初のティックが到着する前に、今情報を処理して、新しい(最初の)ティックが到着したときに、すべてが動作するように準備する必要があるのです。
 
Leo59:
そうではないんです。よろしければ、今すぐご確認 ください)。でも、そんなことはどうでもいいんです。最初のティックが到着する前に、今のうちに情報を処理して、新しい(最初の)ティックが到着したときに、すべてが準備できているようにする必要があるのです。
数年前から使っていますが、ダニがいなくなるまで加工する必要はないですね。別のソリューションが必要で、私があげたリンクは、そのはずです。
 
Vitaly Muzichenko:
ダニさえいなければ加工は必要ないのですが...。別のソリューションが必要で、あなたがあげたリンクから、それは
確かに、「starttime=(int)TimeCurrent()+sec;// 例:+5 秒」は、もちろんTimeCurrent()よりも大きいですからね 。大袈裟に言い過ぎました、脳が完全に溶けているようです ))
そこにあげたリンク先にはTimeLocal()しか書いてありませんが、それは避けたかったのです。
 
Leo59:
おっしゃるとおり、「starttime=(int)TimeCurrent()+sec;// 例えば+5秒」は 、もちろんTimeCurrent()よりも大きいです 。大袈裟に言い過ぎました、脳が完全に溶けているようです )) リンク先はTimeLocal()にしか繋がらないので、避けたかったのです。

タスクによっては、TimeCurrent()+OnTimer()、またはTimeCurrent()+TimeGMT()+TimeGMTOffset()の組み合わせで試してみてください。

すべての条件をタイマーで行い、TimeCurrent()でトレードすることができます。多くの解決策がありますが、個々のタスクに応じた選択が必要です。

 
Vitaly Muzichenko:

タスクによっては、TimeCurrent()+OnTimer()、またはTimeCurrent()+TimeGMT()+TimeGMTOffset()の組み合わせで試してみてください。

タイマーを使ってすべての条件を実行し、TimeCurrent()で取引することができます。多くのソリューションがありますが、個々のタスクに応じた選択が必要です。

また、私の質問では、OnTimer() はどのように適用さ れるのでしょうか?
 
Leo59:
また、私の質問では、OnTimer()はどのように適用されるのでしょうか?
すべての計算が終わるまでインヒビットフラグをオンにしたままにする、など...。
 
Artyom Trishkin:
すべての計算が終わるまでノーワークフラグを保持する、など...。
Artyomさん、質問は、TimeLocal() に頼らずに、プログラムで休日を定義する方法についてでした。))
理由: