RefreshRates()の更新内容 - ページ 3 12345678910...12 新しいコメント Mikhail Nazarenko 2021.02.15 15:47 #21 Artyom Trishkin:iXXXXX関数にエラーがあると思われる場合、SymbolInfoXXXXX関数を使用してください。 iXXXXXをSymbolInfoXXXXXに 置き換えた例を挙げることができます。 Alexey Viktorov 2021.02.15 16:00 #22 Mikhail Nazarenko:私のコードも似たようなものです。OnTickのエラーはず現在のタイムフレームがM5であれば、M5をH1やM1と比較する必要があります。現在のタイムフレームM5が正しく表示されます。問題はH1とM1であった。Alpari real EURCHF M5で確認したところ、Printの代わりに各レベルで横棒を描きました。 そうですね、最初はH1をそのように表記していたのですが、あまりにレアな比較になると思い、そうしました。そこで、M5に変更しました。 ミハイル・ナザレンコ: iXXXXXXXをSymbolInfoXXXXXXに 置き換えた例でよろしいでしょうか。 アルチョムは小さなミスを犯した...。 iCloseの代わりに int CopyClose( string symbol_name, // имя символа ENUM_TIMEFRAMES timeframe, // период int start_pos, // откуда начнем int count, // сколько копируем double close_array[] // массив для копирования цен закрытия ); 斯くあるべし double close_M5[]; CopyClose(_Symbol, PERIOD_M5, 1, 1, close_M5); この方法では、一回の魔法の杖の動きで複数のバーの値を 取得することができます。 この関数はtrueまたはfalseを返しますが、この例では確認しませんでした。自分で推測してください...。 Mikhail Nazarenko 2021.02.15 16:10 #23 Alexey Viktorov: ええ、最初はそうやってH1を入れたんですが、あまりにレアな比較になると思い、そうしました。そこで、M5に変更しました。 そこであなたのコードを完成させ、上に掲載しました。あなたのバージョンを私のものに入れましたが、結果は同じです。ほぼすべてのM5キャンドルにミスマッチがあります。成果はいかがですか? Alexey Viktorov 2021.02.15 16:18 #24 Mikhail Nazarenko:そこであなたのコードを完成させ、上に掲載しました。あなたのバージョンを私のものに入れましたが、結果は同じです。ほぼすべてのM5キャンドルにミスマッチがあります。成果はいかがですか? ここで、変更する必要があるのは if(NewBar(PERIOD_M5)) まで if(NewBar(PERIOD_H1)) Mikhail Nazarenko 2021.02.15 16:27 #25 Alexey Viktorov:ここで、変更しなければならないのはまでいや、もっといい_Period.なぜなら、今期が正しく 更新されている間は、H1からのゼロクォートを無理やり待つことになるからです。データは、時間が更新されたときではなく、時間の最初の秒数で受信する必要があります。 例題に追加して確認したいdouble close_H1,close_M5, close_M1; /*******************Expert initialization function*******************/ int OnInit() { return(INIT_SUCCEEDED); }/*******************************************************************/ /************************Expert tick function************************/ void OnTick() { if(NewBar(PERIOD_M5)) { close_H1 = iClose(_Symbol, PERIOD_H1, 1); close_M1 = iClose(_Symbol, PERIOD_M1, 1); close_M5 = Close[1]; if(close_H1 != close_M5) Print(close_H1, " H1 != M5 ", close_M5); if(close_M1 != close_M5) Print(close_M1, " M1 != M5 ", close_M5); double ARRAY_M1[]; CopyClose(_Symbol, PERIOD_M1, 1, 1, ARRAY_M1); double ARRAY_H1[]; CopyClose(_Symbol, PERIOD_H1, 1, 1, ARRAY_H1); if(ARRAY_H1[0] != close_M5) Print(ARRAY_H1[0], " CopyClose H1 != M5 ", close_M5); if(ARRAY_M1[0] != close_M5) Print(ARRAY_M1[0], " CopyClose M1 != M5 ", close_M5); Comment( close_H1, " H1\n", close_M1, " M1\n", close_M5, " M5\n", ARRAY_H1[0], " CopyCloseH1\n", ARRAY_M1[0], " CopyCloseM1\n" ); } }/******************************************************************/ /**********************Expert OnDeinit function**********************/ void OnDeinit(const int reason) { Comment(""); }/******************************************************************/ bool NewBar(ENUM_TIMEFRAMES tf) { static datetime nt = 0; datetime tm = iTime(_Symbol, tf, 0); if(tm == 0) return false; if(tm != nt) { nt = tm; return true; } return false; }/******************************************************************/ Mikhail Nazarenko 2021.02.15 16:44 #26 Alexey Viktorov:ここで、変更しなければならないのはまで 結果はiClose() と同じで、iCloseとCopyCloseは同じところからデータを取っているようです。 Документация по MQL5: Доступ к таймсериям и индикаторам / iClose www.mql5.com iClose - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Alexey Viktorov 2021.02.15 17:07 #27 Mikhail Nazarenko:いや、もっといい_Period.なぜなら、今期が正しく 更新されている間は、H1からのゼロクォートを無理やり待つことになるからです。データは、時間が更新されたときではなく、時間の最初の秒数で受信する必要があります。 例題に追加して確認したい 新しいバーが現れるという機能の仕組みが全くわかっていないようですね。bool NewBar(ENUM_TIMEFRAMES tf) { static datetime nt = 0; datetime tm = iTime(_Symbol, tf, 0); if(tm == 0) return false; if(tm != nt) { nt = tm; return true; } return false; }/******************************************************************/ そして、その結果。ミハイル・ナザレンコ: 結果はiClose() のときと同じです。iCloseとCopyCloseは同じところからデータを取っているようです。 新しいTIKA値を受信した際に、OHLCからbar closure値などを受信する場合は、常に問題なく受信することができます。 Mikhail Nazarenko 2021.02.15 17:21 #28 Alexey Viktorov:新バー機能の仕組みを全く理解していないようですね。そして、その結果。 OHLCからバークローズ値などを取得する際、新しいTIKAが到着すると、その値は常に問題なく表示されます。 質問に答えてください。なぜ新しいローソク足ではiClose(1)関数が 古い情報を返し、更新されないかエラーになるのでしょうか?これはバグです。 Alexey Viktorov 2021.02.15 17:41 #29 Mikhail Nazarenko:質問に答えてください。新しいローソク足で、iClose(1)関数が 古い情報を返し、更新されないかエラーになるのはなぜですか?これはバグです。 バグなら全員、いやほとんど全員が持っているはずです。もし、あなただけなら、コードの問題です。 私のEAはM15で新しいバーのH1を決定しています。 /************************Expert tick function************************/ void OnTick() { if(NewBar(PERIOD_H1)) { close_H1 = iClose(_Symbol, PERIOD_H1, 1); CopyClose(_Symbol, PERIOD_M5, 1, 1, close_M5); close_M1 = iClose(_Symbol, PERIOD_M1, 1); if(close_H1 != close_M1) Print(close_H1, " != ", close_M1); } Comment(close_H1, "\n", close_M5[0], "\n", close_M1, "\n" ); }/******************************************************************/ そして、このようなコメントがあります。 齟齬はない。 Mikhail Nazarenko 2021.02.15 17:54 #30 よし、開発者の皆さん、ご配慮ありがとうございます!NewBarのような松葉杖を作りに行ってきます))トピックを閉じました。 12345678910...12 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
iXXXXX関数にエラーがあると思われる場合、SymbolInfoXXXXX関数を使用してください。
iXXXXXをSymbolInfoXXXXXに 置き換えた例を挙げることができます。
私のコードも似たようなものです。OnTickのエラー
はず
現在のタイムフレームがM5であれば、M5をH1やM1と比較する必要があります。
現在のタイムフレームM5が正しく表示されます。問題はH1とM1であった。
Alpari real EURCHF M5で確認したところ、Printの代わりに各レベルで横棒を描きました。
そうですね、最初はH1をそのように表記していたのですが、あまりにレアな比較になると思い、そうしました。そこで、M5に変更しました。
iXXXXXXXをSymbolInfoXXXXXXに 置き換えた例でよろしいでしょうか。
アルチョムは小さなミスを犯した...。
iCloseの代わりに
斯くあるべし
この方法では、一回の魔法の杖の動きで複数のバーの値を 取得することができます。
この関数はtrueまたはfalseを返しますが、この例では確認しませんでした。自分で推測してください...。
ええ、最初はそうやってH1を入れたんですが、あまりにレアな比較になると思い、そうしました。そこで、M5に変更しました。
そこであなたのコードを完成させ、上に掲載しました。あなたのバージョンを私のものに入れましたが、結果は同じです。ほぼすべてのM5キャンドルにミスマッチがあります。成果はいかがですか?
そこであなたのコードを完成させ、上に掲載しました。あなたのバージョンを私のものに入れましたが、結果は同じです。ほぼすべてのM5キャンドルにミスマッチがあります。成果はいかがですか?
ここで、変更する必要があるのは
まで
ここで、変更しなければならないのは
まで
いや、もっといい_Period.なぜなら、今期が正しく 更新されている間は、H1からのゼロクォートを無理やり待つことになるからです。データは、時間が更新されたときではなく、時間の最初の秒数で受信する必要があります。
例題に追加して確認したいここで、変更しなければならないのは
まで
結果はiClose() と同じで、iCloseとCopyCloseは同じところからデータを取っているようです。
いや、もっといい_Period.なぜなら、今期が正しく 更新されている間は、H1からのゼロクォートを無理やり待つことになるからです。データは、時間が更新されたときではなく、時間の最初の秒数で受信する必要があります。
例題に追加して確認したい新しいバーが現れるという機能の仕組みが全くわかっていないようですね。
そして、その結果。
結果はiClose() のときと同じです。iCloseとCopyCloseは同じところからデータを取っているようです。
新バー機能の仕組みを全く理解していないようですね。
そして、その結果。
OHLCからバークローズ値などを取得する際、新しいTIKAが到着すると、その値は常に問題なく表示されます。質問に答えてください。なぜ新しいローソク足ではiClose(1)関数が 古い情報を返し、更新されないかエラーになるのでしょうか?これはバグです。
質問に答えてください。新しいローソク足で、iClose(1)関数が 古い情報を返し、更新されないかエラーになるのはなぜですか?これはバグです。
バグなら全員、いやほとんど全員が持っているはずです。もし、あなただけなら、コードの問題です。
私のEAはM15で新しいバーのH1を決定しています。
そして、このようなコメントがあります。
齟齬はない。