Проблема с оповещением с частотой "Один раз за бар"

Оповещения на индикаторы с частотой, отличной от На закрытии бара (это Один раз, Раз в минуту, Один раз за бар), могут срабатывать в процессе построения бара. Т.к. в процессе построения бара меняются HLC (High, Low, Close), то могут меняться и значения индикаторов, зависящих от HLC. Это приводит к тому, что время выполнения условия сработки на графике не всегда совпадает с временем фактической сработки оповещения.

В качестве примера рассмотрим 2 распространенных случая:

  • сработка оповещения произошла, но на графике условие не выполняется
  • оповещение сработало позже, чем выполнилось условие на графике
1) Сработка оповещения произошла, но на графике условие не выполняется

На скриншотах ниже показано изменение HLC и RSI в процессе построения бара от 10:00 в режиме симуляции рынка.

На первом скрине видно, что в определенный момент значение RSI находилось ниже 30 (т.е. было пересечение уровня 30).

На втором скриншоте видно, что на момент закрытия этого бара значение RSI поднялось выше 30 (т.е. пересечения уровня 30 уже нет).

Т.о. оповещение с условием RSI Пересечение 30 сработало бы в процессе построения бара от 10:00, хотя на момент закрытия бара может показаться, что сработки быть не должно.

2) Оповещение сработало позже, чем выполнилось условие на графике.

На скриншотах ниже показано изменение HLC и BB Lower Band в процессе построения бара от 02:00 в режиме симуляции, а также уровень, на котором пересекаются значение Lower Band и фитиль бара (68840, черная пунктирная линия).

На первом скриншоте видно, что в процессе построения бара значение Close было ниже уровня 68840, а значение индикатора было ниже значения Close, при этом пересечения бара и индикатора на уровне 68840 не происходило.

На втором скриншоте видно, что на момент закрытия бара Close поднялось выше уровня 68840. Значение индикатора тоже увеличилось, но т.к. значение Low осталось неизменным (в процессе построения бара оно может только уменьшаться), произошло пересечение индикатора и фитиля на уровне 68840.

Важно отметить, что пересечение произошло не в тот момент, когда цена снизилась до уровня 68840, а в тот момент, когда значение индикатора повысилось до этого уровня.

Т.о. оповещение с условием BTCUSD Пересечение BB Lower Band сработал бы в процессе построения именно в тот момент, когда и цена и значение индикатора начали повышаться, хотя после закрытия бара может показаться, что сработка должна произойти раньше (а именно в тот момент, когда цена снизилась до уровня 68840).