AutoProtectiveStrategy не останавливается
Atom Ответить
30.05.2014


Стратегия AutoProtectiveStrategy запускается и отрабатывает (позиция закрывается), но остается запущенной.
При этом все ее дочерние стратегии TPSLS, TPS, SLS остановлены.
Из за этого не срабатывает правило WhenStopped и дальнейшая работа робота прекращается.
Пробовал убирать WaitAllTrades = true, - не помогает.

Запускаю AutoProtectiveStrategy следующим образом:

Код

var pos = fastOrderStrategy.PositionManager.Positions.FirstOrDefault(p => p.CurrentValue != 0);

//Находим сделки, соответствующие позиции pos
var trades = fastOrderStrategy.MyTrades.Where(s => s.Trade.Security == pos.Security).ToArray();
                
//Создаем защитную стратегию
var auts = new AutoProtectiveStrategy
{
   Security      = pos.Security,
   StopLossLevel =   pos.Security.PriceStep * 1,
   TakeProfitLevel = pos.Security.PriceStep * 1,
   WaitAllTrades = true,
   IsTrailingStopLoss = true,
   DisposeOnStop = true
};

//Когда защитная стратегия заканчивает работу, удаляем стратегию
auts.WhenStopped()
    .Do(() => 
    { 
       ChildStrategies.Clear();
    })
    .Once()
    .Apply(this);

//Обработать сделки для коррекции объема
auts.ProcessNewMyTrades(trades);

this.AddWarningLog("Launching AutoProtectiveStrategy with StopLossLevel={0} TakeProfitLevel={1}", auts.StopLossLevel, auts.TakeProfitLevel);

//Добавляем защитную стратегию в список дочерних
if (_ordersTurnedOn)
   ChildStrategies.Add(auts);


Вот что выдает лог:
Код

2014/05/30 21:20:42.118|Warning|DS_XXX4@FORTS_SPBFUT00XXX|Only one position was opened
2014/05/30 21:20:42.118|Warning|DS_XXX4@FORTS_SPBFUT00XXX|Launching AutoProtectiveStrategy with StopLossLevel=1 TakeProfitLevel=1
2014/05/30 21:20:42.118|       |TPS_XXX4@FORTS_SPBFUT00XXX|Стратегия запущена. [0,2]. Позиция при старте 0.
2014/05/30 21:20:42.118|       |TPS_XXX4@FORTS_SPBFUT00XXX|Защита сделки 894716231 заявки 76814201.
2014/05/30 21:20:42.118|       |TPS_XXX4@FORTS_SPBFUT00XXX|Котирование на Sell объема 1.
2014/05/30 21:20:42.118|       |TPS_XXX4@FORTS_SPBFUT00XXX|Приостановка правил. _rulesSuspendCount 1.
2014/05/30 21:20:42.118|       |TPS_XXX4@FORTS_SPBFUT00XXX|Возобновление правил. _rulesSuspendCount 0.
2014/05/30 21:20:42.118|       |SLS_XXX4@FORTS_SPBFUT00XXX|Стратегия запущена. [0,2]. Позиция при старте 0.
2014/05/30 21:20:42.118|       |SLS_XXX4@FORTS_SPBFUT00XXX|Защита сделки 894716231 заявки 76814201.
2014/05/30 21:20:42.118|       |SLS_XXX4@FORTS_SPBFUT00XXX|Котирование на Sell объема 1.
2014/05/30 21:20:42.118|       |SLS_XXX4@FORTS_SPBFUT00XXX|Приостановка правил. _rulesSuspendCount 1.
2014/05/30 21:20:42.118|       |SLS_XXX4@FORTS_SPBFUT00XXX|Возобновление правил. _rulesSuspendCount 0.
2014/05/30 21:20:42.118|       |TPSLS_XXX4@FORTS_SPBFUT00XXX|Стратегия запущена. [2,1]. Позиция при старте 0.
2014/05/30 21:20:42.118|       |APS_XXX4@FORTS_SPBFUT00XXX|Стратегия запущена. [1,2]. Позиция при старте 0.
2014/05/30 21:21:13.099|       |SLS_XXX4@FORTS_SPBFUT00XXX|Защита активирована.
2014/05/30 21:21:13.099|       |SLS_XXX4@FORTS_SPBFUT00XXX|Цена текущей NULL и лучшей 46568.
2014/05/30 21:21:13.099|       |SLS_XXX4@FORTS_SPBFUT00XXX|Лучший бид 47747 и лучший аск 47755.
2014/05/30 21:21:13.099|       |SLS_XXX4@FORTS_SPBFUT00XXX|Регистрация новой Limit (0xA33B48) заявки на Sell с ценой 46568 и объемом 1. SLS 894716231
2014/05/30 21:21:13.099|       |QuikTrader|RegisterOrder: 0/0 Продажа Цена=46568 Объем=1 Сост=None Бал=0 
2014/05/30 21:21:13.099|       |QuikTrader|New order: 76814204/0 Продажа Цена=46568 Объем=1 Сост=Pending Бал=1 
2014/05/30 21:21:13.100|Warning|SLS_XXX4@FORTS_SPBFUT00XXX|Заявка 76814204 в процессе регистрации.
2014/05/30 21:21:19.682|       |QuikTrader|Order changed: 76814204/12756352952 Продажа Цена=46568 Объем=1 Сост=Done Бал=0 
2014/05/30 21:21:19.682|       |DS_XXX4@FORTS_SPBFUT00XXX|Новая позиция: SPBFUT00XXX-YYY4@FORTS=0, SPBFUT00XXX-XXX4@FORTS=0.
2014/05/30 21:21:19.682|       |APS_XXX4@FORTS_SPBFUT00XXX|Новая позиция: SPBFUT00XXX-XXX4@FORTS=-1.
2014/05/30 21:21:19.682|       |TPSLS_XXX4@FORTS_SPBFUT00XXX|Новая позиция: SPBFUT00XXX-XXX4@FORTS=-1.
2014/05/30 21:21:19.682|       |SLS_XXX4@FORTS_SPBFUT00XXX|Новая позиция: SPBFUT00XXX-XXX4@FORTS=-1.
2014/05/30 21:21:19.682|       |TPS_XXX4@FORTS_SPBFUT00XXX|Стратегия останавливается. [0,2]. Позиция при старте 0.
2014/05/30 21:21:19.682|       |TPS_XXX4@FORTS_SPBFUT00XXX|Правило 'Изменение стакана инструмента XXX4@FORTS (0x260F40A)'. Приостановлено.
2014/05/30 21:21:19.682|Warning|TPS_XXX4@FORTS_SPBFUT00XXX|Заканчиваем котирование с неисполненным объемом равный 1.
2014/05/30 21:21:19.682|       |TPS_XXX4@FORTS_SPBFUT00XXX|Ожидание снятия всех активных заявок.
2014/05/30 21:21:19.682|       |TPS_XXX4@FORTS_SPBFUT00XXX|Стратегия остановлена. [0,2]. Позиция при старте 0.
2014/05/30 21:21:19.682|       |SLS_XXX4@FORTS_SPBFUT00XXX|Стратегия останавливается. [0,2]. Позиция при старте -1.
2014/05/30 21:21:19.682|       |SLS_XXX4@FORTS_SPBFUT00XXX|Правило 'Изменение стакана инструмента XXX4@FORTS (0x26E0A05)'. Приостановлено.
2014/05/30 21:21:19.682|       |SLS_XXX4@FORTS_SPBFUT00XXX|Ожидание снятия всех активных заявок.
2014/05/30 21:21:19.682|       |SLS_XXX4@FORTS_SPBFUT00XXX|Стратегия остановлена. [0,2]. Позиция при старте -1.
2014/05/30 21:21:19.682|       |TPSLS_XXX4@FORTS_SPBFUT00XXX|Стратегия останавливается. [1,1]. Позиция при старте -1.
2014/05/30 21:21:19.682|       |TPSLS_XXX4@FORTS_SPBFUT00XXX|Ожидание снятия всех активных заявок.
2014/05/30 21:21:19.682|       |TPSLS_XXX4@FORTS_SPBFUT00XXX|Стратегия остановлена. [0,1]. Позиция при старте -1.

Дальше в логе ничего нет, но во время дебага видно что в ChildStrategies Присутствует APS и ProcessState=Started

Подскажите пожалуйста, как быть в этой ситуации, как остановить стратегию?

Теги:


Спасибо:




1 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 02.06.2014
Ответить


poison Перейти
Стратегия AutoProtectiveStrategy запускается и отрабатывает (позиция закрывается), но остается запущенной.


Так и есть. Эта стратегия защищает сделки непрерывно. У нее нет критерия остановки, кроме как остановка родительской стратегии.
Спасибо: poison


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

loading
clippy