← Atrás

Свечки

Добрый день.

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

¿Le resultó útil este tema?

Compartir tema

Comentarios (17)

Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario

Mikhail Sukhov
Mikhail Sukhov
rminko
rminko
rminko Autor

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 Autor

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

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

esper
esper

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

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

using Ecng.Trading.Algo; 🤨

rminko
rminko Autor

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 Autor

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

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

Alexander
Alexander

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

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

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

rminko
rminko Autor

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 Autor

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

Alexander
Alexander

rminko:

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

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

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

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 Autor

esper: 2rminko

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

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