Graham Thanks for the reply and the pointers. A few more functions there I need to befriend! I'll spend some time with this and see where it leads me.
Regards ChrisB Graham wrote:
loop this through bar array and you can write the values to text file SetCustomBacktestPr oc(""); if( Status("action") == actionPortfolio ) { bo = GetBacktesterObject (); bo.Backtest( 1); expectancy = SumProfit = 0; NumTrades = 0;fw = fopen(...... ......... ...... , "w" ) for(i=0;i<barcount;i++ ) { expectancy = SumProfit = 0; NumTrades = 0; for( trade = bo.GetFirstTrade( ); trade; trade = bo.GetNextTrade( ) ) { SumProfit = SumProfit + trade.GetProfit( ); NumTrades++;expectancy = SumProfit/trade. TickSize/ trade.PointValue /NumTrades;}for( trade = bo.GetFirstOpenPos( ); trade; trade = bo.GetNextOpenPos( ) ){ SumProfit = SumProfit + trade.GetProfit( ); NumTrades++;expectancy = SumProfit/trade. TickSize/ trade.PointValue /NumTrades;} if(fw) fputs(...... ......... ......... ......... , fw ); } if(fw) fclose(fw); for( trade = bo.GetFirstTrade( ); trade; trade = bo.GetNextTrade( ) ) { SumProfit = SumProfit + trade.GetProfit( ); NumTrades++;expectancy = SumProfit/trade. TickSize/ trade.PointValue /NumTrades;trade.AddCustomMetr ic("Expectancy-Pips", expectancy ); }for( trade = bo.GetFirstOpenPos( ); trade; trade = bo.GetNextOpenPos( ) ){ SumProfit = SumProfit + trade.GetProfit( ); NumTrades++;expectancy = SumProfit/trade. TickSize/ trade.PointValue /NumTrades;trade.AddCustomMetr ic("Expectancy-Pips", expectancy ); } bo.AddCustomMetric( "Total Expectancy-Pips", expectancy ); bo.ListTrades( ); } -- Cheers Graham Kav AFL Writing Service http://www.aflwriti ng.com <http://www.aflwriting.com>On 23/01/2008, *ChrisB* <[EMAIL PROTECTED] net.au <mailto:[EMAIL PROTECTED]>> wrote:Graham/others 2 a.m. now. Spent the night going through Herman's IntroToAtc.pdf and help files. I am probably way off track here, but .... Seems to me I still need to feed an array into the AddtoComposite( array,...) function. It also seems to me that to do this I need to somehow extract this from the CBT code for expectancy: ************ SetCustomBacktestPr oc(""); if( Status("action") == actionPortfolio ) { bo = GetBacktesterObject (); bo.Backtest( 1); expectancy = SumProfit = 0; NumTrades = 0; for( trade = bo.GetFirstTrade( ); trade; trade = bo.GetNextTrade( ) ) { SumProfit = SumProfit + trade.GetProfit( ); NumTrades++; expectancy = SumProfit/trade. TickSize/ trade.PointValue /NumTrades; trade.AddCustomMetr ic("Expectancy-Pips", expectancy ); } for( trade = bo.GetFirstOpenPos( ); trade; trade = bo.GetNextOpenPos( ) ) { SumProfit = SumProfit + trade.GetProfit( ); NumTrades++; expectancy = SumProfit/trade. TickSize/ trade.PointValue /NumTrades; trade.AddCustomMetr ic("Expectancy-Pips", expectancy ); } bo.AddCustomMetric( "Total Expectancy-Pips", expectancy ); bo.ListTrades( ); } ********* I would have thought then that if I could extract the Expectancy from the CBT into an array I might just as easily be able to plot this. Looking at the COM documents does not make it immediately apparent how I do this.(mea culpa as a non programmer). Apart from the AddCustomMetric (command, if that's what it's called) which tells the CBT to send the expectancy to the Backtester Report , is there anything else I can do get this from CBT bit into regular AFL array variable so I can just plot it? In the meantime I am happy to just export this from the backtester into an Excel spreadsheet for the moment. Regards ChrisB ChrisB wrote:Thanks Graham Of course! from the Backtester results I can see the column with the expectancy figures. Then I just export this to csv and plot this in Excel which is what I will do for the moment. I will look at the Addtocomposite function again to see if I can extract that data into a composite symbol. I guess though if I am only getting 30 trades per year on a given strategy that will be an array that will need padding of data, and may not look too pretty. Regards ChrisB Graham wrote:You could try exporting the expectancy to a text file and plot from this, or create a composite symbol-- CheersGraham Kav AFL Writing Service http://www.aflwriti ng.com <http://www.aflwriting.com> On 21/01/2008, *ChrisB* <[EMAIL PROTECTED] net.au <mailto:[EMAIL PROTECTED]>> wrote: Promised attachment: ChrisB wrote:I will try and re-phrase the question: Anyone have any pointers as to how to Plot the running expectancy after I have run a Backtest? In Excel when I walk forward manually, I plot my Expectancy like this: Currently I place these trade on a Demo account to acquire the data for entries and exits. This is quite time consuming. I want to plot similar or the same in a pane after running a Backtest. When Positive and rising switch back to trading this strategy. When Negative and or Falling, stop using this strategy. Any pointers in the right direction would be appreciated, but I suspect this may involve more programming than I am capable of and may wish to farm this out. Regards ChrisB ChrisB wrote: > > The help files give code for including Expectancy in the backtest and > Optimization. > > I am not familiar with the working of the CBT. I can get the expectancy > to appear in a column in the backtester > > How would I extract the expectancy figures into an array so that I can > plot this? > > Regards >
