← 返回

Как правильно выйти из позиции и остановить стратегию?..

Добрый день!

Что-то не совсем понимаю.

Я сделал интрадэй робота на основе SampleSMA. Хочу сделать так, чтобы, если что-то происходит, и P&L становится меньше заданного параметра, позиция ликвидируется, робот останавливается.

Но у меня заявки выставляются с помощью котирования, и если я просто сделаю:


                    if (PnLManager.PnL > 1600 || PnLManager.PnL < -100)
                    {
                        decimal Volume = System.Math.Abs(PositionManager.Position);
                        OrderDirections orderDirection = OrderDirections.Buy;
                        if (PositionManager.Position < 0) { orderDirection = OrderDirections.Buy; }
                        if (PositionManager.Position > 0) { orderDirection = OrderDirections.Sell; }

                        var order = this.CreateOrder(orderDirection, StockSharp.Algo.TraderHelper.GetMarketPrice(Security, orderDirection), Volume);

                        if (PositionManager.Position != 0)
                        {
                            var strategy = new MarketQuotingStrategy(order, new Unit(), new Unit());
                            ChildStrategies.Add(strategy);
                        }

                        PositionManager.Position = 0;
                        Stop();

  • то у меня выставится заявка и остановится стратегия, и если рынок уйдёт, заявка не исполнится.

Как мне правильно дожидаться окончания котирования?

评论 (5)

登录创建账户, 登录或注册以发表评论

esper
esper

Можно смотреть изменение позиции, как она станет равна 0 - останавливать стратегию.

Sergey Masyura
Spiritschaser
Spiritschaser 作者

О, точно. Самое простое и не заметил!

OvcharenkoVI
OvcharenkoVI

Можно подписаться на изменение состояния стратегии котирования... вроде

strategy.ProcessStateChanged += strategy => { if(strategy.ProcessState == ProcessStates.Stopped) Stop(); }

Johny Cash Sergey Masyura
Spiritschaser
Spiritschaser 作者

Спасибо, по событию всё получилось!

OvcharenkoVI
OvcharenkoVI
OvcharenkoVI

Отлично