エラー、バグ、質問 - ページ 2190

 
Alexey Viktorov:

3分ほど実験した結果、その変位は、以下のものであるという結論に達しました。


であり、現在位置からではありません。

それで?表示されるバーの 数が変化しています。マウスでグラフを動かしている時に確認するのが良いと思います。キャッチすることができます。また、マウス操作でチャートがずれるようであれば、それは機能ではありません。
 
Artyom Trishkin:
それで?表示されるバーの 数が変化しています。マウスでチャートを動かしたときに確認するのがよいでしょう。キャッチすることができます。マウス操作でチャートが移動する場合は、機能的に動作していません。

実行時チェックの話はしていない。手動で100本分右にずらした後、さらに10本分右にずらそうとすると、画像のマークから10本分のオフセットが設定されます。実際、この例では、10だけ右にずれるのではなく、90だけ左にずれることになります。

チェックについては...期待通りに動かないものをチェックする意味はあるのでしょうか?期待通りではなく、より正確に書かれている。チャートを複数回移動させるには、CHART_CURRENT_POSからオフセットを行う必要があり、この例ではCHART_ENDとしました。

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

エラー、バグ、質問

アレクセイ・ヴャズミキン さん 2018.04.12 15:43

スクリプトを頻繁に呼び出すと - 実行後何度も - チャートオフセットが動作しなくなる、つまりこの動作のためのコマンドがスキップされる。

   long handle=ChartID(); 
   if(handle>0) // если получилось, дополнительно настроим 
     { 
      ChartNavigate(handle,CHART_END,-2000); 
     } 

それゆえ、問題がある。

 
Alexey Viktorov:

実行時チェックの話はしていない。手動で100本分右にずらした後、さらに10本分右にずらそうとすると、画像のマークから10本分のオフセットが設定されます。実際、この例では、10だけ右にずれるのではなく、90だけ左にずれることになります。

チェックについては...期待通りに動かないものをチェックする意味はあるのでしょうか?期待通りではなく、より正確に書かれている。チャートを複数回移動させるには、CHART_CURRENT_POSから、そしてこの例ではCHART_ENDからオフセットする必要があります。


それゆえ、問題がある。

コードを読んでいない。そのように必要なのかもしれません。

私が言いたいのは、チャートオフセット 関数は非同期式なので、実行の成功を返すとき、それはチャートオフセットについてではなく、チャートのイベントキューにそのような注文を入れることに成功したということだ、ということです。そして、これは同じことではないのです。

それを踏まえて、チャートシフトコマンドの実行というイベントをキャッチするということなのですが...。

実験する時間があればいいのですが...。しかし、残念なことに...。

 

プロファイラには 関数のシグネチャが表示されないので、どのオーバーロードされた関数を意味しているのかがすぐにわからない


つまり、リストには__FUNCTION__が記入されていますが、私は__FUNCSIG__を希望しています。

 

ArrayResizeの ソースコードが掲載されている開発者の投稿を探すのに役立ちます。"site:mql5.com/en/forum ArrayResize+reserve "でググっても解決しない。

ソースコードがあったと記憶しています。その中で、リザーブパラメータの実装ロジックをすぐに確認することができます。

 
fxsaber:

ArrayResizeのソースコードが掲載されている開発者の投稿を探すのに役立ちます。"site:mql5.com/en/forum ArrayResize+reserve "でググっても解決しない。

ソースコードがあったと記憶しています。reserve-parameterの実装のロジックはすぐにわかると思います。

ソースコードか疑似コードか?これらは正反対に異なるものです。

 
Artyom Trishkin:

オフセットという事実だけを頼りに、チャートを手でずらすと......それこそロジックの穴が開いてしまうのでは......。

オフセットだけでなく、計算されたバーへのオフセットを確認する必要があるようです。あとは、どうすれば正しく実装できるか...。

アレクセイ・ヴィクトロフ

実行を確認する話はしていない。手動で100本分右にずらした後、さらに10本分、スクリプトで右にずらそうとすると、スナップショットで示されたマークから10本分のオフセットが設定されることになります。実際、この例では、10だけ右にずれるのではなく、90だけ左にずれることになります。

チェックについては...期待通りに動かないものをチェックする意味はあるのでしょうか?期待通りではなく、より正確に書かれている。チャートを複数回移動させるには、CHART_CURRENT_POSからオフセットする必要があり、この例ではCHART_ENDを設定しています。


それゆえ、問題がある。

CHART_END が必要なのは、ループ内で日付によるシフトを行うことを想定しており、途中からではなく、データの先頭または末尾から日付を探す方が便利だからです...。

 
Sergey Dzyublik:

ソースコード、それとも疑似コード?これらは根本的に違うものです。

ソースコードが直接掲載されていたような気がします。しかし、たとえ疑似コードがあったとしても、そしてそれが役に立つとしても。

 
Aleksey Vyazmikin:

オフセットだけでなく、計算されたバーへのオフセットを確認する必要があるようです。あとは、どうすれば正しく実装できるか...。

CHART_END が必要なのは、日付によるサイクルのオフセットを行うためで、データの途中からではなく、先頭または末尾から日付を探すほうが便利だからです...。

だから問題ないのです。ピリオドを変えずに同じ小節数だけ2回以上ずらそうとすると、ずれが目立たなくなる程度です。

チャートの自動シフトを無効にするのを忘れていなければいいのですが。

ChartSetInteger(0, CHART_AUTOSCROLL, 0, false);
 
Alexey Viktorov:

だから問題ないのです。同じ周期で2回以上同じ小節数だけずらそうとすると、ずれが目立たなくなる程度です。

オートスキルの無効化を忘れていなければいいのですが?

もちろん、オートスクロールは無効です。