Вопрос по зщитным стратегиям SLS и TPS

Вопрос по зщитным стратегиям SLS и TPS
Atom
4/28/2013
UsilaDobry


Фрагмент кода стратегии
Code
var order = this.SellAtLimit(Security.LastTrade.Price + Security.MinStepSize);
                    order.WhenNewTrades().Do(trades => trades.ForEach(t =>
                        {
                            var stopDelta = t.Order.Price + (Security.MinStepSize * StopLossPoint);
                            var stopLoss = new StopLossStrategy(t, new Unit(stopDelta, UnitTypes.Limit));
                            
                            var profitDelta = t.Order.Price - (Security.MinStepSize * TakeProfitPoint);
                            var takeProfit = new TakeProfitStrategy(t, new Unit(profitDelta, UnitTypes.Limit));
                            
                            var tpsl = new TakeProfitStopLossStrategy(takeProfit, stopLoss);
                            ChildStrategies.Add(tpsl);
                            })).Apply(this);


Выставляется заявка Sell объемом 5 по цене 95,80, подключаются защитные стратегии, затем срабатывает заявка и активируется защита.
SLS отправляет заявку Buy на регистрацию по цене 96,1 объемом 1 (Почему 1, а не 5?)
TPS отправляет заявку Buy на регистрацию по цене 95,2 объемом 1 (Почему 1, а не 5?)
В итоге появляются ошибки и по SLS и по TPS "Заявка не может быть принята на регистрацию. Неверно задана цена".
Почему отправляются заявки, если уровни не достигнуты? Как я понял, заявки не будут отправляться, пока не достигнуты защитные уровни...



Thanks:


IvanB

Avatar
Date: 4/28/2013
Reply


UsilaDobry

Выставляется заявка Sell объемом 5 по цене 95,80, подключаются защитные стратегии, затем срабатывает заявка и активируется защита.
SLS отправляет заявку Buy на регистрацию по цене 96,1 объемом 1 (Почему 1, а не 5?)
TPS отправляет заявку Buy на регистрацию по цене 95,2 объемом 1 (Почему 1, а не 5?)
В итоге появляются ошибки и по SLS и по TPS "Заявка не может быть принята на регистрацию. Неверно задана цена".

Нужно указывать значение Volume для стратегии (в Вашем случае значение 5).
UsilaDobry

Почему отправляются заявки, если уровни не достигнуты? Как я понял, заявки не будут отправляться, пока не достигнуты защитные уровни...

Да, верно заявка должна выставляться по достижению указанного уровня.

Thanks:

UsilaDobry

Avatar
Date: 4/28/2013
Reply


С объемами я разобрался, вопрос, почему после открытия позиции SLS и TPS начинают отправлять заявки по рынку по цене защитного уровня?

А вот попробовал автоматическую защиту, там все корректно, при открытии позиции TPS и SLS заявки не направляют по рынку...
Thanks:

UsilaDobry

Avatar
Date: 4/29/2013
Reply


Вот таким образом задаю уровни SL,TP. Уровни не срабатывают, APS пишет, что запущена, котирует объем 1 на покупку по определенно сделке, но не хочет делать стоп.
У меня задается StopLOssPoint в пунктах, в частности ставил 10 пунктов.
Цена сделки 95,5, шаг цены 0,01, SL=10 пунктов => уровень SL должен быть 95,6.
Или так задавать уровни нельзя?

Code
var order = this.SellAtLimit(Security.LastTrade.Price);
                    var aut = new AutoProtectiveStrategy
                        {
                            StopLossLevel = order.Price + (Security.MinStepSize * StopLossPoint),
                            TakeProfitLevel = order.Price - (Security.MinStepSize * TakeProfitPoint),
                            Volume = 1
                        };
                    order.WhenNewTrades().Do(aut.ProcessNewMyTrades).Apply(this);
                    ChildStrategies.Add(aut);


Пробовал установить свойство StopLOssOffset не помогает. Тэйк-профит тоже не срабатывает.
Thanks:


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

loading
clippy