Приветствую уважаемых Михаила и коллег.
Еще раз хочу поблагодорить Михаила за успешное разрешение проблемы с NullReferenceException.
Продолжаю тестировать защитные стратегии.
непонятно почему в логе ниже стратегия остановилась, хотя стоп завяка 51809355 не выполнилась. И что значит что "стратегия остановлена". Т.е. она совсем остановлена? И она больше заявок выдавать не будет?
SS 14:28:18.4218830 Условие активировано. SS 14:28:53.2908774 Условие активировано. SS 14:28:53.6238964 Условие удалено. SS 14:28:53.7349028 Условие активировано. SS 14:28:54.0479207 Условие удалено. SS 14:28:54.1639273 Условие активировано. UGUHUAXMLTMK 14:28:54.1699276 Стратегия запущена. SS 14:28:54.1849285 Условие удалено. UGUHUAXMLTMK 14:28:54.2859343 Условие активировано. BS 14:28:54.2999351 Стратегия запущена. BS 14:28:54.3019352 Стратегия запущена. TPS 14:28:54.3039353 Стратегия запущена. SLS 14:28:54.3049354 Стратегия запущена. <mark>SLS 14:29:10.5578650 Регистрация защитной заявки с ценой 10719 и объемом 1. SLS 14:29:10.5608651 Регистрация новой заявки на Buy с ценой 10719 и объемом 1. SLS 14:29:10.8098794 Заявка 51809355 на Buy отправлена с ценой 10719 объемом 1. SLS 14:29:11.8139368 Котируемая заявка 51809355 снята. SLS 14:29:11.8149369 Стратегия останавливается.</mark> SS 14:29:12.0219487 Условие активировано. <mark>SLS 14:29:13.1230117 Котирование отменяет заявку 51809355.</mark> SLS 14:29:13.1240117 Стратегия остановлена. BS 14:29:13.1360124 Стратегия останавливается. TPS 14:29:13.1390126 Стратегия останавливается. TPS 14:29:14.1500704 Котирование закончилось. TPS 14:29:14.1500704 Стратегия остановлена. BS 14:29:14.1510705 Стратегия остановлена. BS 14:29:14.1520705 Стратегия останавливается. <mark>BS 14:29:15.1521277 Стратегия остановлена.</mark> SS 14:31:47.7018531 Условие активировано. SS 14:31:50.5160141 Условие активировано. SS 14:32:00.5645888 Условие активировано. SS 14:32:00.5655889 Условие удалено.
Т.е. BatchStrategy останавливается после выставления одной из заявок и не важно исполнилась заявка или нет? В принципе я не против этого, просто уточняю.
запускаю так
RegisterOrder(order);
When(order.NewTrades()).Do(//() =>
this.Protect(order,
t => new TakeProfitStrategy(t, 4.Points(Security)) { IsForts = true, IsParallel = true, IsMarket = true, PriceExchange = 3.Points(Security), ProtectiveDelta = 3.Points(Security) },
t => new StopLossStrategy(t, 4.Points(Security)) { IsForts = true, IsMarket=true, IsParallel = true,IsTrailing=true, PriceExchange=3.Points(Security),ProtectiveDelta=3.Points(Security) })).Activated<Strategy>(s =>
{
When(s.Stopped()).
Do(() =>
{
/* сработало стоп условие */
});
}
Спасибо и с уважением!
Комментарии (7)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
А почему в логе пишется, что заявка 51809355 снята? Кто ее снимает?
По моему котирование и сняло, вроде больше некому.
А подскажите, IsMarket он для чего нужен (работаю на фортсе), я его перепутал видимо с UseMarketQuoting который мне нужен.
И еще такой вопрос поподробнее пжл про свойства ProtectiveStrategy в доке
а в примерах priceDelta которая передаётся в конструкторе например TPS или SLS - это вроде как размер тейк профит или стоп лосс (Его кстати можно менять во время работы стратегии?)
это разные priceDelta?
и как заставить TPS или SLS стратегию выставлять заявки с запасом чтобы заявка гарантировано выполнилась.
и что такое
я пробовал менять и PriceExchange и ProtectiveDelta - но завка всё равно выставляется точно по цене (защищаемого trade) +/- priceDelta т.е. совсем без запаса. И заявка может не выполнится.
Спасибо и с уважением.
Выставить защитную заявку как рыночную. На Forts рыночные заявки не принимаются.
И еще такой вопрос поподробнее пжл про свойства ProtectiveStrategy в доке
Ошибка в названиях. Это protectiveDelta.
Использовать котирование (UseMarketQuoting = true). Как раз в нем и используется priceDelta. Его смысл описывается в MarketQuotingStrategy. Им и задается, куда именно нужно ставить заявку - дальше от края или глубже в стакан.
Переопределить ProtectiveStrategy.CreateProtectionOrder где заведомо указать цену хуже рынка.
Хорошо, тогда для полной ясности MarketQuotingStrategy при UseMarketQuoting =true будет использовать PriceDelta? правильно? А если UseMarketQuoting не определён то используется ProtectiveDelta?
Если да, то странно , я его (ProtectiveDelta) пытался задать заведомо большим (100), но он не влиял на цену выставленной заявки.
Спасибо и с уважением.
PorotectiveDelta - это отступ от цены сделки, при которой срабатывает сигнал. PriceDelta - это то, как будет отставать от края заявка, созданная сигналом... Принципиально разные вещи. Одно - это условие. Другое - действие.
Спасибо и с уважением!
О! теперь дошло. Много спасиб!