Erreurs, bugs, questions - page 328

 
DenisR:
J'avais aussi 15 505 1009 au début, mais ensuite le terminal a été mis à jour à la dernière version (408) et c'est devenu 5 505 1009. Mais dans tous les cas, le signe de fin de fichier ne peut pas être plus grand que la taille du fichier lui-même. C'est ce qui m'inquiète le plus en ce moment.
Eh bien, oui, c'est un peu bizarre...
 

Exemple légèrement modifié d'un indicateur du service d'assistance :

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

Prenons l'exemple de l'USDJPY (1h). Puis, par exemple, exécutez-le sur #C (30m). Tout cela se fait alors que le marché américain n'est pas encore ouvert. Et nous voyons que dès qu'un tick arrive sur l'USDJPY, OnCalculate à #C se déclenche, de plus, prev_calculated=0. Et sur l'USDJPY lui-même, prev_calculated != 0 avant la nouvelle barre. Cela ressemble à un bogue évident pour moi, bien que je puisse manquer quelque chose. Construire 408

 
notused:

Lancez, par exemple, sur USDJPY (1h). Ensuite, par exemple, nous le démarrons sur #C (30m). Tout cela se fait alors que le marché américain n'est pas encore ouvert. Et nous voyons que dès qu'un tick arrive sur USDJPY, OnCalculate à #C se déclenche, de plus, prev_calculated=0. Et sur l'USDJPY lui-même, prev_calculated != 0 avant la nouvelle barre. Cela ressemble à un bogue évident pour moi, bien que je puisse manquer quelque chose. Construire 408

Ce genre de chose a déjà été discuté : https://www.mql5.com/ru/forum/3283/page2#comment_50176(deux derniers paragraphes ; vous pouvez également consulter l'ensemble du fil de discussion).
Почему срабатывает OnCalculate по выходным, когда нет тиков?
Почему срабатывает OnCalculate по выходным, когда нет тиков?
  • www.mql5.com
Событие Calculate генерируется только для индикаторов сразу после посылки события Init и при любом изменении ценовых данных.
 
Yedelkin:
Ce sujet a déjà été abordé : https://www.mql5.com/ru/forum/3283/page2#comment_50176(deux derniers paragraphes ; et vous pouvez consulter l'ensemble du fil de discussion).
Merci, c'est bon à savoir
 
Question. Le tampon indicateur contient des entiers ou, par exemple, l'heure. Puis-je faire en sorte que les valeurs de la mémoire tampon de l'indicateur soient affichées dans la DataWindow sous forme d'entiers ou, par exemple, de temps ?
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Lizar:
Question. Le tampon indicateur contient des entiers ou, par exemple, l'heure. Puis-je faire en sorte que la DataWindow affiche les valeurs de la mémoire tampon de l'indicateur sous forme d'entiers ou, par exemple, de temps ?

dans son ensemble, vous pouvez - en réduisant les INDICATOR_DIGITS


 
sergeev:

dans son ensemble, vous pouvez - en réduisant les INDICATOR_DIGITS

Alors tous les doubles deviendront aussi des entiers :(
 
Lizar:
Question. Le tampon indicateur contient des entiers ou, par exemple, l'heure. Puis-je faire en sorte que les valeurs de la mémoire tampon de l'indicateur soient affichées dans DataWindow sous forme d'entiers, ou, par exemple, sous forme de temps ?
Pour l'instant, les tampons indicateurs sont positionnés comme des tableaux de type double. Par conséquent, dans DataWindow, les valeurs de la mémoire tampon doivent être affichées comme des valeurs de type double. Sans les développeurs, nous ne serons probablement pas en mesure de résoudre le problème par nous-mêmes.
 
Yedelkin:
Actuellement, индикаторные буферы est positionné comme un tableau de type double. En conséquence, la DataWindow affichera les valeurs de la mémoire tampon comme des valeurs de type double. Apparemment, nous ne pouvons pas résoudre le problème par nous-mêmes, sans les développeurs.
Wow...
 
Yedelkin:
Les tampons indicateurs sont actuellement positionnés comme des tableaux de type double. Respectivement, les valeurs des tampons sont affichées dans DataWindow comme des valeurs de type double. Apparemment, nous ne serons pas en mesure de résoudre ce problème sans les développeurs.
Que les tampons indicateurs soient positionnés comme des tableaux de type double. Il est possible de faire int et datatime à partir de double. Mais vous ne pouvez pas montrer le résultat converti. Les indicateurs sont simplement plus puissants, tandis que l'affichage des résultats dans la DataWindow reste le même. Je souhaite adresser une demande à Service Desk.