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

 
DenisR:
私も最初は15 505 1009だったのですが、端末が最新版(408)にアップデートされ、5 505 1009になりました。しかし、いずれにせよ、ファイルの終了記号は、ファイル自体のサイズより大きくすることはできません。それが今、一番心配なことなんです。
まあ、そうですね、ちょっと変な感じですが...。
 

ヘルプデスクにあるインジケーターを少し修正した例です。

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2010, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//---- plot Line
#property indicator_label1  "Line"
#property indicator_type1   DRAW_LINE
#property indicator_color1  DarkBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double         LineBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,LineBuffer,INDICATOR_DATA);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- получим количество доступных баров для текущих символа и периода на графике
   if(prev_calculated<=0) 
     {
      int bars=Bars(Symbol(),0);
      Print("Bars = ",bars,", rates_total = ",rates_total,", prev_calculated = ",prev_calculated);
      Print("time[0] = ",time[0]," time[rates_total-1] = ",time[rates_total-1]);
      //--- return value of prev_calculated for next call
     }
   return(rates_total);
  }

例えばUSDJPY(1h)を投げる。そして、例えば#C(30m)で走らせる。これはすべて、まだ米国市場が開いていない間に行われます。そして、USDJPYにティックが来るとすぐに#CのOnCalculateがトリガーされ、さらにprev_calculated=0になっていることがわかります。また、USDJPY自体では、新しいバーの 前にprev_calculated != 0があります。何か見落としているのかもしれませんが、私には明らかなバグのように見えます。ビルド408

 
notused:

例えばUSDJPY(1h)に投げる。そして、例えば、#C(30m)でスタートさせる。これらはすべて、まだ米国市場が開かれていない間に行われる。そして、USDJPYのティックが来るとすぐに#CのOnCalculateがトリガーされ、さらにprev_calculated=0になっていることが分かります。また、USDJPY自体では、新しいバーの 前にprev_calculated != 0があります。何か見落としているのかもしれませんが、私には明らかなバグのように見えます。ビルド408

この種のことはすでに議論されています: https://www.mql5.com/ru/forum/3283/page2#comment_50176(最後の2段落。スレッド全体も見られます)。
Почему срабатывает OnCalculate по выходным, когда нет тиков?
Почему срабатывает OnCalculate по выходным, когда нет тиков?
  • www.mql5.com
Событие Calculate генерируется только для индикаторов сразу после посылки события Init и при любом изменении ценовых данных.
 
Yedelkin:
これはすでに議論されています:https://www.mql5.com/ru/forum/3283/page2#comment_50176(最後の2段落;そして、スレッド全体を見ることができます)。
ありがとうございます。
 
質問です。インジケーターバッファには、整数値や、例えば時刻が格納される。インジケータバッファの値を整数値や時間などでDataWindowに表示させることは可能ですか?
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Lizar:
質問です。インジケーターバッファには、整数値や、例えば時刻が格納される。DataWindowにインジケータバッファの値を整数値で表示させたり、例えば時刻で表示させたりすることはできますか?

全体として、INDICATOR_DIGITSを 小さくすることで、可能です。


 
sergeev:

全体として、INDICATOR_DIGITSを 小さくすることで、可能です。

そうすると、倍精度もすべて整数になる :(
 
Lizar:
質問です。インジケーターバッファには、整数値や、例えば時刻が格納される。インジケータバッファの値を整数値でDataWindowに表示させたり、例えば時間として表示させたりすることは可能ですか?
現時点では、インジケータ・バッファは double 型の配列として配置されています。したがって、DataWindow では、バッファの値は double 型の値として表示される必要があります。開発者がいなければ、おそらく自分たちだけでは解決できないでしょう。
 
イェデルキン
現在、индикаторные буферы は double 型の配列として位置づけられている。これに対応して、DataWindow はバッファの値を double 型の値として表示します。どうやら、開発者抜きで自分たちだけで解決することはできないようです。
うわあ...
 
Yedelkin:
現在、インジケータ・バッファは double 型の配列として配置されている。それぞれ、バッファの値は、DataWindow では double 型の値として表示される。どうやら、開発者なしでは解決できないようです。
指標バッファはdouble型の配列として位置づけられるようにする。doubleからintやdatatimeを作ることができる。しかし、変換された結果を表示することはできません。データウィンドウに表示される結果はそのままに、インジケータがより強力になっただけです。サービスデスクに要望を書きたいのですが。