[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

Dimitris,

I had been away for a couple of days - sorry for getting back to you a
little late!!

Itīs the guys like you, the big-time contributors, that help the forum stay
alive.

Iīd never found out about this little intricacie with "IIF" that I was using
redundantly!! Damn!

Please allow questions back: why do I have to use the "ExRem" function?? To
make sure that I just detect the FIRST instance of my arguments to be true??

What if I wanted to implement a code that allowed me to lookr for the first,
second, third etc. time, if I desire???

Besides, your code misses a numcode and/or filter variable. I added filter=1
but still got an error. Probably a minor thing. Would you offer your help
again on this??

Many, many thanks go out to Greece!!

Markus
----- Original Message -----
From: "dtsokakis" <TSOKAKIS@xxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Sunday, June 30, 2002 1:10 PM
Subject: [amibroker] Re: Calculating bars between two arguments


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/





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