lowlastfractal объявить на глобальном уровне, а функцию пересчитывать
только при появлении нового бара на D1.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
//+------------------------------------------------------------------+
//| Функция определения нижнего фрактала на дневном таймфрейме |
//+------------------------------------------------------------------+
double fractalLow()
{
double lowlastfractal;
int i;
int nBars=iBars(NULL, rangeTF);
double nLow=iLow(NULL,rangeTF,i); // rangeTF -extern int
int nlowest=0;
// находим нижний фрактал
for (i=1; i<nBars; i++)
{
nlowest=iLowest(NULL,rangeTF, MODE_LOW, i, 1);
if(iLow(NULL,rangeTF,i)<iLow(NULL, rangeTF, i+1) && iLow(NULL, rangeTF, i+2)>iLow(NULL,rangeTF,i+1)
&& iLow(NULL, rangeTF, i)<iLow(NULL, rangeTF, i-1) && iLow(NULL, rangeTF,i-2)>iLow(NULL, rangeTF, i-1))
{
lowlastfractal=iLow(NULL, rangeTF, i);
if(lowlastfractal>iLow(NULL, rangeTF, nlowest))
lowlastfractal=iLow(NULL, rangeTF, nlowest); break;
}
}
return(lowlastfractal);
}
Подскажите, плз, можно как то реализовать так чтоб избежать постоянного перебора данных, что очень много занимает времени???