Eugene Bright
Eugene Bright личный блог
05 октября 2020, 22:33

Робострой: вопрос из "зала" о неисполненных заявках. Просто поделиться опытом.

   Полагаю, мой ответ на нижеприведенный вопрос должен стать достоянием всех.
  
Сегодня утром коллега задал вопрос:
Часто в тестировании используют методы бек/форвард тест, иногда устраивают стресс тест, на хаотичных котировках, но в данном примере хотелось показать как смоделировать ситуацию, когда в алгоритме все хорошо, но по той или иной причине нашу заявку не исполнили.

Мой ответ (в 3-х частях, по мере внесения уточнений и подробностей) ему был следующий:

1. Все перечисленные «проблемы» решаются очень просто и успешно, если немного расширить само понятие «робот».
Добавьте надстройку, следящую за состоянием робота, за состоянием сети, инета, которая автоматически блокирует ненужные явления (задваивание ордеров на одном баре, например, или обрыв связи с сервером), и проблем не будет. Да, это выходит за рамки Lua (или того, на чем реализован робот). У меня такие сервисы реализованы на C#, опять же например. Итог: сам включается/выключается, «фильтрует базар» и поддерживает постоянное подключение, «постукивая» мне логами на почту или джаббер…

(тут следует уточняющий вопрос коллеги...)

2. ОК, расширю ответ: все неисполненные по каким-либо причинам ордера мой робот запоминает и при первой же возможности реализует. Сам! Я не влезаю в его работу, он сам решает проблему. Сам снимает, сам восстанавливает.
Главный закон моего робота: сигналы должны быть корректны и всегда исполнены на 100%.

(тут следует еще один уточняющий вопрос коллеги...)

3. Микаелян Саро, у меня робот ВСЕГДА  исполняет сигнал. Для того, чтобы ордер был реализован, в моем роботе предусмотрен алгоритм сопровождения ордера в торговой системе. Он перемещает ордер, изменяет цену, объем — всё, что нужно, лишь бы выполнить главное — реализовать сигнал на 100%.
Ну, а то, что цена на рынке не совпадает с какой-то «расчетной», — это просто может стать результатом, что расчет, выполненный до сего момента, оказался неверным в настоящий момент, и его нужно скорректировать с учетом «момента».

Иллюстрация к моим ответам (в нотации IDEF0) — трехконтурная архитектура автономного торгового комплекса:

Робострой: вопрос из "зала" о неисполненных заявках. Просто поделиться опытом.



42 Комментария
  • милый мой
    05 октября 2020, 22:45
    красивая диаграмма
  • Микаелян Саро
    05 октября 2020, 23:06
    Вы слегка суть не уловили статьи. В ней говорится о том как искажается реальные результаты относительно тестовых  при моделировании не исполнении сигнала по расчетным значениям. То что система автономна и перевыставит заявки никто не спорит.
  • Anest
    05 октября 2020, 23:16
     Возможно у вас с оппонентом разные представления о роботах. Нередко под более модным соусом продают фактически старую бизнес-модель робота.По принципу ещё древнего Метастока, выполнилось некоторое условие --> пуляется заявка по рынку, а дальше логика включается, только на «выход» по противоположному сигналу.
  • GrayFox
    05 октября 2020, 23:26
    А если на одном и том же баре цена верха и низа попадает под алгоритм. Допустим, открытия или закрытия сделки. ДВАЖДЫ!!! и закрытие и открытие и закрытие и открытие.
    Как в тесте робот сможет прогнать такой вариант?

    Часто подобная ситуация переворачивает результаты.

    Допустим: Есть открытая. Диапазон достигнут, надо закрыть и развернуть.
    Но тут же есть и в обратной стороне свечи добрать или отстопиться.
    В итоге может получиться, что взята увеличенная поза по экстремуму и против себя.
    Ну не на «тиках» же у Вас робот, который по «свечам» (сужу по описанию)?!!!

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн