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

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



PureBytes Links

Trading Reference Links

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@xxxxxxxxxxx>:
> 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/