Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1812

 
Alexander Avksentyev #:

Цена - уровень СЛ 

и далее

сравнивает с разрешенным минимальным  СЛ.

Предполагал, что далее приобретает понятный вид.

Ну раз не правильно, значит неправильно.

Те нормализовать надо было то, что я посчитал а инфо полученное MarketI и так читаемая? Получиться сравнение нормальное.

Да?

Нет

double  NormalizeDouble(
 double  value,      

(Bid - sl_lev)

  // нормализуемое число


  int     digits 

Digits

  // кол-во знаков после запятой
   );

 
Kedrov #:

Привет всем!

Просьба о помощи!

Индикатор common_sr показывает максимум\минимум вчерашнего дня только сегодня, на текущем периоде. Т.е. эти уровни, границы не показываются на вчерашнем дне – только сегодня. И это правильно!

А тот же индикатор, показывая уровни максимума\минимума предыдущей недели, рисует их и на предыдущей неделе. Хотя, по логике, должен рисовать только на текущей неделе.

Попытался как то эти идеи отразить на скрине. Будут вопросы - отвечу.

Подправить как то сможете?

Спасибо большое за помощь!

   
Файлы:
common_sr.mq4  39 kb
 

Alexander Avksentyev #:

Предполагал, что далее приобретает понятный вид.


double price=NormalizeDouble(Bid - sl_lev,Digits);
if(price < MarketInfo(Symbol(),MODE_STOPLEVEL) * Point) return;
 
Tretyakov Rostyslav #:
  

Ростислав!

Большое спасибо за неравнодушие!

И за результат!

Низкий поклон!

Удачи!

 
Tretyakov Rostyslav #:
  

Ростислав!

А это "current" можно на постоянно вставить в код mq4. Чтобы не выставлять необходимый ТФ каждый раз. У меня не получилось.

 
Kedrov #:

Ростислав!

А это "current" можно на постоянно вставить в код mq4. Чтобы не выставлять необходимый ТФ каждый раз. У меня не получилось.

Эту строку в начале кода

input ENUM_TIMEFRAMES Precision=PERIOD_D1; // Precision   PERIOD_H1

замени на 


input ENUM_TIMEFRAMES Precision=PERIOD_CURRENT; // Precision   PERIOD_H1
 
Tretyakov Rostyslav #:

Эту строку в начале кода

замени на 


Спасибо большое, Ростислав!

Все получилось!

Удачи!

 

Заодно расскажите как так МакарФХ стал Ростиславом

Где там хотя-бы созвучие...хоть что-то-там

 
Maxim Kuznetsov #:

Заодно расскажите как так МакарФХ стал Ростиславом

Где там хотя-бы созвучие...хоть что-то-там

Декомпил)

 

Всем привет. Подскажите, пожалуйста:

Пытаюсь вычислить пересечение на стандартном MACD сигнальной линии и гистограммы. Идея в следующем: на каждом новом баре берем две предыдущие свечи и получаем значения индикатора на каждой из них. Если значение MACD на второй свече больше чем значение сигнала, а на первой свече макд уже ниже сигнала и все значение выше нуля - значит есть пересечение вверху и соотвественно, наоборот.

Но, в момент получения значения оно становится каким-то огромным. Причем, только одной - сигнальной линии второй свечи. Может быть 8 в черте какой степени, 4,5, 7 и т.д. При появлении следующего бара, значение сигнальной линии второго по счету бара от нового уже может быть нормально. Все остальные получаются правильные. И в окне данных значение тоже правильное. Не могу понять почему. Что я делаю не так?

PrevMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
PrevSignalMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
CtrlMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_MAIN,2);
CtrlSignalMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_SIGNAL,2);

Сomment(CtrlMACD+" "+CtrlSignalMACD+" "+PrevMACD+" "+PrevSignalMACD);

 Ощущение, что дело в переменной double. Потому что значение в окне данных 0,000081, а получается 8,1....., тоже самое заметил с другим значением - в окне данных 0,000071, а в переменной 7,1..... Но они все определены как double переменные.

Файлы:
Причина обращения: