Errori, bug, domande - pagina 328

 
DenisR:
All'inizio avevo anche 15 505 1009, ma poi il terminale è stato aggiornato all'ultima versione (408) ed è diventato 5 505 1009. Ma in ogni caso, il segno di fine file non può essere più grande della dimensione del file stesso. Questo è ciò che mi preoccupa di più in questo momento.
Beh, sì, è un po' strano...
 

Esempio leggermente modificato di un indicatore dell'helpdesk:

//+------------------------------------------------------------------+
//|                                                      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);
  }

Lancia per esempio USDJPY (1h). Poi, per esempio, eseguilo su #C (30m). Tutto questo viene fatto mentre il mercato USA non è ancora aperto. E vediamo che appena arriva un tick su USDJPY, OnCalculate a #C si attiva, inoltre, prev_calculated=0. E sulla stessa USDJPY, prev_calculated != 0 prima della nuova barra. Mi sembra un bug ovvio, anche se forse mi manca qualcosa. Costruire 408

 
notused:

Lancia, per esempio, su USDJPY (1h). Poi, per esempio, lo facciamo partire su #C (30m). Tutto questo viene fatto mentre il mercato statunitense non è ancora aperto. E vediamo che appena arriva un tick su USDJPY, OnCalculate a #C si attiva, inoltre, prev_calculated=0. E sulla stessa USDJPY, prev_calculated != 0 prima della nuova barra. Mi sembra un bug ovvio, anche se forse mi manca qualcosa. Costruire 408

Questo genere di cose è già stato discusso: https://www.mql5.com/ru/forum/3283/page2#comment_50176(ultimi due paragrafi; puoi vedere anche tutto il thread).
Почему срабатывает OnCalculate по выходным, когда нет тиков?
Почему срабатывает OnCalculate по выходным, когда нет тиков?
  • www.mql5.com
Событие Calculate генерируется только для индикаторов сразу после посылки события Init и при любом изменении ценовых данных.
 
Yedelkin:
Questo è già stato discusso: https://www.mql5.com/ru/forum/3283/page2#comment_50176(ultimi due paragrafi; e puoi vedere l'intero thread).
Grazie, buono a sapersi
 
Domanda. Il buffer degli indicatori contiene numeri interi o, per esempio, il tempo. Posso fare in modo che i valori del buffer dell'indicatore siano visualizzati nella DataWindow come interi o, per esempio, come tempo?
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Lizar:
Domanda. Il buffer degli indicatori contiene numeri interi o, per esempio, il tempo. Posso fare in modo che la DataWindow visualizzi i valori del buffer dell'indicatore come interi o, per esempio, come tempo?

nel suo complesso è possibile - riducendo l'INDICATOR_DIGITS


 
sergeev:

nel suo complesso è possibile - riducendo l'INDICATOR_DIGITS

Allora anche tutti i doppi diventeranno interi :(
 
Lizar:
Domanda. Il buffer degli indicatori contiene numeri interi o, per esempio, il tempo. Posso fare in modo che i valori del buffer dell'indicatore siano visualizzati in DataWindow come interi o, per esempio, come tempo?
Al momento, i buffer degli indicatori sono posizionati come array di tipo double. Pertanto, in DataWindow, i valori del buffer dovrebbero essere visualizzati come valori di tipo doppio. Senza gli sviluppatori, probabilmente non saremo in grado di risolvere il problema da soli.
 
Yedelkin:
Attualmente индикаторные буферы è posizionato come un array di tipo double. Corrispondentemente, la DataWindow visualizzerà i valori del buffer come valori di tipo double. A quanto pare, non possiamo risolvere il problema da soli, senza sviluppatori.
Wow...
 
Yedelkin:
I buffer degli indicatori sono attualmente posizionati come array di tipo double. Rispettivamente, i valori del buffer sono visualizzati in DataWindow come valori di tipo doppio. A quanto pare, non saremo in grado di risolvere questo problema senza gli sviluppatori.
Che i buffer degli indicatori siano posizionati come array di tipo doppio. È possibile fare int e datatime da double. Ma non si può mostrare il risultato convertito. Gli indicatori sono semplicemente più potenti, mentre la visualizzazione dei risultati nella DataWindow rimane la stessa. Vorrei scrivere una richiesta al Service Desk.