← Zurück

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

Фрагмент кода стратегии

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 "Заявка не может быть принята на регистрацию. Неверно задана цена". Почему отправляются заявки, если уровни не достигнуты? Как я понял, заявки не будут отправляться, пока не достигнуты защитные уровни...

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

IvanB
IvanB

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

UsilaDobry
UsilaDobry Autor

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

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

UsilaDobry
UsilaDobry Autor

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

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 не помогает. Тэйк-профит тоже не срабатывает.