Probably I'm blind, but I cannot find any information about the mentioned 
UpdateEquity() function, any searches in the online/offline manual result 
nothing. Could someone provide me with a link?

Thanks.


--- In amibroker@yahoogroups.com, Tomasz Janeczko <gro...@...> wrote:
>
>   Hello,
> 
> The value of bo.Equity is correct.
> 
> And your findings are incorrect.
> "Use previous bar equity" works as described in the manual.
> 
> You are making mistake in your thinking/debugging.
> Your formula is checking bo.Equity BEFORE calling ProcessTradeSignals(). And 
> it is giving you last known
> equity value. That is the reason of your incorrect findings.
> 
> If you are using custom backtester interface, there are clearly defined 
> points where *you* are in charge
> and when AB is in charge (and can update anything). It will NOT do any 
> "magical steps" out of blue right after
> for( bar = 0; bar < BarCount; bar++ ) loop. If you want to update equity to 
> the current bar you either
> must call ProcessTradeSignals()   (it will update equity and process signals) 
> OR... if you want to have
> current bar equity WITHOUT calling ProcessTradeSignals, you have to call 
> UpdateEquity( bar, 0 ) function.
> 
> The difference that "Use previous bar equity" makes in case of CBT is that 
> ***INSIDE*** ProcessTradeSignals()
> it will use either previous bar or current bar equity, depending on setting, 
> and it will affect the size
> of position open (if you are using spsPercentOfEquity or otherwise depend on 
> available equity)
> 
> Recommended reading:
> http://www.amibroker.org/userkb/2008/03/16/amibroker-custom-backtester-interface-2/
> 
> 
> Best regards,
> Tomasz Janeczko
> amibroker.com
> 
> On 2010-07-15 20:15, rise_t575 wrote:
> >
> > Hi,
> >
> > I've just found out what is happening, but I have not the slightest idea 
> > why.
> >
> > The backtester is *always* using previous bar equity for positions sizing, 
> > although this setting is *not* ticked, and I haven't included the 
> > corresponding SetOption function.
> >
> > In fact, the backtests and the debugging logs are exactly identical when 
> > UsePrevBarEquityForPosSizing is True and when it is False.
> >
> > Is this some bug or isn't that setting being used when using CBT for 
> > position sizing?
> >
> > Thanks in advance!
> >
> > --- In amibroker@yahoogroups.com, "rise_t575"<rise_t@>  wrote:
> >> Hello,
> >>
> >> The following are the (debug) outputs of a tested position sizing 
> >> algorithm.
> >>
> >> I've attached a) part of the code , b) the output of the _TRACE() function 
> >> from within the CBT code (the TRACE function had been placed within the 
> >> most inner "if{}" code block), and c) the output of the AA Results window 
> >> (Detailed Log).
> >>
> >> Note that on the _TRACE() output, the equity on day 2 (21.01.2000) is 
> >> still at its intial value (100000), so it hasn't been adjusted for price 
> >> changes of the position taken at the close of day 1 (which did exist).
> >>
> >> Since this equity value is used for calculation of the position size of 
> >> subsequent signals, this is a problem.
> >>
> >> On the other hand, the output of the AA Results windows on day 2 is 
> >> correct (99823.2)
> >>
> >> And - no - "Use previous bar equity for position sizing" is not activated.
> >>
> >> Does anyone have an idea why bo.equity delivers incorrect values in this 
> >> case?
> >>
> >> Thanks in advance!
> >>
> >> Part of CBT code in question:
> >>
> >>                  for ( sig = bo.GetFirstSignal( bar ); sig; sig = 
> >> bo.GetNextSignal( bar ) )
> >>                  {
> >>                      if ( sig.IsEntry() )
> >>                      {
> >>                          currEquity = bo.Equity;
> >>                          pointVal = sig.PointValue;
> >>                          cbtAtr = StaticVarGet( "statAtr" + sig.Symbol );
> >>                          psUnits = int( currEquity * ( pctVolaRisk / 100 ) 
> >> / ( cbtAtr[bar] * pointVal ) );
> >>                    [_TRACE]                                
> >>                          sig.PosSize = ( 2000 + psUnits ) * -1;
> >>                      }
> >>                  }
> >>
> >>
> >>
> >> DebugView Output:
> >> [2856] Date: 20.01.2000 Symbol: FDRY Equity: 100000 Cash: 100000 ATR: 
> >> 14.383258 Units: 69
> >> [2856] Date: 21.01.2000 Symbol: PCLN Equity: 100000 Cash: 89818.2 ATR: 
> >> 27.671930 Units: 36
> >> [2856] Date: 21.01.2000 Symbol: TYC Equity: 100000 Cash: 89818.2 ATR: 
> >> 14.318740 Units: 69
> >> [2856] Date: 25.01.2000 Symbol: AKAM Equity: 98382.8 Cash: 59163.1 ATR: 
> >> 27.247997 Units: 36
> >> [2856] Date: 03.02.2000 Symbol: IBM Equity: 97308.7 Cash: 49107.9 ATR: 
> >> 4.628230 Units: 210
> >> [2856] Date: 04.02.2000 Symbol: FDRY Equity: 97846.4 Cash: 42716.2 ATR: 
> >> 13.667122 Units: 71
> >>
> >>
> >> AA Results Output:
> >> 20.01.2000
> >>    Entry signals(score):FDRY=Buy(1),
> >>    Exit signals:
> >>    Enter Long, FDRY, Price: 147.563, Shares: 69, Commission: 0, Rank: 1, 
> >> Equity 100000, Margin Loan: 0, Fx rate: 1
> >>    1 Open Positions: , FDRY (+69), Equity: 100000, Cash: 89818.2
> >>
> >> 21.01.2000
> >>    Entry signals(score):PCLN=Buy(1), TYC=Buy(1),
> >>    Exit signals:
> >>    Enter Long, PCLN, Price: 381, Shares: 36, Commission: 0, Rank: 1, 
> >> Equity 100237, Margin Loan: 0, Fx rate: 1
> >>    Enter Long, TYC, Price: 245.493, Shares: 69, Commission: 0, Rank: 1, 
> >> Equity 100237, Margin Loan: 0, Fx rate: 1
> >>    3 Open Positions: , FDRY (+69), , PCLN (+36), , TYC (+69), Equity: 
> >> 99823.2, Cash: 59163.1
> >>
> >> 24.01.2000
> >>    Entry signals(score):
> >>    Exit signals:
> >>    3 Open Positions: , FDRY (+69), , PCLN (+36), , TYC (+69), Equity: 
> >> 98382.8, Cash: 59163.1
> >>
> >> 25.01.2000
> >>    Entry signals(score):AKAM=Buy(1),
> >>    Exit signals:
> >>    Enter Long, AKAM, Price: 279.313, Shares: 36, Commission: 0, Rank: 1, 
> >> Equity 98825.1, Margin Loan: 0, Fx rate: 1
> >>    4 Open Positions: , FDRY (+69), , PCLN (+36), , TYC (+69), , AKAM 
> >> (+36), Equity: 98806.8, Cash: 49107.9
> >>
> >
> >
> >
> > ------------------------------------
> >
> > **** IMPORTANT PLEASE READ ****
> > This group is for the discussion between users only.
> > This is *NOT* technical support channel.
> >
> > TO GET TECHNICAL SUPPORT send an e-mail directly to
> > SUPPORT {at} amibroker.com
> >
> > TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
> > http://www.amibroker.com/feedback/
> > (submissions sent via other channels won't be considered)
> >
> > For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> > http://www.amibroker.com/devlog/
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
>


Reply via email to