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

[amibroker] Re: Stop Loss based on equity



PureBytes Links

Trading Reference Links

I have studied all the docs regarding custom backtester interface. I 
wrote the code but it does not do what I want. Could anyone please 
look at it what the problem is. Thank you, Zozu

///////Stop Loss based on portfolio equity/////////////
StopLossEq=Optimize( "StopLossEq",  10, 1, 7, 0.5 );
SetCustomBacktestProc("");
if (Status("action") == actionPortfolio)
{
    bo = GetBacktesterObject();	//  Get backtester object
    bo.PreProcess();	//  Do pre-processing
	 MaxEq=bo.Equity;   
	for (i = 0; i < BarCount; i++)	//  Loop through all bars
    {
		if (i>0 && bo.Equity>MaxEq) MaxEq=bo.Equity;
        for (sig = bo.GetFirstSignal(i); sig; sig = bo.GetNextSignal
(i))
        {	//  Loop through all signals at this bar
            if (sig.IsEntry())	//  Process entries
				{
                bo.EnterTrade(i, sig.Symbol, True, 
sig.Price,sig.posSize);				}
			else
            {
                if (sig.IsExit()) bo.ExitTrade(i, sig.Symbol, 
sig.Price);	//  Process exits
           
            }
        }	//  End of for loop over signals at this bar
        bo.HandleStops(i);//  Handle programmed stops at this bar
        for (trade = bo.GetFirstOpenPos(); trade; trade = 
bo.GetNextOpenPos())
        {	//  Loop through all open positions
            if (bo.Equity<(1-StopLossEq/100)*MaxEq) bo.ExitTrade(i, 
trade.Symbol, trade.GetPrice(i+1,"O"),5);//ExitType=ruin
        }	//  End of for loop over trades at this bar
        bo.UpdateStats(i, 1);	//  Update MAE/MFE stats for bar
        bo.UpdateStats(i, 2);	//  Update stats at bar's end
    }	//  End of for loop over bars
    bo.PostProcess();	//  Do post-processing
}


--- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@xxx> wrote:
>
> Refer to "AmiBroker Custom Backtester Interface.pdf" in the Files 
> section of this group, posted by gp_sydney:
> 
> http://f1.grp.yahoofs.com/v1/4MUQScTOe79GNNV-
> 
ZkLEVgZrQsvpi7UryW1IV34jAcr5MrdKVujCnYWixQTKH2jURoJKyDJobZlG0ZMwEvdBvx
> nggD5xMLok/AmiBroker%20Custom%20Backtester%20Interface.pdf
> 
> You can monitor portfolio equity on a bar by bar basis in custom 
> backtester code. If equity falls below your threshold, iterate 
through 
> the list of open positions and close them out using the low level 
> custom backtester API:
> 
> http://www.amibroker.com/guide/a_custombacktest.html
> 
> Mike
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "zozuzoza" <zozuka@> wrote:
> >
> > Thanks, the example works on single stock equity. I am looking 
for 
> > portfolio equity. 
> > 
> > To correct my question
> > How could I code a stop loss based on portfolio equity? If the 
> > portfolio equity drops 5%, close the positions.
> > 
> > Has anybody come accross this problem?
> > 
> > Thank you.
> > 
> > Best regards,
> > zozu
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx, reinsley <reinsley@> wrote:
> > >
> > > Hi,
> > > 
> > > Howard B gave an exemple in this topic :
> > > 
> > > http://finance.groups.yahoo.com/group/amibroker/message/130567
> > > 
> > > Best regards
> > > 
> > > zozuzoza a écrit :
> > > >
> > > > How could I code a stop loss based on equity? If the equity 
> drops 
> > 5%,
> > > > close the positions.
> > > >
> > > > Thanks a lot,
> > > > zozu
> > > >
> > >
> >
>



------------------------------------

**** 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/