your definition:
Is a true / false statement.
It is saying define the variable uparrow as true when close is greater than 7.
Thus, uparrow will be equal to 1 when true because 1 is the boolean value of a true statement.
When it is false your uparrow equals 0.
So you do see what will happen when you write close > uparrow?
You are saying plot an arrow whenever close is greater than 1.
If you want an arrow on every candle where close is greater than 7 then the code would be:
def uparrow=close>7 ;
plot buysignal = uparrow ;
buysignal..SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_up);
This says, when the boolean value of the buysignal is 1 then plot an arrow pointing up.
This is the end of the code. Do not add any more statements.
If you want only ONE arrow and you want it to be when the first time the condition is true then the code would be:
def uparrow = close >7 ;
plot buysignal = uparrow and !uparrow[1];
buysignal..SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_up);
this says only plot where the current bar is true and the previous bar was not. Meaning you only want the very 1st time the condition is true. If it is true on subsequent
sequential bars, no arrows will print.
again this would be the end of the code.
Hope this helps.
Got more questions, just ask