EA では、前のティックの処理に時間がかかりすぎると、一部のティックがスキップされることがあります。ティックが非常に早く表示されることがあるため、この「時間がかかりすぎる」というのは非常に短い場合があります。すべてのティックがヒストリで利用可能であることを確認したい場合は、前回処理したティック以降の期間について CopyTicks 関数を呼び出す必要があります。しかし、これは今すぐ取り組むべき問題ではありません。まず、現在のアプローチの何が問題なのかを突き止めるべきです。
Everything you need to make your Metatrader 4 backtests accurate, get 99% modeling quality and to immediately spot which expert advisor is worth your time. From download to backtest, everything has been streamlined in an easy-to-use format. Updated often and offering premium-level support, the Tick Data Suite also has an associated recurring...
ご回答ありがとうございます。 これは非常に奇妙なことです。私は確かにリアルティックモードを使用しており、MT5に固定スプレッドオプションがあることを知りませんでした。私はスプレッドが各バーで同じであることを見抜いていませんでした。実際、ファイル全体を見ると、スプレッドは1分足でのみ変化しているようです。 SymbolInfoDouble()への呼び出しは、OnTick()イベント呼び出しの結果として処理されているティックの価格を返すべきであり、何らかのM1値ではないと考えていますが、正しいでしょうか?
以下のコードを使用して、実際のティック時間をミリ秒単位で表示してみましたが、ミリ秒の値は常にゼロでした。
EDIT:私はMQL5には比較的慣れていないのですが、SymbolInfoTick()を見つけました。
OK、これで違いはありませんでした。全く同じ結果でしたが、どちらもターミナルの「Symbol Ticks」ダイアログとは連動しませんでした。 ミリ秒の値が常にゼロであるというのは間違いでした!
私のトレーディングEAは、インポートされたティック・データと一致する価格のティックを受信することを期待しています(他のEAも同様です!)。 何かが間違っているのだと思いますが、もしそうなら、それが何なのか知りたいです。テストEAのzipファイル、午前0時から1時間後の結果のスプレッドシート、設定とティックのスクリーンショットを添付します。
カスタム・シンボルをどのように作成したのかが不明です。添付されたcsvファイルは同じものであり(ちなみに、異なる名前で2つのコピーが必要な理由はわかりません)、どちらも間違ったフォーマットです。ティックファイルは、MT5カスタムシンボルにインポートするために次の列を持つ必要があります:日付、時間、ビッド、アスク、ラスト、ボリューム。そのため、現在のところ、追加操作なしでティックからカスタムシンボルを作成することはできません。
MT5 UIにインポートされたティックの画像とEAのログを並べて投稿していただければ、より簡単です。上記の画像は不完全で、ティックは画像とcsvファイルで異なって見えます。
カスタム・シンボルをどのように作成するのかが不明です。添付されたcsvファイルは同じものですが(ちなみに、異なる名前で2つのコピーが必要な理由はわかりません)、どちらも形式が間違っています。ティックファイルは、MT5のカスタムシンボルにインポートするために次の列を持つ必要があります:日付、時間、ビッド、アスク、ラスト、ボリューム。そのため、現在のところ、追加操作なしでティックからカスタムシンボルを作成することはできません。
MT5 UIにインポートされたティックの画像とEAのログを並べて投稿していただければ、より簡単です。上記の画像は不完全で、ティックは画像とcsvファイルで異なって見えます。
ティック・データは、デューカスコピーのデータを使用した私のMT4「ティック・データ・スイート」からのエクスポートからカスタム・シンボルとしてMT5にインポートされました(CSVファイルのサイズは約8GB)。
私が送ったcsvファイルは決してティック・データとしてインポートすることを意図したものではなく、OnTickイベントを受信するごとにBidとAskの価格と時間を記録している私のテストEA(同封されていました)の出力 です。 この2つは単に異なるメソッドによって導き出されたもので、一方はSymbolInfoDouble(...)を使用してBidとAskの価格を取得し、もう一方はSymbolInfoTick(...)を使用しています。 この2つが同じであるという事実は、単にメソッド間に違いがないことを私自身に証明しているにすぎません。
私が言いたいのは、テストEAによって記録されたCSVファイルのBidとAskの価格と時間が、MT5のUIでインポートされたティックの画像と一致しないということです(これも送りました)。 つまり...
リポジトリとEAのOnTickイベントの間で、何かカスタムシンボルのティックデータに干渉するものがあるようです。
以下に、テストEA(左)とMT5 UI(右)で記録されたデータの一部を、できる限り一致させようと試みました。 EAで記録されたティックがMT5 UIに存在するティックよりも少ないため、それらを正確に揃えることは不可能です。 また、テストEAで記録されたミリ秒の値は、23:59までゼロであることに注意してください。
ハイライトされたイベントはおそらく同じティックですが、テストEAはUIとは異なる価格を記録していることに注意してください...
あなたは「なぜ」をたくさん持っていますが、(推測なしに)答えを出すのは難しいです。あなたのプロシージャーかソースコードに問題があります。
できることは、8Gbのティック履歴のごく一部を公開して、カスタムシンボルにインポートしてコードをチェックすることです。
通常、SymbolInfoTick は、同じカスタムシンボルについて MT5 GUI で表示されるのとまったく同じティック(ミリ秒のタイミングを含む)を受信するはずです。
EA では、前のティックの処理に時間がかかりすぎると、一部のティックがスキップされることがあります。ティックが非常に早く表示されることがあるため、この「時間がかかりすぎる」というのは非常に短い場合があります。すべてのティックがヒストリで利用可能であることを確認したい場合は、前回処理したティック以降の期間について CopyTicks 関数を呼び出す必要があります。しかし、これは今すぐ取り組むべき問題ではありません。まず、現在のアプローチの何が問題なのかを突き止めるべきです。
ティック・データは、デューカスコピーのデータを使用したMT4の「ティック・データ・スイート」からのエクスポートから、カスタム・シンボルとしてMT5にインポートされました(CSVファイルのサイズは約8GB)。
私が送ったcsvファイルは決してティック・データとしてインポートすることを意図したものではなく、私のテストEA(同封されていたもの)の出力で 、受信したOnTickイベントごとにBidとAskの価格と時間を記録しています。 この2つは単に異なるメソッドによって導き出されたもので、一方はSymbolInfoDouble(...)を使用してBidとAskの価格を取得し、もう一方はSymbolInfoTick(...)を使用しています。 この2つが同じであるという事実は、単にメソッド間に違いがないことを自分自身に証明しているにすぎません。
私が言いたいのは、テストEAによって記録されたCSVファイルのBidとAskの価格と時間が、MT5のUIでインポートされたティックのイメージと一致しないということです(これも送りました)。 それで...
リポジトリとEAのOnTickイベントの間で、何かカスタムシンボルのティックデータに干渉するものがあるようです。
以下に、テストEA(左)とMT5 UI(右)で記録されたデータの一部を、できる限り一致させようと試みました。 EAで記録されたティックがMT5 UIに存在するティックよりも少ないため、それらを正確に揃えることは不可能です。 また、テストEAで記録されたミリ秒の値は、23:59までゼロであることに注意してください。
ハイライトされたイベントはおそらく同じティックですが、テストEAはUIとは異なる価格を記録していることに注意してください...
EAが収集しているティックは、実際のティックではなく、シミュレートされたティックのようです。Strategy Testerのログを確認してください。
ティックデータはUIにありますが、EAに到達するまでに、最初に見つけたBid/Askのペアを取得し、次の1分間そのスプレッドを適用しているように見えます。
とにかく、ログ(同封)を見てみましたが、何を期待しているのかよくわかりません。 情報のために、生成されたCSVファイルも同封しました。
ありがとう、デビッド。
ティックデータはUIに表示されていますが、EAに反映されるまでに、最初に見つけたBid/Askペアを取得し、そのスプレッドを次の1分間適用しているように見えます。
とにかく、ログ(同封)を見てみましたが、何を期待しているのかよくわかりません。 情報のために、生成されたCSVファイルも同封しました。
ありがとう、デビッド。
あなたのログには "every tick generating "とありますが、これは人工的なティックを意味します。これは人工的なティックを意味します。テスターのドキュメントを 参照してください。
繰り返しますが、あなたのカスタム・シンボルを他の人にテストしてもらいたいのであれば、あなた自身のフォーマットではなく、互換性のあるCSVファイルを提供してください。
あなたのログには "every tick generating "とありますが、これは人工的なティックを意味します。これは人工的なティックを意味します。テスターのドキュメントを 参照してください。
繰り返しますが、あなたのカスタムシンボルを他の人にテストしてもらいたいのであれば、あなた自身のフォーマットではなく、互換性のあるCSVファイルを提供してください。
Stanislavさん、ありがとうございます。
ドキュメントをチェックしましたが、フルセットのティックデータが利用可能なのに、なぜテスターが人工的なティックを生成するのか、その理由を説明するものは見つかりませんでした。 実際、次のように書かれています。
繰り返しますが、CSVファイルは 出力 私がカスタムシンボルにインポートしたティックデータとは何の関係もありません。
私が行ったこと
テスターの設定で"Every tick based on real ticks"を選択していないからです:
また、「HistoryCache: container header read error [0]」に続いて、「HistoryBase: invalid container (1970.01.01) found」にも遭遇した。
これにより、カスタムツールの履歴から2022年1月の履歴が削除され、12月31日から今日までの空白ができた。
これは2台のコンピュータでのみ発生し、リソースは十分です。
スラバさん、再現にはどのような詳細が必要ですか?
また発生しました。真夜中を通過するとき、それは思われる:
どっちを掘る?
テスターの設定で"Every tick based on real ticks"を選択していないからです:
ああ、やっとだ :-)
フェルナンド、ありがとうございます!私が何かバカなことをしているのではないかと疑っていたのですが、どうしてもわかりませんでした!私が言ったように、私はMT4にはるかに精通しており(約8年間)、MT5に2つの "£Every Tick "オプションがあることに気づきませんでした。 私はちょうど彼女を起動し、それが "Every Tick "に設定されているのを見て、それが実際のティックを持っている場合は、それを使用すると仮定しました。
単純なことだったはずで、それを見つけてくれたことに改めて感謝します。
デビッド