← 戻る

Стопы на 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 著者

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