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

Re: [amibroker] Re: getting an error in my if statement



PureBytes Links

Trading Reference Links

there are different ways to achieve things, for simple conditions to
give true/false result you can simply use statement with OR/AND. The
following assigns true to results if all 3 conditions are true on the
same bar

Result = Trigger AND C1 AND C2;

to assign values to the variable for true/false result, these values
can be arrays are scalar

Result = iif( Trigger AND C1 AND C2, A, B );

Nested IIF can also allow you to work through combinations of the
conditions to give different resulting values. Just by placing the
more stringent first and work from there

Result = iif( Trigger AND C1 AND C2, A, iif( Trigger AND C1, B, iif(
Trigger AND C2, C, iif( C1 and C2, D,  E ))));

These are much easier and straightforward than looping. I only use
loops if the results I want depend on previous values of the same
array for the current value, or to isolate a particular repeating
occurence to only use the first occurence and ignore the rest (where
other simple methods do not work). Loops can slow down the running of
AFL and best to be avoided unless really necessary. They can also tie
your brain up in knots getting the logic correct when a simple method
is easier and faster.


-- 
Cheers
Graham Kav
AFL Writing Service
http://www.aflwriting.com
On 26/08/07, lifes_student_1 <suedeuno@xxxxxxxxx> wrote:
> It's a bit more complicated than my example. I need to check for
> several cases and I would generally use an if statement for something
> like this. Something like:
>
> result = false;
> if (trigger == true)
> {
>  if (c1 == true)
>  {
>   if (c2 == true)
>   {
>      result = true;
>   }
>  }
> }
>
> --- In amibroker@xxxxxxxxxxxxxxx, Graham <kavemanperth@xxx> wrote:
> >
> > Not knowing what you are trying to do why not try the simpler and
> > faster IIF function
> >
> > --
> > Cheers
> > Graham Kav
> > AFL Writing Service
> > http://www.aflwriting.com
> >
> >
> >
> > On 26/08/07, lifes_student_1 <suedeuno@xxx> wrote:
> > > Thanks. Why can't I do the following though that should result in
> a
> > > boolean:
> > >
> > > color = colorLime;
> > > color2 = colorRed;
> > > i1 = colorLime;
> > > c1 = ((i1 == color OR i1 == color2));
> > > if (c1 == true)
> > > {...
> > >
> > >
> > > This doesn't work. I guess I'm not used to AFL.
> > >
> > >
> > >
> > > --- In amibroker@xxxxxxxxxxxxxxx, "Thomas Z." <tzg@> wrote:
> > > >
> > > > You need a loop and then you could write if(barsback[i] < 6)
> > > >
> > > > The other way would be to use IIF()
> > > >
> > > > Regards
> > > > Thomas
> > > > www.patternexplorer.com
> > > >
> > > >
> > > >
> > > > From: amibroker@xxxxxxxxxxxxxxx
> [mailto:amibroker@xxxxxxxxxxxxxxx]
> > > On Behalf
> > > > Of lifes_student_1
> > > > Sent: Saturday, August 25, 2007 8:28 PM
> > > > To: amibroker@xxxxxxxxxxxxxxx
> > > > Subject: [amibroker] getting an error in my if statement
> > > >
> > > > condition1 = cross(close, ma(close,20));
> > > > barsback = BarsSince(condition1 == true);
> > > > if(barsback < 6)
> > > > {...
> > > >
> > > > I'm getting error 6 on barsback in if statement. condition1 is
> set
> > > and
> > > > works as I've tested it elsewhere. What am I doing wrong?
> > > >
> > > > (Condition in IF, WHILE, FOR statements has to be Numeric or
> > > Boolean
> > > > type. You cannot use an array here....)
> > > >
> >
>
>
>
>
> 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
>
>
>
>


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

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/