Perhaps Herman was confused because the basic question could be answered just by looking in the help file. Herman probably thought you wanted something more (especially since you included [ ] in your example, implying you wanted to work on single array elements. >From Help: iif( EXPRESSION, TRUE_PART, FALSE_PART )
Actually this is used by making a new variable equal to the result of the IIF function for the entire array. NewVarName = IIF(Expression, TruePart, FalsePart); There is usually no equivalence set in the True and False parts, just calculations, the result of which is assigned to the NewVarName. _____ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Ton Sieverding Sent: Wednesday, February 14, 2007 2:58 PM To: [email protected] Subject: Re: [amibroker] AFL syntax for nested IIF ? Thanks Herman. I know that in programmers land there are a thousand possible ways to Rome. I even can put all the to do's in a function and then call the function from within the IIF etc. etc. But that's not how it should be programmed and that's not my question. I just don't know the syntax of the double IIF in AFL and would like to know that. The frustrating thing for me is that I cannot find it in the AFL manual. Don't forget that in AFL the double IIF has a special function. It made to handle arrays. So there is no need for a loop ... Ton. ----- Original Message ----- From: Herman <mailto:[EMAIL PROTECTED]> To: amsiev <mailto:[email protected]> Sent: Wednesday, February 14, 2007 7:23 PM Subject: Re: [amibroker] AFL syntax for nested IIF ? Not sure what you are trying to do but often using a loop may simplify things: FirstVisibleBar = Status( "FirstVisibleBar" ); Lastvisiblebar = Status("LastVisibleBar"); for( b = Firstvisiblebar; b < Lastvisiblebar AND b < BarCount; b++) { if( BarNumAct[b] <= 21 ) { Highs[b] = C[b]; Lows[b] = C[b]; Range[b] = (H[b] - L[b])/2; } } herman Wednesday, February 14, 2007, 12:39:24 PM, you wrote: > 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/> > http://www.amibroker.com/devlog/ > For other support material please check also: <http://www.amibroker.com/support.html> > http://www.amibroker.com/support.html > > Yahoo! Groups Links > http://groups. <http://groups.yahoo.com/group/amibroker/> yahoo.com/group/amibroker/ > Individual Email | Traditional > http://groups. <http://groups.yahoo.com/group/amibroker/join> yahoo.com/group/amibroker/join > (Yahoo! ID required) > mailto:amibroker- <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] > mailto:amibroker- <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] > amibroker-unsubscri <mailto:[EMAIL PROTECTED]> [email protected] > http://docs. <http://docs.yahoo.com/info/terms/> yahoo.com/info/terms/ >
