PureBytes Links
Trading Reference Links
|
Thanks, Mike. I copied the code you wrote below and it does not make
any difference when I insert it or remove it into my system. I also
wanted to debugview it inserting this line into various places in the
code and I couldn't get the debugview work.
_TRACE(StrFormat("Buying " + sig.Symbol + ", price = %1.3f",
sig.Price));
What's wrong with the code and why the debugview doesn't get the
stuff.
Thanks for you help. I appreciate any comment.
--- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@xxx> wrote:
>
> Documentation for custom backtester can be found here:
> http://www.amibroker.com/guide/a_custombacktest.html
>
> You cannot reference ~~~Equity during the formulation of your
> Buy/Sell trade rules since the value of ~~~Equity is not calculated
> until after the trade rules have been applied (i.e. chicken and egg
> problem).
>
> For the scenario you describe, you could probably do your
calculation
> and compare it to bo.Equity. In the sample below, bo.Equity is the
> equity of your account on a bar by bar basis. If you don't like the
> result, set sig.PosSize property to 0 and the trade will be skipped.
>
> I don't have AmiBroker on this machine, so I cannot verify the
> following syntax, and cannot attest to its efficiency. But, the
idea
> would be something along the lines of:
>
> if (Status("action") == actionPortfolio) {
> bo = GetBacktesterObject();
> bo.PreProcess();
>
> for (bar = 0; bar < BarCount; bar++) {
> for (sig = bo.GetFirstSignal(bar); sig; sig = bo.GetNextSignal
> (bar)) {
> if (sig.IsEntry()) {
> SetForeign(sig.Symbol);
> Liquidity = MA(C,5)*MA(V,5)*50;
> RestorePriceArrays();
>
> if (Liquidity[bar] < bo.Equity) {
> sig.PosSize = 0;
> }
> }
> }
>
> bo.ProcessTradeSignals(bar);
> }
>
> bo.PostProcess();
> }
>
>
> Mike
>
> --- In amibroker@xxxxxxxxxxxxxxx, "zozuzoza" <zozuka@> wrote:
> >
> > Thanks, Mike. The "Allow position size shrinking" trick basically
> > does what I need. Although, I don't understand the 2nd part about
> the
> > custom backtester code. Is there any documentation about the
> advanced
> > backtest code?
> >
> > There is one issue I cannot solve. I would like to have in the
Buy
> > condition the following.
> >
> > MA(C,5)*MA(V,5)*50>Foreign("~~~EQUITY", "C")
> >
> > i.e. if the equity grows, the non liquid stocks will be ignored.
> >
> > How is it possible code this? The above example does not work.
> >
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@> wrote:
> > >
> > > Hi,
> > >
> > > If I understand your scenario correctly. You don't have to
worry
> > > about it, because AmiBroker will not allow you to place an
order
> > for
> > > a value greater than you actually have available in your
account.
> > > Just select the "Allow position size shrinking" checkbox from
the
> > AA
> > > settings window, then set your position size based on your
volume
> > > calculations. AmiBroker will scale down as necessary when your
> > > calculations exceed your equity.
> > >
> > > Otherwise, as explained by Graham, if you are backtesting over
> more
> > > than a single symbol, then you can access the equity from
within
> > > custom backtester code.
> > >
> > > e.g.
> > >
> > > SetBacktestMode(backtestRegularRaw);
> > > SetCustomBacktestProc("");
> > >
> > > if (Status("action") == actionPortfolio) {
> > > bo = GetBacktesterObject();
> > > bo.PreProcess();
> > >
> > > for (bar = 0; bar < BarCount; bar++) {
> > > for (sig = bo.GetFirstSignal(bar); sig; sig =
bo.GetNextSignal
> > > (bar)) {
> > > ... // Make any adjustment to sig.PosSize that you want
> using
> > > bo.Equity in your calculations.
> > > ... // If you need access to the symbol for Volume, etc.
> use
> > > Foreign(sig.Symbol, "V").
> > > }
> > >
> > > bo.ProcessTradeSignals(bar);
> > > }
> > >
> > > bo.PostProcess();
> > > }
> > >
> > > Mike
> > >
> > > --- In amibroker@xxxxxxxxxxxxxxx, "zozuzoza" <zozuka@> wrote:
> > > >
> > > > I tried this but doesn't work.
> > > > PositionSize = Min(Foreign("~~~EQUITY", "C"),MA(C,5)*MA
> (V,5)/50);
> > > > It is a portfolio backtest.
> > > > The question remains. How is it possible for the positionsize
> to
> > > > follow the equity AND also limit the positionsize by the
volume?
> > > >
> > > > --- In amibroker@xxxxxxxxxxxxxxx, Graham <kavemanperth@>
wrote:
> > > > >
> > > > > For a portfolio backtest the only place is in the
> > positionsizing
> > > as
> > > > > that is only used during the portfolio backtest pass
> > > > > If it is a single symbol backtest then you can use Equity().
> > > > > If you need to determine trade entries or exits based on
> > portfolio
> > > > > equity value then you need to use the advanced backtest
code
> to
> > > > change
> > > > > the trade values.
> > > > >
> > > > > --
> > > > > Cheers
> > > > > Graham Kav
> > > > > AFL Writing Service
> > > > > http://www.aflwriting.com
> > > > >
> > > > >
> > > > >
> > > > > 2008/5/30 zozuzoza <zozuka@>:
> > > > > > Is there any way to reference the portfolio equity
> > > > > > Foreign("~~~EQUITY", "C") in the buy formula itself?
> > > > > >
> > > > > > I guess that the portfolio equity is available after
> running
> > the
> > > > > > backtest so it cannot be referenced in the buy formula
> itself.
> > > > > >
> > > > > > I've checked the AddToComposite stuff but it is not clear
> how
> > > it
> > > > can
> > > > > > be done.
> > > > > >
> > > > > > Is there a simple solution for this? Thank you.
> > > > > >
> > > > > >
> > > > > > ------------------------------------
> > > > > >
> > > > > > 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
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
------------------------------------
**** 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/
|