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

RE: [amibroker] Re: System Performance Indicators [was: Can someone fix this OLE code?]



PureBytes Links

Trading Reference Links

In any case lets look at how simple this really is …

 

Here’s a test system which by definition will create ~~~Equity when backtested …

 

Len1 = Optimize("Len1", 13, 1, 100, 1);

Len2 = Optimize("Len2", 23, 1, 100, 1);

 

EMA1 = EMA(C, Len1);

EMA2 = EMA(C, Len2);

 

Buy  = Cross(EMA1, EMA2);

Sell = Cross(EMA2, EMA1);

 

Here’s our indicator which will use ~~~Equity to show at any given point along the AA range the Equity Curve and the CAR at whatever point in time one chooses.

 

CurEq = Foreign("~~~EQUITY", "C", 1);

 

IE    = GetOption("InitialEquity");

 

BIR   = Status("BarInRange");

CBIR  = Cum(BIR);

CAR   = 100 * ((CurEq / IE) ^ (252 / CBIR) - 1);

 

Plot(CurEq, "Sys Eq", colorWhite, styleThick);

 

Title = "Equity: " + NumToStr(CurEq, 1.2) + " CAR: " + NumToStr(CAR, 1.2);

 

Here’s our script that runs a backtest of the formula loaded ( Presumably what’s at the top )

 

Set oAB = CreateObject("Broker.Application")

Set oAA = oAB.Analysis

oAA.Backtest(0)  

 

Now if we have saved our script as BackTest.vbs in the AB directory then from tools / customize we can add an entry like what is below.

 

 

After this has been set up one can run a backtest from tools which will also refresh the indicators which will get us whatever statistics we want in the Title of the indicator as of whatever bar we are interested in.

 

 

It would also be simple enough to have the script shrink the AA Window if one wasn’t interested in seeing it or execute itself every n-seconds or a variety of other things …

 


From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of dingo
Sent: Sunday, May 18, 2008 5:07 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: RE: [amibroker] Re: System Performance Indicators [was: Can someone fix this OLE code?]

 

Keep reading - tj posts it later in this thread.

d

> -----Original Message-----
> From: amibroker@xxxxxxxxxps.com
> [mailto:amibroker@xxxxxxxxxps.com] On Behalf Of brian_z111
> Sent: Sunday, May 18, 2008 5:03 PM
> To: amibroker@xxxxxxxxxps.com
> Subject: [amibroker] Re: System Performance Indicators [was:
> Can someone fix this OLE code?]
>
> > You might want to revisit the equity curve that Fred did several
> years ago.
> > It has a lot of the computations in there.
>
> Can anyone give me a clue where to find that?
>
> brian_z
>
>
> --- In amibroker@xxxxxxxxxps.com, "dingo" <dingo@xxx> wrote:
> >
> > You might want to revisit the equity curve that Fred did several
> years ago.
> > It has a lot of the computations in there.
> >
> > d
> >
> >
> > _____
> >
> > From: amibroker@xxxxxxxxxps.com [mailto:amibroker@xxxxxxxxxps.com]
> On Behalf
> > Of Herman
> > Sent: Sunday, May 18, 2008 8:12 PM
> > To: Tomasz Janeczko
> > Subject: [amibroker] System Performance Indicators [was: Can
> someone fix
> > this OLE code?]
> >
> >
> >
> > Tomasz, I am neither a mathematician nor a professional programmer
> and I
> > really don't know how to convey this simple and obvious idea any
> better. If
> > this email doesn't get the idea across I'll let it be. If others
> understand
> > what I am talking about they can continue the discussion.
> >
> >
> >
> >
> > Indicators to display system performance are an effective and
> essential tool
> > in the design and evaluation of trading systems. Trading the equity
> is a
> > simple example, plotting DrawDowns is another.
> >
> >
> >
> >
> > Traditional Indicators are based on PRICE; System Performance
> Indicators are
> > based on EQUITY.
> >
> >
> >
> >
> > That SYSTEM PERFORMANCE INDICATORS are not offered as standard
> (build in)
> > indicators is simply a lack of imagination. To plot the UPI, number
> of
> > winning trades, trade profits, trade duration, or other system
> performance
> > statistic on a time scale simply makes a lot common sense. btw,
> Applying
> > these functions to price arrays can also give very interesting
> results.
> > Price and equity arrays are not that different.
> >
> >
> >
> >
> > Saying "If you really have to plot them" is like saying "if you
> really have
> > to make money". The lack of System Performance Indicators is simply
> a void
> > in technical analysis ready (LONG OVERDUE!) to be filled. To have
> to use the
> > CBT, export the data, import the data, etc. to create System
> Performance
> > Indicators is simply too much work; no one will do it. Most of us
> are here
> > to trade and not to learn new programming languages; OLE and CBT are
> > advanced tools for programmers. imo, System Performance Indicators
> should be
> > as readily available as the RSI() and CMO().
> >
> >
> >
> >
> > best regards,
> >
> > herman
> >
> >
> >
> >
> > Sunday, May 18, 2008, 4:17:49 AM, you wrote:
> >
> >
> >
> >
> >
> > >
> >
> > Hello,
> >
> >
> >
> > 1. Even if it works it is completely not supported and may to
> > problems/crashes etc. It is like driving all the time on reverse
> gear.
> >
> > Reverse gear is not designed to be used for 10 hours drive.
> >
> >
> >
> > 2. I see no reason to "plot" single numbers like UPI, number of
> trades in
> > indicator. That would be just a bunch of flat lines.
> >
> > Also indicator should be lightweight. The indicator code should
> execute very
> > quickly because indicators are refreshed very often.
> >
> > You are (ab)using indicators for things not designed for them.
> Indicator
> > code is for indicators. Automatic analysis is for backtesting.
> Indicators
> > are not
> >
> > and should never be used that way.
> >
> >
> >
> > 3. If you really need to plot them
> >
> > - all stats are accessible from CUSTOM BACKTESTER, if you want
> to "plot"
> > them, use custom backtester,
> >
> > write them to TEXT File (using fopen/fputs/fclose) and from the
> indicator
> > you will be able to read them (using fopen/fgets/fclose)
> >
> >
> >
> > That's a proper way to do that.
> >
> >
> >
> > To repeat the same analogy - although you can drive on reverse gear
> for 100
> > miles, your cars is not designed to be used that way.
> >
> >
> >
> >
> > Best regards,
> >
> > Tomasz Janeczko
> >
> > amibroker.com
> >
> > ----- Original Message -----
> >
> > From: Herman <mailto:psytek@...>
> >
> > To: Tomasz Janeczko <mailto:groups@...>
> >
> > Cc: amibroker@xxxxxxxxxps.com
> >
> > 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 <mailto:psytek@...>
> >
> > To: dingo <mailto:amibroker@xxxxxxxxxps.com>
> >
> > 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@xxxxxxxxxps.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@xxxxxxxxxps.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@xxxxxxxxxps.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
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > No virus found in this incoming message.
> > Checked by AVG.
> > Version: 8.0.100 / Virus Database: 269.23.20/1453 - Release Date:
> 5/18/2008
> > 9:31 AM
> >
>
>
>
> ------------------------------------
>
> 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
> Yahoo! Groups Links
>
>
>
> No virus found in this incoming message.
> Checked by AVG.
> Version: 8.0.100 / Virus Database: 269.23.20/1453 - Release
> Date: 5/18/2008 9:31 AM
>



I am using the free version of SPAMfighter for private users.
It has removed 455 spam emails to date.
Paying users do not have this message in their emails.
Try SPAMfighter for free now!
__._,_.___

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

__,_._,___