PureBytes Links
Trading Reference Links
|
Hi!
The problem with Valuewhen is, in its expression I can only compare as
many array I want to compare only for that array index. For example,
Current barIndex is 5415 and value of array C and Val is 49.5 and 1.5
respectively. Now suppose previous bar with barIndex 4719 has array L
value of 47.75, which is lower than C-Val of current bar (49.5-1.5=48)
. So, I want the value of XM[4719] in my RES array element of
RES[5415].
I tried something like:
diff = C-Val;
index = BarIndex();
RES = Valuewhen(L <= Valuewhen(index == barindex, diff), XM);
I thought that inner valuewhen will be executed first, returning
constant value 48 for outer valuewhen and it will return correct
value. But, instead it returns value of XM at barindex 3411 where the
whole valuewhen expression results in true - that is on that bar L is
< that bars C-Val.
I know that I can do this with loop, but I want to avoid it if
possible. If I replace Valuewhen(index == barindex, diff) with
constant 48, it returns correct value.
So, I don't know if I am expecting ValueWhen to do what it's not able
to. If not, is there any alternative without loop to achieve the same?
--- In amibroker@xxxxxxxxxxxxxxx, ChrisB <kris45mar@xxx> wrote:
>
> Jay
>
> OK just substitute your formula for Val...
>
> Val = (EMA(C,30))/30; // or whatever you like.
>
> If you are trying to set a threshold based on
>
> Threshold = Close today - Val;
>
> and then looking back in time to when a Low of any preceding bar
crossed
> that threshold,
>
> you will need Cross function, but ALSO if I understand you correctly
you
> will likely also need to look into Looping.
>
> Looping still leaves me stumped but have a look at the files section
for
> the articles
> Looping in Amibroker AFL.pdf and
> AFL Looping.pdf.
>
> Then just use Valuewhen to find the XM.
>
> Regards
>
> ChrisB
>
> jay_podda wrote:
> >
> > Chris,
> >
> > Thanks for replying so fast.
> >
> > In my case, Val is not constant, its array just like C. Also, L
might
> > not be ref-1, it can be more than 1 bars ago. And I want to know
value
> > of XM corrosponding to bar on which L is less than current bar's
C-
> > Val.
> >
> > Thanks again,
> > --- In amibroker@xxxxxxxxx ps.com
> > <mailto:amibroker%40yahoogroups.com>, ChrisB <kris45mar@ ..>
wrote:
> > >
> > > Hi Jay
> > >
> > > See if this is what you are looking for:
> > >
> > > Val = Param("Val", 1.5 , 1, 3, 0.1);
> > >
> > > XM = High;//for argument's sake.
> > >
> > > CminusVal = Close - Val;
> > > Cond1 = Ref(L,-1) < (C-Val);
> > > myXM= ValueWhen ( Ref(L,-1) < (C -Val),XM);
> > >
> > > // run the Exploration to check you values
> > > Filter = 1;
> > >
> > > AddColumn(Val, "Val", 1.2);
> > > AddColumn( XM,"XM", 1.2);
> > > AddColumn (C, "close",1.2) ;
> > > AddColumn(Ref( L,-1),"ref L",1.2);
> > > AddColumn( CminusVal,"ClessVal ",1.2);
> > > AddColumn( Cond1, "Cond1", 1.2);
> > > AddColumn ( myXM, "my XM", 1.2);
> > >
> > > // Plot these to visually check
> > > Plot( myXm,"myXM", colorBlue,1) ;
> > > Plot( Cond1, "Cond1",colorRed, styleHistogram |styleOwnScale) ;
> > >
> > > Regards
> > >
> > > ChrisB
> > >
> > > jay_podda wrote:
> > > >
> > > > I want to find value of array XM when L of very first previous
bar
> > is
> > > > VAL amount less then current bar C.
> > > >
> > > > The problem with me is when I use valuewhen, in expression if
I
> > use
> > > > any array for comparision, I can't compare with current bar.
That
> > is,
> > > > if current bar C is 49.50 and VAL is 1.50, I want to get value
of
> > XM
> > > > array when that previous bar's L is less than 48.
> > > >
> >
>
Please note that this group is for discussion between users only.
To get 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/
|