← Zurück

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

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

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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (3)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

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

Slepoy
Slepoy

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



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 уже была ))). И было это не единожды. Короче, опасная штука. Как по мне, она слишком сложная, много элементов, там и котирование замешено и т.п. Проще написать что-то своё, простое как кирпич: к примеру, тупо по событию пасти цену последней сделки и реагировать как нам нужно. Чем меньше элементов, тем стабильней будет пахать.

Mikhail Sukhov roman001
roman001
roman001 Autor

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