- Ошибки, баги, вопросы
- помогите с советником пожалуйста
- Индикатор в ресурсах. как заставить работать индикатор из ресурса
Мне вот что интересно, в комплекте есть индикатор ТМА, очень интересный, надо сказать. Так в нём вот такой кусок кода:
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period())); for(i=limit; i>=0; i--) { int y = iBarShift(NULL,timeFrame,Time[i]); buffer1[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,0,y); buffer2[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,1,y); buffer3[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,2,y); trend[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,3,y);
А таких iCustom нету, к которым он обращается, ошибок тоже никаких не пишет, рисует вроде ТМА, похожий на другие такие же индикаторы. Чудеса...
Мне вот что интересно, в комплекте есть индикатор ТМА, очень интересный, надо сказать. Так в нём вот такой кусок кода:
А таких iCustom нету, к которым он обращается, ошибок тоже никаких не пишет, рисует вроде ТМА, похожий на другие такие же индикаторы. Чудеса...
Если indicatorFileName - это имя данного индикатора, то он обращается сам к себе. Отсюда могут и вытекать те ошибки, о которых тут писалось выше.
Я уже встречал такой индикатор, который при определённых условиях запрашивает сам себя, но с другими настройками.
Вот тут он вызывает себя с параметром returnBars
iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)
А вот тут он вызывает себя с параметром "calculateTma"
iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,0,y)
Ищите в нём проверку на эти входные параметры и получите ответ. Может и найдётся баг с пятизнаком...
Да, он сам себя вызывает, причём параметры вызова довольно странно переплетаются чуть выше по коду, а параметра "calculateTma" который он себе передаёт (о нём выше писалось) и вовсе нигде нету в коде, только "returnBars" и "calculateValue" есть:
string indicatorFileName; bool calculateValue; bool returnBars; int timeFrame; indicatorFileName = WindowExpertName(); returnBars = TimeFrame=="returnBars"; if (returnBars) return(0); calculateValue = TimeFrame=="calculateValue"; if (calculateValue) return(0); timeFrame = stringToTimeFrame(TimeFrame); А вот вызов индикатора: iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,0,y) //насколько я могу понять, тут надо заменить "calculateTma" на "calculateValue", но меня другое удивило, индикатор работает и так...
З.Ы.: А на пятизнаке, насколько я понял, второй индикатор из комплекта багнутый (тот что в отдельном окне, открывает сразу 256 раз себя), а может и код советника виновен:
Оказалась, что эта закраска это 256 окон индикатора. При запуске советника в тестере он начинает накидывать окна индикатора и дойдя по 256 прекращает, при этом эта ситуация только у меня, у разработчика такого нет
Если indicatorFileName - это имя данного индикатора, то он обращается сам к себе. Отсюда могут и вытекать те ошибки, о которых тут писалось выше.
Я уже встречал такой индикатор, который при определённых условиях запрашивает сам себя, но с другими настройками.
Если indicatorFileName - это имя данного индикатора, то он обращается сам к себе. Отсюда могут и вытекать те ошибки, о которых тут писалось выше.
Я уже встречал такой индикатор, который при определённых условиях запрашивает сам себя, но с другими настройками.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования