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 [email protected], "Mike" <[EMAIL PROTECTED]> 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 [email protected], "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 [email protected], 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
> > > >
> > >
> >
>


Reply via email to