Errores, fallos, preguntas - página 14

 
stringo:
Se ha corregido la optimización por bool
OK, excepto que no veo ningún movimiento en la aplicación (todavía había ciertos matices allí)...
 
Interesting:
OK, sólo que no veo ningún movimiento en la aplicación (todavía había ciertos matices allí)...

Por favor, espere.

Las aplicaciones se sincronizarán después de un tiempo.

 
alexvd:

Por favor, espere.

Las aplicaciones se sincronizan después de un tiempo.

Se ha observado que si se les recuerda, la sincronización es más rápida...


PS

Por ejemplo, parece que se han olvidado de mi solicitud #14620 (tardan demasiado en sincronizarla)...

 

¿Puede decirme qué estoy haciendo mal? Los indicadores se han creado para clarificar.

1. He creado dos indicadores, por separado todo funciona (dibuja).

Indicador 00 (monocolor)

#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);
  }

Indicador 11 (multicolor)

#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);
  } 

Quiero combinarlos; tomo el indicador 11 (multicolor) como base y le añado un buffer, como se hace en el indicador 00

La línea (Buffer_2[i]=high[i];) no se dibuja, aunque se calcula, puedo cambiar el color.

#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é estoy haciendo mal?

Archivos adjuntos:
00.mq5  2 kb
11.mq5  2 kb
22.mq5  3 kb
 
Prival:

¿Qué estoy haciendo mal?


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

estrangulamiento:

Es una práctica común utilizar un archivo de configuración para los ajustes, especialmente si hay muchos ajustes. Pero el nombre del archivo de configuración se puede pasar como parámetro.

Una práctica habitual (entre los profesionales) es que el terminal muestre un mensaje de error, en lugar de bloquearse.
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции - Документация по MQL5
 
simpleton:
Lo habitual (entre los profesionales) es que el terminal dé un mensaje de error, pero no que se cuelgue.

Te apoyo - No cierres el terminal o quites el EA del gráfico en cada oportunidad (según los desarrolladores)...


PS

Hablando de pájaros, hay una petición #17391 justo sobre este tema...

 
Interesting:

Es un buen punto, si se recuerda, la sincronización es más rápida...


PS

Por ejemplo, parece que se han olvidado de mi solicitud #14620 (tardan demasiado en sincronizarla)...

Descargue la última versión de la Ayuda y mire en"MQL5 Reference / Standard constants, enumerations and structures / Environment state / Tool info "
 
Rosh:
Descargue la última versión de la ayuda y eche un vistazo a"MQL5 Reference / Standard constants, enumerations and structures / Environment state / Tool info "

Comparé la versión en línea con el archivo que tengo. O estoy completamente ciego o son completamente iguales...

¿Supongo que estamos hablando de la próxima versión del terminal y de una nueva versión de la ayuda?