PureBytes Links
Trading Reference Links
|
Thanks Ed, but don't receive those. Could you perhaps load it up in
the files-section?
Thx,
PS
--- In amibroker@xxxxxxxxxxxxxxx, "Edward Pottasch" <empottasch@xxx>
wrote:
>
> hi,
>
> I posted some code in the amibroker-beta group few days ago. It
should help with setting up re-balancing for portfolio type systems.
Have a look at that code (balancingBasic_cbi.afl) because I am only
now starting to understand this stuff.
>
> regards, Ed
>
>
>
>
>
> ----- Original Message -----
> From: vlanschot
> To: amibroker@xxxxxxxxxxxxxxx
> Sent: Tuesday, May 08, 2007 11:35 AM
> Subject: [amibroker] Re: Hedging with PositionScore?
>
>
> Question for Ed (nl) who created the code below in 03/2005, or of
> course anybody else who cares to jump in.
>
> Is there any reason why I cannot seem to get, in the
GetFirstSignal-
> loop, the values from a VarSet which I defined previously in the
> GetFirstOpenPos-loop. Your code below shows that
the "cntlongopen"
> variable, defined in the 1st loop, can be called later in the 2nd
> loop.
>
> For all clarity, I need to make a link between stock-specific
> variables between these loops. In other words, I use VarSet
> ("Var1"+openpos.Symbol, var1) in order to retrieve it in the 2nd
loop
> via VarGet("Var1"+sig.Symbol). So far, this doesn't work.
>
> For context, and as mentioned in some of my previous mails, I'm
> trying to code a fairly simple (I thought) rebalancing strategy,
this
> time without the rotational trading bit. Any help appreciated.
>
> Thx,
>
> PS
>
> --- In amibroker@xxxxxxxxxxxxxxx, "ed nl" <ed2000nl@> wrote:
> >
> > Herman,
> >
> > I expanded the code a little. Now you can set maxShort is well.
The
> nice thing about this is that you will only go full inside the
margin
> with mixed long and short positions and not just either long or
short,
> >
> > rgds, Ed
> >
> >
> >
> > /*
> >
> > Do not allow more than "maxLong" LONG positions OR "maxShort"
SHORT
> positions
> >
> > */
> >
> > SetCustomBacktestProc("");
> >
> > maxLong = 8;
> > maxShort = 9;
> >
> > if( Status("action") == actionPortfolio ) {
> >
> > bo = GetBacktesterObject();
> > bo.PreProcess();
> >
> > for( i = 0; i < BarCount; i++ ) {
> >
> >
> > cntLongOpen = 0;
> > cntShortOpen = 0;
> >
> > // scan through open positions and count the number of long
> positions
> > for( openpos = bo.GetFirstOpenPos(); openpos; openpos =
> bo.GetNextOpenPos() ) {
> >
> > // check for entry signal and long signal
> > if( openpos.IsOpen AND openpos.IsLong ) {
> >
> > cntLongOpen = cntLongOpen + 1;
> >
> > } else if ( openpos.IsOpen AND openpos.IsLong == 0) {
> >
> > cntShortOpen = cntShortOpen + 1;
> >
> > }
> >
> > }
> >
> >
> > // look at new signals and exclude Long signals if they
> exceed maxLong
> > for( sig = bo.GetFirstSignal(i); sig; sig = bo.GetNextSignal
> (i) ) {
> >
> > // check for entry signal and long signal
> > if( sig.IsEntry() AND sig.IsLong() ) {
> >
> > if( cntLongOpen >= maxLong ) {
> >
> > sig.PosSize = 0;
> >
> > } else {
> >
> > cntLongOpen = cntLongOpen + 1;
> >
> >
> > }
> >
> > // check for entry signal and short signal
> > } else if ( sig.IsEntry() AND sig.IsLong() == 0) {
> >
> > if( cntShortOpen >= maxShort ) {
> >
> > sig.PosSize = 0;
> >
> > } else {
> >
> > cntShortOpen = cntShortOpen + 1;
> >
> >
> > }
> >
> >
> > }
> >
> >
> > }
> >
> > bo.ProcessTradeSignals( i );
> > }
> >
> > bo.PostProcess();
> >
> > }
> > ----- Original Message -----
> > From: Herman van den Bergen
> > To: amibroker@xxxxxxxxxxxxxxx
> > Sent: Tuesday, March 01, 2005 11:59 AM
> > Subject: RE: [amibroker] Hedging with PositionScore?
> >
> >
> > Thank you Ed, will try that!
> >
> > herman
> > -----Original Message-----
> > From: ed nl [mailto:ed2000nl@]
> > Sent: Tuesday, March 01, 2005 2:42 AM
> > To: amibroker@xxxxxxxxxxxxxxx
> > Subject: Re: [amibroker] Hedging with PositionScore?
> >
> >
> > I think I answered my own question in case you are interested.
> It seems to work.
> >
> > rgds, Ed
> >
> >
> > /*
> >
> > Number of positions: do not allow more than "maxLong" LONG
> positions
> >
> > */
> >
> > SetCustomBacktestProc("");
> >
> > maxLong = 7;
> >
> > if( Status("action") == actionPortfolio ) {
> >
> > bo = GetBacktesterObject();
> > bo.PreProcess();
> >
> > for( i = 0; i < BarCount; i++ ) {
> >
> >
> > cntLongOpen = 0;
> >
> > // scan through open positions and count the number of
> long positions
> > for( openpos = bo.GetFirstOpenPos(); openpos; openpos =
> bo.GetNextOpenPos() ) {
> >
> > // check for entry signal and long signal
> > if( openpos.IsOpen AND openpos.IsLong ) {
> >
> > cntLongOpen = cntLongOpen + 1;
> >
> > }
> >
> > }
> >
> >
> > // look at new signals and exclude Long signals if they
> exceed maxLong
> > for( sig = bo.GetFirstSignal(i); sig; sig =
> bo.GetNextSignal(i) ) {
> >
> > // check for entry signal and long signal
> > if( sig.IsEntry() AND sig.IsLong() ) {
> >
> > if( cntLongOpen > maxLong ) {
> >
> > sig.PosSize = 0;
> >
> > } else {
> >
> > cntLongOpen = cntLongOpen + 1;
> >
> >
> > }
> >
> >
> > }
> >
> > }
> >
> > bo.ProcessTradeSignals( i );
> > }
> >
> > bo.PostProcess();
> >
> > }
>
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/
|