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

Re: Calculating bars between two arguments



PureBytes Links

Trading Reference Links

Markus,
As I wrote in my previous reply, zz and yy, as defined through 
Valuewhen function, are continuous Arrays, with values for every bar 
and not only for the condition bars. Consequently you can not define 
a time interval between yy and zz.
You just suppose and you are interested for yy and zz values on the 
condition days.
So, I will keep your 
"I basically tried to determine howe many bars (i.e. time interval) 
would be
in between thos two conditions" to continue.
This is the time interval between y and z [or respectively z and y] 
and we shall try to express it.
The next question is about multiple z or multiple y.
Like buy/sell, we usually have a series 
00z0zzz00yyy0yy000000zz0zzz0zz0000y.
Do we search the interval between the first z till the first y OR the 
interval between the last z till the first y?
Let us solve the first z till the first y.
a. Begin with the two conditions
z=IIf(Low<Ref(LLV(Low,5), -1),1,0);
y=IIf (High>Ref(HHV(High,5), -1),1,0);
b. Write them without iif statement
z=Low<Ref(LLV(Low,5),-1);
y=High>Ref(HHV(High,5), -1);
It is the exactly the same, z is 1 when cond=true and 0 when false.
c. Remove excessive z or excessive y
z=ExRem(z,y);y=ExRem(y,z);
Now you may calculate the days from z to y or from y to z.
The full code is

z=Low<Ref(LLV(Low,5),-1);//the z condition
y=High>Ref(HHV(High,5), -1);//the y condition
z=ExRem(z,y);y=ExRem(y,z);//remove excessive z or excessive y
Plot(20*z,"",1,2);//z condition graph, 20* is for scaling purposes
Plot(20*y,"",4,2);//y condition graph
zy=(BarsSince(y)>BarsSince(z))*(BarsSince(z));//bars from z to y
yz=(BarsSince(z)>BarsSince(y))*(BarsSince(y));//bars from y to z
Plot(zy,"",3,1);Plot(yz,"",2,1);

The code calculates and plots the days [bars] from z to y and then 
the bars from y to z and so on.
If you need something more, let me know.
Dimitris Tsokakis

--- In amibroker@xxxx, "IVA GmbH" <funnybiz@xxxx> 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@xxxx>
> 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/