ФОРТС. Вопросы по исполнению - страница 98

 
Сегодня два раза небыло ответа сервера :(
 
prostotrader:
Сегодня два раза небыло ответа сервера :(

Снова на открытии рынка? А уточните пож-ста, какие Вы совершали торговые операции.

 
Dennis Kirichenko:

Снова на открытии рынка? А уточните пож-ста, какие Вы совершали торговые операции.

Ответа небыло для устанавливаемых ордеров ALRS и VTBR (оба на продажу)

2018.02.28 10:00:04.782 trader (VTBR-3.18,M1)   ProcessOrders: Билет sell ордера = 84718476 Cост. ордера = ORD_DO_SET
2018.02.28 10:00:05.543 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:00:05.828 trader (VTBR-3.18,M1)   ProcessOrders: Билет sell ордера = 84718476 Cост. ордера = ORD_DO_SET
2018.02.28 10:00:06.824 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:00:07.339 trader (VTBR-3.18,M1)   ProcessOrders: Билет sell ордера = 84718476 Cост. ордера = ORD_DO_SET
2018.02.28 10:00:07.838 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:00:08.351 trader (VTBR-3.18,M1)   ProcessOrders: Билет sell ордера = 84718476 Cост. ордера = ORD_DO_SET
2018.02.28 10:00:08.351 trader (Eu-12.18,M1)    CheckOrders: Задержка ответа сервера. Ожидание продолжается...
2018.02.28 10:00:08.357 trader (TRNF-3.18,M1)   ProcessOrders: Билет sell ордера = 84718472 Cост. ордера = ORD_DO_MODIFY
2018.02.28 10:00:08.850 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:00:08.850 trader (LKOH-6.18,M1)   ProcessOrders: Билет buy ордера = 84718419 Cост. ордера = ORD_DO_MODIFY
2018.02.28 10:00:08.852 trader (ROSN-9.18,M1)   ProcessOrders: Билет buy ордера = 84718414 Cост. ордера = ORD_DO_MODIFY
2018.02.28 10:00:08.852 trader (LKOH-6.18,M1)   ProcessOrders: Билет sell ордера = 84718420 Cост. ордера = ORD_DO_MODIFY
2018.02.28 10:00:08.856 trader (ROSN-9.18,M1)   ProcessOrders: Билет sell ордера = 84718415 Cост. ордера = ORD_DO_CANCEL
2018.02.28 10:00:09.367 trader (TRNF-3.18,M1)   ProcessOrders: Билет sell ордера = 84718472 Cост. ордера = ORD_DO_MODIFY
2018.02.28 10:00:09.367 trader (VTBR-3.18,M1)   ProcessOrders: Билет sell ордера = 84718476 Cост. ордера = ORD_DO_SET
2018.02.28 10:00:09.371 trader (Eu-12.18,M1)    CheckOrders: Задержка ответа сервера. Ожидание продолжается...
2018.02.28 10:00:09.882 trader (ROSN-9.18,M1)   ProcessOrders: Buy ордер в переходном состоянии. Билет = 84718414 Cост. ордера = ORD_DO_MODIFY
2018.02.28 10:00:09.901 trader (ROSN-9.18,M1)   ProcessOrders: Sell ордер в переходном состоянии. Билет = 84718415 Cост. ордера = ORD_DO_CANCEL
2018.02.28 10:00:10.009 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:00:10.011 trader (LKOH-6.18,M1)   ProcessOrders: Билет buy ордера = 84718419 Cост. ордера = ORD_DO_MODIFY
2018.02.28 10:00:10.022 trader (LKOH-6.18,M1)   ProcessOrders: Билет sell ордера = 84718420 Cост. ордера = ORD_DO_MODIFY

Приблизительно через 50 минут, ручками поправил.

2018.02.28 10:54:33.065 trader (VTBR-3.18,M1)   ProcessOrders: Билет sell ордера = 84718476 Cост. ордера = ORD_DO_SET
2018.02.28 10:54:34.077 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:54:34.095 trader (VTBR-3.18,M1)   ProcessOrders: Билет sell ордера = 84718476 Cост. ордера = ORD_DO_SET
2018.02.28 10:54:35.091 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:54:36.115 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:54:37.129 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:54:38.134 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:54:39.150 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:54:40.162 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:54:41.193 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 10:54:42.197 trader (ALRS-3.18,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET
2018.02.28 11:33:40.707 trader (ALRS-3.18,M1)   OnTradeTransaction: Main ордер отменён пользователем (или не успел исполниться). Билет = 84726222
 

Будут меня многие снова хаять, но остаюсь при своём мнении. Да, я эмоционально высказывался выше, прошу простить, если кого задел...

Зайду издалека.

Представьте себе советский магазин перед открытием, пусть в 9:00 утра. Стоит куча народу, толкается перед входом, жаждет дефицита. Какой-нибудь грузчик, который откроет дверь магазина изнутри ровно в 9:00, рискует быть придавленным входящей толпой. Толпа наконец-то запущена в магазин, и в первые минуты в магазине царит суета, если не сказать хаос. Шум, брань. Бывает, какой-нибудь блатной оказывается в первых рядах покупателей. Тут толпа ещё больше раззадоривает себя и шумит...

Так вот. Сейчас трейдер сидит перед монитором, не видит никакой толпы, всё тихо перед открытием "магазина". Чувство суеты и хаоса его, как советского покупателя, не беспокоят. Но это не отменяет ситуации, когда стартует система биржи, и появляется всплеск заявок. Принцип узкого горлышка не пропадает и остаётся в силе.

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

Вопрос. Как вы думаете, брокер не понимает, что страдает мелкий покупатель "магазина"? Думаю, конечно понимает. Мы же коллективно выяснили, что "там" не идиоты. Что делать тогда брокеру? Ну наверное как-то минимизировать недовольство мелкого покупателя. А как именно? Отменить заявку нельзя, тогда мелочь скажет: "Как я, многоуважаемый, пусть и небольшой, трейдер, получил от брокера от ворот поворот?" Наверное можно просто придержать заявки мелочёвки в очереди заявок, пока блатные отоварятся... Ну или принять главные заявки – купить или продать, а модификацию попридержать…

А теперь представьте, что на бирже таких брокеров много: суеты в начале сессии ещё больше, чем в одном советском магазине.

Вот такие мысли.  

 

P.S. Все совпадения в моём тексте случайны и носят иллюстративный характер.

 
prostotrader:
Сегодня два раза небыло ответа сервера :(

А у меня вот даже квик не пускает - с сообщает "Доступ заблокирован администратором".

Всё это проделки администраторов...

 
prostotrader:

Ответа небыло для устанавливаемых ордеров ALRS и VTBR (оба на продажу)

Приблизительно через 50 минут, ручками поправил.

Почему нет понимания, что журнал эксперта ни о чем не говорит? Адекватный же есть вариант

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

ФОРТС. Вопросы по исполнению

fxsaber, 2018.02.26 18:28

Могли бы дозаписывать в файл содержимое всех входящих структур OnTradeTransaction?

Когда обнаружится ситуация, что "ответ не пришел". Посмотрите в файле, был ответ на самом деле или нет. Это очень надежная самопроверка.

потому как в таком случае ошибка исключена.

 
fxsaber:

потому как в таком случае ошибка исключена.

так это событие не гарантировано

 
Комбинатор:

так это событие не гарантировано

Это и будет доказательством, что события не было.

 
fxsaber:

Это и будет доказательством, что события не было.

как доказательством отсутствия может быть негарантированное событие?
 
Комбинатор:
как доказательством отсутствия может быть негарантированное событие?

Дело в том, что ещё в позапрошлом году OnTradeTransaction стало ГАРАНТИРОВАННЫМ! :)

Вот поэтому я и распинаюсь (помимо задержек)

Добавлено

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

"Плавающая" ошибка PositionSelect()

MQ Alexander, 2016.08.03 18:00

Что касается ордеров, позиций и сделок.

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

Кроме того, транзакции могут потеряться при доставке от сервера к терминалу.

Что касается этой фразы. 

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


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