остановка BatchStrategy 2.6.2
Atom Ответить
13.12.2010


Приветствую уважаемых Михаила и коллег.

Еще раз хочу поблагодорить Михаила за успешное разрешение проблемы с 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 Стратегия запущена.
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 Стратегия останавливается.

SS 14:29:12.0219487 Условие активировано.
SLS 14:29:13.1230117 Котирование отменяет заявку 51809355.
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 Стратегия останавливается.
BS 14:29:15.1521277 Стратегия остановлена.
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 Ответов
Mikhail Sukhov

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


ustas
Приветствую уважаемых Михаила и коллег.

Еще раз хочу поблагодорить Михаила за успешное разрешение проблемы с NullReferenceException.

Продолжаю тестировать защитные стратегии.

непонятно почему в логе ниже стратегия остановилась, хотя стоп завяка 51809355 не выполнилась.


А почему в логе пишется, что заявка 51809355 снята? Кто ее снимает?
Спасибо:

ustas

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


По моему котирование и сняло, вроде больше некому.

А подскажите, IsMarket он для чего нужен (работаю на фортсе), я его перепутал видимо с UseMarketQuoting который мне нужен.

И еще такой вопрос поподробнее пжл про свойства ProtectiveStrategy
в доке
Цитата:
PriceDelta - Дельта цены. Определяет отступ от лучшей котировки (для покупки priceDelta прибавляется к цене, для продажи - вычитается).


а в примерах priceDelta которая передаётся в конструкторе например TPS или SLS - это вроде как размер тейк профит или стоп лосс (Его кстати можно менять во время работы стратегии?)

это разные priceDelta?

и как заставить TPS или SLS стратегию выставлять заявки с запасом чтобы заявка гарантировано выполнилась.

и что такое
Цитата:
ProtectiveDelta - Дельта от цены защищаемой сделки, по которой должна быть выставлена защитная заявка.
(Унаследовано от ProtectiveStrategy.)


я пробовал менять и PriceExchange и ProtectiveDelta - но завка всё равно выставляется точно по цене (защищаемого trade) +/- priceDelta т.е. совсем без запаса.
И заявка может не выполнится.


Спасибо и с уважением.
Автор топика
Спасибо:

Mikhail Sukhov

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


ustas
По моему котирование и сняло, вроде больше некому.

А подскажите, IsMarket он для чего нужен (работаю на фортсе), я его перепутал видимо с UseMarketQuoting который мне нужен.


Выставить защитную заявку как рыночную. На Forts рыночные заявки не принимаются.

ustas

И еще такой вопрос поподробнее пжл про свойства ProtectiveStrategy
в доке
Цитата:
PriceDelta - Дельта цены. Определяет отступ от лучшей котировки (для покупки priceDelta прибавляется к цене, для продажи - вычитается).



Ошибка в названиях. Это protectiveDelta.

ustas

а в примерах priceDelta которая передаётся в конструкторе например TPS или SLS - это вроде как размер тейк профит или стоп лосс (Его кстати можно менять во время работы стратегии?)

это разные priceDelta?

и как заставить TPS или SLS стратегию выставлять заявки с запасом чтобы заявка гарантировано выполнилась.


1. Использовать котирование (UseMarketQuoting = true). Как раз в нем и используется priceDelta. Его смысл описывается в MarketQuotingStrategy. Им и задается, куда именно нужно ставить заявку - дальше от края или глубже в стакан.

2. Переопределить ProtectiveStrategy.CreateProtectionOrder где заведомо указать цену хуже рынка.
Спасибо: ustas

ustas

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


Цитата:
Выставить защитную заявку как рыночную. На Forts рыночные заявки не принимаются.

Вот поэтому наверно она и снялась. Видимо, заявка IsMarket выставляется на фортсе и сразу снимается если в рынок не попала (т.е. не выполнилась сразу).

Спасибо и с уважением!
Автор топика
Спасибо:

ustas

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


Mikhail Sukhov

Ошибка в названиях. Это protectiveDelta.

...............

1. Использовать котирование (UseMarketQuoting = true). Как раз в нем и используется priceDelta. Его смысл описывается в MarketQuotingStrategy. Им и задается, куда именно нужно ставить заявку - дальше от края или глубже в стакан.


Хорошо, тогда для полной ясности MarketQuotingStrategy при UseMarketQuoting =true будет использовать PriceDelta? правильно?
А если UseMarketQuoting не определён то используется ProtectiveDelta?

Если да, то странно , я его (ProtectiveDelta) пытался задать заведомо большим (100), но он не влиял на цену выставленной заявки.

Спасибо и с уважением.
Автор топика
Спасибо:

Mikhail Sukhov

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


ustas

Хорошо, тогда для полной ясности MarketQuotingStrategy при UseMarketQuoting =true будет использовать PriceDelta? правильно?
А если UseMarketQuoting не определён то используется PorotectiveDelta?

Если да, то странно , я его (ProtectiveDelta) пытался задать заведомо большим (100), но он не влиял на цену выставленной заявки.

Спасибо и с уважением.


PorotectiveDelta - это отступ от цены сделки, при которой срабатывает сигнал. PriceDelta - это то, как будет отставать от края заявка, созданная сигналом... Принципиально разные вещи. Одно - это условие. Другое - действие.
Спасибо: ustas

ustas

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


О! теперь дошло.
Много спасиб!
Автор топика
Спасибо:


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

loading
clippy