Как убрать выставление лишних заявок?


Как убрать выставление лишних заявок?
Atom
13.05.2013


Код

 private void ProcessCandle(Candle candle)
        {
            lock(_mainlock)
             {
            var timeFrame = (TimeSpan)candle.Arg;
            var time = timeFrame.GetCandleBounds(Security).Min - timeFrame;
            _band.Process(new CandleIndicatorValue(candle) { IsFinal = true });
            this.AddInfoLog("Новая свечка {0}, {1}, {2}, {3}, {4}", candle.HighPrice, candle.CloseTime, _band.LastValue, _band.PrevIndValue, _band.InitDirection);


            if (candle.OpenTime >= time && _band.IsFormed )
            
            {

                if (_band.Direction == -1 && _band.LastValue < _band.PrevIndValue && Position >= 0 && _band.LevelHigh2 != 0)
                {
                    //отменяем все ордера  и выставляем новую заявку
                    CancelActiveOrders();
                    var order = this.CreateOrder(OrderDirections.Sell, Security.BestAsk.Price - 1m, this.Position + Volume);
                    RegisterOrder(order);
                }
                
                else
                    
                    if (_band.Direction == 1 && _band.LastValue > _band.PrevIndValue && Position <= 0 && _band.LevelLow2 != 0)
                    {
                        //отменяем все ордера  и выставляем новую заявку
                        CancelActiveOrders();
                        var order = this.CreateOrder(OrderDirections.Buy, Security.BestBid.Price + 1m, this.Position * -1m + Volume);
                        RegisterOrder(order);
                    }

                    else
                        if (_band.InitDirection == 2 && Position > 0)
                        {
                            //отменяем все ордера  и выставляем новую заявку
                            CancelActiveOrders();
                            var order = this.CreateOrder(OrderDirections.Sell, Security.BestAsk.Price, this.Position);
                            RegisterOrder(order);
                        }
                        else
                            if (_band.InitDirection == -2 && Position < 0)
                            {
                                //отменяем все ордера  и выставляем новую заявку
                                CancelActiveOrders();
                                var order = this.CreateOrder(OrderDirections.Buy, Security.BestBid.Price, this.Position * -1m);
                                RegisterOrder(order);
                            }
            }
            }

        }


Это код, который выставляет заявки. Но в моменты высокой активности он начинает ставить "лишнее". Есть способы устранения?

Теги:


Спасибо:


< 1 2 3  >
Shaly

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


Просто при тестировании на рабочем квике наблюдала следующую картину при тестировании минимальным объемом, в квике сделка прошла, система развернулась как положено, а в стокшарпе никаких намеков на сделку и он придолжал ставить как ни в чем не бывало, в результате позиция была перебрана в 7 раз, пока он не заметил. Таймфрейм у системы маленький, но периодичность сделок от 15 секунд до 15 минут, поэтому о чуствительности к задержкам трудно говорить.
Спасибо:

esper

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


Так отправили заявку и ждем пока она исполнится или по ней придет ошибка, либо отправили сигнал на отмену и снова ждем, зачем отправлять множество заявок и не смотреть за их исполнением?
Спасибо:

Shaly

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


Собственно, я и жду когда она исполнится. Она исполняется, но позиция не меняется, но меняется бар, и на нем тоже выполняются условия для выставления заявки, что стокшарп и делает, ставит еще одну заявку.
Спасибо:

esper

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


Shaly Перейти
Она исполняется, но позиция не меняется

Как вы это определяете?
Спасибо:

Shaly

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


Я делаю вывод интересующих параметров в журнал, в том числе и позицию.
Спасибо:

esper

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


Тогда давайте лог, в котором видно, что заявка исполнилась, а позиция не изменилась.
Спасибо:

Shaly

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


Цитата:

2013/05/17 10:02:02.571| |SS_SiM3@RTS_SPBFUT00svg|Position: 0, _band.Direction: 1,
2013/05/17 10:02:06.390| |SS_SiM3@RTS_SPBFUT00svg|Position: 0, _band.Direction: -1,
2013/05/17 10:02:06.390| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:02:06.397| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x383D5BC) заявки на Sell с ценой 31536 и объемом 1.
2013/05/17 10:02:07.059| |SS_SiM3@RTS_SPBFUT00svg|Новая позиция: SPBFUT00svg-SiM3@RTS=-1.
2013/05/17 10:02:07.061| |SS_SiM3@RTS_SPBFUT00svg|Заявка 34990590 больше не активна.
2013/05/17 10:02:07.065| |SS_SiM3@RTS_SPBFUT00svg|Новая Sell сделка 738025838 по цене 31536 на 1 заявки 34990590.
2013/05/17 10:02:08.563| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:11.568| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:14.728| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:17.686| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:21.082| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:23.601| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:27.005| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:29.630| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:32.914| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:35.752| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:38.923| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:41.655| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:44.960| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:47.561| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:50.852| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:53.630| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:59.310| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:02:59.908| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -1,
2013/05/17 10:03:03.016| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:03.016| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:03.016| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x286AD59) заявки на Buy с ценой 31528 и объемом 1.
2013/05/17 10:03:05.743| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:05.743| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:05.743| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x23C6F39) заявки на Buy с ценой 31542 и объемом 1.
2013/05/17 10:03:09.123| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:09.123| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:09.123| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x23ED608) заявки на Buy с ценой 31543 и объемом 1.
2013/05/17 10:03:11.972| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:11.972| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:11.972| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x33E7E5C) заявки на Buy с ценой 31543 и объемом 1.
2013/05/17 10:03:14.596| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:14.596| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:14.596| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x3CD16E0) заявки на Buy с ценой 31541 и объемом 1.
2013/05/17 10:03:18.311| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:18.311| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:18.311| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x2088684) заявки на Buy с ценой 31542 и объемом 1.
2013/05/17 10:03:21.376| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:21.376| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:21.376| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x1CE4195) заявки на Buy с ценой 31540 и объемом 1.
2013/05/17 10:03:24.324| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:24.324| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:24.324| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x299AE8B) заявки на Buy с ценой 31541 и объемом 1.
2013/05/17 10:03:26.612| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:26.612| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:26.612| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x1480247) заявки на Buy с ценой 31544 и объемом 1.
2013/05/17 10:03:29.678| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:29.678| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:29.679| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0xEC6E7B) заявки на Buy с ценой 31539 и объемом 1.
2013/05/17 10:03:35.139| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:35.139| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:35.139| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x206CC08) заявки на Buy с ценой 31537 и объемом 1.
2013/05/17 10:03:36.232| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:36.232| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:36.232| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x217C60D) заявки на Buy с ценой 31537 и объемом 1.
2013/05/17 10:03:40.396| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:40.396| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:40.396| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x1E6615C) заявки на Buy с ценой 31538 и объемом 1.
2013/05/17 10:03:42.026| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:42.026| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:42.026| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x388BF2C) заявки на Buy с ценой 31538 и объемом 1.
2013/05/17 10:03:44.772| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:44.772| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:44.772| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0xE018B3) заявки на Buy с ценой 31538 и объемом 1.
2013/05/17 10:03:48.591| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:48.591| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:48.591| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x281DC72) заявки на Buy с ценой 31537 и объемом 1.
2013/05/17 10:03:52.631| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:52.631| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:52.631| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x360FCF0) заявки на Buy с ценой 31538 и объемом 1.
2013/05/17 10:03:54.495| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:54.495| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:54.495| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x12113A9) заявки на Buy с ценой 31538 и объемом 1.

Спасибо:

esper

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


Цитата:
2013/05/17 10:03:03.016| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x286AD59) заявки на Buy с ценой 31528 и объемом 1.
2013/05/17 10:03:05.743| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:05.743| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.
2013/05/17 10:03:05.743| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x23C6F39) заявки на Buy с ценой 31542 и объемом 1.
2013/05/17 10:03:09.123| |SS_SiM3@RTS_SPBFUT00svg|Position: -1, _band.Direction: -2,
2013/05/17 10:03:09.123| |SS_SiM3@RTS_SPBFUT00svg|Снятие всех активных заявок.

Здесь видно, что вы выставляете одну заявку, потом следующую и т.д., где вы дожидаетесь изменения позиции? Выводится сообщение, что регистрируется новая заявка и все, нет сообщений об изменении позиции или что заявка была зарегистрирована или снята.
Сообщение об изменении позиции было только один раз здесь:
Цитата:
2013/05/17 10:02:06.397| |SS_SiM3@RTS_SPBFUT00svg|Регистрация новой Limit (0x383D5BC) заявки на Sell с ценой 31536 и объемом 1.
2013/05/17 10:02:07.059| |SS_SiM3@RTS_SPBFUT00svg|Новая позиция: SPBFUT00svg-SiM3@RTS=-1.
Спасибо:

Shaly

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


Здесь сообщения нет, но в квике в результате этого перебор был в 15 раз. В квике сделки проходят, а здесь ничего не меняется, "Снятие всех активных заявок" не происходит.
Спасибо:

esper

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


Shaly Перейти
Здесь сообщения нет

Тогда еще раз повторю свой вопрос, где вы дожидаетесь изменения позиции в своей стратегии? Если сообщения нет, то стратегия и не знает, что ее позиция изменилась.

Чтобы стратегия узнала, что изменилась позиция по инструменту, она должна получить эту информацию из квика. Аналогично и для снятия всех активных заявок, мало вызвать CancelActiveOrders, надо еще дождаться ответа, т.к. некоторые заявки уже могут быть исполнены и по ним будет ошибка отмены.

Изначально речь шла о том, что заявки исполняются, но позиция у стратегии не меняется, судя по логу стратегия не получает информацию по состоянию заявок, может просто не успевает, т.к. вы отправляете слишком много заявок, может у вас какие-то проблемы с экспортом данных. В первом случае:
esper
отправили заявку и ждем пока она исполнится или по ней придет ошибка, либо отправили сигнал на отмену и снова ждем
Во втором: добавьте вывод в лог для всех событий по заявкам и смотрите какая информация приходит из квика, а какая нет.
Спасибо:
< 1 2 3  >

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

loading
clippy