Данные по свечам

Данные по свечам


Здравствуйте! Не могу получить данные по свечам в консоль. Не срабатывает событие CandleManager.Processing хотя тиковые сделки приходят. К стати пример "SampleQuikCandles" тоже не отображает свечи на графике. Инструмент получаю по классу "QJSIM", так как с другим кодом класса не работает вывод тиков. Использую quik 7.9 запущенный от администратора. Студия тоже от администратора. Код:

using System;
using System.Linq;
using System.Threading;
using StockSharp.Algo.Candles;
using StockSharp.BusinessEntities;
using StockSharp.Quik;

namespace ConsoleRobot_candle
{
    class Program
    {
        private static string _code = "SBER";
        private static Security _sec;
        private static CandleManager _candleManager;

        static void Main(string[] args)
        {


            using (var trader = new QuikTrader())
            {
                using ( AutoResetEvent ewentConnect = new AutoResetEvent(false), ewentSecurity = new AutoResetEvent(false)
                )
                {
                    #region подключаемся

                    ///////////////////////////////////////
                    //подключаемся
                    ///////////////////////////////////////
                    trader.Connected += () =>
                    {
                        ewentConnect.Set();
                        Console.WriteLine("Подключение успешно выполнено");
                    };

                    Console.WriteLine("Подключаемся");
                    trader.Connect();

                    ewentConnect.WaitOne();

                    #endregion

                    #region Получаем инструмент

                    ///////////////////////////////////////
                    //Получаем инструмент
                    ///////////////////////////////////////
                    Console.WriteLine("Запрашиваем инструмент {0}", _code);
                    trader.NewSecurities += (securitys) =>
                    {
                        if (_sec != null)
                            return;
                       
                        _sec = securitys.FirstOrDefault(s => s.Code == _code && s.Board.Code == "QJSIM"); // MICEX // QJSIM // EQRP_INFO

                        if (_sec != null)
                        {
                            trader.RegisterSecurity(_sec);
                            trader.RegisterTrades(_sec);

                            Console.WriteLine("Инструмент {0} получен", _sec.Name);
                            ewentSecurity.Set();
                        }
                    };

                    #endregion


                    ewentSecurity.WaitOne();

                    #region Подписываемся все сделки

                    //trader.NewTrade += trade =>
                    //{
                    //    Console.WriteLine("{0} = {1}--> {2:0000}-->{3}", trade.Id, trade.Security.Name, trade.Volume, _sec.LocalTime - trade.Time);
                    //};

                    #endregion



                    _candleManager = new CandleManager(trader);
                    var series = new CandleSeries(typeof(TimeFrameCandle), _sec, TimeSpan.FromSeconds(10));
                    _candleManager.Processing += ProcessCandle;                   
                    _candleManager.Start(series);


                    Console.ReadKey();
                    _candleManager.Dispose();
                }


            }
        }

        private static void ProcessCandle(CandleSeries series, Candle candle)
        {
                Console.WriteLine("Свеча....");
        }
    }

}

В логе вот такая ошибка:

... 2017/05/01 19:53:56.208|Error |LuaServer |Пустой код инструмента для класса EQRP_INFO. 2017/05/01 19:53:56.273|Error |LuaServer |Пустой код инструмента для класса CROSSRATE. ... 2017/05/01 19:45:48.910|Error |FixServer |System.IO.IOException: Не удается прочитать данные из транспортного соединения: Удаленный хост принудительно разорвал существующее подключение. ---> System.Net.Sockets.SocketException: Удаленный хост принудительно разорвал существующее подключение в System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) --- Конец трассировки внутреннего стека исключений --- в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) в Ecng.Serialization.BinaryHelper.ReadBytes(Stream stream, Byte[] buffer, Int32 len, Int32 pos) в StockSharp.Fix.Native.BaseFixReader.ReadByte() в StockSharp.Fix.Native.TextFixReader.ReadTag() в #=qyypzVTbPR2krovn$eYvTzVQBRFOfj6PLtZam5EztLKPUloKea4wWxfsPt088JSbh.#=q8SHpRb8id2Pi8kvEf0SGeQ==(IFixReader #=qrkfols$7ORYHoZjWc9wZnQ==, FixTags #=q6mdfSdmwikKrV4pYIzAvQA==) в #=qyypzVTbPR2krovn$eYvTzVQBRFOfj6PLtZam5EztLKPUloKea4wWxfsPt088JSbh.#=qTryfmrwciqeLeTDCNAA8AQ==(IFixReader #=qrkfols$7ORYHoZjWc9wZnQ==, Boolean #=q3LFjH$G9rchgnHX0OC6o4JtMsMOJ4smmzbhtA3iinLI=, String #=qmkUIe3bFHLcQ6HQHYYJUodHdsqOcN636OkudxRkzGB8=) в StockSharp.Fix.FixServer.#=qok8otZ8UOLVhowTSVbDAMA==(IFixReader #=qrkfols$7ORYHoZjWc9wZnQ==, FixSession[] #=qOUBxiTmvxbkO5QDu1XPlKQ==, #=qY4n0C1d6p1w3$LiV_2Iy97TebzYi2_6GB_4To3a7NbdDzQeCrLUURmuSIPWn8_vm& #=q3QIkQpwOGhLju8ZFpvoUEg==, TcpClient #=qz7KtgIMgW7WruVYBJ1Yktg==, EndPoint #=qL44tr0d8vMPdd0XSskRH$Q==, String& #=q68muavX0mJLcV6rpfZlOiw==, Boolean& #=qaWjCphkHUNy4qV99017Ing==) в StockSharp.Fix.FixServer.#=qnVc6o3wurX9oBh1kY1cQKklUtdjDLu9UbFilw5iowhk=.#=qU56GDdlAwvYqVZ4S1Ed79w==(IAsyncResult #=qPptR28HQdJ6abF_a2Fy0IA==) 2017/05/01 19:45:48.911| |FixServer |Disconnect quik (127.0.0.1:8005) 2017/05/01 19:45:48.912|Error |FixServer |System.IO.IOException: Не удается прочитать данные из транспортного соединения: Удаленный хост принудительно разорвал существующее подключение. ---> System.Net.Sockets.SocketException: Удаленный хост принудительно разорвал существующее подключение в System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) --- Конец трассировки внутреннего стека исключений --- в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) в Ecng.Serialization.BinaryHelper.ReadBytes(Stream stream, Byte[] buffer, Int32 len, Int32 pos) в StockSharp.Fix.Native.BaseFixReader.ReadByte() в StockSharp.Fix.Native.TextFixReader.ReadTag() в #=qyypzVTbPR2krovn$eYvTzVQBRFOfj6PLtZam5EztLKPUloKea4wWxfsPt088JSbh.#=q8SHpRb8id2Pi8kvEf0SGeQ==(IFixReader #=qrkfols$7ORYHoZjWc9wZnQ==, FixTags #=q6mdfSdmwikKrV4pYIzAvQA==) в #=qyypzVTbPR2krovn$eYvTzVQBRFOfj6PLtZam5EztLKPUloKea4wWxfsPt088JSbh.#=qTryfmrwciqeLeTDCNAA8AQ==(IFixReader #=qrkfols$7ORYHoZjWc9wZnQ==, Boolean #=q3LFjH$G9rchgnHX0OC6o4JtMsMOJ4smmzbhtA3iinLI=, String #=qmkUIe3bFHLcQ6HQHYYJUodHdsqOcN636OkudxRkzGB8=) в StockSharp.Fix.FixServer.#=qok8otZ8UOLVhowTSVbDAMA==(IFixReader #=qrkfols$7ORYHoZjWc9wZnQ==, FixSession[] #=qOUBxiTmvxbkO5QDu1XPlKQ==, #=qY4n0C1d6p1w3$LiV_2Iy97TebzYi2_6GB_4To3a7NbdDzQeCrLUURmuSIPWn8_vm& #=q3QIkQpwOGhLju8ZFpvoUEg==, TcpClient #=qz7KtgIMgW7WruVYBJ1Yktg==, EndPoint #=qL44tr0d8vMPdd0XSskRH$Q==, String& #=q68muavX0mJLcV6rpfZlOiw==, Boolean& #=qaWjCphkHUNy4qV99017Ing==) в StockSharp.Fix.FixServer.#=qnVc6o3wurX9oBh1kY1cQKklUtdjDLu9UbFilw5iowhk=.#=qU56GDdlAwvYqVZ4S1Ed79w==(IAsyncResult #=qPptR28HQdJ6abF_a2Fy0IA==)

Помогите пожалуйста разобраться. В чем может быть причина?


Tags:


Thanks:


Support

Avatar
Date: 5/5/2017
Reply


В CandleSeries вот так сделайте: var series = new CandleSeries(typeof (TimeFrameCandle), security, timeFrame) ;

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy