[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Re: Basic line plot referencing earlier Bar - not working



PureBytes Links

Trading Reference Links

Works fine for me too.
Regards

ChrisB a écrit :
>
> Hi Oz
>
> Works OK for me . I have changed LookBack to 6 day to match your meaning.
> See attached for ROC oil today 17 Oct
>
> | _SECTION_BEGIN ( "Ozzy's line" );
> Lastbarr = LastValue ( Cum ( 1 ) ); //counts the number of bars.
> startr = Param ( "bars back" , 6 , 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, "Ozzy's Line" , *colorViolet* , *styleDashed* );
> }
> Plot(*C*,"Close", *colorBlack*, *styleThick* | *styleDots*);
> Plot ( *H* , "High" ,   *colorBlue* ,   *styleLine* );
> Plot ( *L* , "Low" ,   *colorRed* ,   *styleLine* );
> _SECTION_END (); |
>
> AB always provides more than one way to skin a cat.
> Now, back to the dead cat bounces...
>
> Regards
>
> ChrisB
>
>
>
>   
>
>
> ozzyapeman wrote:
>>
>> Okay. I managed to finally solve the problem, for anyone that's 
>> interested. It's always something ultra simple. I had my xo and x1 
>> values interchanged. This works:
>>
>>
>> | 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- 5 , Low5[i], i, *C* [i]  );  
>>    LineLow    = IIf (! IsNull (LLow), LLow, LineLow);
>>   }  
>> }  
>>
>> Plot (LineLow, "LineLow" , *colorViolet* , *styleDashed* );
>> |
>>
>>
>>
>>
>>
>> --- In amibroker@xxxxxxxxx ps.com, "ozzyapeman" <zoopfree@xxx> wrote:
>> >
>> > Hey Chris,
>> >
>> > Thanks for naming the line after me. ;-)
>> >
>> > I tried out your code, with a parameter of 5 and for some reason the
>> > Ozzy Lines are not plotting, even when the Close is clearly lower than
>> > the Low of 5 bars ago. This is what I pasted directly into a new AFL
>> > indicator:
>> >
>> > 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|styleDot s);
>> > Plot(H, "High", colorBlue, styleLine);
>> > Plot(L, "Low", colorRed, styleLine);
>> >
>> > _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( );
>> >
>> >
>> > --- In amibroker@xxxxxxxxx ps.com, ChrisB kris45mar@ wrote:
>> > >
>> > > 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* );
>> > > > |
>> > > >
>> > > >
>> > >
>> >
>>
> 
> ------------------------------------------------------------------------
>



------------------------------------

**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

*********************
TO GET TECHNICAL SUPPORT from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com
*********************

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html

*********************************
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/