I am trying to generate buy signal based on breaking defined range high and if close above VWAP. And that has been done code pasted below.
Now want to add more condition , if any candle close below range low then buy signal should not generated. I am trying to make that but unable to do so.
de = Day();
de1 = Ref(de, -1);
FC = de != de1;
BSFC = BarsSince(FC)+1;
HH3 = HHV(H, 3);
LL3 = LLV(L, 3);
FC2 = Ref(FC, -2);
RangeHigh = ValueWhen(FC2, HH3);
RangeLow = ValueWhen(FC2, LL3);
_Buy = Close > RangeHigh AND Close > VWAP ;
_Short = Close < RangeLow AND Close < VWAP ;
Buy = _Buy ;
Short = _Short ;
"Any candle" is too vague, because I doubt you mean "any candle in the entire price history". Do you mean "any candle from the current day" or "any candle since Event X occurred" or something else?
Also, you said you've tried but can't make it work. Please let us know what you've tried.
You were almost there. Instead of this in your Buy assignment:
Close < RangeLow ==False
Try something like this:
SumSince(FC, Close < RangeLow) == 0
That logic says that we should find all the times that Close was less than RangeLow, and sum (i.e. count) the number of times that condition has occurred since the start of the day (your FC variable).