You are on page 1of 2

//https://www.amibroker.

com/kb/2015/02/04/how-to-add-mae-mfe-dates-to-the-backtest-r
eport/

SetCustomBacktestProc( "" );

function processTrade( trade )


{
dt = DateTime();

SetForeign( trade.Symbol );

llvDate = Lookup( Ref( dt, - LLVBars( Low, trade.BarsInTrade + 1 ) ),


trade.ExitDateTime );
hhvDate = Lookup( Ref( dt, - HHVBars( High, trade.BarsInTrade + 1 ) ),
trade.ExitDateTime );

if ( trade.IsLong() )
{
maeDate = llvDate;
mfeDate = hhvDate;
}
else
{
maeDate = hhvDate;
mfeDate = llvDate;
}

RestorePriceArrays();

trade.AddCustomMetric( "MFE Date", DateTimeToStr( mfeDate ) );


trade.AddCustomMetric( "MAE Date", DateTimeToStr( maeDate ) );
}

if ( Status( "action" ) == actionPortfolio )


{
bo = GetBacktesterObject();

bo.Backtest( 1 ); // run default backtest procedure

for ( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade() )


{
processTrade( trade );

for ( trade = bo.GetFirstOpenPos(); trade; trade = bo.GetNextOpenPos() )


{
processTrade( trade );
}
bo.ListTrades();
}

You might also like