Here's how to do PREV in a loop (I can't check the code because I don't have
the deltav values, but this should give you an idea of what to do):
// MetaStock Code
// TLevel:= if(C=PREV,PREV,if(prev>Ref(C,-1),Min(C,deltav),Max(prev,C))));
TLevel = 0; // Indicator to calculate, TLevel[i-1] = MetaStock PREV
PREV = 0;
for (i=1; i<BarCount; i++) {
PREV[i] = TLevel[i-1];
if(C[i] == PREV[i])
TLevel[i] = PREV[i];
else {
if(PREV[i] > C[i-1]) {
if(C[i] < deltav[i])
TLevel[i] = C[i];
else
TLevel[i] = deltav[i];
}
else {
if(PREV[i] > C[i])
TLevel[i] = PREV[i];
else
TLevel[i] = C[i];
}
}
}
Regards,
David
_____
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf
Of Ara Kaloustian
Sent: 04/03/2007 6:42 PM
To: [email protected]
Subject: Re: [amibroker] Re: Help with code
My apologies ... you do need a loop. It is a circular reference
----- Original Message -----
From: "pmxgs" <[EMAIL PROTECTED] <mailto:pmxgs%40vizzavi.pt> pt>
To: <[EMAIL PROTECTED] <mailto:amibroker%40yahoogroups.com> ps.com>
Sent: Tuesday, April 03, 2007 3:30 PM
Subject: [amibroker] Re: Help with code
> The problem is that I'm not getting the correct values, and I dont't
> know if it's because of the way the formula is written or if it has to
> do with something else.
> I'm afraid that I can't use the ref(Tlevel,-1) expression if I'm
> calculating the TLevel variable itself (it's like a circular reference
> in excel).
> thanks
>
>
> --- In [EMAIL PROTECTED] <mailto:amibroker%40yahoogroups.com> ps.com,
"Ara Kaloustian" <[EMAIL PROTECTED]> wrote:
>>
>> this should work fine
>>
>> ----- Original Message -----
>> From: "pmxgs" <[EMAIL PROTECTED]>
>> To: <[EMAIL PROTECTED] <mailto:amibroker%40yahoogroups.com> ps.com>
>> Sent: Tuesday, April 03, 2007 3:18 PM
>> Subject: [amibroker] Help with code
>>
>>
>> > Hi,
>> >
>> > I'm having trouble with this code (which was taken from other
> software):
>> > PREV is a reserved word that refers to the value of the variable
>> > being calculated 1 period before. In this example it would be
>> > TLevel[i-1]
>> >
>> > TLevel:=
> If(C=PREV,PREV,if(prev>ref(C,-1),min(C,deltav),max(prev,C))));
>> >
>> > In Amibroker I wrote:
>> > TLevel=0;
>> > TLevel=iif(C=ref(TLevel,-1),ref(TLevel,-1), IIf( ........
>> >
>> > Can I write this like this?? Or do I have to use for loop??
>> >
>> > thanks
>> >
>> >
>> >
>> > 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.amibroke <http://www.amibroker.com/devlog/> r.com/devlog/
>> >
>> > For other support material please check also:
>> > http://www.amibroke <http://www.amibroker.com/support.html>
r.com/support.html
>> >
>> > Yahoo! Groups Links
>> >
>> >
>> >
>>
>
>
>
>
> 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.amibroke <http://www.amibroker.com/devlog/> r.com/devlog/
>
> For other support material please check also:
> http://www.amibroke <http://www.amibroker.com/support.html>
r.com/support.html
>
> Yahoo! Groups Links
>
>
>