Erros, bugs, perguntas - página 328

 
DenisR:
No início era também 15 505 1009, mas depois o terminal foi actualizado para a versão mais recente (408) e tornou-se 5 505 1009. Mas em qualquer caso, o sinal de fim de ficheiro não pode ser maior do que o tamanho do próprio ficheiro. Isso é o que mais me preocupa neste momento.
Bem, sim, é um pouco estranho...
 

Exemplo ligeiramente modificado de um indicador do 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);
  }

Atirar, por exemplo, USDJPY (1h). Em seguida, por exemplo, rodá-lo em #C (30m). Tudo isto é feito enquanto o mercado dos EUA ainda não tiver sido aberto. E vemos que, assim que um tick aparece no USDJPY, OnCalculate em #C dispara, além disso, prev_calculado=0. E sobre o próprio USDJPY, pré_calculado != 0 antes da nova barra. Parece-me um insecto óbvio, embora me possa estar a faltar algo. Construir 408

 
notused:

Jogue, por exemplo, em USDJPY (1h). Depois, por exemplo, começamos em #C (30m). Tudo isto é feito enquanto o mercado dos EUA ainda não tiver sido aberto. E vemos que assim que um carrapato chega a USDJPY, OnCalculate em #C dispara, além disso, prev_calculado=0. E sobre o próprio USDJPY, pré_calculado != 0 antes da nova barra. Parece-me um insecto óbvio, embora me possa estar a faltar algo. Construir 408

Este tipo de coisas já foi discutido: https://www.mql5.com/ru/forum/3283/page2#comment_50176(últimos dois parágrafos; também se pode ver todo o fio condutor).
Почему срабатывает OnCalculate по выходным, когда нет тиков?
Почему срабатывает OnCalculate по выходным, когда нет тиков?
  • www.mql5.com
Событие Calculate генерируется только для индикаторов сразу после посылки события Init и при любом изменении ценовых данных.
 
Yedelkin:
Isto já foi discutido: https://www.mql5.com/ru/forum/3283/page2#comment_50176(últimos dois parágrafos; e pode ver o fio completo).
Obrigado, é bom saber
 
Pergunta. O tampão indicador contém números inteiros ou, por exemplo, tempo. Posso fazer com que os valores do indicador sejam exibidos na DataWindow como números inteiros ou, por exemplo, como tempo?
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Lizar:
Pergunta. O tampão indicador contém números inteiros ou, por exemplo, tempo. Posso fazer com que a janela DataWindow exiba os valores do indicador de buffer como números inteiros ou, por exemplo, como tempo?

como um todo pode - reduzindo o INDICADOR_DIGITOS


 
sergeev:

como um todo pode - reduzindo o INDICADOR_DIGITOS

Então todas as duplas também se tornarão inteiros :(
 
Lizar:
Pergunta. O tampão indicador contém números inteiros ou, por exemplo, tempo. Posso fazer com que os valores do indicador sejam exibidos na DataWindow como inteiros, ou, por exemplo, como tempo?
Neste momento, os amortecedores indicadores são posicionados como matrizes de tipo duplo. Portanto, em DataWindow, os valores tampão devem ser exibidos como valores do tipo duplo. Sem os criadores, provavelmente não seremos capazes de resolver o problema por nós próprios.
 
Yedelkin:
Actualmente индикаторные буферы está posicionado como uma matriz de tipo duplo. De forma correspondente, a janela DataWindow exibirá os valores de buffer como valores do tipo duplo. Aparentemente, não podemos resolver o problema sozinhos, sem programadores.
Uau...
 
Yedelkin:
Os amortecedores indicadores estão actualmente posicionados como matrizes de tipo duplo. Respectivamente, os valores tampão são exibidos em DataWindow como valores do tipo duplo. Aparentemente, não seremos capazes de resolver este problema sem os criadores.
Deixar os amortecedores indicadores serem posicionados como matrizes do tipo duplo. É possível fazer int e datatime a partir do dobro. Mas não se pode mostrar o resultado convertido. Os indicadores são simplesmente mais poderosos, enquanto a exibição dos resultados na DataWindow permanece a mesma. Gostaria de escrever um pedido ao Service Desk.