PureBytes Links
Trading Reference Links
|
I'm sorry I didn't see this thread earlier. I have a simple two line
approach to this problem:
LastDayOfMonth = IIf(Day() > Ref(Day(),1),1,0);
PositionScore = IIf(LastDayOfMonth, PositionScore, scoreNoRotate);
I also have trade delays set for one day. Using the above then
allows all securities to be analyzed with daily data on the last day
of the month with the trade taking place on the first day of the
following month.
--- In amibroker@xxxxxxxxxxxxxxx, "droskill" <droskill@xxx> wrote:
>
> In the interest of the group which has been so helpful, I'm posting
> the code change that worked - that makes the rotation happen only on
> the first trading day of the month - comments/critique welcome.
>
> EnableRotationalTrading();
> EachPosPercent = 25;
>
> PositionScore = 1000 + ROC (C, 20);
>
> PositionSize = -EachPosPercent;
>
> SetOption("WorstRankHeld", 4 );
> SetOption("MaxOpenPositions", 4 );
> SetOption("UseCustomBacktestProc", True );
>
> if( Status("action") == actionPortfolio )
> {
> bo = GetBacktesterObject();
>
> bo.PreProcess(); // Initialize backtester
>
> mo = Month();
> dy = Day();
> monthchange = mo != Ref( mo, -1 );
>
> for(bar=0; bar < BarCount; bar++)
> {
>
> if ( monthchange[ bar ] AND dy[ bar ] < 3 )
> {
> bo.ProcessTradeSignals( bar );
> }
> if( monthchange[ bar ] AND dy[ bar ] < 3 )
> {
> CurEquity = bo.Equity;
>
> for( pos = bo.GetFirstOpenPos(); pos; pos =
bo.GetNextOpenPos() )
> {
> posval = pos.GetPositionValue();
>
> diff = posval - 0.01 * EachPosPercent *
CurEquity;
> price = pos.GetPrice( bar, "O" );
>
> // rebalance only if difference between desired and
> // current position value is greater than 0.5% of equity
> // and greater than price of single share
> if( diff != 0 AND
> abs( diff ) > 0.005 * CurEquity AND
> abs( diff ) > price )
> {
> bo.ScaleTrade( bar, pos.Symbol, diff < 0,
price, abs( diff ) );
> }
> }
> }
> }
> bo.PostProcess(); // Finalize backtester
> }}
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@> wrote:
> >
> > Hello,
> >
> > Taking the example and modifying it to fit your requirements is
just
> a matter
> > of minutes ! Don't be lazy.
> >
> > EnableRotationalTrading();
> > EachPosPercent = 5;
> >
> > PositionScore = ROC( C, 20 );
> >
> > PositionSize = -EachPosPercent;
> >
> > SetOption("WorstRankHeld", 40 );
> > SetOption("MaxOpenPositions", 20 );
> >
> > SetOption("UseCustomBacktestProc", True );
> >
> > if( Status("action") == actionPortfolio )
> > {
> > bo = GetBacktesterObject();
> >
> > bo.PreProcess(); // Initialize backtester
> >
> > mo = Month();
> >
> > monthchange = mo != Ref( mo, -1 );
> >
> >
> > for(bar=0; bar < BarCount; bar++)
> > {
> > bo.ProcessTradeSignals( bar );
> >
> >
> > if( monthchange[ bar ] )
> > {
> > CurEquity = bo.Equity;
> >
> > for( pos = bo.GetFirstOpenPos(); pos; pos = bo.GetNextOpenPos
() )
> > {
> > posval = pos.GetPositionValue();
> >
> > diff = posval - 0.01 * EachPosPercent * CurEquity;
> > price = pos.GetPrice( bar, "O" );
> >
> > // rebalance only if difference between desired and
> > // current position value is greater than 0.5% of equity
> > // and greater than price of single share
> > if( diff != 0 AND
> > abs( diff ) > 0.005 * CurEquity AND
> > abs( diff ) > price )
> > {
> > bo.ScaleTrade( bar, pos.Symbol, diff < 0, price, abs(
diff ) );
> > }
> > }
> >
> > }
> > }
> > bo.PostProcess(); // Finalize backtester
> > }
> >
> >
> > Best regards,
> > Tomasz Janeczko
> > amibroker.com
> > ----- Original Message -----
> > From: "droskill" <droskill@>
> > To: <amibroker@xxxxxxxxxxxxxxx>
> > Sent: Saturday, March 15, 2008 10:34 PM
> > Subject: [amibroker] Re: Portfolio rotation
> >
> >
> > > This example shows rebalancing to a fixed % at any time - is
there an
> > > example that shows rebalancing on a specific day - I'm trying to
> > > rebalance on a first trading day of the week or month.
> > >
> > > Any help greatly appreciated Tomasz!
> > >
> > > --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@>
wrote:
> > >>
> > >> Yes you can and there is an example code posted:
> > >> http://www.amibroker.com/kb/2006/03/06/re-balancing-open-
positions/
> > >>
> > >>
> > >> Best regards,
> > >> Tomasz Janeczko
> > >> amibroker.com
> > >> ----- Original Message -----
> > >> From: "droskill" <droskill@>
> > >> To: <amibroker@xxxxxxxxxxxxxxx>
> > >> Sent: Saturday, March 15, 2008 5:34 PM
> > >> Subject: [amibroker] Portfolio rotation
> > >>
> > >>
> > >> > Hey all - I've been looking at the automatic portfolio
rotation
> > >> > feature of AB, and I had a question - if I want to control
the time
> > >> > element of the rotation, would I have to use the regular
> backtester?
> > >> >
> > >> > In other words, let's imagine that instead of rebalancing
> "on-demand"
> > >> > - let's imagine that I want to only rebalance once per week
or once
> > >> > per month - can I do this with the rotational portfolio?
> > >> >
> > >> > Thanks!
> > >> >
> > >> >
> > >> >
> > >
>
======================================================================
==
> > >> > Groups related to amibroker
> > >> >
> > >
>
======================================================================
==
> > >> >
> > >> > equismetastock (734 common members)
> > >> >
> > >
> http://groups.yahoo.com/group/equismetastock?
v=1&t=ipt&ch=email&pub=groups&slk=aftr0&sec=recg
> > >
> > >> > Investments/General: Established January 15, 1999 this site
is
> > > open to ...
> > >> >
> > >> > TWSAPI (656 common members)
> > >> >
> > >
> http://groups.yahoo.com/group/TWSAPI?
v=1&t=ipt&ch=email&pub=groups&slk=aftr1&sec=recg
> > >
> > >> > Investments/Software: Not affiliated with Interactive Brokers
> > > Interactiv...
> > >> >
> > >> > bse-nse2005 (485 common members)
> > >> >
> > >
> http://groups.yahoo.com/group/bse-nse2005?
v=1&t=ipt&ch=email&pub=groups&slk=aftr2&sec=recg
> > >
> > >> > Investments/Online Investing and Trading: We now have our
very own
> > > website - www.desitraderm...
> > >> >
> > >> > e-mini_traders_anon (364 common members)
> > >> >
> > >
> http://groups.yahoo.com/group/e-mini_traders_anon?
v=1&t=ipt&ch=email&pub=groups&slk=aftr3&sec=recg
> > >
> > >> > Investments/Daytrading: The spirit of this group is traders
> > > helping trader...
> > >> >
> > >> > quotes-plus (334 common members)
> > >> >
> > >
> http://groups.yahoo.com/group/quotes-plus?
v=1&t=ipt&ch=email&pub=groups&slk=aftr4&sec=recg
> > >
> > >> > Investments/Software: This group is for Quotes Plus
customers.
> > > Others ar...
> > >> >
> > >> >
> > >> > ------------------------------------
> > >> >
> > >> > 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
> > >> >
> > >> >
> > >> >
> > >>
> > >
> > >
> > >
> > > ------------------------------------
> > >
> > > 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
> > >
> > >
> > >
> >
>
------------------------------------
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
<*> 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/
|