Добрый день
Прошерстил документацию и не нашёл ответы на следующие вопросы:
- Как сохранённые локально исторические сделки конвертировать в 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) Как и откуда получить исторические новости по инструменту?
Добрый день
К сожалению мы не располагаем подобной информацией. Рекомендуем вам обратиться к вашему брокеру или на биржу.