Как распознать STP/ECN с запретом на выставление SL & TP при открытии ордера?

 

Всем привет!

Сегодня столкнулся с проблемой, о которой уже и думать забыл. Ветераны MQL4 помнят, пару лет назад на STP и ECN счетах нельзя было открыть рыночный ордер с задаными СЛ и ТП, они должны были стоять по нулям. И только после открытия ордера можно было его модифицировать, установив эти параметры. В принципе, тут смысл ясен, если сделка выводится на межбанк/ECN площадку, заранее неизвестно, по какой цене она исполнится. Поэтому нельзя заранее гарантировать, что СЛ и ТП могут быть установлены.

Потом, насколько я понимаю, MQ внесли изменения в код серверной части и эта особенность стала необязательной, большинство ECN ДЦ стали разрешать ставить стопы/тейки при выполнении OrderSend. А вот крупнейший ДЦ на букву А так и работает по старой схеме.

Вопрос - раньше нельзя было определить программно, какой ДЦ разрешает, а какой запрещает вышесказанное. Может, сейчас появились новые возможности, а я не знаю? Если нет, могли бы MQ ввести функцию для распознавания типа ДЦ?

Сейчас есть только один путь - тупо послать ордер с СЛ и ТП и посмотреть, исполниться он или нет. Это не всегда удобно.

 
VDev:

Всем привет!

Сегодня столкнулся с проблемой, о которой уже и думать забыл. Ветераны MQL4 помнят, пару лет назад на STP и ECN счетах нельзя было открыть рыночный ордер с задаными СЛ и ТП, они должны были стоять по нулям. И только после открытия ордера можно было его модифицировать, установив эти параметры. В принципе, тут смысл ясен, если сделка выводится на межбанк/ECN площадку, заранее неизвестно, по какой цене она исполнится. Поэтому нельзя заранее гарантировать, что СЛ и ТП могут быть установлены.

Потом, насколько я понимаю, MQ внесли изменения в код серверной части и эта особенность стала необязательной, большинство ECN ДЦ стали разрешать ставить стопы/тейки при выполнении OrderSend. А вот крупнейший ДЦ на букву А так и работает по старой схеме.

Вопрос - раньше нельзя было определить программно, какой ДЦ разрешает, а какой запрещает вышесказанное. Может, сейчас появились новые возможности, а я не знаю? Если нет, могли бы MQ ввести функцию для распознавания типа ДЦ?

Сейчас есть только один путь - тупо послать ордер с СЛ и ТП и посмотреть, исполниться он или нет. Это не всегда удобно.

Для меня это не проблема, я например никогда не выставляю ордер с предустановленными тейком и стопом, я модифицирую ордер после его открытия...

как вариант можно позвонить в тех поддержку ДЦ и задать вопрос...

 
VOLDEMAR:

Для меня это не проблема, я например никогда не выставляю ордер с предустановленными тейком и стопом, я модифицирую ордер после его открытия...

как вариант можно позвонить в тех поддержку ДЦ и задать вопрос...

Да, я раньше так и делал, но это увеличивает полное время открытия ордера, а оно и так черепашье. Вчера говорил с людьми, торгуют на бирже в штатах, говорят, через FIX выставляют до 1000 поз/сек. А у нас 300 мс на ордер уже счастье ))

Лично мне в ДЦ не надо звонить, я могу ручной ордер попробовать выставить с ненулевыми стопами и тейками. Но, допустим, я продаю робота. Знаете, сколько покупателей вообще знают хотя бы о существовании Instant & Market Execution? Очень мало, а тут такие тонкости.

В функции MarketInfo куча полезной информации, почему бы и эту не добавить?

 
VDev:

Да, я раньше так и делал, но это увеличивает полное время открытия ордера, а оно и так черепашье. Вчера говорил с людьми, торгуют на бирже в штатах, говорят, через FIX выставляют до 1000 поз/сек. А у нас 300 мс на ордер уже счастье ))

Лично мне в ДЦ не надо звонить, я могу ручной ордер попробовать выставить с ненулевыми стопами и тейками. Но, допустим, я продаю робота. Знаете, сколько покупателей вообще знают хотя бы о существовании Instant & Market Execution? Очень мало, а тут такие тонкости.

В функции MarketInfo куча полезной информации, почему бы и эту не добавить?

Алексей, так вроде есть:

https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants

Посмотри там перечисление типа ENUM_SYMBOL_TRADE_EXECUTION.

А что за брокер? Кинь в личку ссылку, спасибо.

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

Да, я раньше так и делал, но это увеличивает полное время открытия ордера, а оно и так черепашье. Вчера говорил с людьми, торгуют на бирже в штатах, говорят, через FIX выставляют до 1000 поз/сек. А у нас 300 мс на ордер уже счастье ))

Лично мне в ДЦ не надо звонить, я могу ручной ордер попробовать выставить с ненулевыми стопами и тейками. Но, допустим, я продаю робота. Знаете, сколько покупателей вообще знают хотя бы о существовании Instant & Market Execution? Очень мало, а тут такие тонкости.

В функции MarketInfo куча полезной информации, почему бы и эту не добавить?

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

Алексей, так вроде есть:

https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants

Посмотри там перечисление типа ENUM_SYMBOL_TRADE_EXECUTION.

А что за брокер? Кинь в личку ссылку, спасибо.

Кинул ДЦ в личку. В перечислении об стопах/тейках ни слова, только актуальные для МТ4 инстант и маркет. 
ENUM_SYMBOL_TRADE_EXECUTION

Идентификатор

Описание

SYMBOL_TRADE_EXECUTION_REQUEST

Торговля по запросу

SYMBOL_TRADE_EXECUTION_INSTANT

Торговля по потоковым ценам

SYMBOL_TRADE_EXECUTION_MARKET

Исполнение ордеров по рынку

SYMBOL_TRADE_EXECUTION_EXCHANGE

Биржевое исполнение

 
VDev:
 В перечислении об стопах/тейках ни слова, только актуальные для МТ4 инстант и маркет. 

//+------------------------------------------------------------------+
//| Функция выводит на печать разрешенные для символа типы ордеров   |
//+------------------------------------------------------------------+
void Check_SYMBOL_ORDER_MODE(string symbol)
  {
//--- получим значение свойства, описывающего разрешенные типы ордеров
   int symbol_order_mode=(int)SymbolInfoInteger(symbol,SYMBOL_ORDER_MODE);
//--- проверка на рыночные ордера (Market Execution)
   if((SYMBOL_ORDER_MARKET&symbol_order_mode)==SYMBOL_ORDER_MARKET)
      Print(symbol+": Рыночные ордера разрешены (Buy и Sell)");
//--- проверка на ордера типа Limit
   if((SYMBOL_ORDER_LIMIT&symbol_order_mode)==SYMBOL_ORDER_LIMIT)
      Print(symbol+": Ордера Buy Limit и Sell Limit разрешены");
//--- проверка на ордера типа Stop
   if((SYMBOL_ORDER_STOP&symbol_order_mode)==SYMBOL_ORDER_STOP)
      Print(symbol+": Ордера Buy Stop и Sell Stop разрешены");
//--- проверка на ордера типа Stop Limit
   if((SYMBOL_ORDER_STOP_LIMIT&symbol_order_mode)==SYMBOL_ORDER_STOP_LIMIT)
      Print(symbol+": Ордера Buy Stop Limit и Sell Stop Limit разрешены");
//--- проверка на возможность установки ордеров Stop Loss
   if((SYMBOL_ORDER_SL&symbol_order_mode)==SYMBOL_ORDER_SL)
      Print(symbol+": Ордера Stop Loss разрешены");
//--- проверка на возможность установки ордеров Take Profit
   if((SYMBOL_ORDER_TP&symbol_order_mode)==SYMBOL_ORDER_TP)
      Print(symbol+": Ордера Take Profit разрешены");
//---
  }
.
 
VOLDEMAR:
В том то и дело что на открытие ордера без стопов и профитов времени нужно меньше, пару миллесекунд выигрываем, а с последующей модификацией я всегда уверен куда быне был установлен советник он отработает правильно...

Увы, это не пара миллисекунд. У меня стоит VPS в Москве, сервера этого ДЦ тоже в Москве, пинг 35 мс!!!!! Из Питера из дома 55 мс. Вообще, если мерять не на глазок, а у меня время в журнал пишется, видим следующее, по этому ДЦ:

08:35:43  Open time, ms = 344
08:35:43  ticket= 612970669
01:27:58  Open time, ms = 140
01:27:58  ticket= 612979247
01:28:07  Open time, ms = 171
01:28:07  ticket= 612979248

А теперь для эксперимента другое ECN ДЦ, серваки в штатах, чистый пинг 130 мс

01:24:37  Open time, ms = 187
01:24:37  ticket= 16548986
01:24:56  Open time, ms = 234
01:24:56  ticket= 16548992
01:26:14  Open time, ms = 343
01:26:14  ticket= 16549014

Это я к тому, что даже ночью, на вялом рынке (смотрим номера ордеров и время), исполнение прыгает в 2 раза. А знаете, что твориться на новостях? Там уже роботу некогда выставлять лишние стопы-тейки, если можно сделать это одним приказом. Вот сегодня особых движух не было, и то за 8 часов робот намолотил 1645 ордеров.

В общем, сухой остаток. Или надо задавать этот параметр в настройках и пусть трейдер сам разбирается, или робот делает тест в начале торговой сессии. Кстати, у меня народ торгует советниками на eBay, говорят, америкосы ненавидят, когда у советника много настроек. Надо, чтобы тупо включил и все само работало. А мы еще говорим, что русские ленивые ))

 
pako:
.

Спасибо, мне надо для МТ4, там это не поддерживается. А так как MQ много раз повторяли, что больше развивать МТ4 не будут, то все...

SYMBOL_EXPIRATION_MODE

Не поддерживается

int

SYMBOL_FILLING_MODE

Не поддерживается

int

SYMBOL_ORDER_MODE

Не поддерживается

int

 
VDev:

Увы, это не пара миллисекунд. У меня стоит VPS в Москве, сервера этого ДЦ тоже в Москве, пинг 35 мс!!!!! Из Питера из дома 55 мс. Вообще, если мерять не на глазок, а у меня время в журнал пишется, видим следующее, по этому ДЦ:

08:35:43  Open time, ms = 344
08:35:43  ticket= 612970669
01:27:58  Open time, ms = 140
01:27:58  ticket= 612979247
01:28:07  Open time, ms = 171
01:28:07  ticket= 612979248

А теперь для эксперимента другое ECN ДЦ, серваки в штатах, чистый пинг 130 мс

01:24:37  Open time, ms = 187
01:24:37  ticket= 16548986
01:24:56  Open time, ms = 234
01:24:56  ticket= 16548992
01:26:14  Open time, ms = 343
01:26:14  ticket= 16549014

Это я к тому, что даже ночью, на вялом рынке (смотрим номера ордеров и время), исполнение прыгает в 2 раза. А знаете, что твориться на новостях? Там уже роботу некогда выставлять лишние стопы-тейки, если можно сделать это одним приказом. Вот сегодня особых движух не было, и то за 8 часов робот намолотил 1645 ордеров.

В общем, сухой остаток. Или надо задавать этот параметр в настройках и пусть трейдер сам разбирается, или робот делает тест в начале торговой сессии. Кстати, у меня народ торгует советниками на eBay, говорят, америкосы ненавидят, когда у советника много настроек. Надо, чтобы тупо включил и все само работало. А мы еще говорим, что русские ленивые ))

Бежать значит надо от такого ДЦ, хотелось бы имя узнать, потому что это может быть по двум причинам

1 дешевые слабые сервера

2 умышленные тормоза

Другого я не вижу...

 
VDev:

Увы, это не пара миллисекунд. У меня стоит VPS в Москве, сервера этого ДЦ тоже в Москве, пинг 35 мс!!!!! Из Питера из дома 55 мс. Вообще, если мерять не на глазок, а у меня время в журнал пишется, видим следующее, по этому ДЦ:

пусть трейдер сам разбирается, или робот делает тест в начале торговой сессии. Кстати, у меня народ торгует советниками на eBay, говорят, америкосы ненавидят, когда у советника много настроек. Надо, чтобы тупо включил и все само работало. А мы еще говорим, что русские ленивые ))

Всё зависит скорей всего от дата - центра .Живу в Москве ,как появилось оптоволокно,сразу провёл ,(сервера брокера в Москве)из дома до Брокера 8 мс пинг ,думал что найду быстрее ,много перепробовал хостеров (VPS,VDS)  искал именно таких у которых сервера расположены в Москве ,Хоть сервера и расположены в Москве у всех пинг до брокера разный от 6 мс до 60мс пинг ,три дня назад нашёл VPS с пингом до Брокера 4мс . Практически везде оплачивал на месяц или пользовался услугой тестовый период . так путём тыка и находится наименьший пинг до брокера .Другого пути для выяснения нет 
Причина обращения: