Вопрос про бесконечное перевыставление заявки
Quote:|Приостановка правил. _rulesSuspendCount 1.
2013/12/18 16:50:35.000| |SBS_RIH4@FORTS_test account1|Регистрация новой Limit (0x2A1B2DE) заявки на Sell с ценой 141800.000000000 и объемом 1.
2013/12/18 16:50:35.000| |HistoryEmulationConnector|RegisterOrder: 0/0 Продажа Цена=141800.000000000 Объем=1 Сост=None Бал=0
2013/12/18 16:50:35.000| |HistoryEmulationConnector|New order: 13712394/0 Продажа Цена=141800.000000000 Объем=1 Сост=Pending Бал=1
2013/12/18 16:50:35.000| |SBS_RIH4@FORTS_test account1|Возобновление правил. _rulesSuspendCount 0.
2014/01/19 03:50:07.448| |#=qXLcyz4GZfjcuGFPYxXhmRaXexDK4lQNQbPTx$SCysd0=|Заявка 13712394 зарегистрирована.
2014/01/19 03:50:07.448| |#=qXLcyz4GZfjcuGFPYxXhmRaXexDK4lQNQbPTx$SCysd0=|Заявка 13712394. Исполнение объема 1 по цене 141960.000000000.
2014/01/19 03:50:07.448| |#=qXLcyz4GZfjcuGFPYxXhmRaXexDK4lQNQbPTx$SCysd0=|Заявка 13712394 полностью исполнена.
2014/01/19 03:50:07.448| |#=qXLcyz4GZfjcuGFPYxXhmRaXexDK4lQNQbPTx$SCysd0=|Сделка 73 заявки 13712394 P=13712394 V=141960.000000000.
2013/12/18 16:50:35.000| |HistoryEmulationConnector|Order changed: 13712394/74 Продажа Цена=141800.000000000 Объем=1 Сост=Done Бал=0
2013/12/18 16:50:35.000| |SBS_RIH4@FORTS_test account1|Новая позиция: test account1-RIH4@FORTS=-1.
2013/12/18 16:50:35.000| |SBS_RIH4@FORTS_test account1|Заявка 13712394 больше не активна.
2013/12/18 16:50:35.000| |SBS_RIH4@FORTS_test account1|Новая Sell сделка 73 по цене 141960.000000000 на 1 заявки 13712394.
2013/12/18 16:50:35.000| |SLS_RIH4@FORTS_test account1|Стратегия запущена. [0,1]. Позиция при старте 0.
2013/12/18 16:50:35.000| |SLS_RIH4@FORTS_test account1|Защита сделки 73 заявки 13712394.
2013/12/18 16:50:35.000| |SLS_RIH4@FORTS_test account1|Котирование на Buy объема 1.
2013/12/18 16:50:35.000| |SLS_RIH4@FORTS_test account1|Приостановка правил. _rulesSuspendCount 1.
2013/12/18 16:50:35.000| |SLS_RIH4@FORTS_test account1|Возобновление правил. _rulesSuspendCount 0.
2013/12/18 16:50:39.000| |SLS_RIH4@FORTS_test account1|Защита активирована.
2013/12/18 16:50:39.000| |SLS_RIH4@FORTS_test account1|Цена текущей NULL и лучшей 169990.
2013/12/18 16:50:39.000| |SLS_RIH4@FORTS_test account1|Лучший бид 142010.000000000 и лучший аск 142030.000000000.
2013/12/18 16:50:39.000| |SLS_RIH4@FORTS_test account1|Регистрация новой Limit (0x28C893F) заявки на Buy с ценой 169990 и объемом 1. SLS 73
2013/12/18 16:50:39.000| |HistoryEmulationConnector|RegisterOrder: 0/0 Покупка Цена=169990 Объем=1 Сост=None Бал=0
2013/12/18 16:50:39.000| |HistoryEmulationConnector|New order: 13712395/0 Покупка Цена=169990 Объем=1 Сост=Pending Бал=1
2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации.
2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации.
2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации.
2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации.
2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации.
2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации.
2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации.
2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации.
Собственно, локализовал одну из проблем.
Код активации стоп-лоса (трейлинг-стопа) такой (в курилке писал уже):
Code
private void OnNewOrderTrades(IEnumerable<MyTrade> myTrades)
{
var protectiveStrategies = myTrades.Select(t =>
{
var newStrategyFromTrade = new StopLossStrategy(t, new Unit(TraderHelper.ShrinkPrice(t.Trade.Security, stopLossParameter * (decimal)currentParams.candleSize))) { IsTrailing = true, UseQuoting = false, PriceOffset = (decimal)currentParams.candleSize*3, DisposeOnStop = true, ProtectiveVolume = t.Trade.Volume, MaxRegisterFailCount = 5, };
return newStrategyFromTrade;
});
foreach(var s in protectiveStrategies)
ChildStrategies.Add(s);
base.OnNewMyTrades(myTrades);
}
Вхожу в рынок и формирую правило на активацию стопа следующим образом:
Code
CancelActiveOrders();
SuspendRules();
if (Position != 0)
{
var orderDirection = Position < 0 ? OrderDirections.Buy : OrderDirections.Sell;
var orderPrice = Position < 0 ? Security.BestAsk.Price + Security.MinStepSize * pricePieces : Security.BestBid.Price - Security.MinStepSize * pricePieces;
var newOrder = this.CreateOrder(orderDirection, orderPrice, Math.Abs(Position));
RegisterOrder(newOrder);
}
var newOrderDirection = isNewEntranceSignalUp == true ? OrderDirections.Buy : OrderDirections.Sell;
var newOrderPrice = isNewEntranceSignalUp == true ? Security.BestAsk.Price + Security.MinStepSize * pricePieces : Security.BestBid.Price - Security.MinStepSize * pricePieces;
var newPositionToOpen = this.CreateOrder(newOrderDirection, newOrderPrice, 1);
newPositionToOpen.WhenMatched().Do(() => newPositionToOpen.WhenNewTrades().Do(OnNewOrderTrades).Apply(this)).Apply(this);
RegisterOrder(newPositionToOpen);
ResumeRules();
Где у меня гармонь? Или это проблемы в библиотеке (что менее вероятно)?
Спасибо.