初期化中のChartNavigate - ページ 4

 
Ihor Herasko:

追伸:念のため申し添えますが、私は長い時間をかけてターミナルをロードした場合(つまり、ターミナルをアンロードした 後に多くの新しいバーが現れるはずの場合)に何が起こるかを見るために始めたわけではありません。

 
Alexey Viktorov:

ディナ、うまくいっていますか?OnInitの動作しないバージョンを取得しようと2-3時間(今日だけ、昨日のテストはカウントしていません)格闘していますが、無駄です。すべてがいつも思い通りに動く。2つのチャートにインジケータを置き、ターミナルを再起動すると、ターミナルを閉じたり開いたりした時にアクティブだったチャートのみで機能します。2つ目は、アクティブでないチャートが機能しないことです。しかし、これは私見ですが、データを受信しているにもかかわらず、チャートのレンダリングがなく、チャートそのものがないのは、理解できることです。

はい、Alexeiさん、うまくいきました。ここに 書きました。どうやら、他の記事の引用で視覚的に失われてしまったようです。

 
Dina Paches:

教えてください、端末を降ろす前に、チャートを最新の価格にリセットしているのですか?

いいえ、そんなことはありません。なぜなら、そこがポイントだからです。なぜ、そのようなことが必要なのか、具体的にお話ししましょう。トレーダーは、チャートをテスターのように使う。このインジケータは、現在と思われる時刻の右側に実際のチャートの一部を隠しています(実際には、この時刻は履歴のどこかにあります)。F12を押すと、オンラインチャートに次のローソク足が表示されるなど。そのため、インジケータを 装着した状態で端末を再起動しても、チャートの位置はトレーダーが学習を終了した場所に戻りません。その結果、端末が最後の本物のローソク足にチャートをリセットするため、彼/彼女は空のチャートを受け取ることになります。しかも、まったく別の場所で端末が降ろされたにもかかわらず、である。

なぜ、私が尋ねるのか。

あなたのコードを使って、私の状況でどのように動作するかを確認しました。最初、私はあなたの言う問題を再現しているのだと思いました。後でそうでないことを理解しました。アンロードされる前にチャートが最新の価格に復元されている場合、ターミナルがロードされたときにコードに従って動作します。アンロードする前に最新の価格に戻さなければ、チャートはアンロードする前の状態のままです。

興味深い観察結果です。自分で調べてみたが、残念ながら何も変わっていない。今でもリローディングで一番新鮮な価格で購入できます。

時計を同期させる」ことをお勧めします。ビルド1861ですべてテストしています。あなたの体型は?

 
Alexey Viktorov:

Dinaさん、効果はありますか?OnInitの動作しないバージョンを取得しようと2-3時間(今日だけ、昨日のテストはカウントしていません)格闘していますが、すべて無駄です。すべてがいつも思い通りに動く。2つのチャートにインジケータを置き、ターミナルを再起動すると、ターミナルを閉じたり開いたりした時にアクティブだったチャートのみで機能します。2つ目は、アクティブでないチャートが機能しないことです。しかし、これは私見ですが、データを受信しているにもかかわらず、チャートのレンダリングがなく、チャートそのものがないのは、理解できることです。

2つのチャートに載せる。残念ながら、どちらも同じように動作し、再読み込み時に最新の価格が表示されます。

どのようなビルドをお持ちですか?

 
思っていた以上に楽しいものになりました。OnCalculateにコードを移しましたが(トリガーを1つにして、毎ティックで 呼び出さないようにしました)、絵は変わりません。つまり、ターミナル起動時のOnCalculateでも、ChartNavigateは動作しません...。
 
Alexey Viktorov:

...ただ1点、2つのチャートにインジケータを配置し、ターミナルを再起動すると、ターミナルを閉じて開いた時にアクティブだったチャートのみで動作するようになりました。2つ目は、アクティブでないチャートが機能しないことです。しかし、これは私見ですが、データを受信しているにもかかわらず、チャートのレンダリングがなく、チャートそのものがないのは、理解できることです。

私自身、そのように試してみようとは思いませんでした。今、そのような実験をしてみました(Igorのコードも参考にしました)。

その結果、彼の言うような問題を再現することができたのです。

 
Ihor Herasko:

...

時計を合わせる "ことを提案します。ビルド1861ですべてテストしています。あなたはどうですか?

1861も持っています。しかし、Alexey Viktorovのおかげで、OnInit()経由でインストールしたときに、あなたが説明した問題を再現することができました。/* その前に、皆さんの書き込みを拝見して、判明しました*/。

アクションの順番ここに 記載されている通りです。

I. しかし、端末を降ろす前にチャートを鮮度の高い価格にシフトしたのです。

そして、1つのペアで、異なる時間枠の2つのチャート(GBPUSD M5とGBPUSD H1)にインジケータを設定しました。

私の成果は、このような実験の結果なのです。

1. 最初にGBPUSDのM5チャートに設定し、次にGBPUSDのH1チャートに設定しました。その後、チャートを新しいバーに移行した後、GBPUSD H1チャートがアクティブ(つまり上位のタイムフレームがアクティブ)になっているときにターミナルを閉じました。このような状態で、再度ターミナルを開くと、御社のコードで指定したバーでチャートがずれて しまうのです。

しかし GBPUSD M5のアクティブなチャート(つまり、下のタイムフレームがアクティブになっている)でターミナルを閉じ、その後ターミナルを再び開くと、ターミナルの読み込み後、2つのチャートのどちらにもシフトは起こりません。チャートは新鮮なバーで開く。同時に、片方は成功し、もう片方はエラーになります。

test 2018 06 26 (GBPUSD,M5)     Alert: Успешно
test 2018 06 26 (GBPUSD,H1)     Alert: Ошибка №4111

1と 2の 実験を行う際、ターミナルを再起動して結果を見た後、チャートからこのインジケーターを削除し、再度インストールしました。


3. 同じ実験をしたが、その都度インジケーターを再インストールせずに、ターミナルを再起動すると、ターミナルの再起動後のチャートの移動はない。高いタイムフレームと低いタイムフレームのどちらで活動するかは関係ない。チャートは新鮮なバーで開く。メッセージはポイント2と 同じ(成功、エラー4111)です

II.さ らに、同じ2つのチャートにインジケータを同時にインストールし、ターミナルを新しいバーにアンロードする前にこれらのチャートを返さないという実験をしてみました。

私が持っている結果:高いタイムフレームでクローズ/オープンすると、高いタイムフレームのチャートはクローズ前の場所にあります。下の方(非アクティブ)がフレッシュの上にあります。

下位のタイムフレームでオープン/クローズした場合、下位のものは最も新鮮なバーでオープンされます。メッセージは2と 同じです(成功、エラー4111)。


III. という問題が今出ています。

  • インジケータをインストールする前に、チャートの自動スクロールを無効にするのを忘れていました。
  • それに気づいて、インジケータを削除して、再度インストールしました。

このインジケーターのリセット後、シフトは発生しなかったが、アラートは成功した。

test 2018 06 26 (GBPUSD,M5)     Alert: Успешно

ただし、インジケーターの再インストール 前に、今だけでなく、しばらくしてから自動スクロールを無効にしていた場合は、問題は検出されませんでした。


なんとなく。

サービスデスクに連絡したほうがよさそうですね。

 
Dina Paches:

一方は成功、もう一方はエラーになります。

今のはサプライズ!?まだ、ChartNavigateからエラーが出ることはないです。でも、それはそれでいいんです。

問題の核心が、どうやらわかってきたようだ。

OnInit()やOnCalculate()で初めてChartNavigate() を呼び出す場合、まだすべてのチャートデータがロードされていない可能性が高いです。しかし、ChartNavigate()は既に動作し、正常に動作しています(その時点では)。その後、データをロードしてチャートに表示すると、チャートが完全に再描画され、先頭に移動します。その結果、あたかもChartNavigate()で移動させなかったかのようなチャートが表示されます。

したがって、チャートをうまくシフトさせるためには、(ヒストリーのページングにより)チャートデータが表示されなくなることを何らかの方法で判断する必要があるのです。この事実を確認した後にのみ、ChartNavigate()を呼び出すことができます。

 
Ihor Herasko:

...

したがって、チャートをうまくシフトさせるためには、(ヒストリーページングにより)チャートデータの表示が期待できなくなったことを何らかの方法で判断する必要があります。この事実を確認した後にのみ、ChartNavigate()を呼び出すことができます。

おっしゃるとおりです、たぶん。端末を再起動すると、関連性が出てくる場合があります。また、実験しているうちに、ndicatorのリセットと組み合わせて(あるいは組み合わせずに)オートスクロールを有効/無効にすることに興味を持ちました。この記事の 最後にあるブロックIIIで 説明したことの帰結です。でも、まだ詳しく調べているわけではありません。自分自身の喫緊の課題を解決しなければならない。したがって、私は当分の間、パスすることにします。

 
Ihor Herasko:

2つのチャートに載せる。残念ながら、どちらも同じように動作し、再読み込み時に最新の価格が表示されます。

どのようなビルドをお持ちですか?

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

初期化時のChartNavigate

アレクセイ・ビクトロフ さん 2018.06.25 15:10

1861も持っています。一度だけ再現することができました。他の試みはすべてうまくいきました。