Thanks - will study. --- In [email protected], "Paul Ho" <[EMAIL PROTECTED]> wrote: > > this is an example from Tomasz awhile back. Dingo put together a collection > of documentation on PBT. > > > // this statement turns ON custom portfolio backtester procedure > SetOption("UseCustomBacktestProc", True ); > > // your formula is run first in actionBacktest > // mode (as in previous versions) > // and after that > // actionPortfolio mode when you have full control > // over backtest process > > if( Status("action") == actionPortfolio ) > { > // retrieve the interface to portfolio backtester > bo = GetBacktesterObject(); > > // when using custom backtest routine > // we need to begin backtest procedure by > // calling PreProcess() method that initializes > // internal backtester variables > bo.PreProcess(); > > // in our custom backtest loop we must > // iterate through all bars and process each bar > // signals > // an easier way is to use ProcessTradeSignals() method > // however there is also an alternative way that > // gives even more control. > // But for this application ProcessTradeSignals will be just perfect > for( bar = 0; bar < BarCount; bar++ ) > { > // this retrieves current value of portfolio-level equity > CurrentPortfolioEquity = bo.Equity; > > // the default position size is set by our system code to 25% of > // equity, but in this loop we will modify the size based on > // current portfolio-level equity > > // this for loop iterates through all trade signals and adjust pos > size > for( sig = bo.GetFirstSignal( bar ); sig; sig = bo.GetNextSignal( > bar ) ) > { > // when our equity grows to $50000 set desired pos size to 20% > if( CurrentPortfolioEquity > 50000 ) sig.PosSize = - 20; > // if above $60K then 18% > if( CurrentPortfolioEquity > 60000 ) sig.PosSize = - 16; > // if above $80K then 12.5 > if( CurrentPortfolioEquity > 80000 ) sig.PosSize = - 12; > } > > // in simple applications like this > // (we only modify some signal parameters but we do not modify the > timing) > // we will use default processing of the signals > bo.ProcessTradeSignals( bar ); > } > > // after finishing trading signal processing loop > // we must call PostProcess() > // as it calculates necessary statistics and produces trade list and > report > bo.PostProcess(); > > // at this stage backtest is completed > // and you can call for example GetPerformanceStats > // method to calculate your own metrics from entire backtest > > } > > f = Optimize("fast", 12, 1, 30, 1 ); > s = Optimize("slow", 45, 20, 60, 1 ); > > Buy=Cross(MACD(f,s),Signal(f,s)); > Sell=Cross(Signal(f,s),MACD(f,s)); > > SetOption("MaxOpenPositions", 10 ); > SetOption("InitialEquity", 40000 ); > PositionSize = -25; // default position size of 25% > > > _____ > > From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf > Of Geoff Mulhall > Sent: Tuesday, 14 March 2006 10:40 AM > To: [email protected] > Subject: [amibroker] Re: Calculating Position Size Based on a % of Current > Equity > > > Hi again, > > Does anyone know how it's done then ?? > > Is there any documentation anywhere ?? > > Thanks, > > Geoff > > --- In [email protected], "Paul Ho" <paultsho@> wrote: > > > > the example was to illustrate how expectancy is to be calculated > when risk > > is set to 0.01 of equity. it doesnt say how 0.01 is to be achieved, > whether > > it is via position sizing or stoploss or both. > > > > > > _____ > > > > From: [email protected] [mailto:[EMAIL PROTECTED] > On Behalf > > Of Geoff Mulhall > > Sent: Monday, 13 March 2006 3:34 PM > > To: [email protected] > > Subject: [amibroker] Calculating Position Size Based on a % of > Current > > Equity > > > > > > Hi, > > > > In the example provided by Tomasz below I do't see how the risk > > relates to the position size. > > > > When I enter a trade my position size in number of shares is > > calculated as $ to Risk /(entry price - stop price) > > and I want my $ to risk on the trade to be a % of my currect equity. > > > > I was expecting to see the SetPositionSize used in the example > below > > but it does not appear - so I'm wondering how the Risk value in the > > example below is used to set the position size in the trade. > > > > Any help appreciated. > > > > Geoff > > > > Example follows -> > > > > SetCustomBacktestProc(""); > > MaxLossPointStop = 2*ATR(10); // dynamic volatility stoploss, 1st > > modification > > > > 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 ); > > } > > if( Status("action") == actionPortfolio ) > > { > > bo = GetBacktesterObject(); > > bo.Backtest(1); // run default backtest procedure > > SumProfitPerRisk = 0; > > NumTrades = 0; > > dt = DateTime(); > > eq = Foreign("~~~EQUITY", "C" ); > > > > for( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade > > () ) > > { > > EquityAtEntry = FindEquityAtDateTime( eq, dt, > > trade.EntryDateTime ); > > > > Risk = 0.01 * EquityAtEntry ; //risk is defined as a constant > > 1% of current equity. > > > > RiskAsPecentOfCurrentEquity = 100 * Risk / EquityAtEntry; > > RMultiple = trade.GetProfit()/Risk; > > trade.AddCustomMetric("Initial risk $", Risk ); > > trade.AddCustomMetric("Equity at entry", EquityAtEntry ); > > trade.AddCustomMetric("Risk as % of Eq.", > > RiskAsPecentOfCurrentEquity ); > > > > trade.AddCustomMetric("R-Multiple", RMultiple ); > > SumProfitPerRisk = SumProfitPerRisk + RMultiple; > > NumTrades++; > > } > > Expectancy3 = SumProfitPerRisk / NumTrades; > > bo.AddCustomMetric( "Expectancy (per risk)", Expectancy3 ); > > bo.ListTrades(); > > } > > // your trading system here > > > > ApplyStop( stopTypeLoss, stopModePoint, MaxLossPointStop ); > > > > > > > > > > > > > > > > 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 > > > > > > > > > > > > > > SPONSORED LINKS > > Investment > > <http://groups.yahoo.com/gads? > t=ms&k=Investment+management+software&w1=Inves > > > tment+management+software&w2=Real+estate+investment+software&w3=Invest > ment+p > > > roperty+software&w4=Software+support&w5=Real+estate+investment+analysi > s+soft > > ware&w6=Investment+software&c=6&s=200&.sig=_XXUzbE9l5lGlZNcMu4KNQ> > > management software Real > > <http://groups.yahoo.com/gads? > t=ms&k=Real+estate+investment+software&w1=Inve > > > stment+management+software&w2=Real+estate+investment+software&w3=Inves > tment+ > > > property+software&w4=Software+support&w5=Real+estate+investment+analys > is+sof > > tware&w6=Investment+software&c=6&s=200&.sig=5_sgDczz3ArKGMtJ9tFSJA> > estate > > investment software Investment > > <http://groups.yahoo.com/gads? > t=ms&k=Investment+property+software&w1=Investm > > > ent+management+software&w2=Real+estate+investment+software&w3=Investme > nt+pro > > > perty+software&w4=Software+support&w5=Real+estate+investment+analysis+ > softwa > > re&w6=Investment+software&c=6&s=200&.sig=_N6zcwefgp4eg5n6oX5WZw> > property > > software > > Software > > <http://groups.yahoo.com/gads? > t=ms&k=Software+support&w1=Investment+manageme > > > nt+software&w2=Real+estate+investment+software&w3=Investment+property+ > softwa > > > re&w4=Software+support&w5=Real+estate+investment+analysis+software&w6= > Invest > > ment+software&c=6&s=200&.sig=MJ2jP31F3n64RDZkDadU8w> support Real > > <http://groups.yahoo.com/gads? > t=ms&k=Real+estate+investment+analysis+softwar > > > e&w1=Investment+management+software&w2=Real+estate+investment+software > &w3=In > > > vestment+property+software&w4=Software+support&w5=Real+estate+investme > nt+ana > > > lysis+software&w6=Investment+software&c=6&s=200&.sig=GmF8PlAJASx0wrSaX > 5-Zlw> > > estate investment analysis software Investment > > <http://groups.yahoo.com/gads? > t=ms&k=Investment+software&w1=Investment+manag > > > ement+software&w2=Real+estate+investment+software&w3=Investment+proper > ty+sof > > > tware&w4=Software+support&w5=Real+estate+investment+analysis+software& > w6=Inv > > estment+software&c=6&s=200&.sig=aMgGsKT4w29dMAYUzQUKzg> software > > > > > _____ > > > > YAHOO! GROUPS LINKS > > > > > > > > * Visit your group "amibroker > > <http://groups.yahoo.com/group/amibroker> " on the web. > > > > > > * To unsubscribe from this group, send an email to: > > [EMAIL PROTECTED] > > <mailto:[EMAIL PROTECTED] subject=Unsubscribe> > > > > > > * Your use of Yahoo! Groups is subject to the Yahoo! Terms of > Service > > <http://docs.yahoo.com/info/terms/> . > > > > > > _____ > > > > > > > > > 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 > > > > > > > SPONSORED LINKS > Investment > <http://groups.yahoo.com/gads? t=ms&k=Investment+management+software&w1=Inves > tment+management+software&w2=Real+estate+investment+software&w3=Invest ment+p > roperty+software&w4=Software+support&w5=Real+estate+investment+analysi s+soft > ware&w6=Investment+software&c=6&s=200&.sig=_XXUzbE9l5lGlZNcMu4KNQ> > management software Real > <http://groups.yahoo.com/gads? t=ms&k=Real+estate+investment+software&w1=Inve > stment+management+software&w2=Real+estate+investment+software&w3=Inves tment+ > property+software&w4=Software+support&w5=Real+estate+investment+analys is+sof > tware&w6=Investment+software&c=6&s=200&.sig=5_sgDczz3ArKGMtJ9tFSJA> estate > investment software Investment > <http://groups.yahoo.com/gads? t=ms&k=Investment+property+software&w1=Investm > ent+management+software&w2=Real+estate+investment+software&w3=Investme nt+pro > perty+software&w4=Software+support&w5=Real+estate+investment+analysis+ softwa > re&w6=Investment+software&c=6&s=200&.sig=_N6zcwefgp4eg5n6oX5WZw> property > software > Software > <http://groups.yahoo.com/gads? t=ms&k=Software+support&w1=Investment+manageme > nt+software&w2=Real+estate+investment+software&w3=Investment+property+ softwa > re&w4=Software+support&w5=Real+estate+investment+analysis+software&w6= Invest > ment+software&c=6&s=200&.sig=MJ2jP31F3n64RDZkDadU8w> support Real > <http://groups.yahoo.com/gads? t=ms&k=Real+estate+investment+analysis+softwar > e&w1=Investment+management+software&w2=Real+estate+investment+software &w3=In > vestment+property+software&w4=Software+support&w5=Real+estate+investme nt+ana > lysis+software&w6=Investment+software&c=6&s=200&.sig=GmF8PlAJASx0wrSaX 5-Zlw> > estate investment analysis software Investment > <http://groups.yahoo.com/gads? t=ms&k=Investment+software&w1=Investment+manag > ement+software&w2=Real+estate+investment+software&w3=Investment+proper ty+sof > tware&w4=Software+support&w5=Real+estate+investment+analysis+software& w6=Inv > estment+software&c=6&s=200&.sig=aMgGsKT4w29dMAYUzQUKzg> software > > _____ > > YAHOO! GROUPS LINKS > > > > * Visit your group "amibroker > <http://groups.yahoo.com/group/amibroker> " on the web. > > > * To unsubscribe from this group, send an email to: > [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > > * Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service > <http://docs.yahoo.com/info/terms/> . > > > _____ >
------------------------ Yahoo! Groups Sponsor --------------------~--> Try Online Currency Trading with GFT. Free 50K Demo. Trade 24 Hours. Commission-Free. http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/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/
