Опубликована статья Индикатор NRTR и торговые модули на его основе для Мастера MQL5:
Автор: Dmitrii Troshin
убей не понял как к нему обратиться через iCustom ... поясните пож-та
должно быть что то типа
double iCustom(
string symbol, // имя символа
int timeframe, // таймфрейм
string name, // папка/имя_пользовательского индикатора
... // список входных параметров индикатора
int mode, // источник данных
int shift // сдвиг
);
то есть конкретно в нашем случае
//+------------------------------------------------------------------+ //| NRTRvolatile | //+------------------------------------------------------------------+ //iBufferNumber //0 //1 //2 - signal up //3 - signal down double indNRTRvolatile(string sSymbol=NULL, int tf=PERIOD_M5, int period=12, //динамический период double K=1, //коэффициент масштаба int iBufferNumber=0, int iShift=0) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); double handle=iCustom(sSymbol,timeframe,"NRTRvolatile",period,K,iBufferNumber,iShift); if(handle<0) { Print("Объект NRTRvolatile не создан: Ошибка ",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,iShift)); }
только выдает какую то ерунду, то есть текущие цены если обратиться по буферу 2 или 3
убей не понял как к нему обратиться через iCustom ... поясните пож-та
В буферах 2,3 находятся сигналы они обновляются только в момент смены тренда.
Поддержка/Сопротивление находятся в буферах 0,1 - именно их мы видим в качестве линий
CopyBuffer() - имеет три перегрузки, но ни одна не имеет трех параметров
Вариант кода для получения значений буферов
void OnStart() { double arr[]; int handle =iCustom(Symbol(),0,"NRTRvolatile",12,1); CopyBuffer(handle,0,0,1,arr); Print("Нижний канал ",arr[0]); CopyBuffer(handle,1,0,1,arr); Print("Верхний канал ",arr[0]); CopyBuffer(handle,2,0,1,arr); Print("Сигнал вверх ",arr[0]); CopyBuffer(handle,3,0,1,arr); Print("Сигнал вниз ",arr[0]); }
Это скрипт
В буферах 2,3 находятся сигналы они обновляются только в момент смены тренда.
Поддержка/Сопротивление находятся в буферах 0,1 - именно их мы видим в качестве линий
CopyBuffer() - имеет три перегрузки, но ни одна не имеет трех параметров
Вариант кода для получения значений буферов
Это скрипт
да стало понятней
насчет CopyBuffer - она из библиотеки совместимости с mql4 , точнее отсюда initmql4__1.mqh
double CopyBufferMQL4(int handle,int index,int shift) { double buf[]; switch(index) { case 0: if(CopyBuffer(handle,0,shift,1,buf)>0) return(buf[0]); break; case 1: if(CopyBuffer(handle,1,shift,1,buf)>0) return(buf[0]); break; case 2: if(CopyBuffer(handle,2,shift,1,buf)>0) return(buf[0]); break; case 3: if(CopyBuffer(handle,3,shift,1,buf)>0) return(buf[0]); break; case 4: if(CopyBuffer(handle,4,shift,1,buf)>0) return(buf[0]); break; default: break; } return(EMPTY_VALUE); }
наверно так
//+------------------------------------------------------------------+ //| NRTRvolatile | //+------------------------------------------------------------------+ //iBufferNumber //0 //1 //2 - signal up //3 - signal down double indNRTRvolatile(string sSymbol=NULL, int tf=PERIOD_M5, int period=12, //динамический период double K=1, //коэффициент масштаба int iBufferNumber=0, int iShift=0) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); double handle=iCustom(sSymbol,timeframe,"NRTRvolatile",period,K); if(handle<0) { Print("Объект NRTRvolatile не создан: Ошибка ",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,iBufferNumber,iShift));}
Можно ли проапгрейдить NRTRvolatile так, чтобы при добавлении стрелки выскакивало окошко с сообщением?
Можно ли проапгрейдить NRTRvolatile так, чтобы при добавлении стрелки выскакивало окошко с сообщением?
Возможно в функциях LongCondition и ShortCondition
int SignalNRTR::LongCondition(void) { int idx =StartIndex(); if(UpSignal(idx)) { Alert"Text"; return 100; } else return 0; }
добавить что-то вроде Alert"Text". Вот не знаю будет ли работать. Дело в том что у меня на компьютере уже нет этого кода. Всё что было в прошлом году я отставил в прошлом:) Поэтому попробовать не могу. Да и в голове ещё НГ звенит :)
В самом индикаторе где-то здесь
// trend changes if(trend>0) Buff_Up[i]=value; if(trend<0) Buff_Dn[i]=value; if(trend_prev<0 && trend>0) { Alert("Text"); Sign_Up[i]=value; Buff_Up[i]=0.0; } if(trend_prev>0 && trend<0) { Alert("Text"); Sign_Dn[i]=value; Buff_Dn[i]=0.0; }
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Индикатор NRTR и торговые модули на его основе для Мастера MQL5:
В статье описан индикатор NRTR и торговая система, созданная с его использованием. Для этих целей создаётся модуль торговых сигналов, с помощью которых создаются стратегии, основанные на комбинациях NRTR и дополнительных индикаторов, подтверждающих тренд.
Посмотрим работу индикатора, поместив на график два NRTR с различными параметрами: у первого — период 12 и ширина 0.1%; у второго — период 120 и ширина 0.2%.
Автор: Dmitrii Troshin