記事"「新規バー」イベントハンドラ"についてのディスカッション - ページ 5 1234567 新しいコメント Charles Magno 2019.11.09 18:51 #41 tito.vinicius:現在、私のEAは同じローソク足で複数の注文をオープンしています。この記事の資料が役に立つと思います。どのように実装すればよいでしょうか? OnTick()イベントからトレードエントリーロジックを取り出し、OnNewBar()関数の中に入れます。こうすることで、新しいバーが来たときだけ実行され、同じローソク足で何度もエントリーする必要がなくなります。 schueppe 2020.06.29 14:52 #42 このような素晴らしい紙をありがとうございます! GUY BERTRAND YANA 2020.09.21 17:59 #43 良い記事だ。 ありがとう! Ernie Gunning 2020.10.30 11:46 #44 ありがとう、 MQL5のライブラリ関数を 期待していたのですが、ないようですね?私はモジュール式の取引ライブラリを使用していますが、シグナルモジュールがIsNewBarフラグを設定し、prevCandleTimeをオーバーライドするという問題に遭遇しました。 しかし、モジュールが異なるタイムフレームで実行される可能性があるため、この解決策はとても完璧です。 AMD2019 2021.04.12 05:13 #45 とても有益な記事だった。 fdesu 2021.04.22 20:17 #46 ありがとう、新しいバーを発見する最高の方法だ!) KUNAL VISHNU MAHTANI DARYANANI 2021.09.18 11:25 #47 私の意見では、私たちは時に不必要に物事を複雑にすることがある。現実的な理由としては、パフォーマンス的にも、システム時間(ウィンドウズ時間)に勝るものはない。次の1分が始まるとき、あるいは念のため数秒後に、シンボルごとに新しいバーがあると仮定することができる。分後、5分後、15分後、あるいはどのような時間枠でもよい。念のため 、バー・タイムとシステム・タイムが同じかどうかを確認することもできる。しかし、新しいバーがいつ描かれるかを実際に知っているのに、新しいバーがあるかどうかをチェックするためだけに、このクラスのインスタンスを複数作成する必要はありません。https://www.mql5.com/ja/docs/dateandtime Max Go 2021.11.08 15:05 #48 double Old_open, New_open; bool NewBar = false; int OnInit() { //---------- Old_open = iOpen(Symbol(),PERIOD_CURRENT,0); //---------- return(INIT_SUCCEEDED); } void OnTick() { //--- New_open = iOpen(Symbol(),PERIOD_CURRENT,0); if (New_open != Old_open) { Print(「新しいバーが入るんだ。, TimeCurrent()); NewBar = true; Old_open = New_open; } else NewBar = false; } こんにちは。Open()クォートが到着したらすぐに、それは新しいバーが 到着したことを意味すると思っています。その方が簡単だと思うのですが、何か見落としているのでしょうか? Denis Kirichenko 2021.11.08 17:49 #49 Max Go 新しいバーが 到着したことを意味します。IMHOは、それが簡単であるか、私は何かを見逃していますか? 新しいバーの始値が前のバーの始値と等しい状況を想像してみてください。小さなTFでは、このような状況を捕らえる確率は高い。 Armen Shahinyan 2021.11.11 13:08 #50 現在のバーのオープニング時間を追跡し、各ティックで比較する。 // これより簡単な方法はない。 // 現在のバーの開始時間を追跡し、各ティックで比較する。 double lastTime = 0; void OnTick() { if(isNewBar()){ Print("New Bar"); } } bool isNewBar() { double thisTime= NormalizeDouble(iTime(_Symbol, PERIOD_CURRENT, 0), _Digits); if(lastTime != thisTime) { lastTime = thisTime; return true; } return false; } Документация по MQL5: Преобразование данных / NormalizeDouble www.mql5.com NormalizeDouble - Преобразование данных - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
現在、私のEAは同じローソク足で複数の注文をオープンしています。この記事の資料が役に立つと思います。
どのように実装すればよいでしょうか?
OnTick()イベントからトレードエントリーロジックを取り出し、OnNewBar()関数の中に入れます。こうすることで、新しいバーが来たときだけ実行され、同じローソク足で何度もエントリーする必要がなくなります。
良い記事だ。
ありがとう!
ありがとう、
MQL5のライブラリ関数を 期待していたのですが、ないようですね?私はモジュール式の取引ライブラリを使用していますが、シグナルモジュールがIsNewBarフラグを設定し、prevCandleTimeをオーバーライドするという問題に遭遇しました。
しかし、モジュールが異なるタイムフレームで実行される可能性があるため、この解決策はとても完璧です。
こんにちは。Open()クォートが到着したらすぐに、それは新しいバーが 到着したことを意味すると思っています。その方が簡単だと思うのですが、何か見落としているのでしょうか?
新しいバーの始値が前のバーの始値と等しい状況を想像してみてください。小さなTFでは、このような状況を捕らえる確率は高い。
現在のバーのオープニング時間を追跡し、各ティックで比較する。