Nope.
See my earlier post http://finance.groups.yahoo.com/group/amibroker/message/143523
Your
solution will plot zero for the first 2 bars when it should be NULL.
If
the original poster wanted to keep your structure (i.e. IIF and no
pre-assignament of OneHigh, TwoHigh, ThreeHigh), then just change the
initialization of ResLine to ResLine = NULL.
Mike
--- In amibroker@xxxxxxxxxps.com,
"Anthony Faragasso" <ajf1111@xxx> wrote:
>
>
Hello,
>
> This does what you are expecting...
>
>
resline = 0;
>
>
> for( i = 2; i < BarCount; i++
)
>
> {
>
> prev = resline[ i - 1];
>
>
resline[ i ] = IIf( H[i-2] < H[i-1] AND H[i-1] > H[i], H[i-1], prev
);
>
> }
>
>
Plot(ResLine,"ResLine",colorRed, styleLine|styleThick);
>
>
>
> Anthony
>
> ----- Original
Message -----
> From: christianvost
> To: amibroker@xxxxxxxxxps.com
> Sent: Sunday, November 01, 2009 4:04 PM
> Subject: [amibroker]
Re: Help!! simple looping problem???
>
>
> Hi
Thomas,
> Thanks for the suggestion. I tried this, but the results
didn't match the previous code sample. I just got spiking lines where the
indicator reset itself to zero, after each iteration? I'm assuming that this
code correction goes in at line 7? could you please make the correction to the
looping sample and re-post? I'd really appreciate it.
> Many thanks,
Chris.
>
> --- In amibroker@xxxxxxxxxps.com,
"Thomas Z." <tzg@> wrote:
> >
> > Hi,
> >
> > you need to change it to: ResLine[i] = H[i-1];
> >
> > Thomas
> > www.patternexplorer.com
> >
> >
> > -----Ursprüngliche Nachricht-----
>
> Von: amibroker@xxxxxxxxxps.com
[mailto:amibroker@xxxxxxxxxps.com]
Im Auftrag
> > von christianvost
> > Gesendet: Sonntag, 1.
November 2009 10:37
> > An: amibroker@xxxxxxxxxps.com
>
> Betreff: [amibroker] Help!! simple looping problem???
> >
> > Hi, This is probably an easy one, but I'm struggling with
looping through
> > arrays in afl. Have a look at the simple code
below.
> > ( copy+paste into editor then drag into price pane
).
> >
> > //Resline.afl
> > //
> >
>> > TwoHigh = Ref(H,-1);
> > ThreeHigh =
Ref(H,-2);
> > ResLine = ValueWhen( ThreeHigh < TwoHigh AND
TwoHigh > OneHigh,TwoHigh,1);
> >
Plot(ResLine,"ResLine", ParamColor( "Color", colorCycle ),
>
> ParamStyle("Style") );
> >
> > I tried to write a
'for,if' loop to replace the previous code, but it's not
> > working.
Can anyone correct the following code sample for me please???
> >
Thank-you to all.
> >
> > ResLine[0] = 0;
> >
> > for(i=2; i<BarCount; i++)
> > {
> >
if(H[i-2] < H[i-1] AND H[i-1] > H[i])
> > {
> >
ResLine = H[i-1];
> > }
> >
//Plot(ResLine,"ResLine",colorRed, styleLine|styleThick);
//inside loop
> > plots multiple lines
> > }
> >
Plot(ResLine,"ResLine",colorRed, styleLine|styleThick);
//outside loop plots
> > single line (most recent value when
condition is met)
> >
> >
> >
> >
> >
> >
------------------------------------
> >
> >
**** IMPORTANT PLEASE READ ****
> > This group is for the discussion
between users only.
> > This is *NOT* technical support
channel.
> >
> > TO GET TECHNICAL SUPPORT send an e-mail
directly to
> > SUPPORT {at} amibroker.com
> >
>
> TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
> > http://www.amibroker.com/feedback/
>
> (submissions sent via other channels won't be considered)
> >
> > For NEW RELEASE ANNOUNCEMENTS and other news always check
DEVLOG:
> > http://www.amibroker.com/devlog/
>
>
> > Yahoo! Groups Links
> >
>