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


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

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

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

Теги:


Спасибо:




3 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 09.12.2016
Ответить


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

Slepoy

Фотография
Дата: 04.01.2017
Ответить


В новых 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

Фотография
Дата: 09.01.2017
Ответить


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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy