Hello again, Mike! Nope, I wanted to code my_equity to get a grasp of how CBT actually works.
I´m aware that my_equity is the same as ~~~Equity. I later want to modify my code to test my systems with different versions of my_equity, for instance my_equity = cash position plus profit of all open positions (locked up by a stop). I gues Van Tharp calls this "reduced total equity". I want to explore how testing results change if I change the definition of my_equity. But again, I first need to know where the flaw in my code is. Otherwhise, I have no chance to proceed any further. Thanks Markus ----- Original Message ----- From: Mike To: [email protected] Sent: Sunday, November 22, 2009 6:52 AM Subject: [amibroker] Re: Computing and plotting historical portfolio metrics in CBT Markus, If all you want is a copy of the ~~~Equity that AmiBroker already calculates for you, then there is no need to do any specialized signal/trade handling. Just do the following: SetCustombacktestProc(""); if (Status("action") == actionPortfolio) { bo = GetBacktesterObject(); bo.Backtest(); AddToComposite(Foreign("~~~Equity", "C"), "~my_equity", "X", atcFlagDefaults | atcFlagEnableInPortfolio); } Plot(Foreign("~my_equity", "C"), "My Equity", colorBlue, styleLine); Mike --- In [email protected], "Markus Witzler" <funny...@...> wrote: > > Hello, > > I want to compute and plot my own equity (labeled my_equity). > > In the code below (I skkipped the signal part with buy and sell signal), I wonder why my_equity > > - is not being shown in backtester report > > - can´t be plotted > > - doesn´t show up in exploration > > Why is that? If you reauire the rest of the code, please let me know > > Thanks > > Markus > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > ...<snip >... > > for (trade = bo.GetFirstOpenPos(); trade; trade = bo.GetNextOpenPos()) > > { > > trade = bo.findopenpos (sig.symbol); > > if (trade) > > { > > value_all_open_pos=value_all_open_pos + trade.GetPrice(i, "C") * trade.shares; > > } > > > > } > > bo.HandleStops(i); // Process programmed stops or applystop at this bar > > my_equity [i] = bo.cash + value_all_open_pos; > > } // End of for loop over signals 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 > > AddToComposite(my_equity, "~~~my_equity","x", atcFlagEnableInPortfolio | atcFlagDefaults); > > } > > PlotForeign("~~~my_equity", "my_equity", colorRed, styleHistogram ); > __________ Information from ESET Smart Security, version of virus signature database 4627 (20091121) __________ The message was checked by ESET Smart Security. http://www.eset.com __________ Information from ESET Smart Security, version of virus signature database 4627 (20091121) __________ The message was checked by ESET Smart Security. http://www.eset.com
