Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 592
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
подскажите почему при добавлении строки #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);
}
//+------------------------------------------------------------------+
К продавцу этого индикатора.
Может кто подсказать, что делать если во время теста советника он отказывается копировать буферы?
Выявить причину.
Выявить причину.
И в чем она может быть? В размере кода? Я специально отключил всю логику, оставил только копирование буфера и ничего
И в чем она может быть? В размере кода? Я специально отключил всю логику, оставил только копирование буфера и ничего
Вылазит ошибка out of memory при запуске тестирования (не запускается). Как это лечить?
После рестарта терминала тестирование запускается, а потом после нескольких тестов снова out of memory.
Вылазит ошибка out of memory при запуске тестирования (не запускается). Как это лечить?
После рестарта терминала тестирование запускается, а потом после нескольких тестов снова out of memory.
Тестируемая программа съедает всю вашу память. Ищите ошибки в ней. Поглядите журналы "Журнал" и "Советники" на демо (не в тестере) - что пишется там? Возможно пишет про утечку памяти во время смены таймфрейма.
Без кода дальше гадать не буду.
Тестируемая программа съедает всю вашу память. Ищите ошибки в ней. Поглядите журналы "Журнал" и "Советники" на демо (не в тестере) - что пишется там? Возможно пишет про утечку памяти во время смены таймфрейма.
Без кода дальше гадать не буду.
В логах куча неудаленных объектов после окончания тестирования. Несколько тысяч... В этом что ли проблема?
В логах куча неудаленных объектов после окончания тестирования. Несколько тысяч... В этом что ли проблема?
Вот тут смогут точно ответить.