← Назад

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

Добрый день!

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

Я сделал интрадэй робота на основе 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

Отлично