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

Re: [amibroker] Can someone fix this OLE code?



PureBytes Links

Trading Reference Links

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.
 
I repeat: the example 1 from http://www.amibroker.com/guide/objects.html is a JSCRIPT code.
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 -----
From: Herman
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




Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___