If you think that removing random parts from the script
written in different language in order to "compile" makes it correct, then
you are wrong.
It is JScript. Not AFL. The examples are written in JScript
because they are intended to be run as external script (in Windows Scripting
Host).
You can not take JScript code copy it to AFL editor and expect
it to work. It is different language.
Although it may "look" as AFL it is not AFL. How to
distinguish that? Easy: new ActiveXObject statement (first line)
is a JScript-only construct. That tells you that it is JScript
(as all examples given in this doc by the way).
JScript allows setting COM properties with parameters like
this:
AA.Filter(
0, "market" ) = 0; // assigning value to COM OBJECT
parametrized property here
If you remove the assignment from such statement, the
statement will compile but its meaning is completely CHANGED.
Without assignment the statement actually does NOTHING (it
reads the property value and does not make any use of it).
AFL does not allow setting COM
parametrized properties, AFL only allows setting parameter-less COM
properties, that's why you are getting syntax errors.
Best regards, Tomasz Janeczko amibroker.com
----- Original Message -----
Sent: Sunday, May 18, 2008 10:33 AM
Subject: Re: [amibroker] Can someone fix
this OLE code?
Is that correct Herman ? Does the code really do
what it should do ? Every time when running the AFL the report shows me the
'Current Symbol' and not my selected WatchList as coded in the AFL. Of course
after following modifications in the code :
if ( ParamTrigger( "Run Com
BT", "BT" )
)
{
WLN = 0; // the watchlist to
backtest
BRS = 100; // Number bars to test
AB = CreateObject( "Broker.Application" );
AA = AB.Analysis;
AA.LoadFormula( "C:\\Program
Files\\AmiBroker\\Formulas\\Systems\\Example.afl" );
AA.ClearFilters();
AA.Filter( WLN, "watchlist" )
;
AA.ApplyTo = 1;
AA.RangeMode = 1;
AA.RangeN = BRS;
AA.Backtest();
AA.Report( "" );
}
Rather weird for me because AA.RangeN is
being set correctly where the AA.Filter does not do what it should do. I still
don't follow ... BTW I know that I should not do this from within an AFL. But
the reason why this is not possible still for me is a open question
...
I am also getting syntax errors when using the
code from the help file for setting the Watchlist. So "AA.Filter( 0, "market" ) = 0;" produces a syntax error and
frankly for me the above instruction seems to be rather straight forward ...
Gives no syntax error but does not do what it should do
-)
So yes, it produces a nice BT report. But the
question is, if that's the report you want to get. I could not make it work in
the way I wanted it to work ... At least not from within an AFL ...
Regards, Ton.
----- Original Message -----
Sent: Saturday, May 17, 2008 2:28
PM
Subject: Re: [amibroker] Can someone
fix this OLE code?
OK Tomasz, but the code produces a nice BT report each time i click the
Trigger. Seemingly flawless. Seems only a tweak would be required to make it
work robust.
I am going through all this trouble just to be able to access the
Backtester stats from an indicator (I was going to extract the last value
from the report on bar-by-bar BTs!).
System analysis in the time domain is frustrated/impossible because
basic AB users (non professional programmer) can't retrieve and plot the
Backtester stats, like UPI, %Winners, Number of trades, etc. Thus there is a
big void wrt system analysis - see my suggestion #1335 and support
tag [#49377].
I wish that formulas for these functions were made public so that they
can be used in indicators. This Would open up a whole new world to evaluate,
analyze, and design trading systems. The single numbers in the AA give very
limited information. With all respect, please do not mention the CBT... that
solution is for less than 10% of users and I don't have enough days left to
learn all that stuff.
best regards,
herman
Saturday, May 17, 2008, 8:10:10 PM, you wrote:
> |
But... the example in help
a) works
b) presents OUTSIDE ***JScript***
code
http://www.amibroker.com/guide/objects.html
c) does not contain
AA.Analysis.RangeN (wrong line)
Again I want to stress that out that Analysis COM
object must not be used form
AFL level. The functionality is provided to
control Automatic Analysis from OUTSIDE
of AmiBroker.
Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message -----
From: Herman
To: dingo
Sent: Saturday,
May 17, 2008 2:02 PM
Subject: Re:
[amibroker] Can someone fix this OLE code?
won't do. Actually 99% of this code was copied
from the AB help.
h
For tips on developing Real-Time Auto-Trading
systems visit:
http://www.amibroker.org/userkb/
Saturday, May 17, 2008, 7:54:44 PM, you
wrote:
> |
ON the clearfilters() take off the ()
and try it.
d
From: amibroker@xxxxxxxxxps.com [mailto:amibroker@yahoogroups.com] On Behalf Of Herman
Sent: Saturday, May 17, 2008 7:49 AM
To: dingo
Cc: amibroker@xxxxxxxxxps.com
Subject: Re: [amibroker] Can someone fix this OLE
code?
it runs fine except for the WLN and BRS
changes i need.
h
For tips on developing Real-Time
Auto-Trading systems visit:
http://www.amibroker.org/userkb/
Saturday, May 17, 2008, 7:46:35 PM, you
wrote:
> |
Maybe AB won't let you run a backtest
within an indicator - time to ask TJ.
d
From: amibroker@xxxxxxxxxps.com
[mailto:amibroker@yahoogroups.com] On Behalf Of Herman
Sent: Saturday, May 17, 2008 7:40
AM
To: dingo
Cc: amibroker@xxxxxxxxxps.com
Subject: Re: [amibroker] Can someone fix this
OLE code?
Hi d, I tried that initially but No
go.
thanks,
herman
For tips on developing Real-Time
Auto-Trading systems visit:
http://www.amibroker.org/userkb/
Saturday, May 17, 2008, 7:35:20 PM,
you wrote:
> |
On the lines that give the
error substitute a number constant for the variable
and see if it works. If it does then it looks to me
like it thinks the variables are arrays.
d
From: amibroker@xxxxxxxxxps.com
[mailto:amibroker@yahoogroups.com] On Behalf Of Herman
Sent: Saturday, May 17, 2008 7:01
AM
To: AmiBroker User Group
Subject: [amibroker] Can someone fix this
OLE code?
Can someone help me fix the
code below so that when triggered in an Indicator,
it:
1) Backtest all tickers in
watchlist WLN?
2) Use range of BRS
bars
3) Output ONLY the one line BT
Report?
Many thanks!!!!
herman
if ( ParamTrigger( "Run
Com BT", "BT" )
)
{
WLN
= 0; // the
watchlist to backtest
BRS
= 100; //
Number bars to test
AB
= CreateObject( "Broker.Application" );
AA =
AB.Analysis;
AA.LoadFormula( "C:\\Program
Files\\AmiBroker\\Formulas\\Systems\\Example.afl" );
AA.ClearFilters();
AA.Filter( 0, "watchlist" ) = WLN;
// This gives
syntax error...
AA.ApplyTo
= 1;
AA.RangeMode
= 1;
AA.Analysis.RangeN = BRS;
// This gives syntax
error...
AA.Backtest();
AA.Report( "" );
}
No virus found in this incoming
message.
Checked by AVG.
Version: 8.0.100 / Virus
Database: 269.23.16/1448 - Release Date: 5/16/2008
7:42 PM
|
No virus found in this incoming
message.
Checked by AVG.
Version: 8.0.100 / Virus Database:
269.23.16/1448 - Release Date: 5/16/2008 7:42
PM
|
No virus found in this incoming
message.
Checked by AVG.
Version: 8.0.100 / Virus Database:
269.23.16/1448 - Release Date: 5/16/2008 7:42 PM
|
|
__._,_.___
Please note that this group is for discussion between users only.
To get 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
__,_._,___
|