Пересчеты по событиям
Last updated
Last updated
Внимание! В скрипте обязательно должен присутствовать блок "Событие", с помощью него необходимо запрещать выставлять заявки по тем же сигналам, чтобы внутри бара не было проблем с набором позиции по одному и тому же сигналу.
Полный функционал поддерживается с включенным Интервалом пересчета в свойствах скрипта "Интервал (Для Событий)".
С другими интервалами пересчета, при наступлении события и наличии позиции, позиция не привязывается к бару. А следовательно не выставятся заявки, закрывающие позицию внутри бара входа в позицию. Но при этом выставятся заявки, закрывающие позицию, которая была открыта на другом баре. При этом, если в алгоритме не используется блок Событие, то при дополнительных пересчетах можно закрыть позицию два раза и более. Блок Событие настоятельно рекомендуется к использованию. Полный функционал событий представляет из себя комплекс: Настройка событий в торговых настройках агента + Пересчет Интервал для событий + Блок Событие.
При торговле иногда требуется совершать дополнительный пересчет. Чаще всего это требуется, когда нужно выставить stop-loss на открывшуюся позицию внутри текущего бара. Так же это требуется при работе со множеством (два и более) инструментов, например, при арбитражной торговле. Где спецификой является одновременный вход в разнонаправленные позиции, как правило, с разными типами заявок.
События можно настроить в торговых настройках агента. Торговля -> Агенты -> Торговые Настройки
При наступлении одного из событий, осуществляется Одиночный пересчет агента. Под событиями понимаются операции брокера или биржи с заявкой при исполнении транзакции или общие события относящиеся к программе
Заявка отклонена | Брокер(или биржа) отклонил заявку |
Заявка выполнена полностью | На рынке произошли сделки, удовлетворяющие весь запрошенный объем в заявке |
Открытие позиции | Сигнал исполнен, программа получила номера: Транзакция, Заявка, Сделки. Все номера привязаны к сигналу агента через портфельный номер. |
Закрытие позиции | Сигнал на закрытие позиции исполнен. Портфельный номер открытия позиции имеет исполненный портфельный номер закрытия позиции. |
Изменение количества в заявке | В Агенте, на основном пересчете, скрипт рассчитал изменение количества лотов, которое отличается от предыдущего.(частичное исполнение) |
Торговля начата | Пришел статус с биржи, что торги открыты. Чаще всего в программе используется первая сделка рынка. Т.е. начало торговли определяется первой котировкой текущего дня. Так-как почти всегда это быстрее, чем статус торгов, который присылает биржа по инструменту. |
Торговля остановлена | Пришел статус с биржи, что торги остановлены. |
Заявка отменена | На пересчете агента, скрипт рассчитал, что сигнала нет, заявку необходимо отменить. Программа подает брокеру команду. Данное событие является результатом ответа от брокера "Заявка отменена". |
Ограничение претрейда | Сработал один из фильтров Управления рисками. Торговля-Управление рисками. |
В редакторе можно использовать дополнительно блок "Событие". На данном пересчете, если Пришло событие, блок отдаст true, данное значение можно использовать в алгоритме. Если в одном агенте приходит сразу много* событий, осуществляется одиночный пересчет.
*Сразу много - хардкод на 5мс. Т.е. если в течении 5мс произошло несколько событий, вызов пересчета будет одиночным.
В блоке можно выбрать событие из выпадающего списка.
Блок можно использовать в редакторе множество раз, блок подключается к источнику, отдает событие по инструменту.