PureBytes Links
Trading Reference Links
|
ok I thought you had that part covered...
Just assign the values to the elements like you demonstrated in the previous example, you cannot declare an array in AFL:
> A[0]= SomeValue;
> A[1]= AnotherValue;
> A[2]= ..;
> M[0]= ..;
> M[1]= ..;
> M[2]= ..;
It is not like VB where you need to explicitly declare the size of the array before populating the elements.
A sample to run in AA:
ZM[0] = 0;
for (i = 1; i <5; i++)
{
ZM[i] = ZM[i-1] + 1;
}
Filter = 1;
AddColumn( ZM[3], "Forth Element", 1.3);
Regards,
William Peters
www.amitools.com
-----Original Message-----
From: samgrayy [mailto:samgrayy@xxxxxxxx]
Sent: Thursday December 4, 2003 12:21 AM
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] Re: Question on User Defined Arrays (Static)
Thank you William ,
What is missing here is how do I declare the array A[5].
Arrays in Amibroker are temporal .. (i.e. there is an entry per
trading day). In this case we have an Array that does not depend on a
particular day, It is just to create less error prone and more elegant
software.
I hope this explains it.
Thanks again,
Sam
--- In amibroker@xxxxxxxxxxxxxxx, "William Peters"
<williampeters@xxxx> wrote:
> Sam,
>
> It's still a little unclear because some of the code you wrote is
really not doing too much (those IIF functions) but take a look at
this, you should be able to work it from here.
> When you have questions like this its often a better approach to
give a high level description of the problem, like 'I'm trying to
create a performance indicator that oscillates around the zero line'
etc and that way you might get a response with a vastly different
approach.
>
> ZM = 0;
> i=0;
> do
> {
> ZM = ZM + IIf (ComputeValue( A[i] ) > 0 , A[i], ZM);
> i++;
> }
> while( i < 5 );
>
>
> Regards,
> William Peters
> www.amitools.com
>
>
>
> -----Original Message-----
> From: samgrayy [mailto:samgrayy@x...]
> Sent: Wednesday December 3, 2003 8:54 PM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] Re: Question on User Defined Arrays (Static)
>
>
> Thank you William ,
>
> What I need to do is to iterate through values, right now what I am
> doing is something like:
>
> ZM = 0 ;
> ZM = IIf (ComputeValue( A5M ) > 0 , A5M, ZM);
> ZM = IIf (ComputeValue( A4M ) > 0 , A4M, ZM);
> ZM = IIf (ComputeValue( A3M ) > 0 , A3M, ZM);
> ZM = IIf (ComputeValue( A2M ) > 0 , A2M, ZM);
> ZM = IIf (ComputeValue( A1M ) > 0 , A1M, ZM);
>
> What I would like to do instead is to say:
> A[1] = A1M; A[2]=A2M ; A[3] = A3M; A[4] = A4M; A[5] = A5M;
>
> i=1;
> do
> {
> ZM = IIf (ComputeValue( A[i] ) > 0 , A[i], ZM);
> i++;
> }
> while( i < 6 );
>
>
> This way I can make the code more readable and I can change the Array
> only without the rest of the program.
>
> In vbscript there is the 'for each' functionality which would be close.
>
> Thanks again,
> I really appreciate all the comments.
>
> Sam
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "William Peters"
> <williampeters@xxxx> wrote:
> > Hi,
> >
> > I'm finding it a little difficult to work out exactly what your
> trying to do so if you could post the whole script it would be good.
> >
> > A few things..
> >
> > 1) You don't use the Dim statement in AFL, just initialise the
> variables directly.
> >
> > 2) Here is the structure of the Do While Loop:
> >
> > i=0;
> > do
> > {
> > i++;
> > }
> > while( i < 100 );
> > WriteVal( i );
> >
> >
> > 3) You have left off one parenthesis from your function "(A[i],M[i]]"
> > I think it should be "(A[i],M[i])"
> >
> >
> > Regards,
> > William Peters
> > www.amitools.com
> >
> >
> >
> > -----Original Message-----
> > From: samgrayy [mailto:samgrayy@x...]
> > Sent: Wednesday December 3, 2003 8:08 PM
> > To: amibroker@xxxxxxxxxxxxxxx
> > Subject: [amibroker] Re: Question on User Defined Arrays (Static)
> >
> >
> > I guess there is no response. I hope somebody takes a look at this.
> > Thanks in advance,
> > SG
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "samgrayy" <samgrayy@xxxx> wrote:
> > > Hi All,
> > >
> > > With the intro of the new looping constucts in AFL, the scripting
> > hosts are not as useful as they were.
> > > I am struggling a bit with the programming of a loop as follows:
> > >
> > > Dim Zones(3), Multipliers(3)
> > > A[0]= SomeValue;
> > > A[1]= AnotherValue;
> > > A[2]= ..;
> > > M[0]= ..;
> > > M[1]= ..;
> > > M[2]= ..;
> > >
> > > Result=0 ;
> > > i = 2;
> > > while( i >= 0 ){
> > > Result= Result+ Function (A[i],M[i]] ;
> > > }
> > >
> > > Notice here that the arrays do not change with time (such as the
> > price array for example).
> > >
> > >
> > > Thanks in advance for any hint,
> > > Sam
> >
> >
> >
> > Send BUG REPORTS to bugs@xxxx
> > Send SUGGESTIONS to suggest@xxxx
> > -----------------------------------------
> > Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
> > (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> > --------------------------------------------
> > Check group FAQ at:
> http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> >
> > Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/
>
>
>
> Send BUG REPORTS to bugs@xxxx
> Send SUGGESTIONS to suggest@xxxx
> -----------------------------------------
> Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
> (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> --------------------------------------------
> Check group FAQ at:
http://groups.yahoo.com/group/amibroker/files/groupfaq.html
>
> Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark
Printer at MyInks.com. Free s/h on orders $50 or more to the US & Canada.
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/GHeqlB/TM
---------------------------------------------------------------------~->
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
|