voldemar227 пишет:
цитата: |
Интересует кусок кода который ресует квадрат в правой части экрана , по типу квадрата в афтографе 4. С помощью времени и цены. Цель держу создать квадратики при помещении в которые значка галочка включалась какая либо функция .... Помогите пожалуста как это сделать .... |
|
Для такой цели лучше всё же не использовать объекты, в том числе, прямоугольник, позиционируемые в координатах цена-время. Иначе при любом изменении графика координаты всех этих объектов придётся пересчитывать и сами объекты перерисовывать. Это не простой и не эффективный путь.
Лучше применить другой подход - использовать текстовую метку. Это - единственный объект, позиционируемый в MQL 4 в пикселях от выбранного угла графика. Для установки, анализа и управления объектом используйте обычные функции:
http://docs.mql4.com/ru/objects/ObjectCreate http://docs.mql4.com/ru/constants/objects http://docs.mql4.com/ru/objects/ObjectSet http://docs.mql4.com/ru/objects/ObjectGet Управляющее воздействие удобно реализовать так, как это сделано в окне индикатора AG4 - значок внизу - означает одно, вверху - другое. Для отображения нужного текста в этом объекте используйте
http://docs.mql4.com/ru/objects/ObjectSetText Есть одна особенность. Обычная прикладная программа запускается по тику. Это значит, что между тиками ничего происходить не будет даже в том случае, если объект сдвинут и в коде анализируются его координаты. В AG4 для снижения этих пауз используется зацикленный эксперт. В зацикленной программе есть свои особенности, например, необходимость правильно прервать цикл, например, в случае, если пользователь переключает таймфрейм.
Общий порядок таков: эксперт постоянно опрашивает и обрабатывает координаты объекта OBJ_LABEL с целью выяснить: а не сдвинул ли с места пользователь этот объект (находящийся, например, внизу)? Если координаты не изменялись, то ничего не делать. Если же координаты изменились, то первое, что нужно сделать, это - удалить объект. Его не удастся удалить (практически, при исполнении ф-ии удаления объект удалён не будет), пока его тянет пользователь мышкой. В такой ситуации тоже ничего не делать. Но как только удалось удалить объект, значит пользователь дотащил объект до желаемого места и отпустил кнопку мыши. Теперь нужно:
1) восстановить объект в новых координатах (вверху)
2) запустить на исполнение требуемый алгоритм (интересующую Вас ф-ию)
Предоставить Вам готовый кусок кода затруднительно, т.к. описанный здесь общий подход реализован в виде кода, размазанного по всей программе. Отдать Вам Весь исходный код коммерческого продукта, конечно. мы не можем. Но интересующие Вас фрагменты, построенные по указанному принципу используются и в AG1, исходный код которого открыто выложен здесь:
http://autograf.dp.ua/Pages/4/411.htm Посмотрите также описание ф-ий граф. объектов в учебнике:
http://book.mql4.com/ru/functions/objects PS ПисАть для Вас готовый код вряд ли кто возьмётся, но если Вы будете задавать конкретные вопросы по представленному Вами коду, то гарантированно получите консультацию.