インディケータ: ZoomPriceティック指標 - ページ 4

 
ascerdfg:

mql5.com/en/code/download/16753.zipを解凍し、フォルダ構造をそのままにコピーした。

MetaEditor 5.0 build 2715でZoomPrice.mq5をコンパイルするとエラーが出ます:

コードベースのzipファイルは、長い間ソースの更新時に更新されていません。各ファイルを個別にダウンロードしてください。

 

1.Ticks.mqhファイルには次のようなコードがある。

AmountTicks = this.GetFreshTicks(NewTicks, COPY_TICKS_INFO, (uint)MathMax((this.To - this.LastTime) >> 5, 2000)); // ~2000ティック/分

同時にGetFreshTicksにチェックがある。

if ((NewAmount > 0) && (this.Count < NewAmount))

つまり、最後の数ティックが読み込まれた場合、GetFreshTicksはNewTicks配列を変更しません。しかし、それはクリーニングされず、古い値を持つ古い配列が処理されます。あるいは、MqlTickの NewTicks[]宣言を移動することで解決できます;

    TICK Tick;

    int AmountTicks = 1;

    while (AmountTicks > 0)
    {
      MqlTick NewTicks[];
      AmountTicks = this.GetFreshTicks(NewTicks, COPY_TICKS_INFO, (uint)MathMax((this.To - this.LastTime) >> 5, 2000)); // ~2000ティック/分


2.いくつかのタイプミス

Количество тиков в последенем запросе


今のところ、このバグ https://www.mql5.com/ru/forum/363680/page9#comment_21182494 のせいで、すべてが正常なのか、それとも何かがうまくいっていないのか、判断がつかない。

 

Пока из-за этого бага https://www.mql5.com/ru/forum/363680/page9#comment_21182494 не могу сказать, всё ли дальше нормально или ещё что не работает.

取引、自動取引システム、取引戦略のテストに関するフォーラム

カスタムシンボルエラー、バグ、質問、提案。

fxsaber, 2020.07.01 17:34

2509のバグを確認しました。

このバリアントは失敗しないようです。

int size = CopyTicksRange(_Symbol, array, COPY_TICKS_ALL, cursor);

CopyTicksRange に切り替えるのが理にかなっているのかもしれません。

 
traveller00:

CopyTicksRangeに切り替えるのは理にかなっているかもしれない。

このインジケーターは古い。当時はこの機能すらなかった。正しく動作させるには、もちろん変更が必要です。

 
traveller00:

CopyTicksRangeに切り替えるのは理にかなっているかもしれない。

動作するオプションのようです。


3. SetAutoScroll( void ) 関数があります。チャートが右端に自動スクロールする場合、ZoomTicksの時間はthis.Ticks.GetNowTime()を介して実際の現在時刻に基づいて計算されます。しかし、カスタム文字は 新しい目盛りを生成しません。その結果、FromとToは現在時刻の値で満たされ、それらのための目盛りは拾われません(新しい目盛りはありません)。目盛りの画像は最終的に古いものを表示しますが、this.SetTextCrossでは現在時刻を示します。


4.目盛りは間隔の左端から要求される。区間が01:00:00:00-01:01:00:00で、区間に入る最初のティックが01:00:30になる場合、左半分に穴があきます。

 
traveller00:

4.ティック要求はインターバルの左端から来る。間隔が01:00:00:00-01:01:00:00で、最初のティックが01:00:30に入る場合、左半分に穴があきます。

これはもともとあったものだ。意図的にルール化したわけではありません。

 
fxsaber:

最初からそうだった。わざとルール化したわけじゃない。

何のための穴だったんだ?

 
traveller00:

もしそれが秘密でないなら、あの穴は何のためだったのか?

左に刻みがなかったのはすぐにわかる。

 
ascerdfg:

そして同じエラーが出る。

インジケータの動作バージョンはまだ持っています。)

 
ズームプライス