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/////////////
Buy=Cross(RSI(),30);
Sell=Cross(70,RSI());
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, "Tomasz Janeczko" <groups@xxx>
wrote:
>
> Hello,
>
> No, it does not do that automatically,
> but it will exit automatically your position (liquidate) if it
loses more
> than user-defined amount or more than 99.9% (automatic ruin stop).
> One can also program partial exit via sigScaleOut if position in
more than
> one contract.
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: "loveyourenemynow" <loveyourenemynow@xxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Wednesday, November 26, 2008 11:17 AM
> Subject: [amibroker] Re: Stop Loss based on equity
>
>
> Do you know if AB hadles automatically margin violations due to
losses
> and rescale accordingly?
>
> Gne
> --- In amibroker@xxxxxxxxxxxxxxx, "zozuzoza" <zozuka@> wrote:
> >
> > 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@> 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
>
------------------------------------
**** 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/
|