Спрашивайте! - страница 53

 

Будильник

Как написать будильник, чтобы он срабатывал только 1 раз, а не снова и снова?

Спасибо за помощь.

Jo

 

Многие функции находятся здесь https://www.mql5.com/en/forum/174329

А поток alert_once здесь https://www.mql5.com/en/forum/172885

 

Пожалуйста, проверьте это утверждение - Нужно подтверждение Пожалуйста!

iLow(NULL,0,Lowest(NULL,0,MODE_LOW,1,4)<=0)

Говорит ли это о том, что Lowest моего индикатора (4 бара назад) должен быть меньше или равен 0? Если нет, то как это должно быть указано?

Dave Заранее спасибо!
 
iscuba11:
iLow(NULL,0,Lowest(NULL,0,MODE_LOW,1,4)<=0)

Говорит ли это о том, что Lowest моего индикатора (4 бара назад) должен быть меньше или равен 0? Если нет, то как это должно быть указано?

Dave Заранее спасибо!

это не правильно, вы можете посмотреть пост 516 на странице 52.

способ, которым вы рассчитываете наименьшее значение индикатора, не является правильным

 
asmdev:
это не правильно, вы можете посмотреть пост 516 на странице 52, способ вычисления минимума индикатора не верен
double lowestFG=9999, highestFG=-9999;//FG short for Forex_Grail, the name of my indicator histogram file.

int currentBar=0;

int endBar=4;

for(currentBar=0;currentBar<endBar; currentBar++)

lowestFG=MathMin(lowestFG, iForex_Grail(Symbol(),0,17,PRICE_CLOSE,currentBar)); //0 = anytime, 17 = maperiod of indicator.

if lowestFG <= 0 then go to next statement
Правильно ли это читается?? Dave

Когда я вставляю это в программу советника, он говорит, что iForex_Grail - функция не определена(?). Forex_Grail - это название моего пользовательского индикатора.

Может быть, это должно быть указано: lowestFG=MathMin(lowestFG, iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,currentBar)); ??

 

Нашел свою ошибку!

Дэйв

 

Слишком много десятичных знаков!!! - Пожалуйста, посоветуйте.

Как мне ограничить количество знаков после запятой, отображаемых на графике в комментариях. Сейчас он показывает результат переменной как .00347892, а я хочу, чтобы он показывал только .0035 (с округлением до следующего числа)?

Благодарю за помощь! Дэйв
 
double lowestFG=9999, highestFG=-9999;

int currentBar=0;

int lastBar=4;

for(currentBar=0;currentBar<lastBar; currentBar++)

lowestFG=MathMin(lowestFG, iCustom(NULL,0,"Forex-Grail Trade Indicator",period,PRICE_CLOSE,currentBar));

Print ("Low =",lowestFG);

Он считывает данные из буфера ' 0 ' индикатора[0.00 - положительный](работает ОК!). Как мне заставить его читать из буфера' 1' индикатора [от 0.00 до отрицательного]?

Определение утверждения: double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift) - Нигде не запрашивается номер буфера??????????????. ПОЖАЛУЙСТА, ПОМОГИТЕ!!!! Похоже, что он заблокирован в буфере ' 0 '.

Пожалуйста, просветите меня!!!

Dave

 

iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)

'mode' - это ваш буфер

iCustom( ... ...параметры индикатора здесь ... , 0, currentBar) - будет считываться из 0 буфера

iCustom( ... ...параметры индикатора здесь ... , 1, currentBar) - будет считываться из 1-го буфера

немного информации здесь http://docs.mql4.com/indicators/iCustom

lowestFG=9999 должно быть нормально, но для уверенности можно написать

lowestFG = iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,1,currentBar) вместо

Функция DoubleToStr(http://docs.mql4.com/convert/DoubleToStr) ограничивает количество знаков после запятой, в основном используется для получения красивого вида # из функции Print или Alert. Функция не округляет, а просто отсекает ненужные десятичные знаки.

Если вы используете ваше двойное # для сравнения с другим #, у вас все равно останется куча # после запятой.

Используйте NormalizeDouble(http://docs.mql4.com/convert/NormalizeDouble) для постоянного ограничения количества знаков после запятой.

согласно вашему iCustom ваш индикатор имеет 2 параметра период и цена(PRICE_CLOSE), проверьте, правильно ли это.

 
iscuba11:
Это читает из буфера ' 0 ' индикатора[0.00 к положительному](Работает OK!).

Это совпадение, что это работает нормально, Если ваш индикатор FG имеет 2 параметра (период и цена), вам нужно добавить еще 1 параметр в iCustom, как в предыдущем сообщении, если ваш индикатор FG имеет 1 параметр (период), то замените PRICE_CLOSE на буфер #(0 или 1 или 2 или ...).