記事"MеtaTrader 5 チャート上の水平図"についてのディスカッション - ページ 5

 

遅延は最適化の結果にすぎない。初期化時の最初の遅延。MT4のビデオで)インジケータがシンボルの特定のタイムフレームに設定され、そのタイムフレームに履歴がない場合、または履歴が完全でない場合、履歴上のダイアグラムは構築されないか、エラーで構築されます。このような現象が確認されています。インジケータは、1つのタイムフレームに設定し、別のタイムフレームから初期データを取得し、3つ目のタイムフレームに表示することができることに注意してください。履歴に一度だけ、エラーなしにすぐにチャートを描画するために、OnCalculateにコードの一部が追加され、ソースデータの準備完了をチェックし、さらにOnCalculateの呼び出しを5回スキップして、すべてのソースデータの準備が完了したことを確認します。ユーザーがインジケータがハングアップしていると思わないように、ログにはpass 1 ....pass 2 などと表示されます。見ての通り、再計算はなく、端末への負荷は最小限です。結局、最後のダイアグラムだけが再計算されます。1分間に1回です。悪い方法ですか?そうかもしれない。しかし、これ以上クールな方法は思い浮かばない。

2回目の遅延は、チャート・プリミティブがターミナルではなくインジケーターによって制御されるモードで発生します。これは複数のCHARTEVENT_CHART_CHANGEイベントの 発生を処理するためです。つまり、ユーザーが突然チャートを前後に引っ張り始めた場合です。このようなイベントをその都度処理しようとすると、インジケータは構築 に対応できず、混乱してしまいます。そのため、インジケータはイベントが発生すると、単に何もせずに制御を戻します。しかし、ユーザーがイベントの発生を止めると、インジケータは新しいイベントが発生しないことを確認するために3秒間待機し、それから初めて新しい場所にダイアグラムを再描画します。一度だけ!はい、遅延が発生します。しかし、私たちはそれを正直に警告し、不必要なリソースを消費せず、疑問があれば私たちの立場を説明します。今起きているように)

最初のケースも2番目のケースも、顕在化させる必要はない。そして、私自身はこのようなチェックはしない。しかし、他の人のために私はしなければならない。もし私がより良い方法を見つけたり、誰かが提案したりしたら、すぐに修正に取り掛かるつもりだ。

 
CCanvasを使って、チャート上に1つのオブジェクトを実装しようとしています。助けが必要なら、PMに書いてください。
 
はい、あなたの考えを思い出しました。私はこの方法を使うつもりで、開発したアーキテクチャーにこのようなダイアグラムを組み込む方法を大まかに考えている。
 
とても気に入っていたのですが、動作させることができませんでした。
あなたが私を助けることができる場合
 
Enoir Heringer Da Silveira:
Мне действительно понравилось это, но я не мог заставить это работать.
  • "Объемы продаж клещей"
  • "Объемы тиков для покупки"
  • 「Всего тиковых объемов"
если вы можете мне помочь
В статье описан подход, сам принцип.Индикаторы не предназначены для конкретной работы. Они изготовлены только для демонстрации этого принципа.В Маркете есть Демо индикатор на этом принципе.Он распространяется бесплатно.Название можно увидеть в моем профиле.