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

[amibroker] Re: array in array -- is it suppported in AFL?



PureBytes Links

Trading Reference Links

In the following example, color is an array and may be used in many 
places, inside or outside the loops.
 
y=MACD();g=Signal();L1=LastValue(Cum(1));
Plot(g,"",2,1);
Color=IIf(y>g,colorBrightGreen,colorRed);
Plot(y,"",Color,1);
for(i=L1-100;i<L1-1;i++)
{x1[i]=i;y1[i]=y[i];x2[i]=i+1;y2[i]=g[i+1];
Plot(LineArray(x1[i],y1[i],x2[i],y2[i],0),"",color,1);
} 
I hope it helps.
Dimitris Tsokakis
--- In amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS" <TSOKAKIS@xxxx> 
wrote:
> It is possible to have an array for color without this a[0].
> a[0] has a unique meaning in AFL, we can not change it [and there 
is 
> no reason to change it]
> It is better to ask your specific question in details [if 
possible], 
> I have no doubt we shall find a solution.
> BTW, the convex/concave thread is not over yet, IŽll be back when 
> some theories give some money, this is the point I feel good.
> Thank you for your analytic reply.
> Dimitris Tsokakis
> 
> --- In amibroker@xxxxxxxxxxxxxxx, bromba <bromba@xxxx> wrote:
> > hello Dimitris,
> > 
> > DIMITRIS TSOKAKIS wrote:
> > > Well, I see now, you want a superArray A with elements a0=H, 
> a1=L, 
> > > a2=C, a3=O etc.
> > > [I don't write a[0] because it has already another AFL meaning]
> > > Select say ^NDX, Run for all quotations  the
> > > for(i=0;i<4;i++)
> > > {
> > > x=IIf(i==0,H,IIf(i==1,L,IIf(i==2,C,O)));
> > > AddToComposite(x,"~"+WriteVal(i,1.0),"C");
> > > Buy=0;
> > > }
> > > and then, in your IB paste the
> > > 
> > > x="";g=0;
> > > for(i=0;i<4;i++)
> > > {
> > > x="~"+WriteVal(i,1.0);
> > > g=Foreign(x,"C");
> > > Plot(g,"a"+WriteVal(i,1.0),1,1);
> > > }
> > > All your ai will be there.
> > > May I ask the use of this procedure ?
> > > Dimitris Tsokakis
> > 
> > probably the code I'd provided caused this embarasment:
> > 
> > function fArrayInArray() {
> >     local arrA, arrB, arrC;                     //1
> >     for(i=0;i<BarCount;i++) arrA[i] = Close[i]; //2
> >     for(i=0;i<BarCount;i++) arrB[i] = High[i];  //3
> >     arrC[0] = arrA;                             //4
> >     arrC[1] = arrB;                             //5
> >     return arrC;                                //6
> > }
> > arrD = fArrayInArray();
> > 
> > this code was just for exemplification purposes. I created it 
just 
> to 
> > express what I mean from the point of view of AFL programming, 
and 
> it is 
> > not connected with any market strategy or whatsoever. I wanted to 
> > emphasize that looping within lines two and three is their 
> important 
> > part but the body of each loop contains something different. in 
> fact it 
> > would be sufficient to write:
> > 
> > arrA = Close; //2
> > arrB = High;  //3
> > 
> > without looping. the crucial part is creating another array 
(here: 
> arrC) 
> > that has only two elements. but these two elements are also 
arrays 
> > (here: arrA=Close and arrB=High). I wanted to write a function 
that 
> > would return such a hybrid so that later I could write:
> > 
> > Plot(arrD[0], "", colorRed);
> > 
> > which would plot Close array in this case.
> > 
> > Tomasz pointed out that in native AFL it is not possible. my 
> attempt to 
> > do this was because there are programming languages in which such 
a 
> > structure is possible.
> > 
> > the real problem I wanted to solve was the workaround for AB4.40 
to 
> plot 
> > daily moving averages on intraday charts. it is solved now. then 
I 
> > started to think if it would be possible to create 
multidimensional 
> > array in order to incorporate convex and concave idea you 
presented 
> here 
> > some time ago and which I liked very much.
> > 
> > The real function I wanted to write would accept intraday Close 
> array, 
> > compute daily moving average array, compute convex/concave stuff 
> for the 
> > latter, evaluate Color array and return hybrid of these arrays as 
> one 
> > array (properly distributed through intra bars) so that I could 
> write:
> > 
> > Plot(arrD[0], "daily MA", arrD[1]);
> > 
> > which would plot daily moving average arrD[0] with color 
described 
> in 
> > arrD[1].
> > 
> > but it is impossible with native AFL. well, I don't know AFL very 
> much. 
> > I play with it, I have fun and learn sometimes by trying to 
figure 
> out 
> > its possibilities comparing to other programming languages. it 
was 
> just 
> > out of couriosity..
> > 
> > best regards,
> > BM


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