サービスデスクです。苦情、提案 - ページ 6

 
Ilya Malev:
タイマーの有無にかかわらず、すべてのインジケータが同じスレッドを持っているので、いずれにせよ1つのループでは動作しないでしょう。あるいは、あなたの考えが理解できない。
指標1があるとします。indicator2を呼び出します。指標2は、一部のシンボル/TFのデータが不足しています。このデータをインジケータ1に送信し、タイマに必要なデータをダウンロードさせた。必要なデータが全てダウンロードされたことを確認した後、再度指標2のデータのダウンロードを試み、必要なデータが全て揃い次第、指標1の計算を行います。
 
Alexey Kozitsyn:

履歴のダウンロードと確認は、MT5と同様、https://www.mql5.com/ru/docs/series/timeseries_access。

質問を繰り返しますが、古いmql4によってこの日付を取得する方法をご存知でしょうか?

しています。時間[Bars-1]。
 
Alexey Kozitsyn:

...MT4からMT5へのプログラムの移行が可能です。

4から5まで-理解できる。その逆はあまりないですね。

 
Alexey Kozitsyn:
例えば、ある指標1があるとする。indicator2を呼び出します。指標2は、一部のシンボル/TFのデータが不足しています。このデータをインジケータ1に送信し、タイマに必要なデータをダウンロードさせた。必要なデータが全てダウンロードされたことを確認した後、再度指標2のデータのダウンロードを試み、必要なデータが全て揃い次第、指標1の計算を行います。

メモリは5回分確保されています。同じものを扱うコマンドのアドレス空間の下に

データアドレス空間のアグレッシブなメモリ解放で 何を騒いでいるんだ?少なくともエクステントはそこに存在しています。

 
Vasyl Nosal:
非常に長い間、仲裁を待っている。3週目(2週目は待ってくれと言われたので、よしとした)。
全能の司会者たちよ、どうか問題に目を向けてください:)
 
Алексей Тарабанов:
知っています。時間[Bars-1]。

あなたは間違っています。あなたがあげた構築では、サーバー上ではなく、チャート上で最初の日付が出ることは、すでに下に書きました。

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

サービスデスクです。苦情、提案

アレクセイ・コジツィン さん 2015.10.30 16:42

iTime( _Symbol, period, Bars( _Symbol, period )-1 ) を使用すると、チャート上で最初に使用可能なローソクの時刻を得ることができます。

しかし、サーバー上の最初のろうそくの時間を取得するために、私はどの構造を使用するかを決めていません。

全てはSeriesInfoInteger: SeriesInfoInteger( _Symbol, period,SERIES_SERVER_FIRSTDATE) を使って簡単に行うことができます。


 
Алексей Тарабанов:

メモリは5回分確保されています。同じものを扱うコマンドのアドレス空間の下に

データアドレス空間のアグレッシブなメモリ解放で 何を騒いでいるんだ?少なくとも、そこにはエクステントがある。

何か中身のある話はないのか?
 

一般的には、先ほどのiCustomの問題には正常な解決策がある可能性が高いです。

MT5が既にこのシンボル/tfに指定されたパラメータを持つインディケータのハンドルを読み込んでいる場合、私の理解では、他の場所から呼び出すと、同じインディケータの計算が再度行われるのではなく、既存のハンドルが使用されるような気がします。

そして、iCustomの呼び出しの前の最初の「入れ子レベル」では、OnTimerの呼び出しが機能するので、最も基本的なものから始まり、それを使用するもの、そして任意の入れ子レベルまで、すべての指標の 順次計算を 待ち、その中ですでに使用されているすべての指標とタイムスケールが計算されたときにのみ、そのハンドルを作成することができます。そうすれば、「更新」ボタンの必要性はなくなるのではないでしょうか。1週間前に当てておけばよかった...。

追伸:OnTimerを使用する場合、ターミナルから呼び出されるOnCalculateが0以外の値を返すまで、インジケータバッファはチャートとデータウィンドウに表示されないことに注意してください。そしてターミナルは、タイムシリーズとインジケータがまだ計算されていないInite直後に、OnCalculateを1度だけ呼び出します。OntimerからOnCalculateが呼ばれたとき、どんな値を返しても、一番最初に返した値が0であれば、次のティックが来るか、「Refresh」を押すまで、チャート上にインジケータは表示されません。

 
Alexey Kozitsyn:

2つ目の問題は、同じようなタイプです。TF MN1に表示されます。TF M5からSeriesInfoInteger()という関数でデータを受信しようとしています。この関数はしばらくの間正しい値を返しますが、やがてそれをやめてゼロを返すようになります。

MT5のインジケーターで、1サイクルのOnTimerを残したまま、別のシンボル/期間(現在のものではない)の時系列をチェック したところ、関数は、それが構築され、正しいバー数を提供すると言っています。その直後に、インジケータを構築するために別の関数を呼び出します。この関数の内部では、OnTimerの同じ呼び出しから呼び出されたタイムスケールが何とかアンロードされ、SeriesInfoIntegerがゼロを返しています。私は、周期的なチェックを追加して、ティックを受信することなくすべてが自動的に構築されるようにする必要がありました。
 
Vasyl Nosal:
全能の司会者たちよ、どうか問題を見てください:)
もうすぐ仲裁の4週目...続く:))))