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

Re: [amibroker] AFL syntax for nested IIF ?



PureBytes Links

Trading Reference Links

Ton,

The problem is that you can't assign values within the IIF statement.
Graham is assigning values as a result of the IIF statement.   You are
correct in stating that it doesn't give a syntax error.  Technically the
syntax is incorrect, but it's a very subtle error that would be difficult
for a compiler to pick up.

Mark

On 15/02/07, Ton Sieverding <ton.sieverding@xxxxxxxxxx> wrote:
>
>    What's wrong with this statement Graham ? First it does not give me a
> syntax error and second it does what is says that it should do. But frankly
> I don't like those AND's as I told you. I'll will test the whole thing again
> with arrays in stead of single variables. Will let you know later because
> I've have no time to do it now ...
>
> But if you're right and this statement is wrong then we have a problem
> with the double IF. It's impossible to include more than one action. And yes
> the only efficient way to program around this problem is what you are
> suggesting ...
>
> Ton.
>
>
> ----- Original Message -----
> *From:* Graham <kavemanperth@xxxxxxxxx>
> *To:* amibroker@xxxxxxxxxxxxxxx
> *Sent:* Thursday, February 15, 2007 10:27 AM
> *Subject:* Re: [amibroker] AFL syntax for nested IIF ?
>
>  This statement is NOT correct ===>>> IIF(Barnum > 5, This = 10 AND That =
> 20 AND Something = 30, Null );
> The email I sent with each variable independantly assigned is the only way
> to do this
> Here it is again
> Here is correct and only method using IIF to create the arrays of values
> for each variable
> highbar = iif(barnum < 21, C , null );
> lowbar = iif(barnum < 21, C , null );
> range = iif(barnum < 21, C, null);
>
> --
> Cheers
> Graham
> AB-Write >< Professional AFL Writing Service
> Yes, I write AFL code to your requirements
> http://www.aflwriting.com
>
>
> On 15/02/07, Ton Sieverding <ton.sieverding@xxxxxxxxxx> wrote:
> >
> > Thanks. No my problem is not how to use nested conditions in the double
> > IIF. That's fully explained in the manual. My problem is how to include
> > several actions in the IIF. Since the IIF is an array supporting IF this
> > could create a problem. Of course there are many solutions and Herman as
> > well as Graham showed some of them but that's not what I was looking for.
> > Please read my answers to Herman and Graham. It seems that Bill gave me the
> > correct answer ...
> >
> > Ton.
> >
> >
> >
> > ----- Original Message -----
> > *From:* mrdavis9 <mrdavis9@xxxxxxxxxx>
> > *To:* amibroker@xxxxxxxxxxxxxxx
> > *Sent:* Thursday, February 15, 2007 3:48 AM
> > *Subject:* Re: [amibroker] AFL syntax for nested IIF ?
> >
> >
> >
> >
> > Amisiev, I just created this nested iff for checking the last three days
> > of
> > the close. Is this the kind of thing that you had in mind? You can keep
> > adding as many more iff statements as you like. Ron D
> >
> > /*This nested IIf will return a 1 if todays Close, is greater than
> >
> > (yesterdays Close, OR the two days ago Close, OR the three days ago
> > Close).
> >
> > If todays close is NOT greater than any of the last three closes, then
> >
> > this nested iff will return a 0.*/
> >
> > NestedIIf=IIf(C>Ref(C,-1),1,IIf(C>Ref(C,-2),1,IIf(C>Ref(C,-2),1,0)));
> >
> > Plot(NestedIIf,"rd",colorRed,styleLine);
> >
> > ----- Original Message -----
> > From: "amsiev" <ton.sieverding@xxxxxxxxxx <ton.sieverding%40scarlet.be>>
> > To: <amibroker@xxxxxxxxxxxxxxx <amibroker%40yahoogroups.com>>
> > Sent: Wednesday, February 14, 2007 11:39 AM
> > Subject: [amibroker] AFL syntax for nested IIF ?
> >
> > > What's the syntax in AFL for a double IF with following structure ?
> > >
> > > IF True
> > > Do This ;
> > > Do That ;
> > > Do anything;
> > > Endif
> > >
> > > I'm working with arrays so I must use the double IF but my problem is
> > > that I just cannot get the correct syntax. There are in fact two
> > > problemens. First I only want the IIF to do something when the
> > > condition is true. Therefore I don't want the third part in case the
> > > IIF is false or the 'Do if false'. Second I want the IIF to do
> > > several things. Not just one. Following syntax is wrong. So what's
> > > the correct one ?
> > >
> > > IIf(BarNumAct<=21,
> > > {
> > > Highs[BarNumAct] = Close;
> > > Lows[BarNumAct] = Close;
> > > Range[BarNumAct] = (High - Low)/2;
> > > }
> > > ,"");
> > >
> > >
> > >
> > > 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.amibroker.com/devlog/
> > >
> > > For other support material please check also:
> > > http://www.amibroker.com/support.html
> > >
> > > Yahoo! Groups Links
> > >
> > >
> > >
> >
> >
>
>
>   
>

Content-Description: "AVG certification"
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.441 / Virus Database: 268.17.39/687 - Release Date: 2/14/2007 4:17 PM