エラー、バグ、質問 - ページ 1562

 

テスターを「リアルチックス」モードで2キャラ同時に動かしています。同期はミリ秒の精度で行われます。そのため、時々刻みの配列が不一致になることがあるようです。2つの文字で同時に1msの間に数回のティックが発生することがあります。教えてください、このような状況でダニに餌を与えるアルゴリズムは何でしょうか?

また、IndicatorReleaseを使用せずに、一度に複数のシンボルを通過する場合、テスターで各ティック(1msのタイマーはティックをスキップします)を最適に管理するにはどうすればよいでしょうか?

 
Anton Zverev:

テスターを「リアルチックス」モードで2キャラ同時に動かしています。同期はミリ秒の精度で行われます。そのため、時々刻みの配列が不一致になることがあるようです。2つの文字で同時に1msの間に数回のティックが発生することがあります。教えてください、このような状況でダニに餌を与えるアルゴリズムは何でしょうか?

また、一度に複数のシンボルが通過する場合、IndicatorRelease(タイマーは1msでティックを見逃す)なしでテスターで全てのティックをキャッチするのはどのように最適なのでしょうか?

テスターでは、時間量子の最小値は1秒です。したがって、1msでタイマーを動作させても意味がありません。

同じ秒数の間に複数の刻みがある場合があります。しかも、異なるツールから。ティックフィードのアルゴリズムは、テスト対象商品のティックタイムの瞬間に、同じ秒数の他の商品のすべてのティックが既に送信されているようなものである。

 
Slawa:

テスターでは、時間量子の最小値は1秒です。したがって、1msでタイマーをスタートさせても意味がない。

同じ秒数の間に複数のティックが存在することもあります。しかも、さまざまな楽器から。ティックフィードのアルゴリズムは、テスト対象商品のティックタイムの瞬間に、同じ秒数の他の商品のすべてのティックが既に送信されているようなものである。

テスターで1ティック ごとにEAを呼び出すという通常の解決策を検討されますか?
 
Anton Zverev:
テスターで1ティックごとにEAを呼び出すという通常の解決策を検討されますか?
テスターでは、テスト対象機器のティックごとに EAが呼び出される
 
Slawa:
テスターでは、Expert Advisorはテストされたシンボルのティックごとに呼び出されます。

私が何を求めているのか、よく分かっているはずだ。2つのシンボルを動かしているのですが、2つ目のシンボルのティックがつかめません。以前から、IndicatorReleaseによる唯一の解決策を提案されていました。でも、それだけではカクカクして見える。

いろいろなマルチシンボルテスターを見ました。このような問題に直面したのは5回だけです。どうして予見していなかったのか、謎です。

この弱点をなくし、本当に完成度の高い製品にするために、MQLをどのように改善すればよいかを考えてください。私も自分なりのバリエーションを提案 しましたが、あなたの方が100%合理的です。

 
Anton Zverev:

私が何を求めているのか、よく分かっているはずだ。2つのシンボルを動かしているのですが、2つ目のシンボルのティックがつかめません。以前から、IndicatorReleaseによる唯一の解決策を提案されていました。でも、それだけではカクカクして見える。

いろいろなマルチシンボルテスターを見ました。このような問題に直面したのは5回だけです。どうして予見していなかったのか、謎です。

この弱点をなくすために、MQLをどのように改善し、製品を完成させるかを考えてください。私は自分なりのバリエーションを提案 しましたが、あなたの方が100%合理的です。

これも質問です。

秒刻みで捉える」とは?

EAを普通に走らせたときに、2つ目のツールのティックをどうやってキャッチするのですか?

 
Slawa:

それはまた別の問題ですね。

秒の刻みを捉える」とは?

2つ目のシンボルのティックごとにEAが呼び出されるようにする。

EAが正常に起動したときに、2つ目のシンボルのティックをどのようにキャッチするのでしょうか?

IndicatorReleaseを通して、2つ目のシンボルにインジケータを配置しています。そのシンボルのティックごとにChartEvent イベントを 作成します。Expert Advisorは、それぞれ、このイベントをキャッチします。

検索結果によると、このお粗末な解決策は何年も前に提案されたものだそうです。他の有効な解決策は見つかっていません。10個のシンボルに対してテストを行う必要がある場合、9個のインジケータが起動されます。

例えば、1ティックごとにカウンターを増加させるExpert Advisorがあるとします。

テスターで1シンボル、100万ティックになるところで動かしています。カウンターは100万を表示しています。

また、別のシンボルに到達したところ、100万と表示されました。

一度に2つのシンボルに通しました。200万を表示するのに失敗した。

これではっきりしましたか?

 
Anton Zverev:

この弱点をなくし、本当に完成度の高い製品にするために、MQLをどのように改善するか考えてください。私は自分なりのバリエーションを提案 しましたが、あなたの方が100%気が利いていますね。

OnBookEvent イベントは、プットの変更時だけでなく、署名される金融商品の新しいティックが来たときにも呼び出されるようにする必要があります。このイベントにより、FORTS上の他のシンボル(マーケットがあるところ)から新しいティックが到着するのをキャッチすることが既に可能です。

FOREXでティックがない場合、新しいティックの到着時にOnBookEventが呼び出されます。取引所にいる場合 - 市場レートが変化するとOnBookEventが呼び出される。以上です。

 

各シンボルについて、端末がティックカウンター(接続時からの)を保持していれば、もっと便利です。そして、それぞれのExpert Advisorは、呼び出されると、呼び出されたティックの番号を取得します。

これにより、ミスダニを推定することができる。

現在、各EAはチャート上でトリガーされることが要求されています。BookEventは、EAを動かすのにチャートは必要ない、という最初のツバメです。

 
Anton Zverev:

2つ目のシンボルのティックごとにEAを呼び出したい。

2つ目のシンボルでIndicatorReleaseを使用しています。そのシンボルの各ティックでChartEvent イベントを 作成します。Expert Advisorは、それぞれ、このイベントをキャッチします。

検索結果によると、このお粗末な解決策は何年も前に提案されたものだそうです。他の有効な解決策は見つかっていません。10個のシンボルに対してテストを行う必要がある場合、9個のインジケータが起動されます。

例えば、1ティックごとにカウンターを増加させるExpert Advisorがあるとします。

テスターで1シンボル、100万ティックになるところで動かしています。カウンターは100万を表示しています。

また、別のシンボルに到達したところ、100万と表示されました。

一度に2つのシンボルに通しました。200万を表示するのに失敗した。

これではっきりしましたか?

このEAが2つ目のシンボルのチャートに取り付けられている場合のみ、2つ目のシンボルのティックごとにExpert Advisorが呼び出されます。

チャート・イベントをわざわざ用意する必要はありません。すべては、すでにあなたの目の前で行われている。

1.例えば、1秒のタイマーを作る。

2.OnTimerに0から100までのループをSleep(10)で配置し、1秒以上走らないように制御しています。

3.SymbolInfoTick クエリを使って、好きなツールを分析することができます。

この構造は、テスターでも通用します。

追記:タイマーを3600秒など、長めに設定した方が良いですね。

そして、そのループは1秒ではなく、1時間以内に整理する必要があります。IsStopped()のチェックが義務付けられています。

ちなみに、睡眠は必須です。そうしないと、テスターがハングアップしてしまいます。さて、Expert Advisorの通常の作業中に、システムリソースが消費されることになります。