Стратегии и роботы > Постоянная проблема с роботом

Обсуждение, описание стратегий и роботов, идеи для стратегий
ZiZ
Сообщения: 36
Зарегистрирован: 19 ноя 2019, 15:32
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Постоянная проблема с роботом

Непрочитанное сообщение ZiZ » 14 сен 2020, 12:29

Добрый день!

Примитивный минутный робот переворачивается при отрицательном НПУ на одном фьючерсе нефти.
Заявки выполняются по маркету простыми командами EnterLong() и EnterShort() с инструкцией UseEnterMKT = true.
Указаны лимиты LongLimit = 1 и ShortLimit = -1.
Проверка каждого условия заканчивается командой return, чтобы лишние условия не срабатывали (так нужно).
На балансе средств больше, чем необходимо для двукратного ГО.

Вроде бы всё должно работать как часы, однако при сильном (важно!) движении рынка иногда странно срабатывает заявка и возникает несоответствие позиции робота и счёта: у робота один контракт, на счёте ноль.

На графике видно, что сработала заявка на закрытие позиции (прозрачный значок), но не сработала заявка на открытие.
После редактирования позиции и запуска робота выдаётся сообщение что-то типа "Заявка была исполнена в момент когда робот не работал".
Но это не так, робот всегда работал, сижу и смотрю за ним безотрывно. :)
Интернет соединение тоже не пропадало в этот момент.
Вторая остановка робота, повторное редактирование позиции и запуск приводят всё в нужно соответствие.

Вот сообщения робота с этой с ошибкой.

14.09.2020 11:49:18 Инструмент BRV0 (M1)=ФОРТС. Робот: -1шт (39.5р.) A_NPU_F.1
14.09.2020 11:49:18 100% данных получено A_NPU_F.1
14.09.2020 11:49:18 Робот запущен A_NPU_F.1
14.09.2020 11:49:18 Инструмент BRV0 (M1)=ФОРТС. Робот: -1шт (39.5р.) A_NPU_F.1
14.09.2020 11:49:18 Совершена сделка №185641010 на продажу 1шт A_NPU_F.1 вручную закрыл лишний второй лонг
14.09.2020 11:49:18 Обработка сделок по активной заявке при старте A_NPU_F.1
14.09.2020 11:49:18 Обработка активной заявки при старте A_NPU_F.1
14.09.2020 11:49:09 Инструмент BRV0 (M1)=ФОРТС. Робот: 0шт (0.0р.) A_NPU_F.1
14.09.2020 11:49:09 Изменение текущей позиции: Закрытие длинной позиции на 1шт A_NPU_F.1
14.09.2020 11:48:59 Робот остановлен A_NPU_F.1
14.09.2020 11:48:02 Очередь отложенных сигналов очищена: EnterShort(0) 1шт A_NPU_F.1
14.09.2020 11:47:05 Очередь отложенных сигналов очищена: EnterShort(0) 1шт A_NPU_F.1
14.09.2020 11:46:05 Очередь отложенных сигналов очищена: EnterShort(0) 1шт A_NPU_F.1

14.09.2020 11:44:03 Выставлена заявка №3797025084 на продажу 1шт A_NPU_F.1
14.09.2020 11:44:02 Открытие короткой позиции на 1шт (до минимального количества -1шт). EnterShort 39,45 A_NPU_F.1
14.09.2020 11:44:02 Закрытие длинной позиции A_NPU_F.1

Может быть нужно указывать точное число контрактов в EnterLong() и EnterShort() или выполнять переворот парой команд?
Например, чтобы перевернуть шорт: сперва CloseShort() (или ClosePosition()) потом EnterLong()?

Как решить эту проблему?

ZiZ
Сообщения: 36
Зарегистрирован: 19 ноя 2019, 15:32
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: Постоянная проблема с роботом

Непрочитанное сообщение ZiZ » 23 сен 2020, 16:58

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

Остановка робота и ручная корректировка не помогла, пришлось заново его создавать.

Интересно, что это событие совпало с пиком нагрузки в 16:30 МСК когда открывается биржа в сша.

Весь день до этого и после робот торговал безотказно!

Очень похоже на сбои в системе заявок у брокера! :evil:

Вот ещё что нашёл в документации.

Робот ведет собственную виртуальную позицию на основании собственных сделок, которая может не совпадать с реальной позицией по субсчету.

Каким способом можно внутри робота сверять и корректировать позиции, чтобы не приходилось его удалять и заново создавать?

E_V_N
Сообщения: 22
Зарегистрирован: 18 сен 2020, 23:35
Поблагодарили: 2 раза

Re: Постоянная проблема с роботом

Непрочитанное сообщение E_V_N » 23 сен 2020, 22:36

Меня тоже занимает эта проблема. Мне кажется причины следующие:
1. Не смотря на введение "живого бара" и возможность выставлять несколько заявок за бар, ограничение "1 торговая и 1 стоповая заявка" на робота осталась.
2. Торговые заявки, после первой выставленной ставятся в очередь, после поступления других параметров по уже выставленной заявке она "переставляется" вновь с измененными параметрами, а остальные заявки в очереди убираются "очередь очищается".
3. Робот сбивается в позиции из-за того, что принятые в очередь разнонаправленные заявки (купить - продать) он воспринимает как "исполненные" и после снятия противоположной заявки из-за ее устаревания, не пересчитывает позицию.
4. Робот может не найти свои заявки в случае аварийного отключения робота, или потери связи с сервером в момент исполнения заявки.
Однозначного решения я пока не нашел, возможно выход в принудительном снятии всех выставленных заявок перед выставлением "противоположной".

Собственная учет робота заключается в том, что он ведет свою позицию и учетную цену не зависимую от позиции и учетной цены инструмента на субсчете. К сожалению субсчет учитывает сделки робота меняя учетную цену инструмента. Поэтому желательно роботов запускать на отдельном субсчете.

ZiZ
Сообщения: 36
Зарегистрирован: 19 ноя 2019, 15:32
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: Постоянная проблема с роботом

Непрочитанное сообщение ZiZ » 24 сен 2020, 21:20

Пока реализовал в коде только оповещение.

if (GetPosition().Position != CurrentPosition()) ShowMessage("Несоответствие позиций!");

Сверяется позиция счёта и робота, можно также звуковой алерт прикрутить. :lol:

Иногда роботу достаточно нескольких минут, чтобы проблема с заявками самоустранилась. Сегодня 14 минут понадобилось на восстановление соответствия позиций.

BugsDigger
Сообщения: 533
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 91 раз

Re: Постоянная проблема с роботом

Непрочитанное сообщение BugsDigger » 25 сен 2020, 08:05

Попробуйте получившийся лог предъявить техподдержке, чем черт не шутит, вдруг исправят ...

ZiZ
Сообщения: 36
Зарегистрирован: 19 ноя 2019, 15:32
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: Постоянная проблема с роботом

Непрочитанное сообщение ZiZ » 01 окт 2020, 15:07

Нашлось решение, но пока только вручную.

При несоответствии позиций робота и счёта необходимо отключиться от серверов (не закрывая сам термина и не выключая роботов) и через секунд пять заново подключиться. Все позиции приходят в норму!

Теперь осталось дождаться от разработчиков автоматизации этой процедуры или какого-нибудь "прозрачного для пользователя" переподключения к серверам.

Без этого решения ВСЕ роботы альфы БЕСПОЛЕЗНЫ !!!


Вернуться в «Стратегии и роботы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 22 гостя