Ошибки, баги, вопросы - страница 14

 
stringo:
Оптимизацию по bool поправили
Вот и ладушки,  только я в заявке движения не вижу (там еще были определенные нюансы)...
 
Interesting:
Вот и ладушки,  только я в заявке движения не вижу (там еще были определенные нюансы)...

Подождите пожалуйста.

Заявки синхронизируются через какое-то время. 

 
alexvd:

Подождите пожалуйста.

Заявки синхронизируются через какое-то время. 

Подмечено, если напоминать, то синхронизация происходит быстрей...


PS

К примеру, про мою заявку №14620 походу забыли (что-то уж больно долго она синхронизируется)...

 

Подскажите, что я не так делаю. Индикаторы созданы для пояснения.

1. создал два индикатора, по отдельности все работает (рисует).

Индикатор 00 (одноцветный)

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

Индикатор 11 (многоцветный)

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

2. Теперь хочу объединить их вместе, за основу беру индикатор 11(многоцветный) и добавляю к нему еще 1 буфер, также как сделано в индикаторе 00.

Линия (Buffer_2[i]=high[i];) не рисуется, хотя рассчитывается, можно менять цвет.

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

 Что я не так делаю ? 

Файлы:
00.mq5  2 kb
11.mq5  2 kb
22.mq5  3 kb
 
Prival:

 Что я не так делаю ? 


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

stringo:

Общепринятая практика - для настроек использовать конфигурационный файл, особенно, если настроек много. А вот имя конфигурационного файла можно передавать параметром.

Общепринятая практика (в среде профессионалов) - это, когда терминал выдаёт сообщение об ошибке, а не вылетает.
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции - Документация по MQL5
 
simpleton:
Общепринятая практика (в среде профессионалов) - это, когда терминал выдаёт сообщение об ошибке, а не вылетает.

Поддерживаю - Не стоит закрывать терминал или удалять эксперта с графика при каждом удобном (по мнению разработчиков) случае...


PS

Кстати о птичках, есть заявка №17391, как раз на эту тему...

 
Interesting:

Подмечено, если напоминать, то синхронизация происходит быстрей...


PS

К примеру, про мою заявку №14620 походу забыли (что-то уж больно долго она синхронизируется)...

Скачайте последнюю версию справки и загляните в раздел "Справочник MQL5 / Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте "
 
Rosh:
Скачайте последнюю версию справки и загляните в раздел "Справочник MQL5 / Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте "

Сравнил онлайн версию с файлом имеющимся у меня. Или я совсем слепой или они полностью одинаковы...

Я как понял речь идет о следующем релизе терминала и новой версии справки?

Причина обращения: