возможно некорректная работа SampleSMA v.4.1.6


возможно некорректная работа SampleSMA v.4.1.6
Atom
28.11.2012


Всем здравствуйте!
Только начинаю разбираться в stockslash и столкнулся со следующим.
Пример SampleSMA в версии 4.1.6 то-ли некорректно работает, то-ли ...
Чудесно компилируется, запускается, отрисовывает исторические данные по "LKOH" (которые идут в комплекте вместе с данным примером)
и скользящие средние для них. Но как только переходит на реальное время, все скользящие средние начинают вычисляться некорректно,
становятся фактически одной линией, которая проходит по закрытию свечей. Причём на изменение параметров
скользящей средней при отрисовке реальных данных не реагирует, что Length = 10, что 30, разницы никакой. Может подскажет кто, в чём дело?
рис.jpg 109 KB (530)

Теги:


Спасибо:


< 1 2 
esper

Фотография
Дата: 30.11.2012
Ответить


1. Он и должен быть protected.
2. LastValue уже давно нет, смотрите последние версии индикаторов.
Спасибо: Semen7

Semen7

Фотография
Дата: 30.11.2012
Ответить


Спасибо доктор, помогло:)
Спасибо:

Algonavt

Фотография
Дата: 16.12.2012
Ответить


Играясь с индикаторами и примером SampleCandles, обнаружил, следующее:
Если в методе DrawCandle обработку делать следующим образом, то средняя просто соединяет цены закрытия свечей:
Код
this.GuiAsync(() =>
               {

                   var wnd = _chartWindows.TryGetValue(series);

                   var bollingerValue = candle.State == CandleStates.Finished
                       ? new ChartIndicatorValue(_bollingerElement.Indicator, _bollingerElement.Indicator.Process(candle))
                       : null;

                   wnd.Chart.ProcessValues(candle.OpenTime, new Dictionary<IChartElement, object>
                    {
                        { _candlesElement, candle },
                        { _bollingerElement, bollingerValue }
                    });
               });


Если же код немного модифицировать, то индикатор отображается нормально:
Код
var wnd = _chartWindows.TryGetValue(series);

            var bollingerValue = candle.State == CandleStates.Finished
            ? new ChartIndicatorValue(_bollingerElement.Indicator, _bollingerElement.Indicator.Process(candle))
            : null;

            this.GuiAsync(() => wnd.Chart.ProcessValues(candle.OpenTime, new Dictionary<IChartElement, object>
                    {
                        { _candlesElement, candle },
                        { _bollingerElement, bollingerValue }
                    }));


С чем это может быть связано? Вроде как проблему решил, но всё равно хочется разобраться, почему проблема возникла.

PS: в аттаче работающий проект.
Спасибо:
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy