PureBytes Links
Trading Reference Links
|
Hi Thomaz,
I still notice this problem. Here is an example code:
SetCustomBacktestProc("");
if( Status("action") == actionPortfolio )
{
bo = GetBacktesterObject();
bo.PreProcess(); // Initialize backtester
for(bar=0; bar < BarCount; bar++)
{
bo.UpdateStats(bar, 2); // Update MAE/MFE stats for bar
CurEquity = bo.Equity;
for (sig = bo.GetFirstSignal(bar); sig; sig =
bo.GetNextSignal(bar))
{ // Loop through all signals at this bar
if ( sig.IsEntry() )
{
NbShares= -ceil(sig.PosSize*CurEquity/100/
(sig.price+0.01)) ;
_TRACE
("Symbol,"+sig.Symbol+", NbShares calculated:"+ NbShares + ",
PosValueCalculated:"+NbShares*sig.price+", PosSize:"+sig.PosSize+"
CurEquity:"+CurEquity+", Sig.Price:"+sig.Price);
}
}
bo.ProcessTradeSignals( bar );
for( pos = bo.GetFirstOpenPos(); pos; pos =
bo.GetNextOpenPos() )
{
_TRACE("Symbol,"+pos.Symbol+",
realShares:"+pos.shares + ", PosValue:"+pos.getpositionvalue()+",
L/S:"+pos.islong()+", Price:"+pos.getprice(bar,"C")+",
CurEquity:"+CurEquity);
}
}
bo.PostProcess(); // Finalize backtester
}
PositionSize= -5;
Buy = 1;
Sell=0;
I run this code on a yahoo database and I notice I have very
different NbSHares calculated from the real NbShares.
Here are some trace samples:
[14300] Symbol AALA realShares 60955 PosValue 24382
L/S -1 Price 0.41 CurEquity 5000
[14300] Symbol AALA NbShares calculated 59523
PosValueCalculated 24404.4 PosSize -5 CurEquity 500000
Sig.Price 0.41
[14300] Symbol AAME realShares 16510 PosValue 24765
L/S -1 Price 01/01/51 CurEquity 500000
[14300] Symbol AAME NbShares calculated 16447
PosValueCalculated 24835 PosSize -5 CurEquity 500000
Sig.Price 01/01/51
They are differences. I use thess settings:
Min. shares=1
Round lot size=1
commissions in $ per share/contract=0.01
Can you help?
Regards,
Olivier
--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@xxx>
wrote:
>
> I can ensure you that AmiBroker would round DOWN to 1000.
>
> You have mistakes elsewhere in your formula and/or settings, but
unless you
> send FULL formula and settings to SUPPORT, no one would able to
help you.
>
> You may not be aware of the settings you are using specifically
> if you are using today or previous day equity for position sizing
> and what is your actual equity. Your "CurEquity" may not be actual
equity
> but something else like initial equity causing confusion in your
understanding
> of calculations. Again:
> FULL formula, SETTINGS and send them to SUPPORT
>
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: "olivier_molongo" <olivier_molongo@xxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Sunday, November 16, 2008 9:47 PM
> Subject: [amibroker] Incorrect rounding of shares in backtester!
>
>
> > Hello,
> >
> > How can I get the number of shares that would be bought on a
given
> > signal in low level CBT?
> >
> > I use the formula :
> >
> > NbShares=-ceil
(sig.PosSize*CurEquity/100/sig.price/sig.RoundLotSize)
> > *sig.RoundLotSize;
> >
> > I don't get the exact number of shares bought or sold by AB. As
an
> > exemple, with:
> >
> > CurEquity=500000-5
> > PosSize=-5
> > sig.Price=22.86
> > sig.RoundLotSize=100
> >
> > my formua gives NbShares=1000. The exact value is 1093 rounded to
> > 1000.
> >
> > The signal processed trades 1100 shares. The position value for
1100
> > shares is 25113 that is above the 5% equity limit given by
PosSize
> > (25000=5% * 500000).
> >
> > Amibroker default calculation seems incorrect.
> >
> > WHat is the formula used by AB?
> >
> > Regards,
> > Olivier
> >
> >
> > ------------------------------------
> >
> > **** IMPORTANT ****
> > This group is for the discussion between users only.
> > This is *NOT* technical support channel.
> >
> > *********************
> > TO GET TECHNICAL 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
> >
> >
> >
>
------------------------------------
**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
*********************
TO GET TECHNICAL 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
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|