ноя 24, 2011 - и еще добавил логи след. образом: if (position == 0) { if (условие на сделку) { position = 1; order_buy1 = this.CreateOrder(OrderDirections.Buy, base.Security.GetMarketPrice(OrderDirections.Buy), 1); ...
|
|
ноя 24, 2011 - А вообще может быть, что событие .When(base.Security.Changed()) .Do(raschet); возникает очень часто и вызывается одновременно в нескольких потоках и из разных потоков выставляется тэйк?
|
|
ноя 24, 2011 - Сделал... 15:27:53.484 | | OS | Стратегия запущена. 15:27:53.493 | | OS | Создаю 15:27:53.501 | | OS | Регистрирую 15:27:54.061 | | OS | Новая Buy сделка 459004723 по цене 140345 на 1 заявки 55665883....
|
|
ноя 24, 2011 - Ну собственно вот вся логика: protected override void OnStarting() { this .When(base.Security.Changed()) .Do(raschet); base.OnStarting(); } private void raschet() { ... //расчет условия на сделку ... ...
|
|
ноя 24, 2011 - Да объем везде 1 контракт... Да и на покупку выставляется только одна заявка order_buy1... Может причина в том, что условия if внутри метода raschet, который вызывается по событию: protected override ...
|
|
ноя 24, 2011 - Сделал подобным образом: if (position == 0) { if (условие на сделку) { position = 1; order_buy1 = this.CreateOrder(OrderDirections.Buy, base.Security.GetMarketPrice(OrderDirections.Buy), 1); this.Regi...
|
|
ноя 24, 2011 - А что если например MyBuy сделка была на 2 лота и они прошли в разных сделках? Можно изменить на: if (trades.Count() > 0) , но в любом случае order.NewTrades() более удобно использовать. Спасибо!
|
|
ноя 23, 2011 - Что-то вроде этого?: MyBuy = this.CreateOrder(); this.RegisterOrder(MyBuy); MyTake = this.CreateOrder(); this.RegisterOrder(MyTake); ... private void OnNewMyTrades(IEnumerable trades) { trades = trade...
|
|
ноя 23, 2011 - Невнимательно документацию прочитал ) для HFT стратегии такое явно не подходит ) тогда возникает вопрос - как из события NewMyTrades определить какая именно сделка прошла? допустим есть условие, по ко...
|
|
ноя 23, 2011 - Сделал как в примерах... private void OnNewMyTrades(IEnumerable trades) { // фильтруем сделки, чтобы найти те, которые произошли для заявки MyOrder trades = trades.Where(t => t.Order == MyOrder); // е...
|