Отрисовка индикаторов на истории и онлайн.

Отрисовка индикаторов на истории и онлайн.


Добрый день! Возмем индикатор SMA
Код
_sma = new SimpleMovingAverage() { Length = 10 };
....
var smaValue = _sma.Process(candle);

Далее если указать для smaValue.IsFinal = true то текущее значение будет браться за расчет и фиксироваться по оси x. То есть можно указать вот так:
Код
smaValue.IsFinal = candle.State == CandleStates.Finished;

Это будет логично. Если свеча закрыта то рассчитываем индикатор и фиксируем на оси x.

От сюда вопрос: Почему это не работает при загрузке истории?
Ведь у исторических свечей так же есть состояние Finished и Active.
Если не отфильтровывать историю от реалтайма то индикатор убегает вперед свечек.



Спасибо:


Support

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


В хранилище хранятся только сформированные свечи.
Спасибо:

Константин

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


Здравствуйте. История приходит из Quik'а. Если исторические свечи имеют статус Finished то smaValue.IsFinal будет всегда true так как:
Код
smaValue.IsFinal = candle.State == CandleStates.Finished;

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

Если значение IsFinal не работает в этом случае то для чего оно?
Вот код отрисовки:
Код
_candleManager.Processing += (series, candle) =>
{
if (series != _series)
return;

// Рассчитываем значение индикатора
var smaValue = _sma.Process(candle);
//Если свеча закончена то берем текущее значение за расчет и фиксируем по оси X
smaValue.IsFinal = candle.State == CandleStates.Active;

// Создаем экземпляр класса ChartDrawData - класс, где группируются данные для отрисовки
var data = new ChartDrawData();

// chartItem - набор элементов, привязанных к одной точке на шкале X
var chartItem = data.Group(candle.OpenTime).Add(_candleElement, candle);
chartItem.Add(_indicatorElement, smaValue);

// Безопасно отрисовываем элементы на графике
this.GuiSync(() => Chart.Draw(data));

};
Спасибо: Support

Support

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


Спасибо информация передана.
Спасибо:


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

loading
clippy