← Назад

Свечки

Добрый день.

Такая проблемка: необходимо расчитать несколько своих индикаторов на основе данных из CandleManager. Насколько я понял с помощью RegisterTimeFrameCandles можно получить только свечи текущей сессии, а точнее только свечи на основе тех данных которые есть в таблице всех сделок а с помощью GetRangeCandles или RegisterRangeCandles свечки за исторические периоды. Так вот мне не совсем понятно каким красивым способом получить одну коллекцию со свечками вчерашних торгов и сегодняшних. И хотелось бы пример как с этими самыми RangeCandles (применительно к истории) работать, а то в SampleCandle есть RangeCandles но он тоже показывает только текущую сессию.

Комментарии (17)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Mikhail Sukhov
Mikhail Sukhov
rminko
rminko
rminko Автор

Mikhail Sukhov: http://tradecommunity.ru/blog/stocksharp/41.html Спасибо, это как раз то, что нужно. Единственная проблемка никак не могу понять в какой сборке находится расширение GetTimeFrameCandles? уже на все сборки ссылки добавляю - а не пашет.. а в примерах это расширение отлично подцепляется

Mikhail Sukhov
Mikhail Sukhov

rminko:

Mikhail Sukhov: http://tradecommunity.ru/blog/stocksharp/41.html Спасибо, это как раз то, что нужно. Единственная проблемка никак не могу понять в какой сборке находится расширение GetTimeFrameCandles? уже на все сборки ссылки добавляю - а не пашет.. а в примерах это расширение отлично подцепляется

Это extension method. Определен в TraderHelper

rminko
rminko Автор

Что-то я видимо не то делаю.

посмотрел про класс TraderHelper - он находится в сборке Ecng.Trading.Algo - подключаю эту сборку и все равно студия этот экстеншен не видит.

esper
esper

rminko: Что-то я видимо не то делаю.

посмотрел про класс TraderHelper - он находится в сборке Ecng.Trading.Algo - подключаю эту сборку и все равно студия этот экстеншен не видит.

using Ecng.Trading.Algo; 🤨

rminko
rminko Автор

esper: using Ecng.Trading.Algo; 🤨

не поверишь - есть такое и даже добавил в references сборку Ecng.Trading.Algo.dll, а все равно не пашет

esper
esper

rminko: не поверишь - есть такое и даже добавил в references сборку Ecng.Trading.Algo.dll, а все равно не пашет

а класс TraderHelper вообще видно? если вызвать статический метод GetTimeFrameCandles(ICandleManager, Security, TimeSpan, Range<DateTime>), просто для проверки?

Mikhail Sukhov
Mikhail Sukhov

rminko:

esper: using Ecng.Trading.Algo; 🤨

не поверишь - есть такое и даже добавил в references сборку Ecng.Trading.Algo.dll, а все равно не пашет

Метод GetTimeFrameCandles именно при данном using будет.

rminko
rminko Автор

to esper в обжект браузере видно. а в "коде" нет.. такое ощущение будто нет using_а, но он то есть.... Чуть позже попробую пересоздать проект... может глюк студии

to Михаил так есть этот юзинг

Alexander
Alexander

rminko: to esper в обжект браузере видно. а в "коде" нет.. такое ощущение будто нет using_а, но он то есть.... Чуть позже попробую пересоздать проект... может глюк студии

to Михаил так есть этот юзинг

скиньте файл или весь проект посмотреть. явно какая-то локальная ошибка.

rminko
rminko Автор

Alexander:

rminko: to esper в обжект браузере видно. а в "коде" нет.. такое ощущение будто нет using_а, но он то есть.... Чуть позже попробую пересоздать проект... может глюк студии

to Михаил так есть этот юзинг

скиньте файл или весь проект посмотреть. явно какая-то локальная ошибка.

Ссылку на класс который хочу скомпилить во втором посте Михаил дал. я там ничего не менял кроме как добавил нужный юзинг. Мне кажется проблема с использование base.

Если попробовать напрямую вызвать var candleList = TraderHelper.GetTimeFrameCandles((CandleManager)base, security, timeframe, candleCount).ToList<TimeFrameCandle>(); вместо var candleList = base.GetTimeFrameCandles(security, timeframe, candleCount).ToList<TimeFrameCandle>();

то ругается типо base тут нельзя. видимо не может он экстеншены к бейсу применять почемуто. а как у автора тогда работало?

Alexander
Alexander

rminko:

Alexander:

rminko: to esper в обжект браузере видно. а в "коде" нет.. такое ощущение будто нет using_а, но он то есть.... Чуть позже попробую пересоздать проект... может глюк студии

to Михаил так есть этот юзинг

скиньте файл или весь проект посмотреть. явно какая-то локальная ошибка.

Ссылку на класс который хочу скомпилить во втором посте Михаил дал. я там ничего не менял кроме как добавил нужный юзинг. Мне кажется проблема с использование base.

Если попробовать напрямую вызвать var candleList = TraderHelper.GetTimeFrameCandles((CandleManager)base, security, timeframe, candleCount).ToList<TimeFrameCandle>(); вместо var candleList = base.GetTimeFrameCandles(security, timeframe, candleCount).ToList<TimeFrameCandle>();

то ругается типо base тут нельзя. видимо не может он экстеншены к бейсу применять почемуто. а как у автора тогда работало?

var candleList = TraderHelper.GetTimeFrameCandles(security, timeframe, candleCount).ToList<TimeFrameCandle>();
rminko
rminko Автор

Alexander: ... Опять не понял. у GetTimeFrameCandles нет перегрузки с тремя параметрами, да и как метод "поймет" к какому экземпляру CandleManager применяться

Alexander
Alexander

rminko:

Alexander: ... Опять не понял. у GetTimeFrameCandles нет перегрузки с тремя параметрами, да и как метод "поймет" к какому экземпляру CandleManager применяться

виноват, писал по памяти. вот так работает, проверил только что:

var candleList = _candleManager.GetTimeFrameCandles(security, timeframe, candleCount);
rminko
rminko Автор

Alexander: виноват, писал по памяти. вот так работает, проверил только что:

var candleList = _candleManager.GetTimeFrameCandles(security, timeframe, candleCount);

так с этого все и начиналось. такой код и есть в исходном файле который не компилиться.
esper
esper

2rminko

  1. Какой target framework стоит в настройках проекта? Должен быть 3.5 или 4 без Client profile.
  2. Заменяем base на this
  3. Референсы добавить еще надо будет на Common, ComponentModel и прочие
rminko
rminko
rminko Автор

esper: 2rminko

  1. Какой target framework стоит в настройках проекта? Должен быть 3.5 или 4 без Client profile.
  2. Заменяем base на this
  3. Референсы добавить еще надо будет на Common, ComponentModel и прочие

ага поменял base на this и все заработало. странно что сам не догадался попробовать )) Спасибо!