Vil,

если нулевая точка в терминале сдвигается, блок "Обновляемое значение" производит пересчет.
Т.е. если у нас есть 100 баров (макс баров = 200), и мы в каждом баре делаем инкремент, то последнее значение равно 100.

Но если у нас 1000 баров (макс баров = 200), то последнее значение всегда равно 200.

Другими словами, у каждой сделки есть идентификатор, хранимый и возвращаемый биржей, но "БарСессии" это просто число, всегда равное нулю на первой точке данных.

Freso,

ну вот есть у нас исходящий поток. У нас есть high, low, open, close, time.

Любой индикатор мы строим по этим величинам. Но каждый из этих индикаторов строится от первой точки выбранного диапазона ( [i - МаксБаров] ) до последней точки ( [i] ).

С наступлением нового бара ( [i + 1] ), наша первая точка сдвигается (становится [i+1 - МаксБаров] ).

При этом, данные high, low и т.д. для точки [i - МаксБаров] тупо исчезают.

Вся проблема в том, что все индикаторы с приходом каждого нового бара делают пересчет для интервала от [i-МаксБаров] до [i].

По грамотному, индикаторы не должны вообще пересчитываться на интервале. С приходом нового бара, нам нужно брать не значения high, low выбранного (смещенного) периода - как это сейчас происходит - а тупо брать значения этого же индикатора, т.е. предыдущий расчет.

Проблема в том, что этот предыдущий расчет не сохраняется вообще нигде. Терминал сохраняет только цену (эти самые high, low...).

Это на самом деле очень серьезный косяк данного терминала.


Отредактировано Atomic (Thu Oct 13 2016 03:59 PM)