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

 
Ilya Malev:
MT5のインジケーターで、OnTimerループを終了せずに、別のシンボル/期間(現在の期間ではない)の時系列をチェック すると、関数が構築されていることを示し、正しいバー数を提供する、という問題を既に発見しています。その直後に、インジケータを構築するために別の関数を呼び出します。この関数の内部では、OnTimerの同じ呼び出しから呼び出されたタイムシリーズが何とかアンロードされ、SeriesInfoIntegerはゼロを返します。私は、周期的なチェックを追加して、ティックを受信することなくすべてが自動的に構築されるようにする必要がありました。

MT5端末の作りはどうなっていますか?Mikhailさんは、MT5ビルド1200で問題ないと書いています。

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

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

ミハイル さん 2015.10.29 17:46

指標のデータについては、ずいぶん前に問題提起をしたのです

https://www.mql5.com/ru/forum/42180

問題が解決されたとのことで、安心しました。

発売1200の要旨にも書かれていた

17: ターミナル: MQL5プログラムから定期的にデータアクセスを行うにもかかわらず、履歴データが未使用としてアンロードされるバグを修正 しました。

また、ビルドが新しくても、エラーが続く場合は、証明書をもって servicedesk に 行ってください。

 
Alexey Kozitsyn:

MT5端末の作りはどうなっていますか?Mikhailさんは、MT5ビルド1200で問題ないと書いています。

ビルドが新しく、エラーがまだ残っている場合は、サービスデスクに証拠を提示して ください。

作りは1200/64と同じです。エラーを再現するためには、かなり複雑な製品で、デスクに送れないような状況をシミュレーションする必要があります。しばらく仕事から解放されたら、すぐにやりますよ。
 

話題提供者は、最初の返信で自分の問題に対するアドバイスを受けたのですが、話題提供者である彼はそれを無視しました。

Stanislav Starikov| 10.29 12:41

他人のシンボル期間から実際のデータを取得するためには、10秒に1回以上の頻度でこのデータにアクセスする必要があります。または、Expert AdvisorからiTimeなどを使用してこのデータにアクセス します(この場合、少なくとも3分に1回データにアクセスすることができます)。


このトピックの立ち上げ人は明らかにこのアドバイスを見たようで、彼のインジケータにはコメント付きのコードがあり、ここで紹介されています。

         //if( bars_count == 0 || firstDate == 0 || serv_firstDate == 0 )
         //     {
         //      Print( "Подкачка iTime()" );
         //      datetime tm = iTime( _Symbol, period, 0 );
         //     }

OnInit と OnCalculate の最初に無条件にiTime(_Symbol,period,0) を挿入すると、上記のような問題は発生しません。

SeriesInfoIntegerは、データスワップを呼び出すことなく、既にある情報を単純に収集するもので、論理的なものである。

 
Slawa:

話題提供者は、最初の返信で自分の問題に対するアドバイスを受けたのですが、話題提供者である彼はそれを無視しました。

Stanislav Starikov| 10.29 12:41

他人のシンボル期間から実際のデータを取得するためには、10秒に1回以上の頻度でこのデータにアクセスする必要があります。または、Expert AdvisorからiTimeなどを使用してこのデータにアクセス します(この場合、少なくとも3分に1回データにアクセスすることができます)。


このトピックの立ち上げ人は明らかにこのアドバイスを見たようで、彼のインジケータにはコメント付きのコードがあり、ここで紹介されています。

OnInit と OnCalculate の最初に無条件に iTime(_Symbol,period,0) を挿入すると、上記のような問題は発生しません。

SeriesInfoIntegerは、データスワップを呼び出すことなく、既にある情報を単純に収集するもので、論理的なものである。

Vyacheslav、あなたは今、誰に向かって言っているのですか?私が?それともイリヤに?

イリヤさん宛なら、すでにmql5について話しています。 よく読んでから回答してください。細かいことを言わずに対応を急ぐのは、何度も言っていることです。

アドバイスを拝見しました、コメントされたコードで確認しました、ありがとうございます、助かりました。レナートがデータのアグレッシブなアンロードは修正されると言ったので、mql4について議論を続ける必要はありません。

しかし、ビルド1200から修正されるはずなのに、mql5でも同じ状況が続くとしたら、どうしたらいいのでしょう?

もう一度言いますが、もし開発者がmql4で何も変更しないのであれば、SeriesInfoInteger() は既存の情報を収集するだけであることをドキュメントに追加してください、それだけです。すべての疑問は消え去り、あるいはドキュメントに鼻を突っ込めばいいのです

 
Alexey Kozitsyn:

Vyacheslav、今誰と話してるんだ?私が?それともイリヤに?

iTimeの 話が出たので、明らかにMT4の話です。 まだ、具体的なコード例を出していないので、回答はできませんが。
 
Ilya Malev:
iTimeの話が出たので、明らかにMT4の話です。 まだ、具体的なコード例を出していないので、回答はありません。
と理解したのですが、対応された可能性が高いですね。しかし、mql5のエラーについて書かれていますね。
 
Alexey Kozitsyn:
それは理解できましたが、おそらくあなた宛のものでもあるのでしょう。しかし、mql5のエラーについて書かれていますね。
私はトピックスターターではありません :)
 
Ilya Malev:
私はトピックスターターではありません :)
はい、でも、Vyacheslavさんの意見では、私が把握していないことを説明するような投稿でした。
 
Alexey Kozitsyn:
そうなんですが、Vyacheslavによると私が聞き取れなかったことを説明するような投稿でした。

という語りかけだと思います :)

私の問題に戻って、検証コードを提供します。ビルド1210で何かが修正されたのでなければ。これまではサイクリック・チェックをして移動していたので、止まっている暇はない。

 
Ilya Malev:
MT4でヒストリーを使った実験結果を書いてください。)

履歴を一から読み込む実験を開始。つまり、シンボルで履歴をすべて削除して、端末を起動します。ターミナル設定ウィンドウの最大バー数=5000。

MT5でData Access Organizationと同様のスクリプトを使用する場合、履歴は最大バー 数まで、またはサーバー上の最後の日付まで読み込まれることが確認できます。

MT4で同様の方式を使用すると、データが読み込まれない。つまり、最初は約2050件の履歴があり、より多くの履歴を得るためには、履歴の深さまでチャートをスクロールする必要があります。

また、ある特殊な点にも気づきました。スクロール中に新しいバーが読み込まれると、prev_calculatedは0にリセットされます(「更新」ボタンのように機能します)。

開発者の皆様へ。チャートスクロールを使わずに履歴を入れ替える方法(MT4!)があればコメントください。