Добрый день. Версия - 3.0.19. Как получить 2 последние пятиминутные свечи?
var candleTimeFrame = TimeSpan.FromMinutes(5);
_candleManager = new CandleManager(_trader);
CandleToken token = _candleManager.RegisterCandles<TimeFrameCandle, TimeSpan>(_secur, candleTimeFrame);
var candles1 = _candleManager.GetTimeFrameCandle(_secur, candleTimeFrame, DateTime.Now - TimeSpan.FromDays(2));
var candles2 = _candleManager.GetTimeFrameCandle(_secur, candleTimeFrame, DateTime.Now);
В аргумент "период" (который DateTime вроде) что только не пробовал подставить - безрезультатно. В частности candles1 и candles2 - null 🤬
Комментарии (8)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Дорогой hobo! Если экспорт по DDE запущен (Таблица всех сделок) , то
Здесь вы говорите менеджеру свечек собирать свечки по пятиминуткам. Но поскольку вы сделали это только-только по коду, то свечки ещё не сформированы, процесс только запущен. Дальше есть два варианта (как минимум). Первый это подписаться на события формирования свечек.
Второй вариант, это вызывать GetTimeFrameCandles, кстати рекоммендую скачать версию 3.1.19 S# (обещали на выходных выпустить). Но, эсли использовать этот метод, то вам нужно дождаться пока CandleManager сформирует все свечи внутри этого таймфрайма по таблице сделок, и поскольку это не мгновенный процесс, то вызывать GetTimeFrameCandles сразу после RegisterTimeframe неверно, и ничего вам не вернёт. Простейший способ - повесить на отдельную кнопку, ну или на событиях ждать...
А вообще документация рулит. http://www.stocksharp.com/doc/help/html/cd52cfcf-938c-4fce-9a56-4e9a001f0792.htm
http://stocksharp.com/forum/1566/sviechi-micex10index/
По CandlesChanged - свечка приходит, но вот старые свечки получить бы.
http://stocksharp.com/doc/help/html/AllMembers_T_Ecng_Trading_Algo_Candles_CandleManager.htm В ваших советах GetTimeFrameCandle: используется - такого метода вообще не вижу, получаю "Ecng.Trading.Algo.Candles.CandleManager' does not contain a definition for 'GetTimeFrameCandles'. А вот GetTimeFrameCandle хочет DateTime, как третий аргумент.
Подписался на CandlesFinished - пришло 7 свечей. Почему именно 7 не знаю. В таблице "все сделки", первая сделка - 12 часов назад, график цены тоже самое показывает.
По хорошему, такие вещи лучше начинать с изучения примеров.
Чуть больше деталей.
Да уж, не догадался.
Сегодня вот такой поведение вижу: CandlesFinished срабатывает несколько раз, в candles свечи приходят порциями (7-16 по моим наблюдениям). Пробовал несколько раз, в последний раз получилось так (в порядке срабатывания события)
Это ожидаемое поведение? Нужно дожидаться, пока нужное количество не сформируется?
У вас Квик? Тогда да, ожидаемое. Квик сделки транслирует с самого начала сессии. Поэтому и свечки отдаются в начале пачками. Потом такое быть не должно. Если у вас так, то пришлите лог, где будет вижно, за какой период пришли свечки + отметку во времени на компьютере.
Потом по одной появляются, в листбокс выводил. Всем спасибо!