Ручное закрытие ордеров в тестере - страница 3

 
Igor Makanu:

это не заблуждение

с момента прихода прошлого тика может много, что измениться, может ордер закрыться по тейку/стопу, может пользователь "помогает советнику"

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


тестировать производительность устал уже, но точно знаю, что комбинации OrdersTotal() --> OrderSelect(i,SELECT_BY_POS,MODE_TRADES) 

выполняются очень быстро, видел, да и сам иногда так писал коды советников в которых на одном тике по раза 3-5 пересчет ордеров был, ничего не тупит ни в тестере/оптимизаторе да и на реале нагрузка на процессор вообще отсутствует


т.е. OrdersTotal() --> OrderSelect(i,SELECT_BY_POS,MODE_TRADES)   пишите и вызывайте каждый тик, секреты производительности не в них, а сделать надежный код это Вам позволит 

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

Да и остальные мои советы топикстартеру на его вопрос не отменяют проверку того что надо на каждом тике. А говорил я про другие заблуждения, пересчёт всей истории индикатора самый очевидный косяк встречаетсяв кодо-базе, или вот например - изменение стоп-лосса трейлинг стопом на каждом тике на один пипс? зачем если это не скальпер какой-нить, подождите 2-5 пунктов, потом меняйте, иначе торговые запросы уже начнут сказываться на производительности.

 
Aleksey Mavrin:

Но согласитесь событие OnTradeTransaction использовать где это уместно - все же правильнее?

Вы раздел форума смотрели где этот топик? 


MQL4 и MetaTrader 4 (24807) | Новая тема


в МТ4 нет такого события https://docs.mql4.com/ru/basis/function/events


ЗЫ: в МТ5 есть OnTradeTransaction , но ситуации по которому это событие происходит отследить правильно....имхо "та еще песня", я просто забил на эти премудрости, и для своих тестов/идей в МТ5 пользуюсь библиотекой MT4Orders - ее на 99.99% хватает на проверку всех идей в МТ5

 
Igor Makanu:

Вы раздел форума смотрели где этот топик? 



в МТ4 нет такого события https://docs.mql4.com/ru/basis/function/events


ЗЫ: в МТ5 есть OnTradeTransaction , но ситуации по которому это событие происходит отследить правильно....имхо "та еще песня", я просто забил на эти премудрости, и для своих тестов/идей в МТ5 пользуюсь библиотекой MT4Orders - ее на 99.99% хватает на проверку всех идей в МТ5

наконец то вернулись на землю...

К своему удивлению обнаружил, что OnChartEvent не работает в тестере. Это так или что-то надо дополнительно прописать? 

 

Для мт4 что-то подобное

int OT=0;
void OnTick()
 {
  if(OrdersTotal()!=OT) {
   OnTrade();
   OT=OrdersTotal();
  }
}

void OnTrade()
 {
  ...
 }
 
Vitaly Muzichenko:

Для мт4 что-то подобное

вот это уже - дело! спасибо за подсказку.

 
Igor Makanu:

Вы раздел форума смотрели где этот топик? 

в МТ4 нет такого события https://docs.mql4.com/ru/basis/function/events

ЗЫ: в МТ5 есть OnTradeTransaction , но ситуации по которому это событие происходит отследить правильно....имхо "та еще песня", я просто забил на эти премудрости, и для своих тестов/идей в МТ5 пользуюсь библиотекой MT4Orders - ее на 99.99% хватает на проверку всех идей в МТ5

В начале я писал что для МТ5 а что для МТ4, потом в процессе забыл про раздел, сорри)

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

Но в МТ4 всё проще конечно, как кубики для ребёнка от 3-х, а МТ5  уже конструктор от 10-ти, это да.

MT4Orders
MT4Orders
  • www.mql5.com
Данная библиотека позволяет работать с ордерами в MQL5 (MT5-hedge) точно так же, как в MQL4. Т.е. ордерная языковая система (ОЯС) становится идентичной MQL4. При этом сохраняется возможность параллельно использовать MQL5-ордерную систему. В частности, стандартная MQL5-библиотека будет продолжать полноценно работать. Выбор между ордерными...
 
Vitaly Muzichenko:

Для мт4 что-то подобное

предположу что есть нюанс - при срабатывании отложника OrdersTotal не изменится, при частичном закрытии ордера тоже. Верно?

 
Vitaly Muzichenko:

Для мт4 что-то подобное

аналогично можно проверять и изменение количество линий:

ObjectsTotal(ChartID(),0, OBJ_HLINE)

И только после этого запускать цикл на OrdersTotal() для удаления ордера

 
Vitaly Muzichenko:

Для мт4 что-то подобное

корректный вариант для 4-ки (скорее и 5-ки) : периодически получить полный список ордеров, сравнить с прежним и от результата вызвать OnTradeChanged()

иного нет у нас пути :-)

OnTradeTransaction - это другого поля ягода малина. Это сигнал от сервера, то-ли придёт, то-ли пропущен

 
Maxim Kuznetsov:

OnTradeTransaction - это другого поля ягода малина. Это сигнал от сервера, то-ли придёт, то-ли пропущен

Вроде нет пропусков. Гарантий не дают, но доставляют исправно.

А для тестера вообще без вопросов подойдет.