Создаю простую стратегию на базе Strategy. В ней по окончанию свечи входим в позицию и ставим трейлинг стоп. Что получаем по факту?
Заявка и сделка для лимитного ордера нормально проходит и в стратегии отображается. Заявка и сделка для стоп ордера проходит криво и в стратегии НЕ отображается.
В итоге PositionManager не учитывает изменение позиции по стопу, и она постепенно растет. Хотя по факту она нулевая. PositionManager.Position > 0.
Похоже сделки для стоп ордеров не учитываются совсем. Странно что раньше не было обнаружено.
Пожелание - исправить ситуацию :)
ЗЫ: в коннекторе нет проблем. Все события приходят нормально.
Комментарии (9)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Ну собственно такого точно нет, потому и не было замечено раньше :) Вы что-то не так делаете.
Что такое "проходит криво"?
Давайте лог, пишите конкретно как подаётся заявка, приводите код.
Это при старте стратегии.
Сначала идет сделка на покупу потом на продажу в TryMakeTrade.
А вот метод SetStop
После подобной манипуляции должна быть общая позиция равна нулю, потому что стоп заявка сразу же исполняется (специально так сформирована). А по факту позиция равна 1 лоту. Если повторить операцию позиция увеличится еще на лот и так далее. Продажи по стопу не учитываются никак.
Кажется что сделки для стоп ордеров просто не считаются и все. Их тупо нет в стратегии. А для простых ордеров все считается.
Вот лог стратегии
А вот что пишет студия. Событие продажи как видим приходит.
Это альфа коннектор, переношу в соответствующую ветку.
В других коннекторах всё в порядке.
Прикрепил выше постом всю стратегию. Можно сразу заводить и смотреть. Один раз по завершению свечи совершит установку ордера на покупку и стоп на продажу. После этого можно посмотреть позицию. Врядли это связано с коннектором :).
через Quik \ Plaza какую позицию выводит? Привидите лог.
И версия S# из последних?
Коннектор генерирует события НОРМАЛЬНО. События приходят.
Если вы однозначно утверждаете что у вас стоп заявки при исполнении корректно учитывются и позиция формируется верная, тогда я буду много думать в чем же дело.
Версия S# 4.0.20 релиз.
Order.DerivedOrder заполняется?
Посмотрел оба альфа коннектора. Ни там ни там не заполняется DerivedOrder и не добавляется ассоциация через метод AddDerivedOrder.
Т.е. и там и там либо не идёт работа со стоп ордерами, либо идёт неверная работа с ними.
Как и сказал сразу - проблема шлюза, а не базовых вещей S#.
Update: Михаил выше тоже про это задал вопрос
Ок. Поставил себе заметку про DerivedOrder. Стопы в коннекторах работают нормально. Но вот это поле не используется. Буду доделывать.