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

 
Artyom Trishkin:
Строить вместо трендовой линии не граф.объект, а виртуальную линию. Соответственно, и получать значение не посредством ObjectGetValueByShift("1",bar_seek), а уравнением прямой.
спасибо!-буду пробовать)
 
Nikolay Gaylis:
спасибо!-буду пробовать)
Не за что же...
 
Nikolay Gaylis:
спасибо!-буду пробовать)

Очень давно, ещё на mql4.com писал статью. В ней как раз расписана подробно работа с виртуальными трендовыми линиями и поиск нужного значения цены на нужном баре этих виртуальных линий.

В кодобазе есть индикатор по мотивам этой статьи. В нём я уже переработал код под новый mql4.

 
Artyom Trishkin:
Наверное так и было задумано. Правда такая проверка будет брать в расчёт не только отложенные ордера, но и все операции с торговым счётом - пополнение баланса, снятие, бонусы и проч. действия со счётом.
Nikolay Gaylis:

Это условие позволяет работать сове только сотложенными ордерами.Так и было задумано?

    if(OrderSymbol() ==Symbol() &&OrderType()<2)
          continue;
Свойства ордеров

Тип операций для функции OrderSend(). Mожет быть любым из следующих величин:

Константа
 Значение
 Описание
 
OP_BUY
 0
 Покупка
 
OP_SELL
 1
 Продажа
 
OP_BUYLIMIT
 2
 Отложенный ордер BUY LIMIT
 
OP_SELLLIMIT
 3
 Отложенный ордер SELL LIMIT
 
OP_BUYSTOP
 4
 Отложенный ордер BUY STOP
 
OP_SELLSTOP
 5
 Отложенный ордер SELL STOP


Расчет на то что отложеные ордера восприниматься не будут совсем до тех пор пока они не преобразуются в рыночные ордера только по текущему инструменту. После обработки последнего рыночного ордера (если их много) по текущему инструменту советник удаляется с графика (сейчас удаляется сразу после срабатывания первого же ордера при этом обращает внимания что если 1 ордер по текущему инструменту а другой по другому он берет это во внимание) То есть что надо понять

 почему это так происходит и где поставить ретурн чтоб после закрытия очередного он отправлял функцию сразу к условиям после count++ и только после срабатывания последнего запускал playsound. В финале я поставил Orderselect() для определения последнего (если ордер закрыт и мы не можем выбрать ордер нечего делать на этом графике)

 
trader781:
Свойства ордеров

...


Расчет на то что отложеные ордера восприниматься не будут совсем до тех пор пока они не преобразуются в рыночные ордера только по текущему инструменту. После обработки последнего рыночного ордера (если их много) по текущему инструменту советник удаляется с графика (сейчас удаляется сразу после срабатывания первого же ордера при этом обращает внимания что если 1 ордер по текущему инструменту а другой по другому он берет это во внимание) То есть что надо понять

 почему это так происходит и где поставить ретурн чтоб после закрытия очередного он отправлял функцию сразу к условиям после count++ и только после срабатывания последнего запускал playsound. В финале я поставил Orderselect() для определения последнего (если ордер закрыт и мы не можем выбрать ордер нечего делать на этом графике)

if(OrderSymbol() ==Symbol() &&OrderType()<2)
          continue;

Этот код пропускает в цикле все рыночные позиции.

Что там дальше - мне не известно, но если дальше идёт обработка остальных типов ордеров - тех, что 2 и выше, то такая обработка будет брать в расчёт все типы отложенных ордеров и ордера с типом 6 - действия со счётом.

Где код со всем циклом?

 
Artyom Trishkin:
if(OrderSymbol() ==Symbol() &&OrderType()<2)
          continue;


Где код со всем циклом?

Пост 236

данный участок должен пропускать только рыночные по текущему инструменту 

 
trader781:

Пост 236

данный участок должен пропускать только рыночные по текущему инструменту 

Этот цикл у вас вообще тупо пустой. В нём вообще нет никакого смысла - лишь тормоза при наличии большого количества ордеров на счёте.

И приведите свой код в порядок - это же просто нечитаемый хлам, а не код.

А зачем вам двойные фигурные скобки в OnTick() ? Какой в этом сакральный смысл?

 
Artyom Trishkin:

И приведите свой код в порядок - это же просто нечитаемый хлам, а не код.

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

 
trader781:
Artyom Trishkin:

И приведите свой код в порядок - это же просто нечитаемый хлам, а не код.

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

Вы наверное умеете удалять пустые строки из кода? На это нужно какое-либо специальное умение разве?

Вообще есть комбинация клавиш Ctrl+"," - стилизатор. Хоть и плохенький, но всё же. А затем можно поудалять пустые строки из кода дабы не давать людям разглядывать "портянку". Это же простейшая культура общения.

Вот после того, как причешете свой код, он и для вас станет более читабелен, не говоря уже о других, которым нужно ещё и логику вашу понять. Там и видны будут все косяки.

 
Artyom Trishkin:

Вы наверное умеете удалять пустые строки из кода? На это нужно какое-либо специальное умение разве?

Вообще есть комбинация клавиш Ctrl+"," - стилизатор. Хоть и плохенький, но всё же. А затем можно поудалять пустые строки из кода дабы не давать людям разглядывать "портянку". Это же простейшая культура общения.

Вот после того, как причешете свой код, он и для вас станет более читабелен, не говоря уже о других, которым нужно ещё и логику вашу понять. Там и видны будут все косяки.

Вот после того, как причешете свой код, он и для вас станет более читабелен, не говоря уже о других, которым нужно ещё и логику вашу понять. Там и видны будут все косяки.

ок, так лучше?
Файлы:
Причина обращения: