Помогите разобраться с защитными стратегиями - что-то не работает


Помогите разобраться с защитными стратегиями - что-то не работает
Atom Ответить
27.03.2013


После регистрации заявки в методе ProcessCandle я подписываюсь на событие возникновения сделки:

Код
Trader
                        .WhenNewMyTrades()
                        .Do(OnNewMyTrades)
                        .Apply(this);



Обработчик события:

Код
protected override void OnNewMyTrades(IEnumerable<MyTrade> trades)
        {

            //Для каждой сделки добавляем защитную стоп-лосс стратегию
            var myTrades = trades as List<MyTrade> ?? trades.ToList();
            var protectiveStrategies = myTrades.Select(t =>
            {
                _stopLoss = t.Trade.Price * _stopLossPercent / 100;

                //Выставляем стоп-лосс 2% от цены входа
                var stopLossStrategy = new AutoProtectiveStrategy
                {
                    StopLossLevel = _stopLoss,
                    TakeProfitTimeOut = TimeSpan.FromMinutes(_timeFrame.Minutes*2)
                };
                return stopLossStrategy;
            });

            ChildStrategies.AddRange(protectiveStrategies);

            base.OnNewMyTrades(myTrades);
        }


Но в реале после возникновения сделки ничего не происходит.

Я правильно понимаю, что исходя из моего кода:
а) должен сразу ставиться стоп на уровень _stopLoss от цены закрытия и я его должен видеть в Квике?
б) если стоп не сработает через двойной таймфрейм позиция закроется автоматически?

Log.Debug:

Код
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:02:57.656 |            | Правило 'Отмена заявки  79320322/10214113300 (0x31E27EC) OR Полное исполнение  79320322/10214113300 (0xEF627A) OR Ошибка регистрации заявки  79320322/10214113300 (0x26A85D1)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:02:57.658 |            | Правило 'Отмена заявки  79320322/10214113300 (0x31E27EC) OR Полное исполнение  79320322/10214113300 (0xEF627A) OR Ошибка регистрации заявки  79320322/10214113300 (0x26A85D1)'. Удаляется.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:02:57.662 |            | Правило 'Отмена заявки  79320322/10214113300 (0x31E27EC)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:02:57.663 |            | Правило 'Полное исполнение  79320322/10214113300 (0xEF627A)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:02:57.664 |            | Правило 'Ошибка регистрации заявки  79320322/10214113300 (0x26A85D1)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:02:57.664 |            | Правило 'Отмена заявки  79320322/10214113300 (0x31E27EC) OR Полное исполнение  79320322/10214113300 (0xEF627A) OR Ошибка регистрации заявки  79320322/10214113300 (0x26A85D1)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:02:57.664 |            | Правило 'Отмена заявки  79320322/10214113300 (0x31E27EC) OR Полное исполнение  79320322/10214113300 (0xEF627A) OR Ошибка регистрации заявки  79320322/10214113300 (0x26A85D1)'. Удаление.
APS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:02:57.794 |            | Переход из состояния Stopped в Started.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:02:57.816 |            | Правило 'Новые сделки (0x1771B73)'. Активация.
APS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:02:58.006 |            | Переход из состояния Stopped в Started.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:03:04.397 |            | Правило 'Законченные свечки TimeFrameCandle_SRM3@RTS_00-01-00 (0x2442922)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:03:05.972 |            | Правило 'Полное исполнение  79320324/10214114904 (0x21128C3)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:03:05.972 |            | Правило 'Отмена заявки  79320324/10214114904 (0x3F19E1D)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:03:05.972 |            | Правило 'Ошибка регистрации заявки  79320324/10214114904 (0x25EE953)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:03:06.145 | Ошибка     | Заявка 79320322 не была отменена по причине StockSharp.Quik.ApiException: Код ошибки Failed Сообщение Вы не можете снять данную заявку.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:04:03.973 |            | Правило 'Законченные свечки TimeFrameCandle_SRM3@RTS_00-01-00 (0x2442922)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:04:05.295 |            | Правило 'Полное исполнение  79320326/0 (0x2308F08)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:04:05.295 |            | Правило 'Отмена заявки  79320326/0 (0x3D8C971)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:04:05.295 |            | Правило 'Ошибка регистрации заявки  79320326/0 (0xD1713E)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:04:05.583 |            | Правило 'Отмена заявки  79320324/10214114904 (0x3F19E1D) OR Полное исполнение  79320324/10214114904 (0x21128C3) OR Ошибка регистрации заявки  79320324/10214114904 (0x25EE953)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:04:05.583 |            | Правило 'Отмена заявки  79320324/10214114904 (0x3F19E1D) OR Полное исполнение  79320324/10214114904 (0x21128C3) OR Ошибка регистрации заявки  79320324/10214114904 (0x25EE953)'. Удаляется.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:04:05.583 |            | Правило 'Отмена заявки  79320324/10214114904 (0x3F19E1D)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:04:05.583 |            | Правило 'Полное исполнение  79320324/10214114904 (0x21128C3)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:04:05.583 |            | Правило 'Ошибка регистрации заявки  79320324/10214114904 (0x25EE953)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:04:05.583 |            | Правило 'Отмена заявки  79320324/10214114904 (0x3F19E1D) OR Полное исполнение  79320324/10214114904 (0x21128C3) OR Ошибка регистрации заявки  79320324/10214114904 (0x25EE953)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:04:05.583 |            | Правило 'Отмена заявки  79320324/10214114904 (0x3F19E1D) OR Полное исполнение  79320324/10214114904 (0x21128C3) OR Ошибка регистрации заявки  79320324/10214114904 (0x25EE953)'. Удаление.
RS_SRM3@RTS_SPBFUT007r0 | 27.03.2013 22:04:57.418 |            | Правило 'Отмена заявки  79320326/10214117804 (0x3D8C971) OR Полное исполнение  79320326/10214117804 (0x2308F08) OR Ошибка регистрации заявки  79320326/10214117804 (0xD1713E)'. Активация.

Теги:


Спасибо:




11 Ответов
Moadip

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


Для кода вместо BB тегов


надо использовать


Для текста логов




Спасибо:

Lipot

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


Подправил. Так намного лучше. Буду впредь оформлять таким образом.
Автор топика
Спасибо:

Lipot

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


Не могу заснуть :) Ну помогите кто-нибудь!
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 28.03.2013
Ответить


Lipot Перейти
а) должен сразу ставиться стоп на уровень _stopLoss от цены закрытия и я его должен видеть в Квике?


Тейк-профит и стоп-лосс
Спасибо:

Lipot

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


В очередной раз прочитал в документации про тейк-профит и стоплосс. Но такое впечатление, что "смотрю в книгу - вижу фигу" или я чего-то не понимаю. Так как работаю через Quik - добавил в таблицу "Инструменты" - максимальную и минимальную цены сделки.
Делаю, вроде как, также но после исполнения заявки ничего не происходит. Никаких стоп-заявок не появляется. И из сделки по TakeProfitTimeOut не выходит.

Стратегия:

Код
/// <summary>
        /// Событие обработки свечей (как новых свечей так и пришедших с начала торгового дня) 
        /// Свечи поступают согласно заданному таймфрейму
        /// </summary>
        /// <param name="candle">последняя сформированная полностью свеча</param>
        private void ProcessCandle(Candle candle)
        {
            // если наша стратегия в процессе остановки
            if (ProcessState == ProcessStates.Stopping)
            {
                CancelActiveOrders();   //отменяем активные заявки
                return;
            }

            //Если время 23,30 - то закрываем все сделки, останавливаем стратегию, выключаем робота
            if (candle.CloseTime.Hour == 23 && candle.CloseTime.Minute >= 40)
            {
                if (GetCurrentPosition() != 0)
                    closeAllPosition();
                StopRobot();
                return;
            }

            //Разрешаем открывать позиции только в определенное время
            if (canTradeByTime(candle.CloseTime.Hour, candle.CloseTime.Minute))
            {
                //Проверяем, есть ли открытые позиции по нашему инструменту
                if (GetCurrentPosition() != 0)
                {
                    //MessageBox.Show("Имеется позиция");
                }
                
                //Определяем время последней сформированной свечи
                DateTime currentCandleTime = (candle.OpenTime + _timeFrame);

                //Если пришедшая свеча - последняя полностью сформированная (актуальная к текущему времени)
                if (currentCandleTime.Hour == _candleManager.CurrentTime.Hour &&
                    currentCandleTime.Minute ==
                    _candleManager.CurrentTime.Minute / (int)_timeFrame.TotalMinutes * (int)_timeFrame.TotalMinutes)
                {
                    
                    //Вычисляем дельту от цены закрытия
                    _delta = Math.Round(candle.ClosePrice * _deltaPercent / 100, 0);

                    if (Orders!=null)
                    {
                        if(!Orders.Any())
                        {
                            RegisterOrder(this.CreateOrder(OrderDirections.Sell, candle.ClosePrice + _delta, Volume));
                        }
                    }

                    Trader
                        .WhenNewMyTrades()
                        .Do(OnNewMyTrades)
                        .Apply(this);

                }
            }
        }

        /// <summary>
        /// Событие прихода новой свечи во время нахождения в позиции
        /// </summary>
        /// <param name="trades"></param>
        protected override void OnNewMyTrades(IEnumerable<MyTrade> trades)
        {

            //Для каждой сделки добавляем защитную стоп-лосс стратегию
            var myTrades = trades as List<MyTrade> ?? trades.ToList();
            var protectiveStrategies = myTrades.Select(t =>
            {
                _stopLoss = t.Trade.Price * _stopLossPercent / 100;

                //Выставляем стоп-лосс 2% от цены входа
                var stopLossStrategy = new AutoProtectiveStrategy
                {
                    StopLossLevel = _stopLoss,
                    TakeProfitTimeOut = TimeSpan.FromMinutes(_timeFrame.Minutes * 2)
                };
                return stopLossStrategy;
            });

            ChildStrategies.AddRange(protectiveStrategies);

            base.OnNewMyTrades(myTrades);
        }


DebugLog с момента исполнения заявки:

Код
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:48.835 |            | Новая позиция: SPBFUT007r0-SRM3@RTS=-1.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:48.839 |            | Правило 'Отмена заявки  47769953/10218367678 (0x1B1098F) OR Полное исполнение  47769953/10218367678 (0x1DE93AF) OR Ошибка регистрации заявки  47769953/10218367678 (0x3D23B6F)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:48.840 |            | Заявка 47769953 больше не активна.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:48.841 |            | Правило 'Отмена заявки  47769953/10218367678 (0x1B1098F) OR Полное исполнение  47769953/10218367678 (0x1DE93AF) OR Ошибка регистрации заявки  47769953/10218367678 (0x3D23B6F)'. Удаляется.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:48.844 |            | Правило 'Отмена заявки  47769953/10218367678 (0x1B1098F)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:48.845 |            | Правило 'Полное исполнение  47769953/10218367678 (0x1DE93AF)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:48.845 |            | Правило 'Ошибка регистрации заявки  47769953/10218367678 (0x3D23B6F)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:48.845 |            | Правило 'Отмена заявки  47769953/10218367678 (0x1B1098F) OR Полное исполнение  47769953/10218367678 (0x1DE93AF) OR Ошибка регистрации заявки  47769953/10218367678 (0x3D23B6F)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:48.845 |            | Правило 'Отмена заявки  47769953/10218367678 (0x1B1098F) OR Полное исполнение  47769953/10218367678 (0x1DE93AF) OR Ошибка регистрации заявки  47769953/10218367678 (0x3D23B6F)'. Удаление.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.002 |            | Переход из состояния Stopped в Started.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.002 |            | Стратегия запущена. [0,1]. Позиция при старте 0.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.010 |            | Новая Sell сделка 714686430 по цене 9612 на 1 заявки 47769953.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.024 |            | Правило 'Новые сделки (0xF4B390)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.182 |            | Правило 'Новые сделки (0x36E1331)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.453 |            | Правило 'Новые сделки (0x19DE06)'. Активация.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.182 |            | Переход из состояния Stopped в Started.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.182 |            | Стратегия запущена. [0,2]. Позиция при старте 0.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.453 |            | Переход из состояния Stopped в Started.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.453 |            | Стратегия запущена. [0,3]. Позиция при старте 0.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.655 |            | Переход из состояния Stopped в Started.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.655 |            | Стратегия запущена. [0,4]. Позиция при старте 0.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.655 |            | Правило 'Новые сделки (0x2F34230)'. Активация.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.896 |            | Переход из состояния Stopped в Started.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:19:49.896 |            | Стратегия запущена. [0,5]. Позиция при старте 0.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:20:01.802 |            | Правило 'Законченные свечки TimeFrameCandle_SRM3@RTS_00-01-00 (0x2B88FBE)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:21:02.302 |            | Правило 'Законченные свечки TimeFrameCandle_SRM3@RTS_00-01-00 (0x2B88FBE)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 13:22:03.422 |            | Правило 'Законченные свечки TimeFrameCandle_SRM3@RTS_00-01-00 (0x2B88FBE)'. Активация.


Помогите, пожалуйста.
Автор топика
Спасибо:

hroft

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


Вроде так:
Код

var stop_price=t.Trade.Price * _stopLossPercent / 100;
var _stopLoss = new Unit(stop_price, UnitTypes.Limit);
var stopLossStrategy = new AutoProtectiveStrategy
{
    StopLossLevel = _stopLoss,
    TakeProfitTimeOut = TimeSpan.FromMinutes(_timeFrame.Minutes * 2)
};

Если stop_price конкретное значение цены то нужно как наверху, если разница в пунктах от цены по которой прошла сделка то можно просто var _stopLoss=new Unit(stop_price).

Это вообще не надо:
Код

var myTrades = trades as List<MyTrade> ?? trades.ToList();


Update:
В вашем случае var _stopLoss=new Unit(stop_price)
Спасибо:

Lipot

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


Сделал, как вы показали. К сожалению не помогло Crying
После входа в сделку, ни стоп-заявки, ни выхода по TakeProfitTimeOut.

Код
protected override void OnNewMyTrades(IEnumerable<MyTrade> trades)
        {

            //Для каждой сделки добавляем защитную стоп-лосс стратегию

            var protectiveStrategy = trades.Select(trade =>
            {
                var stopPrice = trade.Trade.Price * _stopLossPercent / 100;
                var stopLoss = new Unit(stopPrice);
                var stopLossStrategy = new AutoProtectiveStrategy
                {
                    StopLossLevel = stopLoss,
                    TakeProfitTimeOut = TimeSpan.FromMinutes(_timeFrame.Minutes * 2)
                };
                return stopLossStrategy;
            });

            ChildStrategies.AddRange(protectiveStrategy);

            base.OnNewMyTrades(trades);
        }


DebugLog:

Код
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:26:01.386 |            | Правило 'Законченные свечки TimeFrameCandle_SRM3@RTS_00-01-00 (0x2223F6A)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.278 |            | Новая позиция: SPBFUT007r0-SRM3@RTS=-1.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.282 |            | Правило 'Отмена заявки  62583271/10222349252 (0x2D27045) OR Полное исполнение  62583271/10222349252 (0x1F6DBDE) OR Ошибка регистрации заявки  62583271/10222349252 (0x3290837)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.283 |            | Заявка 62583271 больше не активна.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.284 |            | Правило 'Отмена заявки  62583271/10222349252 (0x2D27045) OR Полное исполнение  62583271/10222349252 (0x1F6DBDE) OR Ошибка регистрации заявки  62583271/10222349252 (0x3290837)'. Удаляется.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.285 |            | Правило 'Отмена заявки  62583271/10222349252 (0x2D27045)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.285 |            | Правило 'Полное исполнение  62583271/10222349252 (0x1F6DBDE)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.286 |            | Правило 'Ошибка регистрации заявки  62583271/10222349252 (0x3290837)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.286 |            | Правило 'Отмена заявки  62583271/10222349252 (0x2D27045) OR Полное исполнение  62583271/10222349252 (0x1F6DBDE) OR Ошибка регистрации заявки  62583271/10222349252 (0x3290837)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.286 |            | Правило 'Отмена заявки  62583271/10222349252 (0x2D27045) OR Полное исполнение  62583271/10222349252 (0x1F6DBDE) OR Ошибка регистрации заявки  62583271/10222349252 (0x3290837)'. Удаление.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.485 |            | Новая Sell сделка 714976123 по цене 9690 на 1 заявки 62583271.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.499 |            | Правило 'Новые сделки (0x348F60C)'. Активация.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.474 |            | Переход из состояния Stopped в Started.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.474 |            | Стратегия запущена. [0,1]. Позиция при старте 0.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.829 |            | Переход из состояния Stopped в Started.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:23:30.830 |            | Стратегия запущена. [0,2]. Позиция при старте 0.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:24:03.959 |            | Правило 'Законченные свечки TimeFrameCandle_SRM3@RTS_00-01-00 (0x2223F6A)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 17:25:04.374 |            | Правило 'Законченные свечки TimeFrameCandle_SRM3@RTS_00-01-00 (0x2223F6A)'. Активация.
Автор топика
Спасибо:

hroft

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


Так:

Код

protected override void OnNewMyTrades(IEnumerable<MyTrade> trades)
{
 
    //Для каждой сделки добавляем защитную стоп-лосс стратегию
 
    var protectiveStrategy = trades.Select(trade =>
    {
        var stopPrice = trade.Trade.Price * _stopLossPercent / 100;
        var stopLoss = new Unit(stopPrice);
        var stopLossStrategy = new AutoProtectiveStrategy
        {
            StopLossLevel = stopLoss,
            TakeProfitTimeOut = TimeSpan.FromMinutes(_timeFrame.Minutes * 2)
        };
        stopLossStrategy.ProcessNewMyTrades(trades);
        return stopLossStrategy;
    });
 
    ChildStrategies.AddRange(protectiveStrategy);
}
Спасибо:

Lipot

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


Подставил ваш код. Судя по логам что-то поменялось. Но на деле ничего опять же не произошло. Ни стоп заявки в Quik'e, ни выхода по TakeProfitTimeOut.

Выкладываю DebugLog с момента входа в сделку. Видно что какое-то котирование запустилось, но мне трудно разобрать, что значат некоторые строки.
Может вы сможете что сказать?

Код
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.093 |            | Новая позиция: SPBFUT007r0-SRM3@RTS=-1.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.097 |            | Правило 'Отмена заявки  65566124/10223573111 (0xCF239D) OR Полное исполнение  65566124/10223573111 (0x2239303) OR Ошибка регистрации заявки  65566124/10223573111 (0x3A5D131)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.098 |            | Заявка 65566124 больше не активна.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.099 |            | Правило 'Отмена заявки  65566124/10223573111 (0xCF239D) OR Полное исполнение  65566124/10223573111 (0x2239303) OR Ошибка регистрации заявки  65566124/10223573111 (0x3A5D131)'. Удаляется.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.101 |            | Правило 'Отмена заявки  65566124/10223573111 (0xCF239D)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.102 |            | Правило 'Полное исполнение  65566124/10223573111 (0x2239303)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.103 |            | Правило 'Ошибка регистрации заявки  65566124/10223573111 (0x3A5D131)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.103 |            | Правило 'Отмена заявки  65566124/10223573111 (0xCF239D) OR Полное исполнение  65566124/10223573111 (0x2239303) OR Ошибка регистрации заявки  65566124/10223573111 (0x3A5D131)'. Освободило ресурсы.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.103 |            | Правило 'Отмена заявки  65566124/10223573111 (0xCF239D) OR Полное исполнение  65566124/10223573111 (0x2239303) OR Ошибка регистрации заявки  65566124/10223573111 (0x3A5D131)'. Удаление.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.294 |            | Новая Sell сделка 715063480 по цене 9710 на 1 заявки 65566124.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.308 |            | Правило 'Новые сделки (0x36429A3)'. Активация.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.262 |            | Переход из состояния Stopped в Started.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.294 |            | Стратегия запущена. [1,1]. Позиция при старте 0.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.262 |            | Переход из состояния Stopped в Started.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.262 |            | Стратегия запущена. [0,1]. Позиция при старте 0.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.262 |            | Защита сделки 715063480 заявки 65566124.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.263 |            | Котирование на Buy объема 1.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.263 |            | Приостановка правил. _rulesSuspendCount 1.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.274 |            | Возобновление правил. _rulesSuspendCount 0.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.466 |            | Переход из состояния Stopped в Started.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.466 |            | Стратегия запущена. [1,2]. Позиция при старте 0.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.466 |            | Переход из состояния Stopped в Started.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.466 |            | Стратегия запущена. [0,1]. Позиция при старте 0.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.466 |            | Защита сделки 715063480 заявки 65566124.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.466 |            | Котирование на Buy объема 1.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.466 |            | Приостановка правил. _rulesSuspendCount 1.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.466 |            | Возобновление правил. _rulesSuspendCount 0.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.466 |            | Правило 'Новые сделки (0x20F3157)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.697 |            | Правило 'Новые сделки (0x36429A3)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.697 |            | Правило 'Новые сделки (0x20F3157)'. Активация.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.697 |            | Переход из состояния Stopped в Started.
APS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.697 |            | Стратегия запущена. [1,3]. Позиция при старте 0.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.697 |            | Переход из состояния Stopped в Started.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.697 |            | Стратегия запущена. [0,1]. Позиция при старте 0.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.697 |            | Защита сделки 715063480 заявки 65566124.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.697 |            | Котирование на Buy объема 1.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.697 |            | Приостановка правил. _rulesSuspendCount 1.
SLS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:14:12.697 |            | Возобновление правил. _rulesSuspendCount 0.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:15:00.837 |            | Правило 'Законченные свечки TimeFrameCandle_SRM3@RTS_00-01-00 (0x3241F53)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:16:04.407 |            | Правило 'Законченные свечки TimeFrameCandle_SRM3@RTS_00-01-00 (0x3241F53)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 28.03.2013 18:17:05.532 |            | Правило 'Законченные свечки TimeFrameCandle_SRM3@RTS_00-01-00 (0x3241F53)'. Активация.


Спасибо.
Автор топика
Спасибо:

hroft

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


Стоп-заявки в quik и не будут выкидываться. Защитные стратегии используют алгоритм котирования для защиты сделок. Когда цена отойдет на расстояние которое вы указали в StopLossLevel тогда защитная стратегия начнет по Volume (в вашем случае по 1 ) контракту выкидывать заявки, постепенно закрывая позицию.

Сам я AutoProtectiveStrategy не использую.

Update:

Блин сам же сказал что защитные стратегии используют алгоритм котирования. У вас стаканы запущены???
Если нет то впихните например в OnStarted стратегии:
Код

_trader.RegisterMarketDepth(security);
Спасибо: Lipot

Lipot

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


Спасибо! Был не в курсе, что защитные стратегии работают таким образом. Попробую в понедельник. Спасибо еще раз!
Автор топика
Спасибо:


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

loading
clippy