You have 2 ways to add normal values to the advanced code as far as I ahve worked out Use staticvarset and staticvarsettext in your normal code and then the gets in the advanced code The other is to create composites of the values you want to transfer to the advanced code in your normal formula. You can then use the foreign to pull this data into the advanced code. This may also require the use of a function that tomasz provided for finding equity at a certain date. Here is a part of the code, this is a astarting point only, youi will need to deternine how to actually use it
from response by Tomasz............................ /*Hello, I have been asked how to access portfolio Equity to calculate some trade statistics in new portfolio backtester interface, so I have modified the code from example 3, to show you how. the calculations remain the same, all I did it to add 2 extra columns with per-trade metrics: "equity at entry" AND "Risk as % of equity at entry". The code follows. Newly added lines are marked with // ADDED LINE comment. Refer to http://www.amibroker.com/newsletter/01-2005.html for more details. /* First we need to enable custom backtest procedure and ** tell AmiBroker to use current formula */ SetCustomBacktestProc(""); function FindEquityAtDateTime( eq, dt, Value ) { found = -1; for( i = 0; i < BarCount AND found == -1; i++ ) { if( dt[ i ] == Value ) found = i; } return IIf( found != -1, eq[ found - 1 ], Null ); } /* Now custom-backtest procedure follows */ if( Status("action") == actionPortfolio ) { bo = GetBacktesterObject(); bo.Backtest(1); // run default backtest procedure // ADDED LINE dt = DateTime(); // ADDED LINE // at this stage (after Backtest() call) portfolio equity symbol is updated // so we can use it to obtain current values eq = Foreign("~~~EQUITY", "C" ); // iterate through closed trades first for( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade() ) { // ADDED LINE EquityAtEntry = FindEquityAtDateTime( eq, dt, trade.EntryDateTime ); } } -- Cheers Graham AB-Write >< Professional AFL Writing Service Yes, I write AFL code to your requirements http://e-wire.net.au/~eb_kavan/ab_write.htm On 18/06/06, PKJR <[EMAIL PROTECTED]> wrote: > Hi All - small dilemma here.. I would like to add a column to the > backtester results..I know I can us a custom metric that is derived > from backtester results and add a column this way but how about adding > a column that contains data not derived from backtester object but > rather from an array in your main AFL code? > > is there a way to pass an outside array to custom backtester object? > BTW my custom backtesting procedure is in a separate AFL file > > Paul > > > > 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 other support material please check also: > http://www.amibroker.com/support.html > > > Yahoo! Groups Links > > > > > > > ------------------------ Yahoo! Groups Sponsor --------------------~--> Yahoo! Groups gets a make over. See the new email design. http://us.click.yahoo.com/ulNZQC/lOaOAA/cosFAA/GHeqlB/TM --------------------------------------------------------------------~-> 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 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/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
