Уважаемые форумчане!!! Я только постигаю азы языка, поэтому сильно не пинайте...
есть индикатор TMA рисующий, как Рафаэль... Я в советнике через буферы индикатора пытаюсь получить значение как в окне данных, при установленном индюке... Но! в окне данных получаю одни значения - правильные, а через буферы получаю значения не верные. Точнее верные, но если без перерисовки... Помогите получить через буферы тоже самое что и в окне данных
Что значит "значения верные, но без перерисовки" ?
Что значит "значения верные, но без перерисовки" ?
если посмотреть код индикатора, о там по-моему сначала идет расчет индикатора, а потом по рассчитанным точкам делается еще один проход этим-же индикатором (т.е. он вызывает самого себя)... похоже что в советнике через буферы передается именно первый проход. А если проще, то выкладываю этот-же индикатор, но без перерисовки, так вот именно его значения получаю через буферы, в а окне данных рисующего индюка другие значения, как-раз нужные мне...
если посмотреть код индикатора, о там по-моему сначала идет расчет индикатора, а потом по рассчитанным точкам делается еще один проход этим-же индикатором (т.е. он вызывает самого себя)... похоже что в советнике через буферы передается именно первый проход. А если проще, то выкладываю этот-же индикатор, но без перерисовки, так вот именно его значения получаю через буферы, в а окне данных рисующего индюка другие значения, как-раз нужные мне...
Честное слово, чёт так всё у вас запутано... Ну так ... а откуда вы получаете значения в окне данных, с какого индикатора?
Честное слово, чёт так всё у вас запутано... Ну так ... а откуда вы получаете значения в окне данных, с какого индикатора?
Вот часть советника где идет вызов индикатора... Затем отражается информация по индикатору по закрытому бару. Если установить индикатор на при прогоне советника, то видно что в окне данных значения совершенно отличаются от того что получает советник через буферы
extern string c0 = "======================================================="; extern string c1 = "| ---ПАРАМЕТРЫ ИНДИКАТОРОВ--- |"; extern string c2 = "======================================================="; extern double GlubInd = 5, // Глубина анализа баров - для индикаторов (но не <3 и не >10) extern string c5 = "---Параметры TMA---"; extern string TMA_TF = "5"; extern int TMA_HalfLength = 56; extern int TMA_Price = PRICE_CLOSE; extern double TMA_ATRMult = 2.0; extern int TMA_ATRPer = 100; extern bool TMA_Interpolate = true; double TMA1[11], TMA2[11], TMA3[11]; //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- //+------------------------------------------------------------------+ //+==================================================================+ // 1. ИНИЦИАЛИЗАЦИЯ ИНДИКАТОРОВ //+==================================================================+ for (int i=0; i<=GlubInd; i++) { //--- TMA TMA1[i] = iCustom(Symbol(),TF,"m_TMA_speed",TMA_TF,TMA_HalfLength,TMA_Price,TMA_ATRMult,TMA_ATRPer,TMA_Interpolate,2,i); TMA2[i] = iCustom(Symbol(),TF,"m_TMA_speed",TMA_TF,TMA_HalfLength,TMA_Price,TMA_ATRMult,TMA_ATRPer,TMA_Interpolate,0,i); TMA3[i] = iCustom(Symbol(),TF,"m_TMA_speed",TMA_TF,TMA_HalfLength,TMA_Price,TMA_ATRMult,TMA_ATRPer,TMA_Interpolate,1,i); } Alert("TMA1[1]=",TMA1[1]); Alert("TMA2[1]=",TMA2[1]); Alert("TMA3[1]=",TMA3[1]); return(0); } //+------------------------------------------------------------------+вот убрал все не нужное... если установить индюк на экран и открыть ОкноДанных "ctrl+d", то значения по алертам в сове не соответствуют данным из окна данных
вот убрал все не нужное... если установить индюк на экран и открыть ОкноДанных "ctrl+d", то значения по алертам в сове не соответствуют данным из окна данных
А зачем в цикле считываете данные с буферов? Берите с конкретного бара. Вот если алертом выводите значение первого бара, то и в iCustom() вместо i подставьте 1
в цикле считываю, чтобы иметь определенное количество значений по конкретному числу баров... но это не имеет значения, даже если убрать цикл и оставить 1, т.е. последний закрытый бар все равно значения индикатора будут не верны!!
в цикле считываю, чтобы иметь определенное количество значений по конкретному числу баров... но это не имеет значения, даже если убрать цикл и оставить 1, т.е. последний закрытый бар все равно значения индикатора будут не верны!!
Не верны насколько?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Уважаемые форумчане!!! Я только постигаю азы языка, поэтому сильно не пинайте...
есть индикатор TMA рисующий, как Рафаэль... Я в советнике через буферы индикатора пытаюсь получить значение как в окне данных, при установленном индюке... Но! в окне данных получаю одни значения - правильные, а через буферы получаю значения не верные. Точнее верные, но если без перерисовки... Помогите получить через буферы тоже самое что и в окне данных