Erreurs, bugs, questions - page 14

[Supprimé]  
stringo:
L'optimisation par bool a été corrigée
OK, sauf que je ne vois pas de mouvement dans l'application (il y avait encore certaines nuances)...
 
Interesting:
OK, seulement je ne vois pas de mouvement dans l'application (il y avait encore certaines nuances)...

Veuillez patienter.

Les applications se synchroniseront après un certain temps.

[Supprimé]  
alexvd:

Veuillez patienter.

Les applications sont synchronisées après un certain temps.

Il a été observé que si vous les rappelez, la synchronisation est plus rapide...


PS

Par exemple, ma demande #14620 semble avoir été oubliée (il faut trop de temps pour la synchroniser)...

 

Pouvez-vous me dire ce que je fais mal ? Les indicateurs ont été créés dans un souci de clarification.

1. j'ai créé deux indicateurs, séparément tout fonctionne (tirages).

Indicateur 00 (unicolore)

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
#property indicator_color1  Green

double      Buffer_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   SetIndexBuffer(0,Buffer_0,INDICATOR_DATA);
   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime& time[],     // Time
                 const double& open[],       // Open
                 const double& high[],       // High
                 const double& low[],        // Low
                 const double& close[],      // Close
                 const long& tick_volume[],  // Tick Volume
                 const long& volume[],       // Real Volume
                 const int& spread[])        // Spread
  {
   if(rates_total<10) return(0);
   int  start_pos=0;   // точка старта

   if(prev_calculated==0) start_pos=rates_total-100;
   else start_pos=prev_calculated-1;
   
   for(int i=start_pos;i<rates_total;i++)
     {
     Buffer_0[i]=high[i];
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }

Indicateur 11 (multicolore)

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   1
#property indicator_color1  Blue,Yellow,Red

double      Buffer_0[],Buffer_1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,Buffer_0,INDICATOR_DATA);
   SetIndexBuffer(1,Buffer_1,INDICATOR_COLOR_INDEX);

   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_COLOR_LINE);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime& time[],     // Time
                 const double& open[],       // Open
                 const double& high[],       // High
                 const double& low[],        // Low
                 const double& close[],      // Close
                 const long& tick_volume[],  // Tick Volume
                 const long& volume[],       // Real Volume
                 const int& spread[])        // Spread
  {
   if(rates_total<10) return(0);
   int  start_pos=0;   // точка старта

   if(prev_calculated==0) start_pos=rates_total-100;
   else start_pos=prev_calculated-1;
   
   for(int i=start_pos;i<rates_total;i++)
     {
     Buffer_0[i]=low[i];
     Buffer_1[i]=1;
     if(Buffer_0[i]>Buffer_0[i-1]) Buffer_1[i]=0;
     if(Buffer_0[i]<Buffer_0[i-1]) Buffer_1[i]=2;
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  } 

Je veux les combiner ensemble ; je prends l'indicateur 11 (multicolore) comme base et j'ajoute un tampon, comme cela se fait dans l'indicateur 00

La ligne (Buffer_2[i]=high[i] ;) n'est pas dessinée, bien qu'elle soit calculée, je peux changer la couleur.

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_plots   2
#property indicator_color1  Blue,Yellow,Red
#property indicator_color2  Green

double      Buffer_0[],Buffer_1[];
double      Buffer_2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   SetIndexBuffer(0,Buffer_0,INDICATOR_DATA);
   SetIndexBuffer(1,Buffer_1,INDICATOR_COLOR_INDEX);
   SetIndexBuffer(2,Buffer_2,INDICATOR_DATA);
   
   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_COLOR_LINE);
   PlotIndexSetInteger(2,PLOT_DRAW_TYPE,DRAW_LINE);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime& time[],     // Time
                 const double& open[],       // Open
                 const double& high[],       // High
                 const double& low[],        // Low
                 const double& close[],      // Close
                 const long& tick_volume[],  // Tick Volume
                 const long& volume[],       // Real Volume
                 const int& spread[])        // Spread
  {
   if(rates_total<10) return(0);
   int  start_pos=0;   // точка старта

   if(prev_calculated==0) start_pos=rates_total-100;
   else start_pos=prev_calculated-1;
   
   for(int i=start_pos;i<rates_total;i++)
     {
     Buffer_0[i]=low[i];
     Buffer_2[i]=high[i];// вот это не рисует
     Buffer_1[i]=1;
     if(Buffer_0[i]>Buffer_0[i-1]) Buffer_1[i]=0;
     if(Buffer_0[i]<Buffer_0[i-1]) Buffer_1[i]=2;
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }

Qu'est-ce que je fais de mal ?

Dossiers :
00.mq5  2 kb
11.mq5  2 kb
22.mq5  3 kb
 
Prival:

Qu'est-ce que je fais de mal ?


PlotIndexSetInteger(2,PLOT_DRAW_TYPE,DRAW_LINE) ;
 
Merci.
[Supprimé]  
sergey1294:
Вопрос был по поводу внешних параметров input , у меня в советнике их большое количество, необходимые для более гибкой настройки эксперта, так вот как только я выбираю своего эксперта из общего списка в тестере, вылетает сразу терминал. с меньшим количеством нормально.

stringo:

Il est courant d'utiliser un fichier de configuration pour les paramètres, surtout s'ils sont nombreux. Mais le nom du fichier de configuration peut être passé en paramètre.

Une pratique courante (chez les professionnels) est que le terminal affiche un message d'erreur, plutôt que de se bloquer.
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции - Документация по MQL5
[Supprimé]  
simpleton:
La pratique courante (chez les professionnels) est que le terminal émet un message d'erreur, mais pas qu'il se plante.

Je vous soutiens - Vous ne devez pas fermer le terminal ou supprimer l'EA du graphique à chaque occasion (selon les développeurs)...


PS

En parlant d'oiseaux, il y a une demande #17391 juste sur ce sujet...

 
Interesting:

C'est un bon point, si on se rappelle, la synchronisation est plus rapide...


PS

Par exemple, ils semblent avoir oublié ma demande #14620 (il faut trop de temps pour la synchroniser)...

Téléchargez la dernière version de l'aide et regardez"Référence MQL5 / Constantes, énumérations et structures standard / Etat de l'environnement / Info outil".
[Supprimé]  
Rosh:
Téléchargez la dernière version de l'aide et jetez un coup d'oeil à"Référence MQL5 / Constantes, énumérations et structures standard / État de l'environnement / Info outil".

J'ai comparé la version en ligne avec le fichier que je possède. Soit je suis complètement aveugle, soit ce sont les mêmes...

Je suppose que nous parlons de la prochaine version du terminal et d'une nouvelle version de l'aide ?