Можно ли нарисованную на графике линию использовать в программе?

 
Только начинаю разбираться с программированием на MQL4, потому вопрос может быть совершенно дебильным, но все же очень хочется понять, можно ли сделать следующее и если можно, то как: на графике я рисую линию и хочу, чтоб программа генерила ордер на покупку, если цена оказывается ниже значения на моей линии в данный момент времени. Такое сделать возможно?
 

Конечно, возможно, на то язык и сделан.

Если есть опыт кодирования на Си-подобных языках, тогда достаточно открыть несколько кодов индикаторов и советников, поставляемых вместе с терминалом, и немного поэкспериментировать с ними, почаще заглядывая в помощь. Помощь тут вполне внятная. Не без недостатков, конечно, но разобраться в целом почти всегда можно.

Если такого опыта нет, то лучше начинать с нуля.

 

greiny писал(а) >>
Только начинаю разбираться с программированием на MQL4, потому вопрос может быть совершенно дебильным, но все же очень хочется понять, можно ли сделать следующее и если можно, то как: на графике я рисую линию и хочу, чтоб программа генерила ордер на покупку, если цена оказывается ниже значения на моей линии в данный момент времени. Такое сделать возможно?

Вот например один из вариантов подобного советника http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=42 (правда его я не смотрел)

Был еще один совсем древненький, за авторством кажется Rosh'а, даже пользовался им как-то, брал в свое время на форуме Alpari, cейчас что-то не нашел...

 
Mathemat, приведите пожалуйста пример использовани в стандартных индикаторах и советниках статических прямых линий, нарисованных на экране. Я таких просто не знаю, потому не исследовал. С Си-подобными языками у меня проблем не будет, в молодости работал программистом.
 
greiny писал(а) >>
Только начинаю разбираться с программированием на MQL4, потому вопрос может быть совершенно дебильным, но все же очень хочется понять, можно ли сделать следующее и если можно, то как: на графике я рисую линию и хочу, чтоб программа генерила ордер на покупку, если цена оказывается ниже значения на моей линии в данный момент времени. Такое сделать возможно?

Я только так и выезжаю, чтобы файлы не создавать, вот только линии трогать не желательно или со знанием дела )))

 
greiny >>:
Mathemat, приведите пожалуйста пример использовани в стандартных индикаторах и советниках статических прямых линий, нарисованных на экране. Я таких просто не знаю, потому не исследовал. С Си-подобными языками у меня проблем не будет, в молодости работал программистом.

Теперь понял, о чем Вы говорите. Вы ж не сказали, что за линия. Я-то подумал, что это линия какого-нибудь индикатора (машки какой-нибудь, скажем).

Но все равно все просто. Функция

double ObjectGetValueByShift( string name, int shift)

позволяет узнать, какой была бы цена, если бы она находилась точно на линии с именем name и на баре со сдвигом shift. Имя линии можно получить по ее свойствам.

P.S. Надеюсь, со всем остальным, т.е. с оператором условия и функциями открытия позиции, Вы разберетесь сами.

 

1. В терминале рисуем линию и в строке имени указываем короткий идентификатор (например, "buy_line").

2. В советнике делаем поиск по объектам и находим нашу линию по имени.

3. Получаем при помощи ObjectGet значение уровня линии. (OBJPROP_PRICE...)

4. Сравниваем с текущей ценой.

5. Ну и тд.


Если линию двигать не будете, можно один раз просто получить ее значение и больше объект не опрашивать. Это уже дело техники и вкуса.

 
greiny >>:
Только начинаю разбираться с программированием на MQL4, потому вопрос может быть совершенно дебильным, но все же очень хочется понять, можно ли сделать следующее и если можно, то как: на графике я рисую линию и хочу, чтоб программа генерила ордер на покупку, если цена оказывается ниже значения на моей линии в данный момент времени. Такое сделать возможно?
Не так давно Владимир Хлыстов опубликовал в CodeBase индикатор и советник, основанные на использовании линий:
Установка и закрытие ордеров с помощью перемещаемых линий

Индикаторные линии, при пересечении которых выдается сигнал.

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