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

Re: [amibroker] Re: Calculating bars between two arguments



PureBytes Links

Trading Reference Links

Markus,

I am guessing what you want here, but, as you know By default Valuewhen
() selects the most recent occurrence or ( 1 ), if you want the second
most recent occurrence then your code should look like the following.
Notice where I have placed the 2's.

x=Cum(1);

z=IIf(Low<Ref(LLV(Low,5), -1),1,0);
zz=ValueWhen(z,x,2);
Low1=ValueWhen(z,Low,2);


y=IIf (High>Ref(HHV(High,5), -1),1,0);
yy=ValueWhen(y,x,2);
High1=ValueWhen(y,High,2);

Filter=1;
AddColumn(Low1,"Low");
AddColumn(ValueWhen(z,DateNum(),2),"date Z",1);
AddColumn(High1,"high");
AddColumn(ValueWhen(y,DateNum(),2),"date Y",1);
AddColumn(abs(zz-yy),"Bars between",1);

Does this help
Anthony

IVA GmbH wrote:

> Anthony,
>
> what is cum(1) for?
>
> Donīt I have to specify in valuewhen on which occurence the statement
> has to
> be true??
>
> The code runs but Iīd like to know WHAT it detects...
> Thanks
>
> Markus
> ----- Original Message -----
> From: "Anthony Faragasso" <ajf1111@xxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Saturday, June 29, 2002 11:34 PM
> Subject: Re: [amibroker] Re: Calculating bars between two arguments
>
>
> > Does this help:
> >
> > x=Cum(1);
> >
> > z=IIf(Low<Ref(LLV(Low,5), -1),1,0);
> > zz=ValueWhen(z,x);
> >
> >
> > y=IIf (High>Ref(HHV(High,5), -1),1,0);
> > yy=ValueWhen(y,x);
> >
> > Filter=1;
> > AddColumn(ValueWhen(z,DateNum()),"date Z",1);
> > AddColumn(ValueWhen(y,DateNum()),"date Y",1);
> > AddColumn(abs(zz-yy),"Bars between");
> >
> > IVA GmbH wrote:
> >
> > > Dimitris,
> > >
> > > thanks for taking the time.
> > >
> > > I understand what you said about z and y. As far as zz and yy
> goes,
> > > they
> > > are giving me a specific low and or high value, right? And thus,
> why
> > > is the
> > > time interval between them "meaningless" (what do you mean by
> THAT,
> > > please?). The reason to split the forumula in z and zz is just for
>
> > > easier
> > > reading. I could have put everything in one formula as I did
> below.
> > >
> > > I basically tried to determine howe many bars (i.e. time interval)
>
> > > would be
> > > in between thos two conditions. I thought of datenum function but
> > > realized
> > > that I could not use them for computation like datenum(yy) -
> > > datenum(zz) to
> > > determine the time interval (number of days).
> > >
> > > I assume that barssince is as well not an ideal solution since you
> see
> > > for
> > > zz that I want to check when the condition was true for the FIRST
> > > time. This
> > > is someting barssince doesnīt provide. It could for instance
> happen
> > > that
> > > z/zz happened AFTER y/yy (looking from retrospective). In this
> case I
> > > want
> > > those signals to be skipped since this case doesnīt apply to the
> > > pattern I
> > > try to detect.
> > >
> > > I cut and pasted the code below and got and error message (need to
>
> > > define a
> > > filter variable). What is the problem here? I went one step
> further
> > > and put
> > > the conditions for z and zz together like
> > > z=ValueWhen((IIf(Low<Ref(LLV(Low,5), -1),1,0)==1),Low,1) but again
> got
> > > the
> > > same error. I canīt see my mistake! Everything seems to be logic??
>
> > >
> > > What information would you need to judge how to go, Dimitris?
> > >
> > > Many thanks!!!!!
> > >
> > > Markus
> > >
> > > ----- Original Message -----
> > > From: "dtsokakis" <TSOKAKIS@xxxx>
> > > To: <amibroker@xxxxxxxxxxxxxxx>
> > > Sent: Saturday, June 29, 2002 9:17 PM
> > > Subject: [amibroker] Re: Calculating bars between two arguments
> > >
> > >
> > > Hi Markus,
> > > There is something to be explained here:
> > > z and y are conditions, their value is 0 or 1.
> > > zz and yy are continuous functions with various values.
> > > Perhaps you need the time interval from z to y [or from y to z].
> It
> > > has some meaning, because z and y are events.
> > > The time interval between zz and yy is meaningless.
> > > Try the
> > > z=IIf(Low<Ref(LLV(Low,5), -1),1,0);
> > > zz=ValueWhen(z==1,Low,1);
> > > y=IIf (High>Ref(HHV(High,5), -1),1,0);
> > > yy=ValueWhen(y==1,High,1);
> > > Plot(z,"",1,2);Plot(y,"",4,2);
> > > Plot(zz,"",5,1);Plot(yy,"",7,1);
> > > to see what I mean.
> > > Can you be more specific ?
> > > DT
> > > --- In amibroker@xxxx, "IVA GmbH" <funnybiz@xxxx> wrote:
> > > > Folks,
> > > >
> > > > would someone help me with this:
> > > >
> > > > I need to calculate how many time periods have been passed since
>
> > > >
> > > > zz and yy
> > > >
> > > > whereby
> > > >
> > > > z=iif(low<Ref(llv(low,5), -1),1,0)
> > > > zz=valuewhen(z==1,low,1)
> > > >
> > > > and
> > > >
> > > > y=iif (high>Ref(hhv(high,5), -1),1,0)
> > > > yy=valuewhen(y==1,high,1)
> > > >
> > > > ???????????????
> > > >
> > > > I thought of
> > > >
> > > > barssince (y==1) - barssince (zz==1) but that dosnīt return the
> > > desired result.
> > > >
> > > > Thanks a lot!!
> > > >
> > > > Markus
> > >
> > >
> > >
> > >
> > >
> > > Your use of Yahoo! Groups is subject to
> > > http://docs.yahoo.com/info/terms/
> > >
> > >
> > >
> > > Yahoo! Groups Sponsor
> > ADVERTISEMENT
> >
> > >
> > > Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> Service.
> >
> >
> >
> >
> >
> >
> > Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/
> >
> >
> >
>
>
> Yahoo! Groups Sponsor
ADVERTISEMENT

>
> Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.