Hi there Ozzy
This is something I have seems to work:
See how you go:
|_SECTION_BEGIN("Ozzy's line");
Lastbarr = LastValue(Cum(1) );//counts the number of bars.
startr = Param("bars back", 5, 10, 100, 1);;//
endr = 1;// last bar is the barcount -1 because linearray works off
barindex
// these points defining the line must be NUMBERS, not arrays.
x0 = Lastbarr - startr;
y0 = *L* [ x0] ;//sets the numerical value of the low at x0.
x1 = Lastbarr - endr;
y1 = *C*[x1];
Line = LineArray(x0,y0,x1,y1, 0,1);
//Plot(Line,"",colorBlue,1);
*if*(y1 < y0)
{
Plot(Line,"", *colorBlue*,1);
}
//Plot( IIf(C < Ref(L,-5), Line,Null),"",colorRed,1);
Plot(*C*,"",*colorBlack*, 64);
_SECTION_END();|
Regards
ChrisB
ozzyapeman wrote:
Hi, hoping someone can chime in on this basic line plot question. I
seem to be having a lot of basic plotting problems lately, on stuff
that I am sure should work.
In this case, all I want to do is draw a line between the current
Close and the Low of 5 bars ago, if the current Close is lower than
that Low.
This is what I have, but the lines do not plot. I'm also wondering if
I even need to use looping for this or if I can do it without loops.
Any input appreciated:
| SetChartOptions ( 0 , *chartShowArrows* | *chartShowDates* );
_N ( *Title* = StrFormat ( "{{INTERVAL} } {{DATE}} \n{{VALUES}} " ,
*O* , *H* , *L* , *C* , *V* , SelectedValue (
ROC ( *C* , 1 )) ));
Plot ( *C* , "Close" , *colorBlack* , *styleThick* | *styleDots* );
Plot ( *H* , "High" , *colorBlue* , *styleLine* );
Plot ( *L* , "Low" , *colorRed* , *styleLine* );
// Any time that the current Close is lower than the *Low* of 5 bars
ago, then plot a
// red dashed line between those two prices.
fb = Max ( Status ( "firstVisibleBar" ), 5 );
lb = Status ( "lastVisibleBar" );
Low5 = Ref ( *L* , - 5 );
LineLow = *Null* ;
*for* ( i = fb; i < lb; i++ )
{
*if* ( *C* [i] < Low5[i] )
{
LLow = LineArray (i, *C* [i], i- 5 , Low5[i] );
LineLow = IIf (! IsNull (LLow), LLow, LineLow);
}
}
Plot (LineLow, "LineLow" , *colorRed* , *styleDashed* );
|