MQL5でCopyTicksRange()が正しく動作しない。 - ページ 2 1234567 新しいコメント RusPro 2021.09.18 15:22 #11 Alexey Viktorov #:キーワードを強調しました。定義上存在しないダニを要求しないでください。ミリ秒単位で現在時刻より1ミリ秒でも先の刻みを要求すると、挙げたような問題の形でまさにg.........y。 あなたの理解では、私はまず、これらのティックが利用可能であるかどうかを確認する必要がありますか? 例えばどのように?私はまた、要求された範囲が休日であるかどうかを確認することができますか? それは関数CopyTicksRange()によって行われなければならない。私の仕事は、ドキュメントに従って入力パラメータを与えることです。そして、それらをチェックし、何かあればエラーを返しますが、レスポンスにゴミを残すことはありません。 この関数がクラッシュしないように、既存のバーが2番目から3番目までのティックを含んでいるかどうかをチェックする方法を思いつくか? 上記では、すべてが揃っているコード例を書きましたが、それでも答えは間違っています。 Alexey Viktorov 2021.09.18 15:31 #12 RusPro #:あなたの理解では、私は最初にこれらのティックが利用可能であるかどうかを確認する必要がありますか?どのように、例えば? 要求された範囲が休日であるかどうかも確認する必要がありますか? これはCopyTicksRange() 関数で行われるべきものです。私の仕事は、ドキュメントに従って入力パラメータを与えることです。そして、それらをチェックし、何かあればエラーを返すが、それに対してゴミは返さないということができる。上記では、すべてが揃っているコードサンプルを書きましたが、それでも答えは間違っています。 シンボルインフォティック 指定されたシンボルの現在の 価格をMqlTick型の変数で返します。 bool SymbolInfoTick( string symbol, // символ MqlTick& tick // ссылка на структуру ); struct MqlTick { datetime time; // Время последнего обновления цен double bid; // Текущая цена Bid double ask; // Текущая цена Ask double last; // Текущая цена последней сделки (Last) ulong volume; // Объем для текущей цены Last long time_msc; // Время последнего обновления цен в миллисекундах uint flags; // Флаги тиков double volume_real; // Объем для текущей цены Last c повышенной точностью }; time_msc より先の tick を照会する必要はありません。 RusPro 2021.09.18 15:38 #13 1)上記の例では、要求された範囲が存在します。 2) しかし、CopyTicksRange 自体にこのチェックを入れて、ドキュメントにも反映させることを妨げるものは何でしょうか?なぜ開発者は、彼らのエラーの単純な修正ではなく、松葉杖を作るように私に要求するのでしょうか? SymbolInfoTickと いえば、少なくとも 合成文字については、間違って動作 します:) 私の記憶では、常に最後の時刻ではなく、一番最初の時刻が返されます。 Alexey Viktorov 2021.09.18 15:54 #14 RusPro SymbolInfoTickと いえば、少なくとも 合成文字については、間違って動作 します:)私の記憶では、常に最後のティックではなく、一番最初のティックの時刻が返されます。 もうこの対話に参加することはない。 Sergey Gridnev 2021.09.18 16:00 #15 Alexey Viktorov #:私はもうこの対話に参加しません。 あなたはメタトレーダーの開発者でもないのに、なぜ彼らの擁護者のような役割を担っているのですか?要するに、ご指摘の通り、機能は正しく動作するはずです。 Alexey Viktorov 2021.09.18 16:55 #16 Sergey Gridnev #: あなたはメタトレーダーの開発者でもないのに、なぜ彼らの擁護者のような役割を担っているのですか? 基本的にはご指摘の通り、機能は正しく動作するはずです。 一行で台詞に戻る。 機能は開発者が意図したとおりに動くべきで、ユーザーが望むとおりに動くべきではありません。ある人はあることを望み、ある人は別のことを望み、ある人は無意味なことを望む。 開発者が対応しないのはこのためです。そして、私は弁護士ではありません。私はあなたに単純な真実をもたらそうとしているのです。一方、あなたは「ドンマイ......降参......」とスイッチが入り、松葉杖に関する神話を作り上げています。 それは本当にすべて "開発者はあなたに答えることはありません...あなたの希望を得ることはありません。 fxsaber 2021.09.18 20:11 #17 RusPro #:そして、ここにバグがあります。つまり、何千人ものプログラマーが使っている関数が、個人的には、現在のバーの先頭からのすべてのティックを返しましたが、要求された範囲には含まれていません。これは確かにバグです。再生用のフルデータを提供する。確認された場合、開発者は今後のビルドで修正を行う予定です。 おそらく、MqlTickの静的配列に問題があるのでしょう。 fxsaber 2021.09.18 20:30 #18 Alexey Viktorov #: time_mscより先のtickを要求する必要はない 最後の履歴ティックは、SymbolInfoTick(CopyTicksの後に呼び出されます)よりも新しい場合があります。私は日常的にこれに遭遇しています。 逆の状況も起こりえます。同期していないフロー。 RusPro 2021.09.19 00:19 #19 fxsaber #:これは確かにエラーです。リプレイ用のフルデータを提供する。確認された場合、開発者は次のビルドで修正を行う予定です。 もしかしたら、静的配列MqlTickに問題があるのかもしれません。 OK、コードを最小に減らして投稿してみます。CopyTicksにもそのような不具合がありますが、あまり予測できない方法で発生するので、CopyTicksRangeだけに 松葉杖をつくことになりました。おそらく、一般的な内部関数のエラーだと思われます。 SymbolInfoTickの 例も描いておきます。 fxsaber 2021.09.19 00:24 #20 RusPro #:関数 ユニットです。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
キーワードを強調しました。
定義上存在しないダニを要求しないでください。ミリ秒単位で現在時刻より1ミリ秒でも先の刻みを要求すると、挙げたような問題の形でまさにg.........y。
あなたの理解では、私はまず、これらのティックが利用可能であるかどうかを確認する必要がありますか? 例えばどのように?私はまた、要求された範囲が休日であるかどうかを確認することができますか? それは関数CopyTicksRange()によって行われなければならない。私の仕事は、ドキュメントに従って入力パラメータを与えることです。そして、それらをチェックし、何かあればエラーを返しますが、レスポンスにゴミを残すことはありません。
この関数がクラッシュしないように、既存のバーが2番目から3番目までのティックを含んでいるかどうかをチェックする方法を思いつくか?
上記では、すべてが揃っているコード例を書きましたが、それでも答えは間違っています。
あなたの理解では、私は最初にこれらのティックが利用可能であるかどうかを確認する必要がありますか?どのように、例えば? 要求された範囲が休日であるかどうかも確認する必要がありますか? これはCopyTicksRange() 関数で行われるべきものです。私の仕事は、ドキュメントに従って入力パラメータを与えることです。そして、それらをチェックし、何かあればエラーを返すが、それに対してゴミは返さないということができる。
上記では、すべてが揃っているコードサンプルを書きましたが、それでも答えは間違っています。
シンボルインフォティック
指定されたシンボルの現在の 価格をMqlTick型の変数で返します。
time_msc より先の tick を照会する必要はありません。
1)上記の例では、要求された範囲が存在します。
2) しかし、CopyTicksRange 自体にこのチェックを入れて、ドキュメントにも反映させることを妨げるものは何でしょうか?なぜ開発者は、彼らのエラーの単純な修正ではなく、松葉杖を作るように私に要求するのでしょうか?
SymbolInfoTickと いえば、少なくとも 合成文字については、間違って動作 します:)
私の記憶では、常に最後の時刻ではなく、一番最初の時刻が返されます。
私の記憶では、常に最後のティックではなく、一番最初のティックの時刻が返されます。
もうこの対話に参加することはない。
私はもうこの対話に参加しません。
あなたはメタトレーダーの開発者でもないのに、なぜ彼らの擁護者のような役割を担っているのですか?
一行で台詞に戻る。
機能は開発者が意図したとおりに動くべきで、ユーザーが望むとおりに動くべきではありません。ある人はあることを望み、ある人は別のことを望み、ある人は無意味なことを望む。
開発者が対応しないのはこのためです。そして、私は弁護士ではありません。私はあなたに単純な真実をもたらそうとしているのです。一方、あなたは「ドンマイ......降参......」とスイッチが入り、松葉杖に関する神話を作り上げています。
それは本当にすべて "開発者はあなたに答えることはありません...あなたの希望を得ることはありません。
そして、ここにバグがあります。
つまり、何千人ものプログラマーが使っている関数が、個人的には、現在のバーの先頭からのすべてのティックを返しましたが、要求された範囲には含まれていません。
これは確かにバグです。再生用のフルデータを提供する。確認された場合、開発者は今後のビルドで修正を行う予定です。
おそらく、MqlTickの静的配列に問題があるのでしょう。Alexey Viktorov #:
time_mscより先のtickを要求する必要はない
最後の履歴ティックは、SymbolInfoTick(CopyTicksの後に呼び出されます)よりも新しい場合があります。私は日常的にこれに遭遇しています。
逆の状況も起こりえます。同期していないフロー。これは確かにエラーです。リプレイ用のフルデータを提供する。確認された場合、開発者は次のビルドで修正を行う予定です。
もしかしたら、静的配列MqlTickに問題があるのかもしれません。OK、コードを最小に減らして投稿してみます。CopyTicksにもそのような不具合がありますが、あまり予測できない方法で発生するので、CopyTicksRangeだけに 松葉杖をつくことになりました。おそらく、一般的な内部関数のエラーだと思われます。
SymbolInfoTickの 例も描いておきます。
関数
ユニットです。