I see - thanks.

Actually I would like to use equity calculated from closing prices of the 
current bar (by searching the web, I've found that normally, AB calculates 
equity for position sizing with opening prices of the current bar - and not 
being aware of this has caused me some major headaches the last couple of days. 
Is this mentioned in the position sizing related sections of the manual? If 
not, this information should be added). Reading the description of 
UpdateStats(), it seems like I could achieve this by setting the second 
(TimInsideBar) parameter to "2". When I put "bo.UpdateStats( bar, 2 );" into my 
code, at least the position sizes are calculated exactly the way I want them to.
But there are several warnings about doing this in the method's description. 
Can I unintentionally mess something up by doing this?
 
Thanks.

--- In amibroker@yahoogroups.com, Tomasz Janeczko <gro...@...> wrote:
>
>   Hello,
> 
> Sorry, the method name is actually UpdateStats()
> 
> Best regards,
> Tomasz Janeczko
> amibroker.com
> 
> On 2010-07-16 14:06, rise_t575 wrote:
> >
> > 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<groups@>  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
> >>>
> >>>
> >>>
> >>>
> >
> >
> >
> > ------------------------------------
> >
> > **** 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