Подскажите, плиз, можно ли для советника получать значения старых
пиков ZigZag. Если можно то как??
void start() { Comment(GetExtremumZZPrice("", 0, 4)); } //+----------------------------------------------------------------------------+ //| Возвращает экстремум ЗигЗага по его номеру. | //| Параметры: | //| sym - наименование инструмента ("" - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| ne - номер экстремума ( 0 - текущий) | //| dp - ExtDepth | //| dv - ExtDeviation | //| bc - ExtBackstep | //+----------------------------------------------------------------------------+ double GetExtremumZZPrice(string sym="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) { if (sym=="") sym=Symbol(); double zz; int i, k=iBars(sym, tf), ke=0; for (i=1; i<k; i++) { zz=iCustom(sym, tf, "ZigZag", dp, dv, bc, 0, i); if (zz!=0) { ke++; if (ke>ne) return(zz); } } Print("GetExtremumZZPrice(): Экстремум ЗигЗага номер ",ne," не найден"); return(0); }
Похожая функция, но возвращающая номер бара
//+----------------------------------------------------------------------------+ //| Возвращает номер бара экстремума ЗигЗага по его номеру. | //| Параметры: | //| sym - наименование инструмента ("" - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| ne - номер экстремума ( 0 - текущий) | //| dp - ExtDepth | //| dv - ExtDeviation | //| bc - ExtBackstep | //+----------------------------------------------------------------------------+ int GetExtremumZZBar(string sym="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) { if (sym=="") sym=Symbol(); double zz; int i, k=iBars(sym, tf), ke=0; for (i=1; i<k; i++) { zz=iCustom(sym, tf, "ZigZag", dp, dv, bc, 0, i); if (zz!=0) { ke++; if (ke>ne) return(i); } } Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден"); return(0); }
ФЕНКС ГРОМАДНЫЙ!!!!
День добрый. Подскажите пожалуйста как получить текстовый файл
со значениями цен экстремумомов Зиг-Зага за заданый период
истории? Зиг-заг во вложении, не перерисовывает экстремумы,
размерность задается в процентах от цены или пунктах.
Файлы:
Oleg_UA:
День добрый. Подскажите пожалуйста как получить текстовый файл со значениями цен экстремумомов Зиг-Зага за заданый период истории? Зиг-заг во вложении, не перерисовывает экстремумы, размерность задается в процентах от цены или пунктах.
День добрый. Подскажите пожалуйста как получить текстовый файл со значениями цен экстремумомов Зиг-Зага за заданый период истории? Зиг-заг во вложении, не перерисовывает экстремумы, размерность задается в процентах от цены или пунктах.
Это как это не перерисовывает? Хоть это и третья версия зигзага Алекса, но на тестере экстремумы скачут, как и раньше.
Если цена изменится на величину заданной размерности, то экстремум уже не куда не денется, а так скачут. А все таки как получить что-то вроде таблички с колонками "дата - время" "цена", ручками долго получается.....
KimIV:
Похожая функция, но возвращающая номер бара
//+----------------------------------------------------------------------------+ //| Возвращает номер бара экстремума ЗигЗага по его номеру. | //| Параметры: | //| sym - наименование инструмента ("" - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| ne - номер экстремума ( 0 - текущий) | //| dp - ExtDepth | //| dv - ExtDeviation | //| bc - ExtBackstep | //+----------------------------------------------------------------------------+ int GetExtremumZZBar(string sym="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) { if (sym=="") sym=Symbol(); double zz; int i, k=iBars(sym, tf), ke=0; for (i=1; i<k; i++) { zz=iCustom(sym, tf, "ZigZag", dp, dv, bc, 0, i); if (zz!=0) { ke++; if (ke>ne) return(i); } } Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден"); return(0); }
Хочу проверить работоспособность этой функции, делаю советника, в котором выводится комментарий со значением этой функции, а в ошибках пишется 'GetExtremumZZBar' - variable not defined . Сам код:
int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- Comment("бар зигзага = ",GetExtremumZZBar); //Просто проверяю работоспособность функции //---- return(0); } //+------------------------------------------------------------------+ int GetExtremumZZBar(string sym="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) { if (sym=="") sym=Symbol(); double zz; int i, k=iBars(sym, tf), ke=0; for (i=1; i<k; i++) { zz=iCustom(sym, tf, "ZigZag", dp, dv, bc, 0, i); if (zz!=0) { ke++; if (ke>ne) return(i); } } Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден"); return(0); }Функция хорошая, если переменная i=0, значит появился новый экстремум зиг зага. Я так понимаю. Но хотелось проверить, чтоб наверняка знать, а тут ошибка. Навернякак какая-то детская ошибка. Но не ругайтесь сильно, я ведь только учусь:) Медленно, но всё таки.
Climber:
Функция хорошая, если переменная i=0, значит появился новый экстремум зиг зага. Я так понимаю. Но хотелось проверить, чтоб наверняка знать, а тут ошибка. Навернякак какая-то детская ошибка. Но не ругайтесь сильно, я ведь только учусь:) Медленно, но всё таки.
неправильный вызов функции
Функция хорошая, если переменная i=0, значит появился новый экстремум зиг зага. Я так понимаю. Но хотелось проверить, чтоб наверняка знать, а тут ошибка. Навернякак какая-то детская ошибка. Но не ругайтесь сильно, я ведь только учусь:) Медленно, но всё таки.
Одно время забросил использование зигзагов, но теперь опять вернулся. Всё-таки что тут не так в вызове функции? Раздел про вызов функции изучил, вроде бы делаю всё как надо, а ошибка одна выдаётся. Как всё-таки правильно это сделать?
int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- int GetExtremumZZBar (string sym="EURUSD", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3); Comment("бар зигзага = ", GetExtremumZZBar()); //Просто проверяю работоспособность функции //---- return(0); } //+------------------------------------------------------------------+ int GetExtremumZZBar(string sym="EURUSD", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) { if (sym=="") sym=Symbol(); double zz; int i, k=iBars(sym, tf), ke=0; for (i=1; i<k; i++) { zz=iCustom(sym, tf, "ZigZag", dp, dv, bc, 0, i); if (zz!=0) { ke++; if (ke>ne) return(i); } } Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден"); return(0); }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь