Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 804
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не подскажете ли, что обозначают в записи
int i,limit=prev_calculated==0 ? rates_total-1 : rates_total-prev_calculated;
"==" , "?" , ": "
?
Спасибо, Igor. Только я не правильно сформулировал что нужно. Индикатор из учебника расчитывается и отрисовывается на заданное количество баров (в данном случае 50) и в separate window. Нужно не от цены открытия, а от первого бара дня чтобы рисовал МА-шку. Но все равно, спасибо.
почитайте SetIndexDrawBegin() - это ограничение отрисовки индикаторного буфера, никогда не пользовался
или в моем примере можно так сделать:
т.е. ограничим расчет индикаторных буферов настройкой BarCount
Не подскажете ли, что обозначают в записи
int i,limit=prev_calculated==0 ? rates_total-1 : rates_total-prev_calculated;
"==" , "?" , ": "
?
https://docs.mql4.com/ru/basis/operators/ternary
я переписал мой пример, в первом варианте не корректно работало бы при переключении ТФ, нужно сбрасывать dayopen и lastday, они описаны с модификатором static
Верните ещё и index в параметре функции, переданном по ссылке
Вернул:
double GetPatt5barsDN()
{
double low3 = 0;
int index = 0;
for(int i=1; i<20; i++)
{
if
((Close[i] > Open[i]) &&
(Close[i+1] > Open[i+1]) &&
(Close[i+2] > Open[i+2]) && //На этой свече нужен Low[i+2]
(Close[i+3] < Open[i+3]) &&
(Close[i+4] < Open[i+4]))
low3 = Low[i+2];
index = i+2;
}
return(low3);
return(index);
}
А дальше что нужно делать?
Вернул:
double GetPatt5barsDN()
{
double low3 = 0;
int index = 0;
for(int i=1; i<20; i++)
{
if
((Close[i] > Open[i]) &&
(Close[i+1] > Open[i+1]) &&
(Close[i+2] > Open[i+2]) && //На этой свече нужен Low[i+2]
(Close[i+3] < Open[i+3]) &&
(Close[i+4] < Open[i+4]))
low3 = Low[i+2];
index = i+2;
}
return(low3);
return(index);
}
А дальше что нужно делать?
Так не возвращают
Как то так
Дальше
double min = Low[GetPatt5barsDN()];
Вернул:
double GetPatt5barsDN()
{
double low3 = 0;
int index = 0;
for(int i=1; i<20; i++)
{
if
((Close[i] > Open[i]) &&
(Close[i+1] > Open[i+1]) &&
(Close[i+2] > Open[i+2]) && //На этой свече нужен Low[i+2]
(Close[i+3] < Open[i+3]) &&
(Close[i+4] < Open[i+4]))
low3 = Low[i+2];
index = i+2;
}
return(low3);
return(index);
}
А дальше что нужно делать?
А где возврат индекса через параметр по ссылке?
И вставляйте пожалуйста правильно код:
Есть ли функция в MQL4 которая может опознавать котировки относительно типа счёта имеется в виду 5-ти знак или 4-ёх знак, какими способами можно определить сколько нолей имеет актив после запятой например EURJPY имеет 2 ноля после запятой, EURUSD имеет 4 ноля после запятой?
https://docs.mql4.com/ru/predefined/digitsvar
А где возврат индекса через параметр по ссылке?
И вставляйте пожалуйста правильно код:
Вроде бы сделал теперь верно:
Но при компилляции выдает одно предупреждение: possible loss of data due to type conversion по строке:
index = GetPatt5barsDN(index);
В заголовке функции (и в самой функции) ошибок нет при компилляции.