Добрый день
Прошерстил документацию и не нашёл ответы на следующие вопросы:
- Как сохранённые локально исторические сделки конвертировать в 1-,5- и т.д.-минутные свечи 1.1) Используя коннектор? 1.2) И не используя коннектор?
2.1) Как и откуда можно получить исторический стакан по инструменту? 2.2) Исторический стакан я могу получить только из ордер лога и больше никак?
- Как и откуда получить исторические новости по инструменту?
Комментарии (11)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Добрый день
Вы можете использовать нашу программу Гидра. Она позволяет строить свечи единоразово, так и постоянно через задачу Конвертер.
Добрый день
Для саморазвития хотелось узнать внутреннюю реализацию. По вопросу 1.2) на форуме нашёл:
var manager = new CandleManager(new SomeBuilderSource(ticks)); CandleSeries series = new CandleSeries(typeof(TimeFrameCandle), security, TimeSpan.FromMinutes(5)); manager.Start(series); var candles = manager.GetCandles(series);
Да вы можете использовать наследник CandleBuilder для генерации свечей из исходных данных.
Подскажите пожалуйста.
Как связать наследника CandleBuilder - TimeFrameCandleBuilder со скаченными сделками и CandleManager?
Нашёл только вариант для более ранних версий S#.
var trades = Core.Storage.GetTradeStorage(Security).Load(Core.Yesterday, Core.Yesterday + TimeSpan.FromTicks(TimeSpan.TicksPerDay - 1)); var bld = new CandleBuilder(new RawConvertableCandleBuilderSource<Trade>(trades)) ; bld.CandlesStarted += (t, c) => { var candles = c.Cast<TimeFrameCandle>(); Storage.Save(candles);
}; bld.RegisterTimeFrameCandles(Security, TimeFrame);
Можете использовать одну из данных перегрузок http://doc.stocksharp.ru/html/Overload_StockSharp_Algo_Candles_CandleHelper_ToCandles.htm
Спасибо! Разобрался.
Следующий вопрос 1.1) Как сохранённые локально исторические сделки конвертировать в 1-,5- и т.д.-минутные свечи, используя коннектор?
Есть следующий код
var portfolio = new Portfolio { Name = "test account", BeginValue = 1000000, }; StorageRegistry storage = new StorageRegistry() { DefaultDrive = new LocalMarketDataDrive() }; HistoryEmulationConnector _connector = new HistoryEmulationConnector(new[] , new[] ); // Set history range _connector.HistoryMessageAdapter.StartDate = new DateTime(2018, 3, 26); _connector.HistoryMessageAdapter.StopDate = new DateTime(2018, 3, 27); // Set market time freq as time frame _connector.MarketTimeChangedInterval = TimeSpan.FromMinutes(1.0); _connector.InitializeStorage(new EntityRegistry(), storage);
в котором в метод
private void ProcessCandle(Candle obj) { throw new NotImplementedException(); }
не приходит ни одной свечи. Почему так происходит?
Возможно у вас не запущено тестирование на истории. Вы можете посмотреть работу со свечами на истории в примере SampleHistoryTesting
Добрый день Верно, не было запущено. Спасибо!
Следующий вопрос: 2.1) Как получить исторический стакан по инструменту?
Если я правильно понял: 2.1.1) Российский рынок. Только через ордер лог, запросив его платно у Московской Биржи? 2.1.2) Американский рынок (NYSE, NASDAQ). Нет информации.
Добрый день
К сожалению мы не располагаем подобной информацией. Рекомендуем вам обратиться к вашему брокеру или на биржу.
Ок, крайний вопрос. 3) Как и откуда получить исторические новости по инструменту?
Добрый день
К сожалению мы не располагаем подобной информацией. Рекомендуем вам обратиться к вашему брокеру или на биржу.