Всем доброго дня!
На MT4 использую функцию функцию:
string symbol, // символ
int timeframe, // период
int shift // сдвиг
);
есть условие в скрипте:
Это условие сравнивает High баров в позициях 0 и 1, на том периоде на котором открыт график, с High текущего дня
Дело в том, что это условие иногда не срабатывает (может быть это связано с точностью цифр которое возвращает iHigh?)
PS: м.б. есть другая функция?
Попробуйте заменить везде вот так
***
Всем доброго дня!
На MT4 использую функцию функцию:
string symbol, // символ
int timeframe, // период
int shift // сдвиг
);
есть условие в скрипте:
Это условие сравнивает High баров в позициях 0 и 1, на том периоде на котором открыт график, с High текущего дня
Дело в том, что это условие иногда не срабатывает (может быть это связано с точностью цифр которое возвращает iHigh?)
PS: м.б. есть другая функция?
double DHigh = iHigh(NULL,PERIOD_D1,0);
if( ( MathAbs(iHigh(NULL,NULL,1)-DHigh)<err ) || ( MathAbs(iHigh(NULL,NULL,0)-DHigh)<err ) )
void OnStart()
{
// if((iHigh(NULL,NULL,1)==iHigh(NULL,PERIOD_D1,0)) || (iHigh(NULL,NULL,0)==iHigh(NULL,PERIOD_D1,0))) // было
if((CP(iHigh(NULL,NULL,1))==iHigh(NULL,PERIOD_D1,0)) || (CP(iHigh(NULL,NULL,0))==iHigh(NULL,PERIOD_D1,0))) // стало
// .......
}
- голосов: 9
- 2016.08.25
- fxsaber
- www.mql5.com
Всем доброго дня!
На MT4 использую функцию функцию:
string symbol, // символ
int timeframe, // период
int shift // сдвиг
);
есть условие в скрипте:
Это условие сравнивает High баров в позициях 0 и 1, на том периоде на котором открыт график, с High текущего дня
Дело в том, что это условие иногда не срабатывает (может быть это связано с точностью цифр которое возвращает iHigh?)
PS: м.б. есть другая функция?
Используй CopyHigh()
string symbol_name, // имя символа
ENUM_TIMEFRAMES timeframe, // период
int start_pos, // откуда начнем
int count, // сколько копируем
double high_array[] // массив для копирования максимальных цен
);
Хотя абсолютно не понятно как не срабатывает.
Какой смысл в первой половине условия? Ведь если вторая половина условия проверялась на каждом тике, во время жизни нулевого бара, то когда этот бар станет первым, его high уже не изменится. А если образуется новый high дня то он обязательно будет равен high текущего периода.
- docs.mql4.com
double CurrHi_1=NormalizeDouble(iHigh(NULL,NULL,1),4);
double D1Hi_0=NormalizeDouble(iHigh(NULL,PERIOD_D1,0),4);
double D1Hi_1=NormalizeDouble(iHigh(NULL,PERIOD_D1,1),4);
if((CurrHi_1==D1Hi_1) || (CurrHi_0==D1Hi_0))
Спасибо Большое!
Буду тестить.
Спасибо Большое!
Буду тестить.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем доброго дня!
На MT4 использую функцию функцию:
string symbol, // символ
int timeframe, // период
int shift // сдвиг
);
есть условие в скрипте:
Это условие сравнивает High баров в позициях 0 и 1, на том периоде на котором открыт график, с High текущего дня
Дело в том, что это условие иногда не срабатывает (может быть это связано с точностью цифр которое возвращает iHigh?)
PS: м.б. есть другая функция?