Сообщество. StockSharp
https://stocksharp.ru/handlers/atom.ashx?category=community&page=61
Copyright @ StockSharp Platform LLC 2010 - 2024
2024-03-28T08:38:36Z
https://stocksharp.ru/images/logo.png
https://stocksharp.ru/topic/8256/
Класс ChartPanel. Автоматический диапазон для оси Y не работает
2017-05-10T12:26:24Z
2017-05-12T13:46:24Z
Дмитрий_
https://stocksharp.ru/users/62269/
info@stocksharp.ru
Здравствуйте.<br />Проект StockSharp-master\Samples\Testing\SampleHistoryTesting из GitHub. После запуска тестирования, автоматический диапазон для оси Y на графике не работает.<br />Свойство IsAutoRange отвечает за ось X. Какое свойство отвечает за ось Y?<br />Свойство IsAutoScroll не решило проблему.<br /><br /><a href="http://doc.stocksharp.ru/html/T_StockSharp_Xaml_Charting_ChartPanel.htm
" title="http://doc.stocksharp.ru/html/T_StockSharp_Xaml_Charting_ChartPanel.htm
">http://doc.stocksharp.ru...Charting_ChartPanel.htm
</a><br /><br />Запускал на Visual Studio 2017 Community Edition.<br />StockSharp 4.3.23.
https://stocksharp.ru/topic/8257/
Как наложить один график на другой
2017-05-10T12:38:21Z
2017-05-12T13:41:29Z
Дмитрий_
https://stocksharp.ru/users/62269/
info@stocksharp.ru
Здравствуйте.<br />Как расположить два инструмента на одном графике, в котором левая ценовая шкала - шкала первого инструмента, а правая ценовая шкала - шкала второго.<br /><br /><a href='https://stocksharp.ru/file/104451/normal_dollar_oil_jpg/' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'><img src="https://stocksharp.ru/file/104451/normal_dollar_oil_jpg/?size=500x500" alt="normal_dollar_oil.jpg" title="normal_dollar_oil.jpg" /></a>
https://stocksharp.ru/topic/8260/
Сохранение и загрузка данных IExtendableEntity.ExtensionInfo
2017-05-10T23:27:18Z
2017-05-11T13:45:08Z
Evgeny
https://stocksharp.ru/users/918/
info@stocksharp.ru
Скажите, пожалуйста, есть ли способ сохранения (и загрузки) данных, хранящихся в IExtendableEntity.ExtensionInfo ? Интересует прежде всего применительно к классам Portfolio и ExchangeBoard.<br />Если такая возможность есть, то где-нибудь можно пример посмотреть?
https://stocksharp.ru/topic/8231/
Событие обновления стакана
2017-04-22T18:01:19Z
2017-05-10T13:19:49Z
Константин
https://stocksharp.ru/users/98279/
info@stocksharp.ru
Всем привет! C недавнего времени начал изучать S# API. В процессе освоения появились некоторые вопросы. <br />Например я не могу понять в чем разница между MarketDepthChanged (<b>Стакан изменен</b>) и QuotesChanged (<b>Событие изменения котировок в стакане</b>)?<br />Пытаюсь вывести на консоль изменение бида или аска. Событие MarketDepthChanged не срабатывает. Подключение к квику и получение инструмента проходит нормально.<br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_be822688413447988ff05937257d8ccf');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_be822688413447988ff05937257d8ccf' style='display:none'><br /><div class="code"><strong>Код</strong><div class="innercode"><br /> class Program<br /> {<br /><br /> private static string _code = "LKOH";<br /> private static string _accont = "10349";<br /> private static Security _sec;<br /> static void Main(string[] args)<br /> {<br /><br /> using (var trader = new QuikTrader())<br /> {<br /> using (var ewentConnect = new AutoResetEvent(false))<br /> using (var ewentSecurity = new AutoResetEvent(false))<br /> {<br /> //подключаемся<br /> trader.Connected += () =><br /> {<br /> ewentConnect.Set();<br /> Console.WriteLine("Подключение успешно выполнено");<br /> };<br /><br /> Console.WriteLine("Подключаемся");<br /> trader.Connect();<br /><br /> ewentConnect.WaitOne();<br /><br /><br /> //Получаем инструмент<br /> Console.WriteLine("Запрашиваем инструмент {0}", _code);<br /> trader.NewSecurities += (securitys) =><br /> {<br /> if (_sec != null) return;<br /> _sec = securitys.FirstOrDefault(s => s.Code == _code);<br /> if (_sec != null)<br /> {<br /> Console.WriteLine("Инструмент {0} ({1}) получен", _code, _sec);<br /> ewentSecurity.Set();<br /> }<br /> };<br /><br /> ewentSecurity.WaitOne();<br /><br /> //Получаем данные стакана<br /> trader.RegisterMarketDepth(_sec);<br /><br /> trader.MarketDepthChanged += (depth) =><br /> {<br /> Console.WriteLine("{0}", depth.BestBid);<br /> };<br /> Console.ReadKey();<br /><br /> }<br /><br /> }<br /> }<br /> }<br /><br /></div></div><br /></div><br />Подскажите пожалуйста в какую сторону копать.
https://stocksharp.ru/topic/8244/
Гидра перестала загружать тики
2017-05-03T06:58:51Z
2017-05-09T12:41:41Z
roman001
https://stocksharp.ru/users/94444/
info@stocksharp.ru
Доброго дня<br />Что-то с Гидрою моею стало. Выбираю источник Финам инструмент SIM7, настраиваю закачку тиков и свечей например за 5 дней<br />Поехали... смотрю лог, тики не качаются, хотя раньше качались, даже на этой последней версии уже<br />Кроме того закачка идет до последнего торгового дня а не за выбранный период в 5 дней.<br />В конце закачиваются свечи, все.. Свечи есть а тиков нет. Настройки сбрасывал, Гидру переустанавливал, может кто решал проблему, помогите плз.<br />
https://stocksharp.ru/topic/8247/
Данные по свечам
2017-05-05T09:59:16Z
2017-05-05T15:41:58Z
Константин
https://stocksharp.ru/users/98279/
info@stocksharp.ru
Здравствуйте! Не могу получить данные по свечам в консоль. Не срабатывает событие CandleManager.Processing хотя тиковые сделки приходят. К стати пример "SampleQuikCandles" тоже не отображает свечи на графике. Инструмент получаю по классу "QJSIM", так как с другим кодом класса не работает вывод тиков. Использую quik 7.9 запущенный от администратора. Студия тоже от администратора.<br />Код:<br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_890994bae5a941c3942c5ac141d9e5a5');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_890994bae5a941c3942c5ac141d9e5a5' style='display:none'><div class="code"><strong>Код</strong><div class="innercode">using System;<br />using System.Linq;<br />using System.Threading;<br />using StockSharp.Algo.Candles;<br />using StockSharp.BusinessEntities;<br />using StockSharp.Quik;<br /><br />namespace ConsoleRobot_candle<br />{<br /> class Program<br /> {<br /> private static string _code = "SBER";<br /> private static Security _sec;<br /> private static CandleManager _candleManager;<br /><br /> static void Main(string[] args)<br /> {<br /><br /><br /> using (var trader = new QuikTrader())<br /> {<br /> using ( AutoResetEvent ewentConnect = new AutoResetEvent(false), ewentSecurity = new AutoResetEvent(false)<br /> )<br /> {<br /> #region подключаемся<br /><br /> ///////////////////////////////////////<br /> //подключаемся<br /> ///////////////////////////////////////<br /> trader.Connected += () =><br /> {<br /> ewentConnect.Set();<br /> Console.WriteLine("Подключение успешно выполнено");<br /> };<br /><br /> Console.WriteLine("Подключаемся");<br /> trader.Connect();<br /><br /> ewentConnect.WaitOne();<br /><br /> #endregion<br /><br /> #region Получаем инструмент<br /><br /> ///////////////////////////////////////<br /> //Получаем инструмент<br /> ///////////////////////////////////////<br /> Console.WriteLine("Запрашиваем инструмент {0}", _code);<br /> trader.NewSecurities += (securitys) =><br /> {<br /> if (_sec != null)<br /> return;<br /> <br /> _sec = securitys.FirstOrDefault(s => s.Code == _code && s.Board.Code == "QJSIM"); // MICEX // QJSIM // EQRP_INFO<br /><br /> if (_sec != null)<br /> {<br /> trader.RegisterSecurity(_sec);<br /> trader.RegisterTrades(_sec);<br /><br /> Console.WriteLine("Инструмент {0} получен", _sec.Name);<br /> ewentSecurity.Set();<br /> }<br /> };<br /><br /> #endregion<br /><br /><br /> ewentSecurity.WaitOne();<br /><br /> #region Подписываемся все сделки<br /><br /> //trader.NewTrade += trade =><br /> //{<br /> // Console.WriteLine("{0} = {1}--> {2:0000}-->{3}", trade.Id, trade.Security.Name, trade.Volume, _sec.LocalTime - trade.Time);<br /> //};<br /><br /> #endregion<br /><br /><br /><br /> _candleManager = new CandleManager(trader);<br /> var series = new CandleSeries(typeof(TimeFrameCandle), _sec, TimeSpan.FromSeconds(10));<br /> _candleManager.Processing += ProcessCandle; <br /> _candleManager.Start(series);<br /><br /><br /> Console.ReadKey();<br /> _candleManager.Dispose();<br /> }<br /><br /><br /> }<br /> }<br /><br /> private static void ProcessCandle(CandleSeries series, Candle candle)<br /> {<br /> Console.WriteLine("Свеча....");<br /> }<br /> }<br /><br />}<br /></div></div></div><br />В логе вот такая ошибка:<br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_c95b5d3cb8d6446fa03be56f4c2879f1');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_c95b5d3cb8d6446fa03be56f4c2879f1' style='display:none'><br />...<br />2017/05/01 19:53:56.208|Error |LuaServer |Пустой код инструмента для класса EQRP_INFO.<br />2017/05/01 19:53:56.273|Error |LuaServer |Пустой код инструмента для класса CROSSRATE.<br />...<br />2017/05/01 19:45:48.910|Error |FixServer |System.IO.IOException: Не удается прочитать данные из транспортного соединения: Удаленный хост принудительно разорвал существующее подключение. ---> System.Net.Sockets.SocketException: Удаленный хост принудительно разорвал существующее подключение<br /> в System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)<br /> в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)<br /> --- Конец трассировки внутреннего стека исключений ---<br /> в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)<br /> в Ecng.Serialization.BinaryHelper.ReadBytes(Stream stream, Byte[] buffer, Int32 len, Int32 pos)<br /> в StockSharp.Fix.Native.BaseFixReader.ReadByte()<br /> в StockSharp.Fix.Native.TextFixReader.ReadTag()<br /> в #=qyypzVTbPR2krovn$eYvTzVQBRFOfj6PLtZam5EztLKPUloKea4wWxfsPt088JSbh.#=q8SHpRb8id2Pi8kvEf0SGeQ==(IFixReader #=qrkfols$7ORYHoZjWc9wZnQ==, FixTags #=q6mdfSdmwikKrV4pYIzAvQA==)<br /> в #=qyypzVTbPR2krovn$eYvTzVQBRFOfj6PLtZam5EztLKPUloKea4wWxfsPt088JSbh.#=qTryfmrwciqeLeTDCNAA8AQ==(IFixReader #=qrkfols$7ORYHoZjWc9wZnQ==, Boolean #=q3LFjH$G9rchgnHX0OC6o4JtMsMOJ4smmzbhtA3iinLI=, String #=qmkUIe3bFHLcQ6HQHYYJUodHdsqOcN636OkudxRkzGB8=)<br /> в 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==)<br /> в StockSharp.Fix.FixServer.#=qnVc6o3wurX9oBh1kY1cQKklUtdjDLu9UbFilw5iowhk=.#=qU56GDdlAwvYqVZ4S1Ed79w==(IAsyncResult #=qPptR28HQdJ6abF_a2Fy0IA==)<br />2017/05/01 19:45:48.911| |FixServer |Disconnect quik (127.0.0.1:8005)<br />2017/05/01 19:45:48.912|Error |FixServer |System.IO.IOException: Не удается прочитать данные из транспортного соединения: Удаленный хост принудительно разорвал существующее подключение. ---> System.Net.Sockets.SocketException: Удаленный хост принудительно разорвал существующее подключение<br /> в System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)<br /> в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)<br /> --- Конец трассировки внутреннего стека исключений ---<br /> в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)<br /> в Ecng.Serialization.BinaryHelper.ReadBytes(Stream stream, Byte[] buffer, Int32 len, Int32 pos)<br /> в StockSharp.Fix.Native.BaseFixReader.ReadByte()<br /> в StockSharp.Fix.Native.TextFixReader.ReadTag()<br /> в #=qyypzVTbPR2krovn$eYvTzVQBRFOfj6PLtZam5EztLKPUloKea4wWxfsPt088JSbh.#=q8SHpRb8id2Pi8kvEf0SGeQ==(IFixReader #=qrkfols$7ORYHoZjWc9wZnQ==, FixTags #=q6mdfSdmwikKrV4pYIzAvQA==)<br /> в #=qyypzVTbPR2krovn$eYvTzVQBRFOfj6PLtZam5EztLKPUloKea4wWxfsPt088JSbh.#=qTryfmrwciqeLeTDCNAA8AQ==(IFixReader #=qrkfols$7ORYHoZjWc9wZnQ==, Boolean #=q3LFjH$G9rchgnHX0OC6o4JtMsMOJ4smmzbhtA3iinLI=, String #=qmkUIe3bFHLcQ6HQHYYJUodHdsqOcN636OkudxRkzGB8=)<br /> в 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==)<br /> в StockSharp.Fix.FixServer.#=qnVc6o3wurX9oBh1kY1cQKklUtdjDLu9UbFilw5iowhk=.#=qU56GDdlAwvYqVZ4S1Ed79w==(IAsyncResult #=qPptR28HQdJ6abF_a2Fy0IA==)</div><br />Помогите пожалуйста разобраться. В чем может быть причина?
https://stocksharp.ru/topic/8245/
Линии уровней в области индикатора
2017-05-04T00:21:59Z
2017-05-04T13:26:08Z
JcJet
https://stocksharp.ru/users/94445/
info@stocksharp.ru
Здравствуйте.<br />Каким образом можно добавить линии уровней в индикаторе? Такие, как, например, в Стохастике - уровни 20 и 80 в виде линий на всей области графика. <br />Разрабатываю индикатор такого же типа, нигде не нашел нужных методов, свойств, примеров и документации.
https://stocksharp.ru/topic/8241/
Не могу загрузить информацию из хранилища Hydra
2017-04-28T03:08:08Z
2017-05-03T18:28:46Z
Pelmen32
https://stocksharp.ru/users/95692/
info@stocksharp.ru
Добрый день,<br />Обнаружил, что ранее работающий код загрузки истории из хранилища Hydra перестал работать.<br />Переустановил Hydra, удалил все хранилище, заново закачал информацию с Финам, но все равно не работает.<br />Версия Hydra от 10.04.2017, библиотека StockSharp 4.3.21.<br />При загрузке свечек выдает в переменную _historyCandles пустое множество "Expanding the Results View will enumerate the IEnumerable".<br />Сделал простой тестовый код загрузчика, но он тоже не работает.<br />Информацию с хранилища находит, переменные d1 и d2 считывает.<br />Помогите, п-ста, мучаюсь уже несколько вечеров.<br /><br /><div class="code"><strong>Код</strong><div class="innercode">using System;<br />using System.Collections.Generic;<br />using StockSharp.Algo.Storages;<br />using StockSharp.BusinessEntities;<br />using StockSharp.Messages;<br /><br />namespace HydraTesting<br />{<br /> internal class Program<br /> {<br /> private static StorageRegistry _storage;<br /> private static IMarketDataStorage<CandleMessage> _candleStorage;<br /> private static Security security;<br /> private static TimeSpan timeFrame;<br /> private static IEnumerable<CandleMessage> _historyCandles;<br /><br /> private static void Main(string[] args)<br /> {<br /><br /> _storage = new StorageRegistry();<br /> var path = @"C:\Hydra";<br /> ((LocalMarketDataDrive) _storage.DefaultDrive).Path = path;<br /><br /><br /> security = new Security<br /> {<br /> Id = "SPFB.SI@FORTS",<br /> Code = "SPFB.SI",<br /> Name = "SPFB.SI",<br /> Board = ExchangeBoard.Forts,<br /> };<br /><br /> timeFrame = TimeSpan.FromMinutes(1);<br /><br /> _candleStorage = _storage.GetCandleMessageStorage(typeof (TimeFrameCandleMessage), security, timeFrame);<br /><br /> var d1 = _candleStorage.GetFromDate();<br /> var d2 = _candleStorage.GetToDate();<br /> <br /> _historyCandles = _candleStorage.Load();<br /> }<br /> }<br />}</div></div><br /><br />
https://stocksharp.ru/topic/8116/
Метод Chart.Draw(StockSharp.Xaml.Charting.ChartDrawData data)
2017-03-01T08:50:48Z
2017-05-02T14:40:43Z
swnike
https://stocksharp.ru/users/83618/
info@stocksharp.ru
При запуске этого метода выдается исключение: InvalidOperationException.<br />Если же использовать старый метод (закомментированные строки), то все работает правильно.<br />StockSharp rev. 4.3.19.5; 4.3.21<br /><a href='https://stocksharp.ru/file/104249/draw_invalidoperationexception_png/' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'><img src="https://stocksharp.ru/file/104249/draw_invalidoperationexception_png/?size=500x500" alt="Draw_invalidOperationException.png" title="Draw_invalidOperationException.png" /></a><br /><br />Как это лечится?
https://stocksharp.ru/topic/8149/
Использование готовой коллекции данных в HistoryEmulationConnector
2017-03-14T01:41:52Z
2017-04-26T13:55:57Z
Pelmen32
https://stocksharp.ru/users/95692/
info@stocksharp.ru
Добрый день.<br />Хочу передать коллекцию тиковых сделок IEnumerable<ExecutionMessage> в HistoryEmulationConnector.<br /><br />Есть ли способ это сделать без использования механизма сохранения коллекции в файл через StorageRegistry?<br /><br />Пытаюсь делать на основе примера тестирование на исторических данных через Финам, <br />с использованием метода RegisterHistorySource, но никак не получается. <br />Данные не подгружаются, свечки не строятся. Подскажите, пожалуйста, мою ошибку, <br />может быть есть у кого рабочее решение.<br /><br />Пытаюсь сделать следующим образом:<br />_historyTicks - переменная содержащая коллекцию IEnumerable<ExecutionMessage> (тики загружены, проверил)<br /><br />d1 = _historyTicks.ElementAt(0).ServerTime;<br />d2 = _historyTicks.ElementAt(_historyTicks.Count() - 1).ServerTime;<br /><br />_historyConnector = new HistoryEmulationConnector(new[] {_selSecurity}, new[] {_selPortfolio})<br /> {<br /> EmulationAdapter =<br /> {<br /> Emulator = { Settings = { MatchOnTouch = false, } }<br /> },<br /><br /> UseExternalCandleSource = false,<br /> CreateDepthFromOrdersLog = false,<br /> CreateTradesFromOrdersLog = false,<br /> };<br /><br />_historyConnector.HistoryMessageAdapter.StartDate = d1;<br />_historyConnector.HistoryMessageAdapter.StopDate = d2;<br /><br />Func<DateTimeOffset, IEnumerable<Message>> selectionData = d =><br /> _historyTicks.Where(ht => ((ht.ServerTime.Date == d.Date) && (ht.ServerTime.TimeOfDay==d.TimeOfDay)));<br /> <br />_historyConnector.RegisterHistorySource(_selSecurity, MarketDataTypes.Trades, typeof (Trade), selectionData);<br /><br />var candleManager = new CandleManager(_historyConnector);<br /><br />_candleTimeFrame = TimeSpan.FromMinutes(5);<br /><br /> _connectorCandleSеries = new CandleSeries(typeof(TimeFrameCandle), _selSecurity, _candleTimeFrame);<br /><br />candleManager.Processing += DrawElement;<br /><br />candleManager.Start(_connectorCandleSеries);<br /><br />_historyConnector.Start();<br /><br />
https://stocksharp.ru/topic/8015/
Загрузка исторических данных
2017-01-16T19:23:15Z
2017-04-25T13:11:21Z
swnike
https://stocksharp.ru/users/83618/
info@stocksharp.ru
Здравствуйте!<br /><br />Мне для торговли необходимо получать исторические свечные данные и тут бы метод закачки свечей с сайта финама как раз бы помог.<br />Но я не могу разобраться в методах, поскольку:<br />1) Видео-урок 4 устарел. Последняя версия библиотеки (4.3.19.5) используют модифицированную функцию GetCandle , одним из параметров которой является интерфейс INativeIdStorage. Кроме того все последующие версии библиотек ( после с 4.2.10) не используют явно заданное хранилище, которое описывается в видео-уроке. (хотелось бы понять как это сейчас работает. Нужно создавать свой класс для реализации интерфейса?).<br />2) Попытка запустить проект загрузки исторических данных (CandleDownloadUsing) из разных решений StockSharp.Edu не увенчалась успехом – в большинстве случаях в предшествующих версиях библиотек при выполнении метода GetCandle вызывается исключение – “не удалось соединиться с удаленным сервером”. Почему появляется такое исключение? Сменились адреса серверов?<br />3) Проект CandleDownloadUsing в последней версии вообще не модифицирован, что вызывает исключение при обращении к несуществующим полям. <br /> <br />Есть возможность сделать рабочий пример CandleDownloadUsing с расширенными комментариями? <br />
https://stocksharp.ru/topic/8227/
Не существует класса ChartingDrawData
2017-04-20T22:37:18Z
2017-04-24T13:37:26Z
Дмитрий_
https://stocksharp.ru/users/62269/
info@stocksharp.ru
Здравствуйте.<br />В документации <a href="http://doc.stocksharp.ru/html/a76a0a9c-bb95-4596-9464-9903379b3096.htm " title="http://doc.stocksharp.ru/html/a76a0a9c-bb95-4596-9464-9903379b3096.htm ">http://doc.stocksharp.ru...6-9464-9903379b3096.htm </a>не существует класса ChartingDrawData. Возможно подразумевался класс ChartDrawData?<br />Запускал на Visual Studio 2015 и 2017 Community Edition.<br />StockSharp 4.3.23.
https://stocksharp.ru/topic/8178/
Еще одна логическая ошибка Strategy.ApplyMonitorRules
2017-03-25T09:58:17Z
2017-04-22T10:02:29Z
RomSunZ
https://stocksharp.ru/users/6384/
info@stocksharp.ru
Если заявка уже исполнена, но сделка стратегией еще не получена, то при остановке стратегии с отменой активных заявок получаем ошибку <br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote">Заявка хххххххх (0xхххххх) не была отменена по причине System.InvalidOperationException: Ошибка снятия заявки ххххххх. Текст 'Вы не можете снять данную заявку'..</div></div><br />В этом случае код:<br /><div class="code"><strong>Код</strong><div class="innercode"><br /> var canFinish = false;<br /><br /> order<br /> .WhenCancelFailed(Connector)<br /> .Do(() =><br /> {<br /> if (ProcessState != ProcessStates.Stopping)<br /> return;<br /><br /> canFinish = true;<br /> this.AddInfoLog(LocalizedStrings.Str1387Params.Put(order.GetTraceId()));<br /> })<br /> .Until(() => canFinish)<br /> .Apply(this)<br /> .Exclusive(successRule);<br /></div></div><br />приводит к тому, что стратегия останавливается раньше, чем получит сделки по такой заявке. Нужна дополнительная проверка статуса такой заявки и в случае, если баланс отличается от объема ожидать сделки, и только после этого останавливать стратегию.
https://stocksharp.ru/topic/8215/
Построение свечек ExpressionIndexSecurity и WeightedIndexSecurity
2017-04-15T09:20:26Z
2017-04-21T13:58:38Z
Иван З.
https://stocksharp.ru/users/6502/
info@stocksharp.ru
При построении ExpressionIndexSecurity и WeightedIndexSecurity вылетает ошибка<br />Код для WeightedIndexSecurity<br /><div class="code"><strong>Код</strong><div class="innercode"><br />_indexInstr1 = new WeightedIndexSecurity() { Board = ExchangeBoard.Forts, Id = "IndexInstr" };<br />_indexInstr1.Weights.Add(_instr1.Id.ToSecurityId(), 1m);<br />_indexInstr1.Weights.Add(_instr2.Id.ToSecurityId(), -1m);<br /><br />var series2 = new CandleSeries(typeof(TimeFrameCandle), _indexInstr1, TimeSpan.FromMinutes(5))<br />{<br /> BuildCandlesMode = BuildCandlesModes.Build,<br />};<br /><br />_candleManager.Start(series2);<br /></div></div><br /><br />Код для ExpressionIndexSecurity<br /><div class="code"><strong>Код</strong><div class="innercode"><br />_indexInstr3 = new ExpressionIndexSecurity<br />{<br /> Id = "IndexInstr@FORTS",<br /> Expression = "SBER@QJSIM*2",<br /> Board = ExchangeBoard.Forts, <br />};<br /><br />var series3 = new CandleSeries(typeof(TimeFrameCandle), _indexInstr3, TimeSpan.FromMinutes(5))<br />{<br /> BuildCandlesMode = BuildCandlesModes.Build<br />};<br />_candleManager.Start(series2);<br /></div></div><br /><a href='https://stocksharp.ru/file/104372/image5355_png/' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'><img src="https://stocksharp.ru/file/104372/image5355_png/?size=500x500" alt="image5355.png" title="image5355.png" /></a><br />Exception и StackTrace<br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_6d7516cfe0d94b8aa9b18452607ebe10');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_6d7516cfe0d94b8aa9b18452607ebe10' style='display:none'><br /> Microsoft.Practices.ServiceLocation.ActivationException was unhandled by user code<br /> HResult=-2146233088<br /> Message=Activation error occurred while trying to get instance of type ISecurityProvider, key ""<br /> Source=Ecng.Configuration<br /> StackTrace:<br /> в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key)<br /> в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance[TService]()<br /> в Ecng.Configuration.ConfigManager.GetService[T]()<br /> в StockSharp.Algo.Candles.CandleManager.Start(CandleSeries series, DateTimeOffset from, DateTimeOffset to)<br /> в StockSharp.Algo.Candles.CandleHelper.Start(ICandleManager manager, CandleSeries series)<br /> в SampleQuikCandles.MainWindow.ShowChartClick(Object sender, RoutedEventArgs e) в C:\Users\Ivan\Downloads\StockSharp_4.3.23_ru (2)\Samples\Quik\SampleQuikCandles\MainWindow.xaml.cs:строка 230<br /> в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)<br /> в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)<br /> в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)<br /> в System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)<br /> в System.Windows.Controls.Primitives.ButtonBase.OnClick()<br /> в System.Windows.Controls.Button.OnClick()<br /> в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)<br /> в System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)<br /> в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)<br /> в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)<br /> в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)<br /> в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)<br /> в System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)<br /> в System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)<br /> в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)<br /> в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)<br /> в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)<br /> в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)<br /> в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)<br /> в System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)<br /> в System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)<br /> в System.Windows.Input.InputManager.ProcessStagingArea()<br /> в System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)<br /> в System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)<br /> в System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)<br /> в System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)<br /> в System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)<br /> в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)<br /> в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)<br /> в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)<br /> в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)<br /> InnerException: <br /> HResult=-2146233088<br /> Message=Resolution of the dependency failed, type = "StockSharp.BusinessEntities.ISecurityProvider", name = "(none)".<br />Exception occurred while: while resolving.<br />Exception is: InvalidOperationException - The current type, StockSharp.BusinessEntities.ISecurityProvider, is an interface and cannot be constructed. Are you missing a type mapping?<br /><hr />At the time of the exception, the container was:<br /><br /> Resolving StockSharp.BusinessEntities.ISecurityProvider,(none)<br /><br /> Source=Ecng.Configuration<br /> TypeRequested=ISecurityProvider<br /> StackTrace:<br /> в Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, Object existing, String name, IEnumerable`1 resolverOverrides)<br /> в Microsoft.Practices.Unity.UnityContainer.Resolve(Type t, String name, ResolverOverride[] resolverOverrides)<br /> в Microsoft.Practices.Unity.UnityServiceLocator.DoGetInstance(Type serviceType, String key)<br /> в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key)<br /> InnerException: <br /> HResult=-2146233079<br /> Message=The current type, StockSharp.BusinessEntities.ISecurityProvider, is an interface and cannot be constructed. Are you missing a type mapping?<br /> Source=Ecng.Configuration<br /> StackTrace:<br /> в Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.ThrowForAttemptingToConstructInterface(IBuilderContext context)<br /> в BuildUp_StockSharp.BusinessEntities.ISecurityProvider(IBuilderContext )<br /> в Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(IBuilderContext context)<br /> в Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext context)<br /> в Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext context)<br /> в Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, Object existing, String name, IEnumerable`1 resolverOverrides)<br /> InnerException: <br /></div><br />Все пробовал на примере SampleQuikCandles изменил метод ShowChartClick<br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_f6fbc39b453642e5a76a671fe576f4a5');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_f6fbc39b453642e5a76a671fe576f4a5' style='display:none'><br /><div class="code"><strong>Код</strong><div class="innercode"><br />private void ShowChartClick(object sender, RoutedEventArgs e)<br />{<br /> var security = SelectedSecurity;<br /><br /> Security _instr1 = _trader.Securities.FirstOrDefault((x) => x.Id == "SBER@QJSIM");<br /> Security _instr2 = _trader.Securities.FirstOrDefault((x) => x.Id == "LKOH@QJSIM");<br /> <br /> _indexInstr1 = new WeightedIndexSecurity() { Board = ExchangeBoard.Forts, Id = "IndexInstr" };<br /> _indexInstr1.Weights.Add(_instr1.Id.ToSecurityId(), 1m);<br /> _indexInstr1.Weights.Add(_instr2.Id.ToSecurityId(), -1m);<br /> <br /> _indexInstr3 = new ExpressionIndexSecurity<br /> {<br /> Id = "IndexInstr@FORTS",<br /> Expression = "SBER@QJSIM*2",<br /> Board = ExchangeBoard.Forts, <br /> };<br /><br /><br /> var series1 = new CandleSeries(typeof(TimeFrameCandle), security, TimeSpan.FromMinutes(5))<br /> {<br /> BuildCandlesMode = BuildCandlesModes.Build,<br /> <br /> };<br /> var series2 = new CandleSeries(typeof(TimeFrameCandle), _indexInstr1, TimeSpan.FromMinutes(5))<br /> {<br /> BuildCandlesMode = BuildCandlesModes.Build,<br /><br /> };<br /> var series3 = new CandleSeries(typeof(TimeFrameCandle), _indexInstr3, TimeSpan.FromMinutes(5))<br /> {<br /> BuildCandlesMode = BuildCandlesModes.Build<br /> };<br /> _chartWindows.SafeAdd(series1, key =><br /> {<br /> var wnd = new ChartWindow();<br /><br /> wnd.MakeHideable();<br /><br /> var area = new ChartArea();<br /> wnd.Chart.Areas.Add(area);<br /><br /> var candlesElem = new ChartCandleElement();<br /> area.Elements.Add(candlesElem);<br /><br /> return wnd;<br /> }).Show();<br /> <br /> _candleManager.Start(series2);<br />}<br /></div></div><br /></div><br /><br />Как правильно построить индекс?
https://stocksharp.ru/topic/8228/
Проект SampleRandomEmulation из GitHub не работает
2017-04-20T22:47:28Z
2017-04-21T13:46:42Z
Дмитрий_
https://stocksharp.ru/users/62269/
info@stocksharp.ru
Здравствуйте.<br />Проект SampleRandomEmulation из GitHub не работает. После окончания тестирования, программа показывает по всем критериям 0.<br />Запускал на Visual Studio 2015 и 2017 Community Edition.<br />StockSharp 4.3.23.
https://stocksharp.ru/topic/8226/
техподдержка
2017-04-19T23:39:55Z
2017-04-21T13:12:58Z
Александр
https://stocksharp.ru/users/98359/
info@stocksharp.ru
Пишу в третий раз пытаюсь повторить по первому уроку программу и на BaseTrade выдает ошибку почему? Почему Вы не отвечаете на вопросы что нужно неделями ждать ответ от Вас? Поддержку Base я купил толко без толку
https://stocksharp.ru/topic/8225/
После обновлении библиотеки перестали приходить свечки
2017-04-19T01:54:16Z
2017-04-20T23:07:21Z
Pelmen32
https://stocksharp.ru/users/95692/
info@stocksharp.ru
Добрый день,<br />обновил версию библиотеки StockSharp на 4.3.23 и в ранее работающем коде перестали приходить свечки.<br />Пробовал на разных коннекторах Quik-Junior, рабочий Quik, Transaq - результат одинаков.<br />Подключение происходит, получаю инструменты и портфели, но свечки не приходят.<br />Архив разблокировал, заново перекомпилировал весь проект.<br />Код получения свечек следующий:<br /><br />_candleManager = new CandleManager(_connectors[_numConnector].Trader);<br />_candleManager.Processing += DrawElement;<br />_connectorCandleSеries = new CandleSeries(typeof (TimeFrameCandle), _selSecurity, _candleTimeFrame);<br />_candleManager.Start(_connectorCandleSеries;<br /><br />Пробовал отключать Брандмауэр и антивирус, ничего не получается.<br />Установлено Windows 8, Visual Studio 2012, лицензию StockSharp получал и сохранял.<br /><br />Прилагаю лог коннектора Quik:<br />2017/04/19 01:49:41.256| |LuaServer |OnInit<br />2017/04/19 01:49:41.275| |FixServer |Server 0.0.0.0:5001 started.<br />2017/04/19 01:49:41.276| |FixServer |FixServer started.<br />2017/04/19 01:49:41.276| |LuaServer |OnInit done<br />2017/04/19 01:49:41.277| |FixServer |FixServer outgoing thread started.<br />2017/04/19 01:49:41.281| |LuaServer |Main<br />2017/04/19 01:49:44.504| |FixServer |Connected '127.0.0.1:9870' to '0.0.0.0:5001'.<br />2017/04/19 01:49:44.515| |FixServer |Received first byte from '127.0.0.1:9870'.<br />2017/04/19 01:49:44.516| |FixServer |Connected '127.0.0.1:9871' to '0.0.0.0:5001'.<br />2017/04/19 01:49:44.516| |FixServer |Received first byte from '127.0.0.1:9871'.<br />2017/04/19 01:49:44.529| |FixServer |From : Logon<br />2017/04/19 01:49:44.529| |FixServer |From : Logon<br />2017/04/19 01:49:44.531| |FixServer |Клиент quik (127.0.0.1:9870) авторизован.<br />2017/04/19 01:49:44.531| |FixServer |Клиент quik (127.0.0.1:9871) авторизован.<br />2017/04/19 01:49:45.719| |FixServer |Отправка Logon клиенту.<br />2017/04/19 01:49:45.720| |FixServer |Отправка Logon клиенту.<br />2017/04/19 01:49:45.723| |FixServer |Сессия запущена.<br />2017/04/19 01:49:45.723| |FixServer |Сессия запущена.<br />2017/04/19 01:49:48.751| |FixServer |From quik 127.0.0.1:9871: SecurityListRequest<br />2017/04/19 01:49:48.752| |FixServer |From quik 127.0.0.1:9870: RequestForPositions<br />2017/04/19 01:49:48.767| |FixServer |From quik 127.0.0.1:9870: OrderMassStatusRequest<br />2017/04/19 01:49:48.767| |LuaServer |Request: Type = PortfolioLookup TrId = 6583294 Value = SecId = OrdType = IsSubscribe = False DataType = Level1<br />2017/04/19 01:49:48.768| |LuaServer |LookupPortfolios<br />2017/04/19 01:49:48.784| |LuaServer |LookupPortfolios done<br />2017/04/19 01:49:48.787| |LuaServer |LookupPositions<br />2017/04/19 01:49:48.788| |LuaServer |LookupPositions done<br />2017/04/19 01:49:48.789| |LuaServer |Request: Type = SecurityLookup TrId = 6583293 Value = SecId = S#:@, Native:,Type: OrdType = IsSubscribe = False DataType = Level1<br />2017/04/19 01:49:48.793| |LuaServer |LookupSecurities<br />2017/04/19 01:49:48.895|Error |LuaServer |Пустой код инструмента для класса EQRP_INFO.<br />2017/04/19 01:49:48.958| |LuaServer |LookupSecurities done<br />2017/04/19 01:49:48.984| |LuaServer |Request: Type = OrderStatus TrId = 6583295 Value = SecId = OrdType = IsSubscribe = False DataType = Level1<br />2017/04/19 01:49:48.984| |LuaServer |LookupStopOrders<br />2017/04/19 01:49:48.985| |LuaServer |Stop orders count: 0<br />2017/04/19 01:49:48.985| |LuaServer |LookupStopOrders done<br />2017/04/19 01:49:48.985| |LuaServer |LookupOrders<br />2017/04/19 01:49:48.986| |LuaServer |Orders count: 0<br />2017/04/19 01:49:48.986| |LuaServer |LookupOrders done<br />2017/04/19 01:49:48.986| |LuaServer |LookupTrades<br />2017/04/19 01:49:48.986| |LuaServer |Own trades count: 0<br />2017/04/19 01:49:48.986| |LuaServer |LookupTrades done<br />2017/04/19 01:50:07.013| |FixServer |From quik 127.0.0.1:9871: MarketDataRequest<br />2017/04/19 01:50:07.023| |LuaServer |Request: Type = MarketData TrId = 6583297 Value = SecId = S#:SBER@QJSIM, Native:,Type: OrdType = IsSubscribe = True DataType = CandleTimeFrame<br />2017/04/19 01:50:45.739| |FixServer |From quik 127.0.0.1:9870: TestRequest<br />2017/04/19 01:50:45.739| |FixServer |From quik 127.0.0.1:9871: TestRequest<br />2017/04/19 01:50:50.879| |FixServer |From quik 127.0.0.1:9871: Logout<br />2017/04/19 01:50:50.882| |FixServer |Disconnect quik (127.0.0.1:9871)<br />2017/04/19 01:50:50.886| |FixServer |From quik 127.0.0.1:9870: Logout<br />2017/04/19 01:50:50.886| |FixServer |Disconnect quik (127.0.0.1:9870)<br />2017/04/19 01:50:55.479| |LuaServer |OnStop<br />2017/04/19 01:50:55.479| |LuaServer |Main done<br />2017/04/19 01:50:55.480| |FixServer |FixServer (outgoing) stopped.<br />2017/04/19 01:50:55.480| |FixServer |FixServer outgoing thread finished.<br />2017/04/19 01:50:55.481| |FixServer |FixServer stopped.<br />2017/04/19 01:50:55.482| |LuaServer |OnStop done<br />
https://stocksharp.ru/topic/8223/
HistoryEmulationConnector не появляются NewMarketDepth
2017-04-18T23:23:29Z
2017-04-18T23:23:29Z
Виктор
https://stocksharp.ru/users/26982/
info@stocksharp.ru
Добрый день!<br /><br />В примере SampleRandomEmulation коннектор HistoryEmulationConnector отрабатывает только тики через RandomWalkTradeGenerator, а стаканы через TrendMarketDepthGenerator не появляются ни в какую.<br />Пробовал _connector.SendOutMessage(depth.ToMessage() ), все равно тики идут, а стаканов нет. <br />Может кто сталкивался? <br />
https://stocksharp.ru/topic/8222/
техподдержка
2017-04-18T21:14:25Z
2017-04-18T21:14:25Z
Александр
https://stocksharp.ru/users/98359/
info@stocksharp.ru
Приобрел платную техподдежку, но почему-то когда хочу что-то спросить получаю - Для вашей учетной записи не найдена ни одна активная подписка на техническую поддержку<br />BaseTrader нет в StockSharp.Algo? Пробую повторить программу в первом уроке и не получается
https://stocksharp.ru/topic/8221/
Устарело описание ContinuousSecurity
2017-04-17T19:46:24Z
2017-04-17T22:24:05Z
VassilSanych
https://stocksharp.ru/users/6491/
info@stocksharp.ru
В документации устарело описание ContinuousSecurity. <br />API изменился. Теперь совершенно не понятно, как создать ContinuousSecurity на основе данных из Hydra.<br />В примерах ничего на эту тему нет.<br /><br />Раньше я создавал его таким методом<br /><div class="code"><strong>Код</strong><div class="innercode"> /// <summary><br /> /// Создание склеенного фьючерса RI<br /> /// </summary><br /> /// <returns></returns><br /> public ContinuousSecurity GenerateSecurity()<br /> {<br /> var prefix = "RI";<br /> var securityName = prefix + "@CONTINIOUS";<br /> var result = new ContinuousSecurity<br /> {<br /> Id = securityName,<br /> Code = securityName,<br /> Name = "ContinuousSecurity for " + securityName,<br /> Board = ExchangeBoard.Forts,<br /> };<br /> for (var year = FIRST_YEAR; year < 2018; year++)<br /> {<br /> for (var i = 0; i < 4; i++)<br /> {<br /> var yearPart = year % 10; // тут получаем последнюю цифру года<br /> var mounth = i * 3 + 3;<br /> var mounthPart = Mounths[i]; // тут выбирается индекс, показывающий месяц<br /><br /> var id = prefix + mounthPart + yearPart + "@FORTS";<br /> var code = prefix + "-" + (yearPart) + "." + (mounth);<br /> var security = new Security<br /> {<br /> Id = id,<br /> Code = code,<br /> Name =<br /> "ContinuousSecurity for " + prefix + " expiration in " + mounth + "." +<br /> year,<br /> Board = ExchangeBoard.Forts,<br /> };<br /> var expiration = new DateTime(year, mounth, FortsExpirationTable[year - 2000][i]);<br /> result.ExpirationJumps.Add(security, expiration);<br /> }<br /> }<br /> return result;<br /> }</div></div><br /><br />Соответственно сейчас Add адово изменился. Теперь, очевидно, требуется использование FillFortsJumps.<br />Вопрос: как? <br />(загрузка идёт через IMarketDataStorage<Trade>)