Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 592

 

подскажите почему при добавлении строки #property strict перестают рисоваться стрелки вот весь код

//+------------------------------------------------------------------+

//|                                           oscillating review.mq4 |

//|                        Copyright 2018, MetaQuotes Software Corp. |

//|                                             https://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2018, MetaQuotes Software Corp."

#property link      "https://www.mql5.com"

#property version   "1.00"

#property indicator_separate_window

#property indicator_buffers 5

#property indicator_plots   4

//--- plot Signaler

#property indicator_label1  "Signaler"

#property indicator_type1   DRAW_LINE

#property indicator_color1  clrRed

#property indicator_style1  STYLE_SOLID

#property indicator_width1  1

//--- plot Z

#property indicator_label2  "Z"

#property indicator_type2   DRAW_LINE

#property indicator_color2  clrBeige

#property indicator_style2  STYLE_DOT

#property indicator_width2  1

//--- plot Bay

#property indicator_label3  "Bay"

#property indicator_type3   DRAW_ARROW

#property indicator_color3  clrLightSkyBlue

#property indicator_style3  STYLE_SOLID

#property indicator_width3  1

//--- plot Sell

#property indicator_label4  "Sell"

#property indicator_type4   DRAW_ARROW

#property indicator_color4  clrDeepPink

#property indicator_style4  STYLE_SOLID

#property indicator_width4  1

//--- input parameters

input int      PCCI=14;        //  период индикатора ССИ   

input double   KCCI=1.1;       //  выравнивающий коэффициент

input int      PMOM=14;        //  период индикатора Моментум

input int      KMOM=1111;      //  выравнивающий коэффициент

input int      PATR=14;        //  период индикатора АТР

input int      KATR=111111;    //  выравнивающий коэффициент

input int      PFOR=14;        //  период индикатора Форсе

input int      KFOR=1111;      //  выравнивающий коэффициент

input int      PTVR=12;        //  период р  индикатора ТВИ

input int      PTVS=12;        //  период с  индикатора ТВИ

input int      PTVU=5;         //  период у  индикатора ТВИ

input int      KTVl=111;       //  выравнивающий коэффициент

input int      POSF=12;        //  период фаст индикатора АОС

input int      POSS=26;        //  период слоу индикатора АОС

input int      POSZ=9;         //  период сма индикатора АОС

input int      KAOS=111111;    //  выравнивающий коэффициент

input int      KAD=111;        //  выравнивающий коэффициент индикатора АД

input double   KK=2.0;         //  фильтр для стрелок

input int      Amendment=20;   //  рисование стрелок в окне индикатора в удобоваримом формате 

//--- indicator buffers

double         SignalerBuffer[];

double         Z_Buffer[];

double         BayBuffer[];

double         SellBuffer[];         

double         PatchBuffer[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int OnInit()

  {

   IndicatorSetInteger(INDICATOR_DIGITS,0);

   SetIndexBuffer(0,SignalerBuffer);

   SetIndexBuffer(1,Z_Buffer);

   SetIndexBuffer(2,BayBuffer);

   SetIndexBuffer(3,SellBuffer);

   SetIndexBuffer(4,PatchBuffer);

   SetIndexStyle(0,DRAW_LINE);

   SetIndexStyle(1,DRAW_LINE);

   SetIndexStyle(2,DRAW_ARROW);

   SetIndexStyle(3,DRAW_ARROW);

   SetIndexArrow(2,241);

   SetIndexArrow(3,242);

   SetIndexEmptyValue(2,0.0);

   SetIndexEmptyValue(3,0.0);

   IndicatorShortName("Basement signaler(" +(string) PATR + ")");

//---

   return(INIT_SUCCEEDED);

  }

//+------------------------------------------------------------------+

//| 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[])

  {

   int   i , limit=rates_total-prev_calculated ;           

   double cci,atr,mom,forc,ao,ac,ad,tvi,osma ;

//---- задаем параметры подсчета

        if(prev_calculated==0)limit--;

        else  limit++;

//---- считаем       

   for(i=limit-1; i>=0; i--)      

  {      

   cci=iCCI(NULL,0,PCCI,PRICE_TYPICAL,i)/KCCI;

   mom=(iMomentum(NULL,0,PMOM,PRICE_TYPICAL,i)-100)*KMOM ;

   forc=iForce(NULL,0,PFOR,MODE_SMA,PRICE_TYPICAL,i)*KFOR;

   tvi=iCustom(NULL,0,"TVI_v2",PTVR,PTVS,PTVU,4,i)*KTVl ;

   osma=iOsMA(NULL,0,POSF,POSS,POSZ,PRICE_TYPICAL,i)*KAOS;

   atr=iATR(NULL,0,PATR,i)*KATR;

   ao=iAO(NULL,0,i)*KAOS ;

   ac=iAC(NULL,0,i)*KAOS ;

   ad=iAD(NULL,0,i)/KAD ;

   SignalerBuffer[i]=(cci+mom+forc+tvi+osma+atr+ao+ac+ad)/9 ;

  }

   for(i=limit-1; i>=0; i--)      

  {   

   Z_Buffer[i] = (SignalerBuffer[i]+SignalerBuffer[i-1])/2 ;

   PatchBuffer[i] = MathAbs(SignalerBuffer[i]-Z_Buffer[i]) ;

  }

   for(i=0; i<limit && !IsStopped(); i++)      

  {   

   if(Z_Buffer[i]>SignalerBuffer[i]&&Z_Buffer[i+1]<SignalerBuffer[i+1]&&PatchBuffer[i]>KK)

   

   BayBuffer[i]=SignalerBuffer[i]-Amendment;

   

   if(Z_Buffer[i]<SignalerBuffer[i]&&Z_Buffer[i+1]>SignalerBuffer[i+1]&&PatchBuffer[i]>KK)

  

   SellBuffer[i]=SignalerBuffer[i]+Amendment;

  

  }

//--- return value of prev_calculated for next call

   return(rates_total);

  }

//+------------------------------------------------------------------+


Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Машинное обучение роботов Привет всем, я занимаюсь...
 
Alekseu Fedotov:
 К продавцу этого индикатора.

Спасибо..
 
Может кто подсказать, что делать если во время теста советника он отказывается копировать буферы?
 
Roman Sharanov:
Может кто подсказать, что делать если во время теста советника он отказывается копировать буферы?

Выявить причину.

 
Artyom Trishkin:

Выявить причину.

И в чем она может быть? В размере кода? Я специально отключил всю логику, оставил только копирование буфера и ничего

 
Roman Sharanov:

И в чем она может быть? В размере кода? Я специально отключил всю логику, оставил только копирование буфера и ничего

Все телепаты на выходных...
 

Вылазит ошибка out of memory при запуске тестирования (не запускается). Как это лечить?

После рестарта терминала тестирование запускается, а потом после нескольких тестов снова out of memory.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Juer:

Вылазит ошибка out of memory при запуске тестирования (не запускается). Как это лечить?

После рестарта терминала тестирование запускается, а потом после нескольких тестов снова out of memory.

Тестируемая программа съедает всю вашу память. Ищите ошибки в ней. Поглядите журналы "Журнал" и "Советники" на демо (не в тестере) - что пишется там? Возможно пишет про утечку памяти во время смены таймфрейма.

Без кода дальше гадать не буду.

 
Artyom Trishkin:

Тестируемая программа съедает всю вашу память. Ищите ошибки в ней. Поглядите журналы "Журнал" и "Советники" на демо (не в тестере) - что пишется там? Возможно пишет про утечку памяти во время смены таймфрейма.

Без кода дальше гадать не буду.

В логах куча неудаленных объектов после окончания тестирования. Несколько тысяч... В этом что ли проблема?

 
Juer:

В логах куча неудаленных объектов после окончания тестирования. Несколько тысяч... В этом что ли проблема?

Вот тут смогут точно ответить.

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