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

Re: Calculating bars between two arguments



PureBytes Links

Trading Reference Links

Markus,
Nice questions.
I think you should study AFL. From the beginning.
It is powerfull enough to give answers even to these questions.
And many many other you can imagine.
The other AFL advantage :it is very fast. So, if you change your mind 
and you want to calculate something else and then something else, you 
can do it immediately.
This is my ~ 1 year of experience.
Dimitris Tsokakis
--- In amibroker@xxxx, "IVA GmbH" <funnybiz@xxxx> wrote:
> Dimitris,
> 
> you hit the nail on its head pretty well.
> 
> That was pretty much what I tried to accomplish. I might take it a 
little
> further with your assistance later on.
> 
> A few more questions if you allow:
> 
> 1./ Why do you say below
> zy=(BarsSince(y)>BarsSince(z))*(BarsSince(z));//bars from z to y
> yz=(BarsSince(z)>BarsSince(y))*(BarsSince(y));//bars from y to z

To solve the question without problems and without more explanatory 
lines...

> Isnīt ZY=Barssince (y)- barssince (z)???? Analogue for YZ? Why ">" 
and "<",

You may try with barssince, if you prefer.
You should know which y and which z, when you use barssince.

> please??
> 
> 2./ Can draw the swings from the lows and highs directly in the 
chart
> instead of a separate indicator?
Yes you can.

> 
> 3./ what code would I have to use when -after having detected z and 
y- I
> additionally wanted to check for the lowest low in between? 
See my H&S formula in AFL Library for similar question.
Well,
> Lowestsince might work. But if I wanted to detect the next
> llv>Ref(llv(low,5),-1) before y (letīs call that one point x) and 
then check
> if Y was the highest high between x and y, lowestsince wouldnīt 
work anymore
> since it would relate to ALL quotes after sx, correct? Is there any 
cokkand
> that checkest for the highest hifh or the lowest low for a desired 
period of
> time instead of all following bars after a condition is met?
 
> Appreciate it, Dimitris!!!!
> 
> Markus
> 
> ----- Original Message -----
> From: "dtsokakis" <TSOKAKIS@xxxx>
> To: <amibroker@xxxx>
> 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 returnthe
> > 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/