← Zurück

AutoProtectiveStrategy не останавливается

Стратегия 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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (1)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

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

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

poison