PureBytes Links
Trading Reference Links
|
Iif operates on both arrays and straight variables, but "if" only operates
on variables or individual elements
PassTest = IIf(testvolume == False,False,PassTest ); is equivalent to
For(i=0; i< barcount; i++)
{
if(testvolume[i] == 0)PassTest[i] = false;
else PassTest[i] = PassTest[i]; // this is a straight translation
but is redundant really
}
Now if you use if(PassTest == false) then it will generate an error as it
expects an element of the array and not the array itself. That statement is
actually ambiguous, if one element is false, you don't really want to stop
processing the loop, because other elements in this array might well be
true.
________________________________
From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf
Of Homar Simpson
Sent: Tuesday, 5 December 2006 5:11 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] Re: Having a nasty time figuring this APL out.
As I mentioned I've been programming for 30 years.
What I'm doing here is assigning a SINGLE boolean variable based on
the comparison of array contents. If I did this in VB or VBA , there
would be no issue. Are you saying the boolean takes on the
characteristic of the tested array? I think Tradestation does
something like that.
If thats the case , how would you
If I say Var1=x(5)-y(2), then Var1 is not an array.
Explain how:
if (PassTest==False) i=0;
generates an array error??
Please explain the actual reason, I've read the docs and there's
nothing there to make this clear.
================================================================
Days=Param("Days To Test",3,1,15,1);
PassTest=True;
for(i=Days; i>0 ; i--)
{
TestVolume = IIf((Ref(Volume ,-i+1)> Ref(Volume ,-i)),True,False);
PassTest = IIf(testvolume == False,False,PassTest );
if (PassTest==False) i=0;
}
_TRACE("--------------------------------- ");
FL1=PassTest;
FL2=Close >Param("ClosingPrice",5,0,999999,1);
Filter = FL1 AND FL2;
AddColumn(Close,"Close",1.4);
AddColumn(Volume,"Volume",1.0);
AddTextColumn( FullName(), "Full name", 77);
AddColumn(Ref(Volume,-1),"Volume -1",1.0);
AddColumn(Ref(Volume,-2),"Volume -2",1.0);
AddColumn(Ref(Volume,-3),"Volume -3",1.0);
Send instant messages to your online friends http://au.messenger.yahoo.com
Content-Description: "AVG certification"
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.432 / Virus Database: 268.15.9/573 - Release Date: 12/5/2006 4:07 PM
|