← Zurück

Как использовать класс IndicatorManager?

Не пойму работу IndicatorManager. Хочу добавить в него индикатор и потом получить значение Индикатора.

 
// Регистрирую индикатор в менеджере
 CandleToken token;
 IndM = new IndicatorManager(); 
 token = candleManager.RegisterTimeFrameCandles(SelectedSecurity, _timeFrame);
 var PriceSource = new CandleTokenIndicatorSource(token, BaseCandleIndicatorSource.ByClose);
 indTokenADX = IndM.RegisterIndicator(_Mystrategy.ADX, PriceSource);


Теперь вопрос: как получить последнее или любое значение индикатора

War dieses Thema hilfreich?

Thema teilen

Kommentare (10)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Autor

Может кто-нибудь тогда ответит, как мне получить значение комплексного индикатора.. Например ADX?

Я вычисляю его так :


 _strategy.indTokenADX.Indicator.Process(new StockSharp.Algo.Indicators.CandleIndicatorValue(candle));

Вижу, что вычисляются значения DX и EMA(составные части), а как получить итоговое значение??

Autor

Ну может , в честь победы Путина мне кто-нибудь поможет?? )))

Alexander
Alexander

Если б данную задачу кто-то сделал - вопросов было бы меньше :)

Autor

Вот как буду способен грамотно помочь, обязательно помогу.Если б я знал, то ответил бы на Вашем месте)), чтобы вдохновить меня.

Alexander
Alexander

Максим Пыж: Вот как буду способен грамотно помочь, обязательно помогу.Если б я знал, то ответил бы на Вашем месте)), чтобы вдохновить меня.

я с индикаторами ни разу не работал, я их только рефакторил порой. знал бы - ответил

Autor

А где можно прочитать историю развитию S# ??.Это разработка с нуля велась?? Или иностранная библиотека?? Я думал Вы Александр и Михаил все знаете)).

Alexander
Alexander

Максим Пыж: А где можно прочитать историю развитию S# ??.Это разработка с нуля велась?? Или иностранная библиотека?? Я думал Вы Александр и Михаил все знаете)).

Это полностью написанная Михаилом библиотека с 0, я подключился к разработке позже.

Индикаторы - совместная разработка, в ней принимали участие люди с форума. Лично я в индикаторах участия не принимал, особо не следил, потому не знаю.

Получить историю по индикаторам можно на codeplex, в истории изменений. удобнее либо через svn, либо через tfs.

Autor

В продолжение темы, если кому интересно , я пробывал получить значение так :

Инициализация всех нужны объектов для работы с индикатором


CandleToken token;
IndM = new IndicatorManager(); 
token = candleManager.RegisterTimeFrameCandles(SelectedSecurity, _timeFrame);
var PriceSource = new CandleTokenIndicatorSource(token, BaseCandleIndicatorSource.ByClose);
indTokenADX = IndM.RegisterIndicator(_Mystrategy.ADX, PriceSource);

Затем по обновлению свечек я делаю расчет индикатора ADX

_strategy.indTokenADXProperty.Indicator.Process(new StockSharp.Algo.Indicators.CandleIndicatorValue(candle));

И затем , когда индикатор сформирован ( _strategy.ADX.IsFormed == true)(а он чудным образом формируется), я пытаюсь получить значение ADX :


IEnumerable<RefPair<IIndicatorValue, IIndicatorValue>> MyADXValues = _strategy.IndM.Container.GetValues(_strategy.indTokenADXProperty)));

Но на этом шаге меня ждет разочарование - коллекция пуста. При этом значение составных индикаторов видно вычисляются.

О гуру Михаил , помогите же нам .

Spiritschaser
Spiritschaser

Я сейчас мучительно изучаю ООП и исходники S#. В описанной Вами проблеме по=пробуйте сначала создать контейнер, а потом с ним - менеджер: IndC = new IndicatorContainer(); IndM = new IndicatorManager(IndC);

Я пока ещё не тестировал код, пока переделываю пример с SMA под свои нужды.