Здравствуйте! Не могу получить данные по свечам в консоль. Не срабатывает событие 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==)
Помогите пожалуйста разобраться. В чем может быть причина?