StRat, вот твой индикатор с модификацией.....но прежде чем делать на нем алерт в вочлисте протестируй его на разных графиках и ТФ......нужно убедиться что он не дает ложных срабатываний.....если все нормально, то продолжим....
Вот тебе и задачка для тренировки...
В индикаторе я ввел дополнительно три булевых переменных, redbar, whitebar, bluebar
Также там добавлены твои условия cond1 и cond2 это тоже булевы переменные
Чтобы освободить память, тебе не нужно переписывать весь код в кастом фильтр, достаточно ссылок на эти переменые...
declare lower;
input data = close;
input offset = 1;
def agg = aggregationPeriod.FIFTEEN_MIN and aggregationPeriod.FIVE_MIN and aggregationPeriod.MIN and aggregationPeriod.MIN;
def name = high[1] - low > 0.01 and close[1] > open[1] and close >open;
def name1 = high[1] - low> 0.01 and close[1]< open[1] and close < open;
plot data1 = (name1 or name1);
AssignBackgroundColor (if data1 then color.DARK_Green else color.BLACK);
вот код на тайм фреймы еще, чтобы все ТФ были одинаковые(лонговые - шортовые), тоже прошу проверить на правильность.
plot signal = Crosses(Diff, 0, crossingType == crossingType."Negative to Positive"
signal.DefineColor("Negative to Positive", GetColor(2));
signal.DefineColor("Positive to Negative", GetColor(3));
signal.AssignValueColor(if crossingType == crossingType."Negative to Positive" then signal.color("Negative to Positive" else signal.color("Positive to Negative");
signal.SetPaintingStrategy(if crossingType == crossingType."Negative to Positive"
then PaintingStrategy.BOOLEAN_ARROW_UP
else PaintingStrategy.BOOLEAN_ARROW_DOWN);
1.0 есть сигнал
0.0 нету. агригейшен не забудь поставить только.