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

[amibroker] Re: Testing the Range of an Array with an Optimization



PureBytes Links

Trading Reference Links

While the code certainly works, the nested IIF do seem to slow down
optimizations considerably. For smaller opts, like in the given
example of only 4 ranges, it's not so bad. But for larger opts it will
be a problem.

Is there any strategy I could use to speed things up, or is this as
fast as AFL can go for this specific type of implementation?



--- In amibroker@xxxxxxxxxxxxxxx, "ozzyapeman" <zoopfree@xxx> wrote:
>
> Thanks, Graham! 
> 
> Wish I had a programmer-type brain.
> 
> Always amazes me how convoluted my thinking can be...
> 
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, Graham <kavemanperth@> wrote:
> >
> > seems a complex way of doing things
> > try this
> > 
> > RangeTest = Optimize("RangeTest", 1, 1, 4, 1);
> > array = c;
> > Range = iif( array >1.3, 4, iif( array >1.2, 3, iif( array >1.1, 2,
> > iif( array >0, 1, 0 ))));
> > 
> > buy = range==rangetest;
> > sell=0;
> > applystop( stopTypeNBar, stopModeBars, 6, 0 );
> > 
> > 
> > this line > Sell = BarsSince(Buy) > 6; will not work very well because
> > buy can occur on consecutive bars and will re-initiate the barssince.
> > You need to add in exremspan statement to remove buy signals for the
> > n-bar period
> > 
> > 
> > -- 
> > Cheers
> > Graham Kav
> > AFL Writing Service
> > http://www.aflwriting.com
> > 
> > 
> > 
> >     Range1 = Array > 0       AND Array <= 1.1000;
> > >         Range2 = Array > 1.1000  AND Array <= 1.2000;
> > >         Range3 = Array > 1.2000  AND Array <= 1.3000;
> > >         Range4 = Array > 1.3000;
> > 2009/1/17 ozzyapeman <zoopfree@>:
> > > Hello, hoping someone can point out the general flaw in logic
> here. Even
> > > though I've been working with AFL for six months now, array vs
> scalars can
> > > still be confusing. All I'm trying to do is pass an array to a
> function that
> > > tests it's range. The program  then sets a Buy according to that
> range. An
> > > optimization is  performed to find the "best" range for a given
> period.
> > >
> > > Of course this is not my actual trading system, but merely a test
> of concept
> > > for much a more complicated function.
> > >
> > > By definition, the Close price has to fall into one of the four
ranges
> > > defined in the function. I am using Forex, but any symbol will do,
> and would
> > > fall into one of the four ranges. Therefore, running the
> Optimization should
> > > generate some trades, as the Buy condition will be true
> eventually, as we
> > > cycle through the "RangeTest" variable for each bar. But no
trades are
> > > generated.
> > >
> > > Traces indicate that the Close array is not being cycled through.
> > >
> > > Shouldn't the following code work, without having to get into a
> Barcount
> > > loop? If not, where is the flaw? Any help much appreciated.
> > >
> > >
> > > RangeTest = Optimize("RangeTest", 1, 1, 4, 1);
> > >
> > >
> > >     function RangeFind(Array)
> > >     {
> > >         ActualRange = 0;
> > >
> > >         Range1 = Array > 0       AND Array <= 1.1000;
> > >         Range2 = Array > 1.1000  AND Array <= 1.2000;
> > >         Range3 = Array > 1.2000  AND Array <= 1.3000;
> > >         Range4 = Array > 1.3000;
> > >
> > >         for( n = 1; n <=4; n++)
> > >         {
> > >
> > >           RangeN = VarGet( "Range"+ NumToStr(n, 1.0,0) );
> > >
> > >           if (RangeN) ActualRange = n;
> > >
> > >         }
> > >
> > >       return ActualRange;
> > >     }
> > >
> > >
> > > Buy = RangeFind(Close) == RangeTest;
> > >
> > > Sell = BarsSince(Buy) > 6;
> > >
> >
>



------------------------------------

**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

*********************
TO GET TECHNICAL 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/