И снова о защитных стратегиях

И снова о защитных стратегиях
Atom
12/8/2016


Добрый день, уважаемые
Перерыл форум в надежде найти ответ на вопрос почему при пробитии уровня, указанного в StopLossStrategy, не создается соответствующая заявка в терминале. Везде пишут, что необходимо подписаться на стаканы, согласен...
В основном модуле пишу qTrader.RegisterMarketDepth(security),
затем стартую главную стратегию,
затем делаю SL

var stopLoss = new StopLossStrategy(direction, fixOpenedPositionPrice, Volume, new Unit(correctionLoss, UnitTypes.Absolute));
ChildStrategies.Add(stopLoss)

В дебаге вижу, что дочерняя стратегия создалась, корректно отражает защитную цену, направление и т.д.
но без толку, заявка то не создается[angry].
В личной переписке люди пишут, что забили и не используют этот функционал, но ведь разобрался же наверное кто-то?



Thanks:


Mikhail Sukhov

Avatar
Date: 12/9/2016
Reply


Попробуйте Дизайнер. Там защитные стратегии уже настроены как необходимо.
Thanks:

Slepoy

Avatar
Date: 1/4/2017
Reply


В новых API, помимо предварительной регистрации "стаканов", надо ещё регать "ленту сделок", ну плюсом не помешает регануть "таблицу текущих параметров". То есть, перед запуском стратежки надо прописать что-то вроде такого:

Code


if (!trader.RegisteredSecurities.Contains(SelectedSecurity))               
                trader.RegisterSecurity(SelectedSecurity);                                
if (!trader.RegisteredMarketDepths.Contains(SelectedSecurity))                        
                trader.RegisterMarketDepth(SelectedSecurity);                            
if (!trader.RegisteredTrades.Contains(SelectedSecurity))                             
                trader.RegisterTrades(SelectedSecurity);  



Плюс надо настраивать сам объект-стратежки. Он исходно по-умолчанию настроен по типу котирования, т.е. работает лимитками, по лучшему аску/биду, да ещё и объёмом 1 лот ))). То есть, нужно вручную перенастраивать. На акцииях можно включить свойство UseMarketOrders и поменять свойство Volume, а то оно по умолчанию равно 1 лот. На фьючах же, надо делать имитацию маркет-удара, т.е. свойство UseMarketOrders не трогать, а поигратсья с свойством PriceOffset - которое позволит выставить отступ от лучшего бида/аска, т.е. это по сути проскальзывание, надо его задать 10-20 шагов инструмента и будет имитация маркет удара. Ну и плюс надо также поменять свойство Volume, на нужный объём.

Но как по мне, работает эта штука крайне нестабильно. Любой подвисон бота или глюк бота - и стоп не сработает. Сегодня как раз тестил его работу, Работает через раз. Мне не понравилось. По рынку отправил 5 коней: которые разбились на две сделки: 1 и 4 коня. В итоге, бот создал 2 стоп-лоса. Один исполнился, второй - нет, всё ещё ждёт цену активации, которая раза 3-4 уже была ))). И было это не единожды. Короче, опасная штука. Как по мне, она слишком сложная, много элементов, там и котирование замешено и т.п. Проще написать что-то своё, простое как кирпич: к примеру, тупо по событию пасти цену последней сделки и реагировать как нам нужно. Чем меньше элементов, тем стабильней будет пахать.
Thanks: Mikhail Sukhov roman001

roman001

Avatar
Date: 1/9/2017
Reply


С Новым годом!
Вот и я согласен с последним выводом. Лучше самому следить.
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy