Init()およびDeInit()実行シーケンス - ページ 17

 
fxsaber:

Servicesはほぼ全てのOn機能を持つことになることがわかりました。OnInit, OnDeinit, OnTick(string),OnTimer,OnTrade,OnTradeTransaction,OnTester, OnTesterInit, OnTesterPass, OnTesterDeinit, OnBookEvent, OnChartEvent(long ChartID, ...),OnCalculate, ...


また、インジケータ・バッファを必要とせず、インジケータ/アドバイザの松葉杖に直面したくない場合は、(MTの以前のバージョンから伸ばした)制限に苦しまない新しいタイプのプログラム-サービス-に書き込んでください。

その通りです。

OnCalculateはありません。

OnChartEventによる解決はまだありません。

 
Slawa:

そうなんです。

この松葉杖は、多くの人にとって迷惑な存在であるに違いない

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

ハイTFからインジケーターデータが取得できない

セルゲイ・デジブリク さん 2017.04.14 10:55

そのユーザーは、市場の「強さ」を測るインジケーターを持っていた。
この指標は、現在のタイムフレームと通貨ペアで動作しました。

課題は、8つの人気通貨の結果を1つのチャートに表示し、表示する独立したTFを選択する機会を設けることでした。
ユーザーがどのTFにいるかは関係なく、パラメータで設定されたものから結果を表示する必要があります。

他の通貨からのトラフィックを必要なTFだけロードするという問題は、次のような松葉杖で解決しました。

   for (int i = ArraySize(symbols_load) - 1; i >= 0; --i){
      int counter = 0;
      int max_count = 10;
      while(counter < max_count){
         RefreshRates();
         double tmp_arr[];
         int res = CopyClose(symbols_load[i] + Suffix, int(TF), 0, 3, tmp_arr);
         if (res == 3)
            break;
         RefreshRates();
         ++counter;
      }
   }

のところです。

symbols_load- 読み込みに必要な通貨の一覧です。
Suffix- 通貨ペアの名前に付けることのできる接頭辞です。
TF- 必要な時間枠

指定した数量のヒストリカルデータ(バーやティック)に購読/サブスクリプションを追加することは可能ですか?そのため、指定されたシンボルのサービスには常に一定サイズのキャッシュ(新鮮なバーとティック)が存在することになります。


そうすれば、例えばマーケットスクリーナーを書くのがどれだけ楽になるか。

 
Slawa:

指標は本来の目的のために使用されるべきものである。

つまり、チャートの シンボル周期を変更する際のOnInitとOnDeinitのインジケータの実行順序は、誰も気にしないはず です。

このアプローチで、多くのことを説明することができます。

だから、ありのままを受け入れればいいのです。要は、意識することです。

 
Slawa:

いいえ。

指標は何か、もう一度読んでみてください。アケリスコルビー市場指標はヤンデックスに聞け

MT3では、カスタムインジケータの概念を導入した際、インジケータバッファが 2つしかなかったため、チャート上のオブジェクトで操作することを許可しました。

ちょっと歴史を作ってみよう。最初はFXChartsがあったのですが、私が入社したのは2002年10月なので、キャッチできませんでした。そして、MetaTraderが登場したのです。私はMQL IIを開発するために入社しました(FXChartsにはすでにトレーディングストラテジー言語がありました)。MQL IIとEAをやったときに、MetaTrader 2という名前に変更しました。カスタムインジケーターを書けるようになったとき、MetaTrader 3はMetaTrader 3になりました。

その後、MetaTrader 4とMQL4が登場しました。カスタムインジケーターは、8つのインジケーターバッファで動作する機会を得ました。チャート上のオブジェクトを操作する可能性はそのまま残した。しかし、指標はインターフェイスのスレッドで計算されるため、オブジェクトを使った作業を悪用する人は少なかった。

そして今、MT5がある。アーキテクチャは全く違いますが、チャート上のグラフィカルなオブジェクトで操作する機会という点では、MT4の人質になっています。そうです、私たちはスタハノビトです。私たちもヒーローとして、インジケータからチャート管理のほぼ無限の可能性を追加しました。到着しました。図版-16ページにわたって、何もないところから議論を重ねています。

サービスの話に移ろう

MQL5 EditorにServicesフォルダが表示されましたが、このツールの使い方はまだ不明です。https://www.mql5.com/ru/forum/190129


Services , новый функциона в архитеркуте MT5, похороны MT4 не за горой.
Services , новый функциона в архитеркуте MT5, похороны MT4 не за горой.
  • www.mql5.com
Хотелось бы подробней с примерами использования обсудить новый функционал...
 
Slawa:

指標は本来の目的のために使用されるべきものである。

つまり、チャートの シンボル周期を変更する際のインジケータのOnInitとOnDeinitのシーケンスは、誰にも迷惑をかけないようにする必要があります。

そして、なぜすべての議論がグラフィカルなオブジェクトに移ったのでしょうか?その他、グローバル変数やファイルなどのグローバルリソースがあります。(インジケータに目的に応じて使用できるのか?)、「チャートの シンボル期間の変更時のインジケータのOnInitとOnDeinitの実行順序は誰も気にしないはず」であれば、エラーの原因となる。もう一度言いますが、OnInit/Deinitの呼び出し順序の不確かさによって引き起こされるレイキを避けるために、カーネルは現在、その順序がMQLプログラマを悩ませる ような方法で実装されていることに留意してください。MQLに悩まされないためには、内部で不確定要素の解消を担うカーネルが必要です。
 
Stanislav Korotky:
なぜ、グラフィカルなオブジェクトに議論が集中するのでしょうか?他にもグローバル変数やファイルなどのグローバルリソースがあります(これらはインジケーターで使えるのか?(インジケータで目的に応じて使えるか?)であり、チャートの シンボル期間の変更時にインジケータのOnInitとOnDeinitの実行順序が誰にも迷惑がかからない」のであれば、エラーの原因になります。もう一度言いますが、OnInit/Deinitの呼び出し順序の不確かさによって引き起こされるレイキを避けるために、カーネルは現在、その順序がMQLプログラマを悩ませる ような方法で実装されていることに留意してください。MQLに悩まされないためには、内部で不確定要素の解消を担うカーネルが必要です。
ここで、ファイルについて良い質問があります。もし、初期化時にリセットし、その後の初期化で読み出す必要がある場合、何らかの問題が発生する可能性があります。
 
Stanislav Korotky:

サービスや、1つのチャートで複数のEAを動かす機能で、今議論している問題を完全にカバーできないのはなぜでしょうか?

スレッドで紹介されているインジケーターの代わりに、完全に計算された部分を含むServiceが走っていると想像してください。そして、サービスによって計算されたデータを可視化するインジケータをチャート上に配置し、インジケータ・バッファに 格納します。


指標はその目的に応じて使うべきであり、1つのチャートに複数の指標が打ち出されるからといって、何か普遍的なものを作るべきではありません。こうすれば、指標でOrderSendが禁止されても文句を言えるようになる。

 
fxsaber:

サービスや、1つのチャートで複数のEAを動かす機能で、今議論している問題を完全にカバーできないのはなぜでしょうか?

スレッドで紹介されているインジケーターの代わりに、完全に計算された部分を含むServiceが走っていると想像してください。そして、インジケータをチャート上に配置し、サービスによって計算されたデータをインジケータ・バッファに 視覚化します。

つまり、本サービスを通じてインジケータを作成することは可能なのでしょうか?
 
Alexey Kozitsyn:
つまり、サービスを通じてインジケーターを作成することは可能なのでしょうか?
これは、EAからすでに可能です(いくつかの制限があります)。
 
fxsaber:
EAからも可能です(一部制限あり)。
松葉杖を使うということですか?例を挙げてみましょうか。