← Назад

Стопы на FORTS

Каким образом вы выставляете стопы на фортс, чтобы они гарантировано исполнились?

По идее, их исполнение надо ставить по маркету - т.е. по ценам планки. Но ситуация в следующем - загружаю роботов утром, добавляю в экспорт всё что надо (ГО, цены планки, ...) для каждого зарегистрированного quikTrader: quikTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MarginBuy); quikTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MarginSell); quikTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice); quikTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice); quikTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinStepPrice);

Отлично, теперь при регистрации стоп заявки использую в стратегии Security.MaxPrice для стопа для шорта и Security.MinPrice для стопа для лонга.

Всё отлично работает до клиринга или до остановки торгов - когда цена планки смещается. Т.е. старая выставленная заявка с ценой старой планки, в случае срабатывания условия стопа, может уже не удовлетворять новым лимитам, и просто будет отвергнута ТС. Вот, к примеру, вчера у меня был выставлен стоп до дневного клиринга - продать, если <= 138000, по цене 130510. После клиринга был уже новый нижний лимит цены и стоп, после срабатывания, не был выставлен в ТС.

Выход, который я вижу - регистрировать событие SecuritiesChanged и, в случае изменения лимитов, для каждой запущенной стратегии запускать метод, который будет выполнять проверку всех выставленных стоп заявок. Если это необходимо - снимать старые стоп-заявки и выставлять новые, уже с новыми ценами лимитов.

Комментарии (5)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Mikhail Sukhov
Mikhail Sukhov

Ага, все логично. Кроме одного "По идее, их исполнение надо ставить по маркету - т.е. по ценам планки. " Это почему так?

Alexander
Alexander Автор

А как ещё выставить стоп заявку, чтобы она гарантировано исполнилась, в независимости от близости планок, в независимости от их изменения во время клиринга или приостановки торгов?

skzuev
skzuev

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

С уважением, Сергей Зуев

Mikhail Sukhov
Mikhail Sukhov

Как вариант - поработать с котированием. Оно как раз было придумано для того, чтобы эмулировать маркетную заявку на форце.

Alexander
Alexander Автор

Именно этот вариант я и предложил в первом сообщении. Он мне больше котирования нравится, пока его реализовал. Хотя почитаю в документации и про котирование, спасибо.