PureBytes Links
Trading Reference Links
|
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
*********************************
__,_._,___
|