[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: Min Holding Period Conundrum



PureBytes Links

Trading Reference Links

please ignore my last question as I type OP.signal in the trace 
statement instead of OP.symbol.


--- In amibroker@xxxxxxxxxxxxxxx, "tipequity" <l3456@xxx> wrote:
>
> To understand the behavior of the code previously, I added a _trace 
> statement as follows. However it does not like the OP.symbol. Any 
> support would be much appreciated.
> 
> SetBacktestMode( backtestRegularRaw ); 
> SetCustomBacktestProc(""); 
> 
> MinHoldingPer = 2;
> 
> if( Status("action") == actionPortfolio )
> { 
>   bo = GetBacktesterObject(); 
>   bo.PreProcess(); 
>   for( i = 0; i < BarCount; i++ ) 
>   { 
>    for( OP = bo.GetFirstOpenPos(); OP; OP = bo.GetNextOpenPos() )
>    { 
>    if ( OP.BarsInTrade >= MinHoldingPer)
> 	Sellnow = 1; 
> 	_TRACE(OP.Signal+" OP.BarsInTrade ="+NumToStr
> (OP.BarsInTrade,1.0));
>    } 
>    bo.ProcessTradeSignals( i ); 
>   } 
>   bo.PostProcess(); 
> }
> 
> Sell  =  ExitLong OR SellNow == 1;
> 
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "tipequity" <l3456@> wrote:
> >
> > To solve this problem I decided to use CBI, however I am not 
> getting 
> > the results that I was expecting. Any help would be appreciated.
> > 
> > SetBacktestMode( backtestRegularRaw ); 
> > SetCustomBacktestProc(""); 
> > 
> > MinHoldingPer = 2;
> > 
> > if( Status("action") == actionPortfolio )
> > { 
> >   bo = GetBacktesterObject(); 
> >   bo.PreProcess(); 
> >   for( i = 0; i < BarCount; i++ ) 
> >   { 
> >    for( OP = bo.GetFirstOpenPos(); OP; OP = bo.GetNextOpenPos() )
> >    { 
> >    if ( OP.BarsInTrade >= MinHoldingPer)
> > 	Sellnow = 1;
> >    } 
> >    bo.ProcessTradeSignals( i ); 
> >   } 
> >   bo.PostProcess(); 
> > }
> > 
> > Sell  =  ExitLong OR SellNow == 1;
> > 
> > 
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx, "tipequity" <l3456@> wrote:
> > >
> > > How can I limit the minimum holding period from the time a 
> position 
> > is 
> > > opened not from time the buy signal was issued? The situation 
> that 
> > I 
> > > facing is that I get two buy signals, I buy after the first buy 
> > signal 
> > > and I want to hold for at least two bars (including the entry 
> bar).
> > > If I use Buy = ExRem(Buy, Sell);
> > > then if I use Sell  =  (ExitLong AND BarsSince(Buy)>=2);
> > > works fine. However then when I backtest and I have two 
> consecutive 
> > buy 
> > > signals and on the first buy siganl I don't have enough cash to 
> buy 
> > but 
> > > on the second buy siganl I have enough cash, it would not buy 
> > because 
> > > the second signal is removed.
> > > Any suggestions are appreciated.
> > > 
> > > TIA
> > >
> >
>




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/