через таймер c опросом всех символов. (можно, конечно, только опрашивать новое значение функции TimeCurrent(), но в этом случае погрешность будет равна 1 секунде, т.к. эта функция возвращает значение в секундах)
Я правильно понимаю, что других вариантов (более простых и изящных) не существует? Или (надеюсь) я не прав?
安定した再生が可能か?ビルドとは?
質問です。
Expert Advisor やインジケータで複数のシンボル、あるいは Market Watch ウィンドウに表示されているすべてのシンボルを扱うとします。
課題は、いずれかのシンボルで新しいティックが発生した瞬間を捉えることです。
今のところ、選択肢は2つしかないですね。最初の選択肢の欠点は、リソースとデータの関連性の点で非最適であることである。OnTimerは主にアイドル時に打ち込み、新しい見積もりをキャッチすると、到着時間の誤差はタイマーの周期と同じになります。
2つ目のバリエーションは、特にシンボルが何十個もある場合、面倒なのが欠点です。
他の選択肢(よりシンプルでエレガントなもの)はない、という理解で合っていますか?それとも(私が)間違っているのでしょうか?
質問です。
Expert Advisor やインジケータで複数のシンボル、あるいは Market Watch ウィンドウに表示されているすべてのシンボルを扱うとします。
課題は、いずれかのシンボルで新しいティックが発生した瞬間を捉えることです。
今のところ選択肢は2つしかないですね。最初の選択肢の欠点は、リソースとデータの関連性の点で非最適であることである。OnTimerは主にアイドル時に打ち込み、新しい見積もりをキャッチすると、到着時間の誤差はタイマーの周期と同じになります。
2つ目のバリエーションは、特にシンボルが何十個もある場合、面倒なのが欠点です。
他の選択肢(よりシンプルでエレガントなもの)はない、という理解で合っていますか?それとも(私が)間違っているのでしょうか?
もしかしたら、これが役に立つかも?https://www.metatrader5.com/ru/terminal/help/trading_advanced/custom_instruments
リアルタイムの相場情報を持つ総合的な商品この取引プラットフォームでは、1つまたは複数の既存の金融商品を基にした合成金融商品を作成することができます。相場計算式を設定するだけで、プラットフォームがリアルタイムで合成商品のティックを生成し、その分履歴も作成します。
仕組み
合成楽器を作り、その公式を設定するのです。
プラットフォームは、1秒間に10回の頻度でそのティックを計算します(式中の少なくとも1つの商品の価格が変更された場合のみ)。
もしかしたら、これが役に立つかも?https://www.metatrader5.com/ru/terminal/help/trading_advanced/custom_instruments
リアルタイムの相場情報を持つ総合的な商品この取引プラットフォームでは、1つまたは複数の既存の金融商品を基にした合成金融商品を作成することができます。相場計算式を指定するだけで、プラットフォームがリアルタイムで合成商品のティックを生成し、その分履歴を作成します。
仕組み
合成楽器を作り、その公式を設定するのです。
プラットフォームは、1秒間に10回の頻度でそのティックを計算します(式中の少なくとも1つの商品の価格が変更された場合のみ)。
そう、もちろん、その変種にも生きる権利がある。ありがとうございます。
しかし、実際には、タイマーの周期を100msにした私の変形例1と同じであり、同じ欠点があります。
選択肢2の方が合理的な気がしますが。
ところで、選択肢2については、すでにここで 議論されていることを思い出しました。
そう、もちろん、この変種にも生きる権利がある。ありがとうございました。
しかし、本質的には、タイマーの周期を100msとした上記variant1 と同じである。
EAが動作しているシンボルと連動したものを作れば簡単ではないか。次に、すべてのシンボルを開き、このEAを使ったテンプレートを各チャートに適用 します。
EAが動作しているシンボルと連動したものを作れば簡単ではないか。次に、すべてのシンボルを開き、各チャートにこのEAを使ったテンプレートを適用 します。
できることは明らかです。私が知らないだけで、たった一つの多通貨EAのコードから、別のシンボルの相場が来る瞬間を正確にトレースすることが可能だということです。
しかし、カスタム割り込みを介したバリエーション2が 唯一の合理的な解決策であると思われます。
はい、そのようにできることは明らかです。質問は、私は何かを知らないということです、それは唯一のマルチ通貨Expert Advisorのコードを介して別のシンボルの引用符の来るの正確な瞬間をキャッチすることが可能です。
しかし、カスタム割り込みを介したバリエーション2が 唯一の合理的な解決策であると思われます。
実施する。
他の選択肢(よりシンプルでエレガントなもの)はないと考えてよいのでしょうか?それとも(私が)間違っているのでしょうか?
ミリ秒タイマー + SymbolInfoTick()でミリ秒単位の時間を取得します。
実施する。
Я правильно понимаю, что других вариантов (более простых и изящных) не существует? Или (надеюсь) я не прав?
ミリ秒タイマー + SymbolInfoTick()でミリ秒単位で時間を取得します。
アレクセイ・コジツィン
ミリ秒タイマー + SymbolInfoTick()でミリ秒単位で時間を取得します。
客観的には、ユーザ割り込みの方が合理的です。なぜなら、相場が眠っているときでさえ、常に高価な SymbolInfoTick 関数でループを構成する必要がなく、したがってプロセッサにアイドル時間がかかるからです。また、新しいtickの計算誤差はタイマーの周期に等しい場合があり、そのようなtickが1以上だった場合、OnTimer実行の間にすべてのtickが失われます。