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


Добрый день!

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

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

Фотография
Программист
Дата: 04.04.2012
Ответить


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

Spiritschaser

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


О, точно. Самое простое и не заметил!
Автор топика
Спасибо:

OvcharenkoVI

Фотография
Автор статей
Дата: 04.04.2012
Ответить


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

strategy.ProcessStateChanged += strategy =>
{
if(strategy.ProcessState == ProcessStates.Stopped)
Stop();
}
Спасибо: Johny Cash Sergey Masyura

Spiritschaser

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


Спасибо, по событию всё получилось!
Автор топика
Спасибо: OvcharenkoVI

OvcharenkoVI

Фотография
Автор статей
Дата: 05.04.2012
Ответить


Отлично
Спасибо:


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

loading
clippy