← Zurück

ChildStrategy

Добрый день. Не получается запустить дочерние стратегии (StopLossStrategy, TakeProfitStrategy). При запуске стратегия останавливается с выдачей исключения: "System.InvalidOperationException: Инструмент SBER@TQBR не подписан на получение отфильтрованного стакана котировок."

Почему при входе в стратегию многие поля Security равны "null"? Как например Security.StepPrice=null.Ведь в стратегию передается объект Security. Как сделать чтобы поля обновлялись?

Что делаю не так? Пример стратегии из StockSharp_Edu_4_3_19_5 дает тот же результат. Версия S# 4.3.19.5; Win 10;

Исходный код стратегии:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using StockSharp.Algo; using StockSharp.Algo.Strategies; using StockSharp.Algo.Strategies.Quoting; using StockSharp.Algo.Strategies.Protective; using StockSharp.BusinessEntities;

using Ecng.Collections; using MoreLinq; using StockSharp.Messages;

namespace Lesson6 { class SmartStrategy:Strategy
{ protected override void OnStarted() { var order = this.BuyAtMarket();

        order.WhenNewTrade(this.Connector)
            .Do(trade =>
                    {
                        var sl = new StopLossStrategy(trade, 0.2);//20 пунктов от нашей сделки  Security.StepPrice*20
                        var tp = new TakeProfitStrategy(trade, 0.4);//40 пунктов от нашей сделки
                        {
                            
                        }

                        var tpsl = new TakeProfitStopLossStrategy(tp, sl);

                        tpsl.WhenStopped()
                            .Do(tpsl1 =>
                                        {

                                        }).Apply(this);

                        ChildStrategies.Add(tpsl);    
                    }).Apply(this);

        RegisterOrder(order);
        base.OnStarted();
    }

    protected override void OnStopped()
    {
        base.OnStopped();
    }
}

}

лог-файл:

0001/01/01 00:00:00.000| |QuikTrader|Connect 2017/02/14 19:34:22.668| |Quik LUA. Transactions|Connect to Unspecified/localhost:5001... 2017/02/14 19:34:22.672| |Quik LUA. Transactions|Connect to Unspecified/localhost:5001 is OK. 2017/02/14 19:34:22.679| |Quik LUA. Transactions|Sending logon to Unspecified/localhost:5001... 2017/02/14 19:34:22.689| |Quik LUA. Transactions|Logon sent to Unspecified/localhost:5001 OK. 2017/02/14 19:34:22.690| |Quik LUA. Market data|Connect to Unspecified/localhost:5001... 2017/02/14 19:34:22.691| |Quik LUA. Market data|Connect to Unspecified/localhost:5001 is OK. 2017/02/14 19:34:22.692| |Quik LUA. Market data|Sending logon to Unspecified/localhost:5001... 2017/02/14 19:34:22.692| |Quik LUA. Market data|Logon sent to Unspecified/localhost:5001 OK. 2017/02/14 19:34:22.693| |Quik LUA. Transactions|Start message processing. 2017/02/14 19:34:22.694| |Quik LUA. Market data|Start message processing. 2017/02/14 19:34:22.826| |QuikTrader|Создан новый портфель 000000421641. 2017/02/14 19:34:22.829| |QuikTrader|Создан новый портфель L01-00000F00. 2017/02/14 19:34:22.847|Warning|QuikTrader|Заявка 1739007 не найдена. 2017/02/14 19:34:22.849| |QuikTrader|New order: 56353259/1767477 Покупка Цена=0 Объем=10 Сост=Done Бал=0 2017/02/14 19:34:22.850|Warning|QuikTrader|Заявка 1802429 не найдена. 2017/02/14 19:34:22.850|Warning|QuikTrader|Заявка 1813287 не найдена. 2017/02/14 19:34:22.850|Warning|QuikTrader|Заявка 1834923 не найдена. 2017/02/14 19:34:22.851| |QuikTrader|New order: 63735060/2434567 Покупка Цена=0 Объем=10 Сост=Done Бал=0 2017/02/14 19:34:22.851|Warning|QuikTrader|Заявка 2449226 не найдена. 2017/02/14 19:34:22.852| |QuikTrader|New order: 70327237/2989661 Покупка Цена=0 Объем=10 Сост=Done Бал=0 2017/02/14 19:34:22.852|Warning|QuikTrader|Заявка 1739007 не найдена. 2017/02/14 19:34:22.852| |QuikTrader|My trade delayed: Execution,T(L)=2017.02.14 19:34:22.852,T(S)=2017.02.14 13:35:16.812,(Transaction),Sec=S#:SBER@TQBR, Native:,Type:,Ord=1739007/0/0,Fail=,Price=0,OrdVol=,TrVol=10,Bal=,TId=213143,Pf=L01-00000F00,TPrice=163,11,UId=,State= 2017/02/14 19:34:22.854|Warning|QuikTrader|Заявка 1802429 не найдена. 2017/02/14 19:34:22.854| |QuikTrader|My trade delayed: Execution,T(L)=2017.02.14 19:34:22.854,T(S)=2017.02.14 13:46:49.856,(Transaction),Sec=S#:SBER@TQBR, Native:,Type:,Ord=1802429/0/0,Fail=,Price=0,OrdVol=,TrVol=10,Bal=,TId=219932,Pf=L01-00000F00,TPrice=162,89,UId=,State= 2017/02/14 19:34:22.854|Warning|QuikTrader|Заявка 1813287 не найдена. 2017/02/14 19:34:22.854| |QuikTrader|My trade delayed: Execution,T(L)=2017.02.14 19:34:22.854,T(S)=2017.02.14 13:48:55.048,(Transaction),Sec=S#:SBER@TQBR, Native:,Type:,Ord=1813287/0/0,Fail=,Price=0,OrdVol=,TrVol=10,Bal=,TId=221001,Pf=L01-00000F00,TPrice=162,86,UId=,State= 2017/02/14 19:34:22.854|Warning|QuikTrader|Заявка 1834923 не найдена. 2017/02/14 19:34:22.854| |QuikTrader|My trade delayed: Execution,T(L)=2017.02.14 19:34:22.854,T(S)=2017.02.14 13:53:04.856,(Transaction),Sec=S#:SBER@TQBR, Native:,Type:,Ord=1834923/0/0,Fail=,Price=0,OrdVol=,TrVol=10,Bal=,TId=223889,Pf=L01-00000F00,TPrice=162,85,UId=,State= 2017/02/14 19:34:22.855|Warning|QuikTrader|Заявка 2449226 не найдена. 2017/02/14 19:34:22.855| |QuikTrader|My trade delayed: Execution,T(L)=2017.02.14 19:34:22.855,T(S)=2017.02.14 15:48:50.207,(Transaction),Sec=S#:SBER@TQBR, Native:,Type:,Ord=2449226/0/0,Fail=,Price=0,OrdVol=,TrVol=10,Bal=,TId=291000,Pf=L01-00000F00,TPrice=162,45,UId=,State= 2017/02/14 19:34:30.571| |QuikTrader|Инструмент SBER@TQBR зарегистрирован на получение рыночных данных для MarketDepth. 2017/02/14 19:34:30.595| |SS_SBER@TQBR_L01-00000F00|Стратегия Запущена. [0,-1]. Позиция 0. 2017/02/14 19:34:30.617| |SS_SBER@TQBR_L01-00000F00|Регистрация новой Market (0x3FCDA63) заявки на Buy с ценой 0 и объемом 10. 2017/02/14 19:34:30.638| |QuikTrader|RegisterOrder: 0/ Покупка Цена=0 Объем=10 Сост=None Бал=0 2017/02/14 19:34:30.638| |QuikTrader|New order: 70460263/ Покупка Цена=0 Объем=10 Сост=Pending Бал=10 2017/02/14 19:34:31.275|Warning|QuikTrader|Заявка 3002330 не найдена. 2017/02/14 19:34:31.275| |QuikTrader|My trade delayed: Execution,T(L)=2017.02.14 19:34:31.275,T(S)=2017.02.14 17:34:31.716,(Transaction),Sec=S#:SBER@TQBR, Native:,Type:,Ord=3002330/0/0,Fail=,Price=0,OrdVol=,TrVol=10,Bal=,TId=355746,Pf=L01-00000F00,TPrice=163,03,UId=,State= 2017/02/14 19:34:31.276|Warning|QuikTrader|Заявка 3002330 не найдена. 2017/02/14 19:34:31.276| |QuikTrader|My trade delayed: Execution,T(L)=2017.02.14 19:34:31.276,T(S)=2017.02.14 17:34:31.716,(Transaction),Sec=S#:SBER@TQBR, Native:,Type:,Ord=3002330/0/0,Fail=,Price=0,OrdVol=,TrVol=10,Bal=,TId=355746,Pf=L01-00000F00,TPrice=163,03,UId=,State= 2017/02/14 19:34:31.276|Warning|QuikTrader|Заявка 3002330 не найдена. 2017/02/14 19:34:31.276| |QuikTrader|My trade delayed: Execution,T(L)=2017.02.14 19:34:31.276,T(S)=2017.02.14 17:34:31.716,(Transaction),Sec=S#:SBER@TQBR, Native:,Type:,Ord=3002330/0/0,Fail=,Price=0,OrdVol=,TrVol=10,Bal=,TId=355746,Pf=L01-00000F00,TPrice=163,03,UId=,State= 2017/02/14 19:34:31.277| |QuikTrader|Order changed: 70460263/3002330 Покупка Цена=0 Объем=10 Сост=Done Бал=0 2017/02/14 19:34:31.277| |SS_SBER@TQBR_L01-00000F00|Заявка 70460263 (0x3FCDA63) больше не активна. 2017/02/14 19:34:31.277| |SS_SBER@TQBR_L01-00000F00|Новая позиция: (S#:SBER@TQBR, Native:,Type:Stock, L01-00000F00)=10. 2017/02/14 19:34:31.277| |TPS_SBER@TQBR_L01-00000F00|Стратегия Запущена. [0,2]. Позиция 0. 2017/02/14 19:34:31.277| |TPS_SBER@TQBR_L01-00000F00|Защита позиции Buy/163,03 с объемом 10. Уровень=0,4, Скользящий=False, Маркет-заявки=False, Котирование=False, Проскальзывание=0 2017/02/14 19:34:31.277| |TPS_SBER@TQBR_L01-00000F00|Котирование на Sell объема 10. 2017/02/14 19:34:31.277|Error |TPS_SBER@TQBR_L01-00000F00|System.InvalidOperationException: Инструмент SBER@TQBR не подписан на получение отфильтрованного стакана котировок. в StockSharp.Algo.Connector.GetFilteredMarketDepth(Security security) в StockSharp.Algo.Strategies.Quoting.QuotingStrategy.GetFilteredQuotes(Sides side) в StockSharp.Algo.Strategies.Quoting.QuotingStrategy.get_BestPrice() в StockSharp.Algo.Strategies.Protective.ProtectiveStrategy.get_ActivationPrice() в StockSharp.Algo.Strategies.Protective.ProtectiveStrategy.NeedQuoting(Nullable1 currentPrice, Nullable1 currentVolume, Decimal newVolume) в StockSharp.Algo.Strategies.Quoting.QuotingStrategy.ProcessQuoting() в StockSharp.Algo.Strategies.Protective.ProtectiveStrategy.ProcessQuoting() в StockSharp.Algo.Strategies.Quoting.QuotingStrategy.OnStarted() в StockSharp.Algo.Strategies.Protective.ProtectiveStrategy.OnStarted() в StockSharp.Algo.Strategies.Strategy.set_ProcessState(ProcessStates value) 2017/02/14 19:34:31.277| |TPS_SBER@TQBR_L01-00000F00|Стратегия останавливается. [0,2]. Позиция 0. 2017/02/14 19:34:31.277| |TPS_SBER@TQBR_L01-00000F00|Правило 'Новые сделки инструмента SBER@TQBR (0x2366E6E)'. Приостановлено. 2017/02/14 19:34:31.277|Warning|TPS_SBER@TQBR_L01-00000F00|Заканчиваем котирование с неисполненным объемом равный 10. 2017/02/14 19:34:31.277| |TPS_SBER@TQBR_L01-00000F00|Ожидание снятия всех активных заявок. 2017/02/14 19:34:31.277| |TPS_SBER@TQBR_L01-00000F00|Стратегия остановлена. [0,2]. Позиция 0. 2017/02/14 19:34:31.277| |SLS_SBER@TQBR_L01-00000F00|Стратегия Запущена. [0,1]. Позиция 0. 2017/02/14 19:34:31.277| |SLS_SBER@TQBR_L01-00000F00|Защита позиции Buy/163,03 с объемом 10. Уровень=0,2, Скользящий=False, Маркет-заявки=False, Котирование=False, Проскальзывание=0 2017/02/14 19:34:31.277| |SLS_SBER@TQBR_L01-00000F00|Котирование на Sell объема 10. 2017/02/14 19:34:31.277|Error |SLS_SBER@TQBR_L01-00000F00|System.InvalidOperationException: Инструмент SBER@TQBR не подписан на получение отфильтрованного стакана котировок. в StockSharp.Algo.Connector.GetFilteredMarketDepth(Security security) в StockSharp.Algo.Strategies.Quoting.QuotingStrategy.GetFilteredQuotes(Sides side) в StockSharp.Algo.Strategies.Quoting.QuotingStrategy.get_BestPrice() в StockSharp.Algo.Strategies.Protective.ProtectiveStrategy.get_ActivationPrice() в StockSharp.Algo.Strategies.Protective.ProtectiveStrategy.NeedQuoting(Nullable1 currentPrice, Nullable1 currentVolume, Decimal newVolume) в StockSharp.Algo.Strategies.Quoting.QuotingStrategy.ProcessQuoting() в StockSharp.Algo.Strategies.Protective.ProtectiveStrategy.ProcessQuoting() в StockSharp.Algo.Strategies.Quoting.QuotingStrategy.OnStarted() в StockSharp.Algo.Strategies.Protective.ProtectiveStrategy.OnStarted() в StockSharp.Algo.Strategies.Strategy.set_ProcessState(ProcessStates value) 2017/02/14 19:34:31.277| |SLS_SBER@TQBR_L01-00000F00|Стратегия останавливается. [0,1]. Позиция 0. 2017/02/14 19:34:31.277| |SLS_SBER@TQBR_L01-00000F00|Правило 'Новые сделки инструмента SBER@TQBR (0x2B7AFA0)'. Приостановлено. 2017/02/14 19:34:31.277|Warning|SLS_SBER@TQBR_L01-00000F00|Заканчиваем котирование с неисполненным объемом равный 10. 2017/02/14 19:34:31.277| |SLS_SBER@TQBR_L01-00000F00|Ожидание снятия всех активных заявок. 2017/02/14 19:34:31.277| |SLS_SBER@TQBR_L01-00000F00|Стратегия остановлена. [0,1]. Позиция 0. 2017/02/14 19:34:31.277| |TPSLS_SBER@TQBR_L01-00000F00|Стратегия Запущена. [0,1]. Позиция 0. 2017/02/14 19:34:31.277| |SS_SBER@TQBR_L01-00000F00|Новая Buy сделка 355746 по цене 163,03 на 10 заявки 70460263. 2017/02/14 19:34:46.994| |QuikTrader|Инструмент SBER@TQBR зарегистрирован на получение рыночных данных для Trades. 2017/02/14 19:34:46.995|Error |QuikTrader|System.InvalidOperationException: Subscribed 2017/02/14 19:34:47.081| |QuikTrader|Инструмент SBER@TQBR зарегистрирован на получение рыночных данных для Trades. 2017/02/14 19:34:47.082| |QuikTrader|Инструмент SBER@TQBR зарегистрирован на получение рыночных данных для MarketDepth. 2017/02/14 19:35:04.988| |QuikTrader|Disconnect 2017/02/14 19:35:05.015|Error |Quik LUA. Market data|System.IO.IOException: Не удается записать данные в транспортное соединение: Удаленный хост принудительно разорвал существующее подключение. ---> System.Net.Sockets.SocketException: Удаленный хост принудительно разорвал существующее подключение в System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) в System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) --- Конец трассировки внутреннего стека исключений ---

War dieses Thema hilfreich?

Thema teilen

Kommentare (3)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Support
Support

Проверим...

RomSunZ
RomSunZ

Есть какой-то баг. Вызов GetFilteredMarketDepth приводит к исключению "Инструмент ХХХХ не подписан на получение отфильтрованного стакана котировок.", хотя метод connector.RegisterFilteredMarketDepth(security) до этого вызывается.

Support
Support

Да это баг, в следующих версиях будет исправлен.