記事についてのディスカッション - ページ 5

 
Mr David Frederick Roberts #:

ご回答ありがとうございます。 これは非常に奇妙なことです。私は確かにリアルティックモードを使用しており、MT5に固定スプレッドオプションがあることを知りませんでした。私はスプレッドが各バーで同じであることを見抜いていませんでした。実際、ファイル全体を見ると、スプレッドは1分足でのみ変化しているようです。 SymbolInfoDouble()への呼び出しは、OnTick()イベント呼び出しの結果として処理されているティックの価格を返すべきであり、何らかのM1値ではないと考えていますが、正しいでしょうか?

以下のコードを使用して、実際のティック時間をミリ秒単位で表示してみましたが、ミリ秒の値は常にゼロでした。

EDIT:私はMQL5には比較的慣れていないのですが、SymbolInfoTick()を見つけました。


OK、これで違いはありませんでした。全く同じ結果でしたが、どちらもターミナルの「Symbol Ticks」ダイアログとは連動しませんでした。 ミリ秒の値が常にゼロであるというのは間違いでした!

私のトレーディングEAは、インポートされたティック・データと一致する価格のティックを受信することを期待しています(他のEAも同様です!)。 何かが間違っているのだと思いますが、もしそうなら、それが何なのか知りたいです。テストEAのzipファイル、午前0時から1時間後の結果のスプレッドシート、設定とティックのスクリーンショットを添付します。

カスタム・シンボルをどのように作成したのかが不明です。添付されたcsvファイルは同じものであり(ちなみに、異なる名前で2つのコピーが必要な理由はわかりません)、どちらも間違ったフォーマットです。ティックファイルは、MT5カスタムシンボルにインポートするために次の列を持つ必要があります:日付、時間、ビッド、アスク、ラスト、ボリューム。そのため、現在のところ、追加操作なしでティックからカスタムシンボルを作成することはできません。

MT5 UIにインポートされたティックの画像とEAのログを並べて投稿していただければ、より簡単です。上記の画像は不完全で、ティックは画像とcsvファイルで異なって見えます。

 
Stanislav Korotky #:

カスタム・シンボルをどのように作成するのかが不明です。添付された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でインポートされたティックの画像と一致しないということです(これも送りました)。 つまり...

  1. UIのスクリーンショットのティックの時間は、テストEAによって記録されたものと一致しません。
  2. テストEAによって記録された時間は、真夜中前の1分間を除いてゼロミリ秒のコンポーネントを持っています。
  3. テストEAが記録したBid価格はMT5のUIに近いものですが、Ask価格は大きく異なることがあります(したがってスプレッドも)。
  4. テストEAによって記録された価格は、1分足の境界でのみ変化するようなスプレッドをもたらします。
  5. テストEAによって記録されるOnTickイベントは、MT5 UIのティック記録よりも少ない。

リポジトリとEAのOnTickイベントの間で、何かカスタムシンボルのティックデータに干渉するものがあるようです。

以下に、テストEA(左)とMT5 UI(右)で記録されたデータの一部を、できる限り一致させようと試みました。 EAで記録されたティックがMT5 UIに存在するティックよりも少ないため、それらを正確に揃えることは不可能です。 また、テストEAで記録されたミリ秒の値は、23:59までゼロであることに注意してください。

ハイライトされたイベントはおそらく同じティックですが、テストEAはUIとは異なる価格を記録していることに注意してください...

EAはBid 1.16504とAsk 1.16513(スプレッド=9)を記録しています。

MT5 UIでは、Bid 1.16504とAsk 1.16518(スプレッド = 14)が表示されています。

 
Mr David Frederick Roberts #:


あなたは「なぜ」をたくさん持っていますが、(推測なしに)答えを出すのは難しいです。あなたのプロシージャーかソースコードに問題があります。

できることは、8Gbのティック履歴のごく一部を公開して、カスタムシンボルにインポートしてコードをチェックすることです。

通常、SymbolInfoTick は、同じカスタムシンボルについて MT5 GUI で表示されるのとまったく同じティック(ミリ秒のタイミングを含む)を受信するはずです。

EA では、前のティックの処理に時間がかかりすぎると、一部のティックがスキップされることがあります。ティックが非常に早く表示されることがあるため、この「時間がかかりすぎる」というのは非常に短い場合があります。すべてのティックがヒストリで利用可能であることを確認したい場合は、前回処理したティック以降の期間について CopyTicks 関数を呼び出す必要があります。しかし、これは今すぐ取り組むべき問題ではありません。まず、現在のアプローチの何が問題なのかを突き止めるべきです。

 
Mr David Frederick Roberts #:

ティック・データは、デューカスコピーのデータを使用したMT4の「ティック・データ・スイート」からのエクスポートから、カスタム・シンボルとしてMT5にインポートされました(CSVファイルのサイズは約8GB)。

私が送ったcsvファイルは決してティック・データとしてインポートすることを意図したものではなく、私のテストEA(同封されていたもの)の出力で 、受信したOnTickイベントごとにBidとAskの価格と時間を記録しています。 この2つは単に異なるメソッドによって導き出されたもので、一方はSymbolInfoDouble(...)を使用してBidとAskの価格を取得し、もう一方はSymbolInfoTick(...)を使用しています。 この2つが同じであるという事実は、単にメソッド間に違いがないことを自分自身に証明しているにすぎません。

私が言いたいのは、テストEAによって記録されたCSVファイルのBidとAskの価格と時間が、MT5のUIでインポートされたティックのイメージと一致しないということです(これも送りました)。 それで...

  1. UIのスクリーンショットのティックの時間は、テストEAによって記録されたものと一致しません。
  2. テストEAによって記録された時間は、真夜中前の1分間を除いてゼロミリ秒のコンポーネントを持っています。
  3. テストEAが記録したBid価格はMT5のUIに近いものですが、Ask価格は大きく異なることがあります(したがってスプレッドも)。
  4. テストEAによって記録された価格は、1分足の境界でのみ変化するようなスプレッドをもたらします。
  5. テスト EA が記録する OnTick イベントは、MT5 UI のティック記録よりも少ないのですが、なぜですか?

リポジトリとEAのOnTickイベントの間で、何かカスタムシンボルのティックデータに干渉するものがあるようです。

以下に、テストEA(左)とMT5 UI(右)で記録されたデータの一部を、できる限り一致させようと試みました。 EAで記録されたティックがMT5 UIに存在するティックよりも少ないため、それらを正確に揃えることは不可能です。 また、テストEAで記録されたミリ秒の値は、23:59までゼロであることに注意してください。

ハイライトされたイベントはおそらく同じティックですが、テストEAはUIとは異なる価格を記録していることに注意してください...

EAはBid 1.16504とAsk 1.16513(スプレッド=9)を記録しています。

MT5 UIでは、Bid 1.16504とAsk 1.16518(スプレッド = 14)が表示されています。

EAが収集しているティックは、実際のティックではなく、シミュレートされたティックのようです。Strategy Testerのログを確認してください。
 
Alain Verleyen #:
EAが収集しているティックは、実際のティックではなく、シミュレートされたティックのようです。Strategy Testerのログを確認してください。

ティックデータはUIにありますが、EAに到達するまでに、最初に見つけたBid/Askのペアを取得し、次の1分間そのスプレッドを適用しているように見えます。

とにかく、ログ(同封)を見てみましたが、何を期待しているのかよくわかりません。 情報のために、生成されたCSVファイルも同封しました。

ありがとう、デビッド。

ファイル:
 
Mr David Frederick Roberts #:

ティックデータはUIに表示されていますが、EAに反映されるまでに、最初に見つけたBid/Askペアを取得し、そのスプレッドを次の1分間適用しているように見えます。

とにかく、ログ(同封)を見てみましたが、何を期待しているのかよくわかりません。 情報のために、生成されたCSVファイルも同封しました。

ありがとう、デビッド。

あなたのログには "every tick generating "とありますが、これは人工的なティックを意味します。これは人工的なティックを意味します。テスターのドキュメントを 参照してください。

繰り返しますが、あなたのカスタム・シンボルを他の人にテストしてもらいたいのであれば、あなた自身のフォーマットではなく、互換性のあるCSVファイルを提供してください。

Strategy Testing - Algorithmic Trading, Trading Robots - MetaTrader 5 Help
Strategy Testing - Algorithmic Trading, Trading Robots - MetaTrader 5 Help
  • www.metatrader5.com
The Strategy Tester allows you to test and optimize trading strategies ( Expert Advisors ) before using them for live trading. During testing, an...
 
Stanislav Korotky #:

あなたのログには "every tick generating "とありますが、これは人工的なティックを意味します。これは人工的なティックを意味します。テスターのドキュメントを 参照してください。

繰り返しますが、あなたのカスタムシンボルを他の人にテストしてもらいたいのであれば、あなた自身のフォーマットではなく、互換性のあるCSVファイルを提供してください。

Stanislavさん、ありがとうございます。

ドキュメントをチェックしましたが、フルセットのティックデータが利用可能なのに、なぜテスターが人工的なティックを生成するのか、その理由を説明するものは見つかりませんでした。 実際、次のように書かれています。

実際のティックでのテストと最適化は、可能な限り実際の状況に近いものです。分単位のデータに基づいて生成された ティックの代わりに、ブローカーが蓄積した実際のティックを使用することが可能です。これらは取引所や流動性プロバイダーからのティックです。

繰り返しますが、CSVファイルは 出力 私がカスタムシンボルにインポートしたティックデータとは何の関係もありません。

私が行ったこと

  1. MT4の "Tick Data Suite "からEURUSDのティックデータをMT5フォーマットでエクスポート(Tick Data Suite (eareview.net))。
  2. そのファイルをEURUSD_TDSと呼ぶMT5のカスタムシンボルにインポートした。
  3. MT5のUIで見た結果のティックの一部のスクリーンショットを撮った。
  4. 各 OnTick() 呼び出しの Bid & Ask 価格と時間を CSV ファイル(TXT ファイルと呼ぶべきだった!)に書き込むだけのテスト EA を作成。
  5. ZIPファイルで提供したスクリーンショットに示した設定を使用して、EURUSD_TDSでテストEAを実行
  6. ファイルの結果と同じ日付のMT5 UIのティックを比較したところ、一致しませんでした。
  7. なぜ一致しないのかについて助けを求めた。
  8. どうやらテスターが人工的なティックを生成しているらしいことを発見。



Tick Data Suite
  • eareview.net
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...
 
Mr David Frederick Roberts #: ドキュメントをチェックしましたが、フルセットのティックデータが利用可能なのに、なぜテスターが人工的なティックを生成するのかを説明するものは何も見つかりませんでした。 実際、次のように書かれています。

テスターの設定で"Every tick based on real ticks"を選択していないからです:


 
Andrey Khatimlianskii #:

また、「HistoryCache: container header read error [0]」に続いて、「HistoryBase: invalid container (1970.01.01) found」にも遭遇した。

これにより、カスタムツールの履歴から2022年1月の履歴が削除され、12月31日から今日までの空白ができた。

これは2台のコンピュータでのみ発生し、リソースは十分です。

スラバさん、再現にはどのような詳細が必要ですか?

また発生しました。真夜中を通過するとき、それは思われる:

FK      3       23:59:27.790    HistoryCache    'BTCUSDT.bnf' container header read error [0]
PR      3       23:59:27.790    HistoryBase     'BTCUSDT.bnf' invalid container (1970.01.01) found (off: 3144282240, size: 86589, file: 1925419658)
HQ      3       23:59:28.071    HistoryCache    'LUNAUSDT.bnf' container header read error [0]
HD      3       23:59:28.071    HistoryBase     'LUNAUSDT.bnf' invalid container (1970.01.01) found (off: 3144242580, size: 86589, file: 1925434658)
RK      3       23:59:28.344    HistoryCache    'MANAUSDT.bnf' container header read error [0]
EJ      3       23:59:28.344    HistoryBase     'MANAUSDT.bnf' invalid container (1970.01.01) found (off: 3144247980, size: 86589, file: 1925447087)
CD      3       23:59:28.633    HistoryCache    'ATOMUSDT.bnf' container header read error [0]
KQ      3       23:59:28.633    HistoryBase     'ATOMUSDT.bnf' invalid container (1970.01.01) found (off: 3144177171, size: 86589, file: 1925399738)
HN      0       00:14:15.224    Terminal        MetaTrader 5 x64 build 3210 started for MetaQuotes Software Corp.
NS      0       00:14:15.225    Terminal        Windows 10 build 17763, 20 x Intel Xeon  E5-2650 v3 @ 2.30 GHz, 12 / 15 Gb memory, 53 / 111 Gb disk, admin, GMT+3

どっちを掘る?

 
Fernando Carreiro #:

テスターの設定で"Every tick based on real ticks"を選択していないからです:


ああ、やっとだ :-)

フェルナンド、ありがとうございます!私が何かバカなことをしているのではないかと疑っていたのですが、どうしてもわかりませんでした!私が言ったように、私はMT4にはるかに精通しており(約8年間)、MT5に2つの "£Every Tick "オプションがあることに気づきませんでした。 私はちょうど彼女を起動し、それが "Every Tick "に設定されているのを見て、それが実際のティックを持っている場合は、それを使用すると仮定しました。

単純なことだったはずで、それを見つけてくれたことに改めて感謝します。

デビッド