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

возможно некорректная работа SampleSMA v.4.1.6
Atom
11/28/2012
Semen7


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

Tags:


Thanks:


< 1 2 
esper

Avatar
Date: 11/30/2012
Reply


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

Semen7

Avatar
Date: 11/30/2012
Reply


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

Algonavt

Avatar
Date: 12/16/2012
Reply


Играясь с индикаторами и примером SampleCandles, обнаружил, следующее:
Если в методе DrawCandle обработку делать следующим образом, то средняя просто соединяет цены закрытия свечей:
Code
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 }
                    });
               });


Если же код немного модифицировать, то индикатор отображается нормально:
Code
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: в аттаче работающий проект.
Thanks:
< 1 2 

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy