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

 
ANDREY:

А подскажите еще пожалуйста , как сохранить в желтую переменную голубое значение с точностью до 5 знака, если тестирование происходит на минутном графике

Спасибо

А чему равно Lou?

if (Bid - iLow( NULL ,PERIOD_H4,1)>=0.0030||Bid - iLow( NULL ,PERIOD_H1,1)>=0.0030||Bid - iLow( NULL ,PERIOD_M30,1)>=0.0030)

это выражение возвращает только "true" или "false"

 
MakarFX:

А чему равно Lou?

это выражение возвращает только "true" или "false"

А как узнать после открытия ордера, какое выражение из 3 из if оказалось истинным?
Спасибо

 
ANDREY:

А как узнать после открытия ордера, какое выражение из 3 из if оказалось истинным?
Спасибо

В такой интерпретации никак...надо разделить

if (Bid - iLow( NULL ,PERIOD_H4,1)>=0.0030)
if (Bid - iLow( NULL ,PERIOD_H1,1)>=0.0030)
if (Bid - iLow( NULL ,PERIOD_M30,1)>=0.0030)

я не могу понять смысла...
 
MakarFX:

В такой интерпретации никак...надо разделить

я не могу понять смысла...

У меня минутный график и по одному из выражений в условии открылся ордер. Как понять по какому выражению именно открылся. Например если по первому выражению, то я , например выставлю отложку на покупку с одними параметрами, если по второму выражению, то я выставлю отложку на покупку с другими параметрами, если по третьему выражению, то выставлю отложку на продажу.

 
ANDREY:

У меня минутный график и по одному из выражений в условии открылся ордер. Как понять по какому выражению именно открылся. Например если по первому выражению, то я , например выставлю отложку на покупку с одними параметрами, если по второму выражению, то я выставлю отложку на покупку с другими параметрами, если по третьему выражению, то выставлю отложку на продажу.

1) Каждые 4 часа у тебя(при появлении нового лоу) будут выполнятся все три условия

2) если ты видишь в этом смысл, раздели

if (Bid - iLow( NULL ,PERIOD_H4,1)>=0.0030)
.....
else
if (Bid - iLow( NULL ,PERIOD_H1,1)>=0.0030)
.....
else
if (Bid - iLow( NULL ,PERIOD_M30,1)>=0.0030)
.....
 
MakarFX:

Лови

В подходе к написанию кода есть чему поучиться. За это отдельная благодарность. Только у Вас всё же горизонтальная  привязка объекта текст по времени к последнему бару получается (DoTime = TimeCurrent()+(Period()*60*7). В результате  имеем эффект смещения текста, при смещении графика (скрины). Я как раз хочу от этого уйти и сделать привязку по оси Х к правому краю экрана, скажем в 20 пикселей. Т.е. чтобы это расстояние оставалось неизменным, как при движении линии вверх/вниз, так и при смещении графика. Пока не получилось. Собственно нужна лишь строчка кода с указанием положения текста. Остальное я понимаю.

 
Oleksandr Nozemtsev:

В подходе к написанию кода есть чему поучиться. За это отдельная благодарность. Только у Вас всё же горизонтальная  привязка объекта текст по времени к последнему бару получается (DoTime = TimeCurrent()+(Period()*60*7). В результате  имеем эффект смещения текста, при смещении графика (скрины). Я как раз хочу от этого уйти и сделать привязку по оси Х к правому краю экрана, скажем в 20 пикселей. Т.е. чтобы это расстояние оставалось неизменным, как при движении линии вверх/вниз, так и при смещении графика. Пока не получилось. Собственно нужна лишь строчка кода с указанием положения текста. Остальное я понимаю.

Обратите внимание на перевод времени и цены в координаты XY в пикселях

bool  ChartTimePriceToXY(
   long           chart_id,     // идентификатор графика
   int            sub_window,   // номер подокна
   datetime       time,         // время на графике
   double         price,        // цена на графике
   int&           x,            // координата X для времени на графике
   int&           y             // координата Y для цены на графике
   );

Читайте цену линии, преобразуйте её в пиксели и назначайте координаты объекту "Текстовая метка" по оси Y, а координата оси Х останется неизменной.

 
MakarFX:

1) Каждые 4 часа у тебя(при появлении нового лоу) будут выполнятся все три условия

2) если ты видишь в этом смысл, раздели

Спасибо за подсказку.

Если выражения не разделать, а поместить их в одном операторе if()через || , то выполняться будет только 1 условие - первое слева направо  , которое будет истинным....если я не ошибаюсь. 

Но как я понял, при таком формате невозможно будет узнать в программе какое конкретно выражение было истинным. 
 
Oleksandr Nozemtsev:
Доброго дня! Подскажите, как в mql4 привязать текст к линии, чтобы при перемещении последней надпись также смещалась,

Line And Text Indicator Ver 1

Индикатор перемещает текст вслед за линией. Вставьте название линии во входном параметре.

Файлы:
 
Alexey Viktorov:

Обратите внимание на перевод времени и цены в координаты XY в пикселях

Точно!

Причина обращения: