new tick "イベントが発生すると、OnTick()ハンドラでプログラムが起動し、完了まで実行され、停止します。新しいティックの登場により、すべてが最初から繰り返される。プログラム実行中に新しいtickが来て、プログラムが前のtickの処理を終えていない(まだ実行中)場合、このtickはスキップされます。
Для того чтобы mql5-программа могла работать, она должна быть скомпилирована (кнопка "Компилировать" или клавиша F7). Компиляция должна пройти без ошибок (допускаются предупреждения, которые необходимо проанализировать). При этом в соответствующей директории Эксперты, пользовательские индикаторы и скрипты прикрепляются к одному из открытых...
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык программы. Используйте их для запуска. Нельзя запускать одновременно две копии платформы из одной директории. Чтобы одновременно запустить несколько копий, установите соответствующее количество программ в разные...
new tick "イベントが発生すると、OnTick()ハンドラでプログラムが起動し、完了まで実行され、停止します。新しいティックの登場により、すべてが最初から繰り返される。プログラム実行中に新しいtickが来て、プログラムが前のtickの処理を終えていない(まだ実行中)場合、このtickはスキップされます。
一般的に、あなたの回答から判断すると、あなたはプログラムの仕組みをよく理解していないようです。だから、バカな質問だと思われるんです。前のコメント者が思っているように、止まってしまうのです。ただ、他の言語でのプログラミング経験から、ループで本体を実行し、イベントが来たらそれに飛び込んでいくのだと思います。もし、プログラム本体がループで実行されるのであれば、なぜそのような書き方になって いるのかが分かります。
new tick "イベントが発生すると、OnTick()ハンドラでプログラムが起動し、完了まで実行され、停止します。新しいティックの登場により、すべてが最初から繰り返される。プログラム実行中に新しいtickが来て、プログラムが前のtickの処理を終えていない(まだ実行中)場合、このtickはスキップされます。
MQLのプログラムはループしません。OnInit()、OnDeinit()、OnTick()の3つのエントリポイントがあります。
起動時にOnInit()、ティック受信時に-OnTick()、動作終了時に-OnDeinit()が実行されます。
他にもハンドラーはあります。でも、ここで誰かに複製を頼むくらいなら、ヘルプを 開いた方がいい。
こんにちは。インジケーターを作成中に、ターミナルを再起動するとバグが発生することを発見しました。このバグを元に、テスト用の小さなソースコードを作りました。
この例がチャート上に投げられた場合(あるいはシステム起動後の最初の端末起動の 場合)、すべて正常に動作します。ログには次のように書かれています。
2020.06.24 21:05:50.773 Loader::Loader symbol: EURUSD timeframe: PERIOD_H1
2020.06.24 21:05:50.773 ローダー::ローダーバー: 140433
2020.06.24 21:05:50.773 Loader::Loader Error: 0
2020.06.24 21:05:50.773 ローダー::ローダーバー (2): 140433
しかし、このインジケータでターミナルを再起動すると、エラーが発生します。
2020.06.24 21:07:34.963 ローダー::Loader シンボル: EURUSD タイムフレーム: PERIOD_H1
2020.06.24 21:07:34.963 Loader::Loader bars::0
2020.06.24 21:07:34.963 Loader::Loader Error: 4401
2020.06.24 21:07:34.964 ローダー::ローダーバー (2): 140433
シンボルとタイムフレームの初期化OK
2020.06.24 21:07:34.963 ローダー::Loader シンボル: EURUSD タイムフレーム: PERIOD_H1
しかし、iBars(symbol, timeframe)はなぜか0を表示します。
2020.06.24 21:07:34.963 Loader::Loader bars::0
この場合、エラー4401が表示されます。
しかし、iBars(Symbol(), Period())は問題なく動作します。
2020.06.24 21:07:34.964 ローダー::ローダーバー (2): 140433
ログメッセージによると、少なくともsymbol = Symbol()とtimeframe = Period()です(端末が再起動するラグ中も)。iBars(Symbol, Timeframe)はシンボルとタイムフレームが完全に正しいのに、iBars(Symbol(), Period())はうまくいっているのに、ログによるとパラメータが同じなのにどうしてゼロになるのでしょうか?
MetaQuotes DemoでMT4デモ口座を開設するにはどうすればよいですか?以前は問題なく動作していましたが、現在はダイアログの最後のページで「登録、少し待ってください」と表示され、この状態ではいつまでもアイドル状態で、ログインとパスワードのフィールドが空のままになっています。ログにメッセージはありません。デモ」と「リアル」、様々な種類のアカウントを試した。
UPD あるブローカーのデモを試しましたが、同じでした。
new tick "イベントが発生すると、OnTick()ハンドラでプログラムが起動し、完了まで実行され、停止します。新しいティックの登場により、すべてが最初から繰り返される。プログラム実行中に新しいtickが来て、プログラムが前のtickの処理を終えていない(まだ実行中)場合、このtickはスキップされます。
MQLのプログラムはループしません。OnInit()、OnDeinit()、OnTick()の3つのエントリポイントがあります。
起動時にOnInit()、ティック受信時に-OnTick()、動作終了時に-OnDeinit()が実行されます。
他にもハンドラーはあります。でも、ここで誰かに複製を頼むくらいなら、ヘルプを 開いた方がいい。
ありがとうございます。はい、それは理解しています。ただ、その関数はプログラム本体に書かれているのです。どこかで呼ばれているのに気づかなかったのかもしれません。
どうすれば、あなたの言っていることがわかるのでしょうか?例を挙げてください。
どうすれば、あなたの言っていることがわかるのでしょうか?例を挙げてください。
ありがとうございます。はい、わかりました!ただ、関数がプログラム本体に書かれているんですね。たぶん、どこかで募集を見落としたに違いない。
mql4では、関数はどのような順番で書かれても問題ありませんし、上でも下でも問題ありません。C++では、すべての関数が記述順にしか動作せず、呼び出す場合は呼び出し先の前に定義しておかないとプログラムがクラッシュしてしまうというようなことはない。その人は関数の書き方を順番に教えてくれたけど、C++でどうやるかは覚えてないんだ。
ごあいさつよろしくお願いします。こんな疑問があります。私の理解は正しいでしょうか。プログラムは最初から最後まで実行されますが、あるイベント(例えばティック)が発生すると停止し、ontick関数が 実行を開始し、その後実行を終了して再び最初から実行されるのでしょうか。この質問は、例えば取引ロットの大きさをプログラム本体やontick関数のどこに書けばいいのか、ということに関連しています。
端末の例である公式botを見ると、プログラム本体で多くの計算が行われており、なぜそうなるのか理解できない。
私のロットはこのように計算されます。
Expert Advisorの先頭にある...そして、コードの一番最後に置いた。
OnTick関数がLots変数を呼び出すと、EAがそれを見つけて再計算します。
アルチョム・トリシキン
このスレのモデレーターはあなたですか?