PureBytes Links
Trading Reference Links
|
Beachie,
I'm not going to debug this for you but the following will see you well on
your way.
The error message is correct and is telling you what you are doing wrong.
Have a look at the "Reserved variable names" table in "Back-testing your
trading ideas" in the User Guide. All of these are arrays.
So, where your code says "if( BuyPrice == 0 && Buy[ i ] )" you are
attempting to compare the ENTIRE BuyPrice array to 0. This is one instance
of what that error message is complaining about. I would suggest trying
"if( BuyPrice[i] == 0 && Buy[ i ] )".
And so on for the other arrays inside the for loop.
Where you write "BuyPrice = O; //Buyprice set to open" you are copying the
ENTIRE Open array into the (entire) BuyPrice array *every* time around the
for loop. I'm sure this is not what you want.
Where you write "Sellstop = Low - filter;" you are (or AB is) creating an
intermediate/temporary array filled with the calculation for "Low - filter"
for each bar and copying that entire array into the Sellstop array *every
time around the for loop*.
And so on for all the other arrays.
I suggest you read "Understanding how AFL works" in the "AmiBroker Formula
Language" section of the Tutorials in the AmiBroker User's Guide.
You also don't appear to understand the difference between "if" and "iif".
Again, this is covered in the User's Guide. e.g. You write "iif(Close <
Sellstop)". This is combining multiple mistakes.
There are other errors but until you fix the basics there's no point
covering them.
HTH
Paul
----- Original Message -----
From: "Beachie" <beachie41@xxxxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Sunday, 7 November 2004 2:04 PM
Subject: Re: [amibroker] Loop help please!
OK, I've posting one more time, in case *someone* out there can at least
show me how to do
this using loops. Otherwise I'll use the rem.dll. that someone was kind
enough to point
out to me off list.
Why is it so difficult to implement the simplest of trading rules i.e sell
if a succeeding
close is below the low of the entry bar? Does everyone mainly use the canned
stops?
I can't really explain what I'm trying to do any simpler than what I have
in the previous
posts.
The code below won't work because I get the "Condition in IF, WHILE, FOR
statements has
to be Numeric or Boolean type.You can not use array here, please use []
(array subscript
operator) to access array elements" error msg.
I *do not know* how to work around this?!?!?
BuyPrice= 0;
Sellstop = 0;
Buy = Ref(trig,-1); // buy condition triggered prev bar allowing me to set
buyprice to
open which is equivalent to Buy on Open Delay 1
BuyPrice = Open;
for( i = 0; i < BarCount; i++ )
{
if( BuyPrice == 0 && Buy[ i ] )
BuyPrice = O; //Buyprice set to open
Sellstop = Low - filter; // Low of entry bar minus x.xxx points. This is the
filter. If a
succeeding close drops below this level the trade is stopped out
}
iif(Close < Sellstop) //test to see if close less than stop. If not, then
drop down to
next iif statement
{
Sell [i] =1;
SellPrice[i] = Sellstop;
Sellstop = 0;
BuyPrice = 0;
}
if( ApplyStop(stopTypeProfit,stopModePoint,0.005, 1) == 1 ) //test to see if
Profit stop
hit.
{
Sell[i] = 1;
SellPrice[i] = ApplyStop(stopTypeProfit,stopModePoint,0.005, 1);
Sellstop = 0;
BuyPrice = 0;
}
else
Sell[i] = 0;
}
------------------------ Yahoo! Groups Sponsor --------------------~-->
$9.95 domain names from Yahoo!. Register anything.
http://us.click.yahoo.com/J8kdrA/y20IAA/yQLSAA/GHeqlB/TM
--------------------------------------------------------------------~->
Check AmiBroker web page at:
http://www.amibroker.com/
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> 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/
|