При котировании заявок стоплосс (и/или) тэйкпрофит выполняются сразу две заявки

При котировании заявок стоплосс (и/или) тэйкпрофит выполняются сразу две заявки
Atom
19.11.2010
ustas


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

При котировании Тейкпрофит стратегии часто выполниляется две заявки. Т.е. выставление новой заявки не отменяет или не успевает отменить старую. Вернее даже так : первая заявка исполнилась, но котирование выставляет вторую заявку (см. лог ниже выставилось две заявки 57878465 и 57878467 и в итоге обе исполнились)

Нельзя ли перерегистрировать заявку вместо удаления старой и создания новой? Хотя вообще непонятно зачем создалась вторая заявка если первая исполнилась? См. лог ниже.

Подскажите как тут лучше делать, пжл.

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

Вот код BS/SL/TP стратегии

var takeStop = new BatchStrategy(BatchFinishModes.First) { IsParallel = true };
                                    foreach (var mytrade in Program.trader.GetMyTrades(order))
                                    {
                                        var tp = new TakeProfitStrategy(mytrade, 6.Points(Security));// { IsMarket = true };
                                        var sl = new StopLossStrategy(mytrade, 12.Points(Security)) { IsTrailing = true };
                                        tp.UseMarketQuoting = true; tp.PriceExchange = 5.Points(Security); tp.PriceDelta = 10.Points(Security);
                                        sl.UseMarketQuoting = true; sl.PriceExchange = 5.Points(Security); sl.PriceDelta = 10.Points(Security);
                                        takeStop.ChildStrategies.Add(tp);
                                        takeStop.ChildStrategies.Add(sl);

                                        base.ChildStrategies.Add(takeStop);
                                    }

Вот лог. Режим асинхронный если это важно. ( trader.IsAsyncMode = true;) Может в этом дело?

SS 16:17:20.8835910 Условие активировано. BS 16:17:20.8845911 Стратегия запущена. TPS 16:17:20.8845911 Стратегия запущена. SLS 16:17:20.8855912 Стратегия запущена. SS 16:17:20.8865912 Условие удалено. TPS 16:25:03.1210295 Регистрация защитной заявки с ценой 9821 и объемом 1. MQS 16:25:03.1210295 Стратегия запущена. TPS 16:25:03.1220296 Регистрация новой заявки на Buy с ценой 9821 и объемом 1. TPS 16:25:03.1320301 Заявка 57878465 на Buy отправлена с ценой 9821 объемом 1. MQS 16:25:04.1340875 Цена текущей 9821 и лучшей 9831. MQS 16:25:04.1340875 Котирование заявки 57878465 на Buy с ценой 9821 объемом 1. MQS 16:25:04.6341161 Котируемая заявка 57878465 исполнилась. SS 16:25:04.6371162 Условие активировано. SS 16:25:04.6381163 Условие удалено. MQS 16:25:05.6441738 Регистрация новой заявки на Buy с ценой 9830 и объемом 1. MQS 16:25:05.6501742 Заявка 57878467 на Buy отправлена с ценой 9830 объемом 1. ///--- Зачем? Первая заявка 57878465 уже исполнена? MQS 16:25:06.6742327 Заканчиваем котирование с неисполненным объемом равный 0 контрактов. MQS 16:25:06.6742327 Стратегия останавливается. MQS 16:25:07.6812903 Котирование отменяет заявку 57878467. MQS 16:25:07.6832905 Стратегия остановлена. TPS 16:25:08.6843477 Котируемая заявка 57878465 исполнилась. TPS 16:25:08.6853478 Стратегия останавливается. TPS 16:25:09.7004058 Котирование отменяет заявку 57878465. TPS 16:25:09.7004058 Стратегия остановлена.


Теги:


Спасибо:


< 1 2 
Mikhail Sukhov

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


ustas:

  1. Хорошо, но почему тогда не останавливается

Посмотрел первоначальный код. Там ошибка. В пакетную стратегию можно добавлять лишь параллельные дочерние стратегии (в новой версии бросается исключение). Иначе BatchStrategy никогда не узнает об исполнении.

Спасибо:
< 1 2 

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

loading
clippy