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

 
Aleksey Vyazmikin:

А зачем это вообще нужно, в плане промежуточные точки между барами - чисто для эстетики?

промежуточные не нужны. только точки по барам.

Aleksey Vyazmikin:

Я бы создал буфер (для верха и низа канала) на каждый бар, в который помещал бы экстремумы от всех окружностей на баре, окно там для проверки, судя по рисунку максимум 10 баров, потом уже строил бы этот индикатор, понятно, что последние бары могут перерисовываться.

а как эти экстремумы от всех окружностей на баре определять?

 
А можно пустить линию снизу вверх, и там, где она наткнется на первый попавшийся объект - зафиксировать точку?

 
multiplicator:

промежуточные не нужны. только точки по барам.

а как эти экстремумы от всех окружностей на баре определять?

Нужно круги перевести в пиксели, видимо... а дальше уже дело техники.

Можно конечно извратиться, и перебирать все объекты на баре в поисках максимальной\минимальной точки, почему бы и нет.

 
multiplicator:

А теперь мне надо по верхней грани эллипсов и по нижней провести 2 красных линии (как я это изобразил на рисунке).



Кто-то знает как это можно сделать?

Изучайте CCanvas

 
Aleksey Vyazmikin:

Нужно круги перевести в пиксели

это возможно?

Aleksey Vyazmikin:

Можно конечно извратиться, и перебирать все объекты на баре в поисках максимальной\минимальной точки, почему бы и нет.

а можно перебрать все объекты, которые попадают на этот бар?
тут такое дело, что круги соседних баров могут заходить на этот бар, и они могут формировать максимумы/минимумы.



наверное придется, как тут рекомендовали, строить круги из маленьких линий. тогда будут все точки.
 
Artyom Trishkin:

Изучайте CCanvas

там есть возможность определить координаты пересечения линии с графическим объектом? (как здесь )
 
multiplicator:

это возможно?

а можно перебрать все объекты, которые попадают на этот бар?
тут такое дело, что круги соседних баров могут заходить на этот бар, и они могут формировать максимумы/минимумы.



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

Перевести в пиксели возможно, не вижу препятствий, правда сам этого не делал.

Я вот подумал, у Вас же ширина всегда кратна времени баров соседних, тогда первоначально предложенный мной вариант должен работать. Подумайте о его реализации, может я что-то не понимаю, но вроде все данные есть, ведь круги Вы сами строите. Возможно надо будет считать через пропорцию, представив время, как долю радиуса.

 

В классе CTrade есть два метода PositionOpen и Buy, которые друг друга дублируют, но ни в одном из них нет настройки проскальзывания.

Для чего так сделано? Насколько я понимаю этот параметр можно использовать только через OrderSend, или есть более простой вариант?

 
psyman:

В классе CTrade есть два метода PositionOpen и Buy, которые друг друга дублируют, но ни в одном из них нет настройки проскальзывания.

Для чего так сделано? Насколько я понимаю этот параметр можно использовать только через OrderSend, или есть более простой вариант?

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetDeviationInPoints
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetDeviationInPoints
  • www.mql5.com
Стандартная библиотека / Торговые классы / CTrade / SetDeviationInPoints - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
psyman:

В классе CTrade есть два метода PositionOpen и Buy, которые друг друга дублируют, но ни в одном из них нет настройки проскальзывания.

Для чего так сделано? Насколько я понимаю этот параметр можно использовать только через OrderSend, или есть более простой вариант?

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

Для чего так сделано ... Ну тут можно гадать по-всякому. Например - вы объявляете множество экземпляров CTrade - для каждого символа свой экземпляр. Естественно, может так статься, что для каждого символа нужно будет устанавливать свой размер допустимого проскальзывания - вот после создания экземпляра, вы и установите нужный размер проскальзывания каждому символу свой. Этого в большинстве случаев будет достаточно.

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