← 戻る

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

После регистрации заявки в методе 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
Moadip

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

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

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

Lipot
Lipot 著者

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

Lipot
Lipot 著者

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

esper
esper

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

Тейк-профит и стоп-лосс

Lipot
Lipot 著者

В очередной раз прочитал в документации про тейк-профит и стоплосс. Но такое впечатление, что "смотрю в книгу - вижу фигу" или я чего-то не понимаю. Так как работаю через 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
hroft

Вроде так:


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
Lipot 著者

Сделал, как вы показали. К сожалению не помогло 😭 После входа в сделку, ни стоп-заявки, ни выхода по 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
hroft

Так:


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
Lipot 著者

Подставил ваш код. Судя по логам что-то поменялось. Но на деле ничего опять же не произошло. Ни стоп заявки в 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
hroft

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

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

Update:

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


_trader.RegisterMarketDepth(security);

Lipot
Lipot
Lipot 著者

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