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
> 
> 
> 

 

Reply via email to