How to calculate average drawdown of a trading system?
First of all, I think I'll clear off some confusion in the topic. The Sterling Ratio is a very simple investment portfolio measurement that fits nicely to the topic of personal finance, although not so much to a foreign exchange trading system. The Sterling Ratio is mainly used in the context of hedge funds to measure its risk-reward ratio for long term investments. To do so, it has been adapted to the following in order to appear more like the Sharpe Ratio:  I Suppose this is why you question the Average Largest Draw-down. I'll come back to that later. It's original definition, suggested by the company Deane Sterling Jones, is a little different and perhaps the one you should use if you want to measure your trading system's long term risk-reward ratio, which is as followed:  Note: Average Annual Draw-down has to be negative on the above-mentioned formula. This one is very simple to calculate and the one to use if you want to measure any portfolio's long-term results, such an example of a 5 or 10 years period and calculate the average of each years largest drawdown. To answer @Dheer's comment, this specific measurement can also be used in personal investments portfolio, which is considered a topic related to personal finance. Back to the first one, which answers your question. It's used in most cases in investment strategies, such as hedging, not trading systems. By hedging I mean that in these cases long term investments are made in anti-correlated securities to obtain a diversified portfolio with a very stable growth. This one is calculated normally annually because you rely on the Annual Risk-Free Rate. Having that in mind I think you can guess that the Average Largest Drawdown is the average between the Largest/Maximum Drawdown from each security in the portfolio. And this doesn't make sense in a trading system. Example: If you have invested in 5 different securities where we calculated the Largest Draw-down for each, such as represented in the following array: MaxDD[5] = { 0.12, 0.23, 0.06, 0.36, 0.09 }, in this case your Average Largest Draw-down is the average(MaxDD) that equals 0.172 or 17,2% If your portfolio's annual return is 15% and the Risk-free Rate is 10%, your Sterling Ratio SR = (0.15 - 0.10)/0.172, which result to 0.29. The higher the rate better is the risk-reward ratio of your portfolio. I suggest in your case to only use the original Sterling Ratio to calculate your long-term risk-reward, in any other case I suggest looking at the Sharpe and Sortino ratios instead.
This paper makes the rounds every so often and I HATE IT VERY MUCH.  No one has EVER EVER EVER estimated standard deviation by taking an average of abs deviations, because that would be stupid, further, realized vol is a very different beast than implied vol. AND FURTHER, the models are fitted to the data, rather than fighting the tape and fitting the data to the models.   Most people working with these instruments are trying to figure out the prices of unknown derivatives based on known derivatives - the models just help interpret findings and estimate what's necessary to hedge a position. Thanks for the answer/comments! The time-based method was something we mooted and something I almost went with. But just to wrap this up, the method we settled on was this: Every time there is an entry or exit into the fund, we divvy out any unrealised market profits/losses according to each person's profit share (based on % of the asset purchased at buy-in) JUST BEFORE the entry/exit. These realised profits are then locked in for those particpants, and then the unrealised profits/loss counter starts at zero, we do a fresh recalculation of shareholding after the entry/exit, and then we start again. Hope this helps anyone with the same issue! From your question, I am guessing that you are intending to have stoploss buy order. is the stoploss order is also a buy order ?  As you also said, you seems to limit your losses, I am again guessing that you have short position of the stock, to which you are intending to place a buy limit order and buy stoploss order (stoploss helps when when the price tanks). And also I sense that you intend to place buy limit order at the price below the market price. is that the situation?  If you place two independent orders (one limit buy and one stoploss buy). Please remember that there will be situation where two orders also get executed due to market movements. Add more details to the questions. it helps to understand the situation and others can provide a strategic solution. Not directly an answer to your question, but somewhat related: There are derivatives (whose English name I sadly don't know) that allow to profit from breaking through an upper or alternatively a lower barrier. If the trade range does not hit either barrier you lose. This kind of derivative is useful if you expect a strong movement in either direction, which typically occurs at high volume. "You can't do this automatically; you want to understand whether the drop is from a short-term high. is likely to be a short-term low, or reflects an actual change in how folks expect the company to do in the future. Having said that, some people do favor a strategy which resembles this, betting on what are known as ""the dogs of the Dow"" in the assumption that they're well trusted but not as strongly sought and therefore perhaps not bid up as strongly. I have no opinion on it; I'm just mentioning it for comparison." "My answer is Microsoft Excel.  Google ""VBA for dummies"" (seriously) and find out if your brokerage offers an 'API'.  With a brief understanding of coding you can get a spreadsheet that is live connected to your brokers data stream.  Say you have a spreadsheet with the 1990 value of each in the first two columns (cells a1 and b1).  Maybe this formula could be the third column, it'll tell you how much to buy or sell to rebalance them.   then to iterate the rebalance, set both a2 and b2 to =C1 and drag the formula through row 25, one row for each year.  It'll probably be a little more work than that, but you get the idea." If you are looking to go long (buy) you would use bid prices as this is what you will be matched against for your order to be executed and a trade to go through. If you are looking to go short (sell) you would use the ask prices as this is what you will be matched against for your order to be executed and a trade go through. In your analysis you could use either this convention or the midpoint of the two prices. As FX is very liquid the bid and ask prices would be quite close to each other, so the easiest way to do your analysis is to use the convention I listed above. Unfortunately I believe there is not a good answer to this because it's not a well posed problem.  It sounds like you are looking for a theoretically sound criteria to decide whether to sell or hold.  Such a criteria would take the form of calculating the cost of continuing to hold a stock and comparing it to the transactions cost of replacing it in your portfolio. However, your criteria for stock selection doesn't take this form.  You appear to have some ad hoc rules defining whether you want the stock in your portfolio that provide no way to calculate a cost of having something in your portfolio you don't want or failing to have something you do want.  Criteria for optimally rebalancing a portfolio can't really be more quantitative than the rules that define the portfolio. Have you actually read the Wikipedia article? To calculate the DJIA, the sum of the prices of all 30 stocks is divided by a divisor, the Dow Divisor. The divisor is adjusted in case of stock splits, spinoffs or similar structural changes, to ensure that such events do not in themselves alter the numerical value of the DJIA. Early on, the initial divisor was composed of the original number of component companies; which made the DJIA at first, a simple arithmetic average. The present divisor, after many adjustments, is less than one (meaning the index is larger than the sum of the prices of the components). That is: DJIA = sum(p) / d where p are the prices of the component stocks and d is the Dow Divisor. Events such as stock splits or changes in the list of the companies composing the index alter the sum of the component prices. In these cases, in order to avoid discontinuity in the index, the Dow Divisor is updated so that the quotations right before and after the event coincide: DJIA = sum(p_old) / d_old = sum(p_new) / d_new The Dow Divisor was 0.14602128057775 on December 24, 2015.[40] Presently, every $1 change in price in a particular stock within the average, equates to a 6.848 (or 1 ÷ 0.14602128057775) point movement. Knowing the old prices, new prices (e.g. following a split), and old divisor, you can easily compute the new divisor... Edit: Also, the detailed methodology is published by SP Indices (PDF). Edit #2: For simplicity's sake, assume the DJIA is an index that contains 4 stocks, with a price of $100.00 each. One of the stocks splits 2:1, meaning the new price/share is $50.00. Plugging the numbers into the above equation, we can determine the new Dow Divisor: 400 / 4 = 350 / d => d = 3.5 Simple math: 50-25=25, hence decline from 50 to 25 is a 50% decline (you lose half), while an advance from 25 to 50 is 100% gain (you gain 100%, double your 25 to 50). Their point is that if you have more upswings than downswings - you'll gain more on long positions during upswings than on short positions during downswings on average. Again - simple math. "First, I would like to use a better chart.  In my opinion, a close of day line chart obscures a lot of important information.  Here is a daily OHLC log chart:  The initial drop from the 1099.23 close on Oct 3 was to 839.8 intraday, to close at 899.22 on Oct 10.  After this the market was still very volatile and reached a low of 747.78 on Nov 20, closing only slightly higher than this.  It traded as high as 934.70 on Jan 6, 2009, but the whole period of Nov 24 - Feb 13 was somewhat of a trading range of roughly 800-900.  Despite this, the news reports of the time were frequently saying things like ""this isn't going to be a V shaped recovery, it is going to be U shaped.""  The roughly one week dip you see Feb 27 - Mar 9 taking it to an intraday low of 666.79 (only about 11% below the previous low) on first glance appears to be just a continuation of the previous trend.   However... The Mar 10 uptrend started with various news articles (such as this one) which I recall at the time suggested things like reinstating the parts of the Glass–Steagall Act of 1933 which had been repealed by the Gramm–Leach–Bliley Act.  Although these attempts appear to have been unsuccessful, the widespread telegraphing of such attempts in the media seemed to have reversed a common notion which I saw widespread on forums and other places that, ""we are going to be in this mess forever, the market has nowhere to go but down, and therefore shorting the market is a good idea now.""  I don't find the article itself, but one prominent theme was the ""up-tick"" rule on short selling: source From this viewpoint, then, that the last dip was driven not so much by a recognition that the economy was really in the toilet (as this really was discounted in the first drop and at least by late November had already been figured into the price).  Instead, it was sort of the opposite of a market top, where now you started seeing individual investors jump on the band-wagon and decide that now was the time for a foray into selling (short).  The fact that the up-tick rule was likely to be re-instated had a noticeable effect on halting the final slide." "First, to mention one thing - better analysis calls for analyzing a range of outcomes, not just one; assigning a probability on each, and comparing the expected values. Then moderating the choice based on risk tolerance. But now, just look at the outcome or scenario of 3% and time frame of 2 days. Let's assume your investable capital is exactly $1000 (multiply everything by 5 for $5,000, etc.). A. Buy stock: the value goes to 103; your investment goes to $1030; net return is $30, minus let's say $20 commission (you should compare these between brokers; I use one that charges 9.99 plus a trivial government fee). B. Buy an call option at 100 for $0.40 per share, with an expiration 30 days away (December 23). This is a more complicated. To evaluate this, you need to estimate the movement of the value of a 100 call, $0 in and out of the money, 30 days remaining, to the value of a 100 call, $3 in the money, 28 days remaining. That movement will vary based on the volatility of the underlying stock, an advanced topic; but there are techniques to estimate that, which become simple to use after you get the hang of it. At any rate, let's say that the expected movement of the option price in this scenario is from $0.40 to $3.20. Since you bought 2500 share options for $1000, the gain would be 2500 times 2.8 = 7000. C. Buy an call option at 102 for $0.125 per share, with an expiration 30 days away (December 23). To evaluate this, you need to estimate the movement of the value of a 102 call, $2 out of the money, 30 days remaining, to the value of a 102 call, $1 in the money, 28 days remaining. That movement will vary based on the volatility of the underlying stock, an advanced topic; but there are techniques to estimate that, which become simple to use after you get the hang of it. At any rate, let's say that the expected movement of the option price in this scenario is from $0.125 to $ 1.50. Since you bought 8000 share options for $1000, the gain would be 8000 times 1.375 = 11000. D. Same thing but starting with a 98 call. E. Same thing but starting with a 101 call expiring 60 days out. F., ... Etc. - other option choices. Again, getting the numbers right for the above is an advanced topic, one reason why brokerages warn you that options are risky (if you do your math wrong, you can lose. Even doing that math right, with a bad outcome, loses). Anyway you need to ""score"" as many options as needed to find the optimal point. But back to the first paragraph, you should then run the whole analysis on a 2% gain. Or 5%. Or 5% in 4 days instead of 2 days. Do as many as are fruitful. Assess likelihoods. Then pull the trigger and buy it. Try these techniques in simulation before diving in! Please! One last point, you don't HAVE to understand how to evaluate projected option price movements if you have software that  does that for you. I'll punt on that process, except to mention it. Get the general idea? Edit P.S. I forgot to mention that brokers need love for handling Options too. Check those commission rates in your analysis as well." You can make a rough calculation of the annual turnover rate of stocks by calculating the institutional investors holding of that stock. Institutional investors are the only firms that are required to provide such data. The good this is they usually make the lion share of trading activity. On the other hand, this task might proof arduous   A different ratio that could be used as a substitute Share Turnover which is calculated as:  Share Turnover gives the number of shares traded as a fraction of the number of shares outstanding. For example, if you compare the results of stock turnover for three companies and the results came as follows:  Company A-share turnover: 1.5 Times Company B share turnover: 3 times Company C share turnover: 0.3 times From the results, we can conclude that for a particular period, company C had the least activity and the number of shares traded for that period was only a small fraction of the shares outstanding while other traders of company C hold most shares and never trade them. If you make a cross sectional analysis of a list of businesses you intend to invest in, you could figure which one has the least number of rapidity in the shares traded. James Roth provides a partial solution good for stock picking but let's speed up process a bit, already calculated historical standard deviations: Ibbotson, very good collection of research papers here, examples below Books "Answering this question is weird, because it is not really precise in what you mean. Do you want all stocks in the US? Do you want a selection of stocks according to parameters?  Do you just want a cool looking graph? However, your possible misuse of the word derivative piqued my interest. Your reference to  gold and silver seems to indicate that you do not know what a derivative actually is. Or what it would do in a portfolio.  The straightforward way to ""see"" an efficient frontier is to do the following. For a set of stocks (in this case six ""randomly"" selected ones):      library(quantmod)  library(fPortfolio)  library(PerformanceAnalytics)     getSymbols(c(""STZ"", ""RAI"", ""AMZN"", ""MSFT"", ""TWX"", ""RHT""), from = ""2012-06-01"", to = ""2017-06-01"")     returns &lt;- NULL  tickerlist &lt;- c(""STZ"", ""RAI"", ""AMZN"", ""MSFT"", ""TWX"", ""RHT"")  for (ticker in tickerlist){   returns &lt;- cbind(returns, monthlyReturn(Ad(eval(as.symbol(ticker)))))  }  colnames(returns) &lt;- tickerlist  returns &lt;- as.timeSeries(returns)    frontier &lt;- portfolioFrontier(returns)  png(""frontier.png"", width = 800, height = 600)  plot(frontier, which = ""all"")  dev.off()    minvariancePortfolio(returns, constraints = ""LongOnly"")    Portfolio Weights:    STZ    RAI   AMZN   MSFT    TWX    RHT   0.1140 0.3912 0.0000 0.1421 0.1476 0.2051     Covariance Risk Budgets:    STZ    RAI   AMZN   MSFT    TWX    RHT   0.1140 0.3912 0.0000 0.1421 0.1476 0.2051     Target Returns and Risks:   mean    Cov   CVaR    VaR   0.0232 0.0354 0.0455 0.0360    https://imgur.com/QIxDdEI  The minimum variance portfolio of these six assets has a mean return is 0.0232 and variance is 0.0360. AMZN does not get any weight in the portfolio.  It kind of means that the other assets span it and it does not provide any additional diversification benefit.   Let us add two ETFs that track gold and silver to the mix, and see how little difference it makes:    getSymbols(c(""GLD"", ""SLV""), from = ""2012-06-01"", to = ""2017-06-01"")    returns &lt;- NULL  tickerlist &lt;- c(""STZ"", ""RAI"", ""AMZN"", ""MSFT"", ""TWX"", ""RHT"", ""GLD"", ""SLV"")  for (ticker in tickerlist){   returns &lt;- cbind(returns, monthlyReturn(Ad(eval(as.symbol(ticker)))))  }  colnames(returns) &lt;- tickerlist  returns &lt;- as.timeSeries(returns)   frontier &lt;- portfolioFrontier(returns)    png(""weights.png"", width = 800, height = 600)  weightsPlot(frontier)  dev.off()    # Optimal weights  out &lt;- minvariancePortfolio(returns, constraints = ""LongOnly"")  wghts &lt;- getWeights(out)  portret1 &lt;- returns%*%wghts  portret1 &lt;- cbind(monthprc, portret1)[,3]  colnames(portret1) &lt;- ""Optimal portfolio""    # Equal weights  wghts &lt;- rep(1/8, 8)  portret2 &lt;- returns%*%wghts  portret2 &lt;- cbind(monthprc, portret2)[,3]  colnames(portret2) &lt;- ""Equal weights portfolio""   png(""performance_both.png"", width = 800, height = 600)  par(mfrow=c(2,2))  chart.CumReturns(portret1, ylim = c(0, 2))  chart.CumReturns(portret2, ylim = c(0, 2))  chart.Drawdown(portret1, main = ""Drawdown"", ylim = c(-0.06, 0))  chart.Drawdown(portret2, main = ""Drawdown"", ylim = c(-0.06, 0))  dev.off()   https://imgur.com/sBHGz7s   Adding gold changes the minimum variance mean return to 0.0116 and the variance stays about the same 0.0332. You can see how the weights change at different return and variance profiles in the picture.  The takeaway is that adding gold decreases the return but does not do a lot for the risk of the portfolio.  You also notice that silver does not get included in the minimum variance efficient portfolio (and neither does AMZN).  https://imgur.com/rXPbXau  We can also compare the optimal weights to an equally weighted portfolio and see that the latter would have performed better but had much  larger drawdowns. Which is because it has a higher volatility, which might be undesirable.  ---  Everything below here is false, but illustrative.  So what about the derivative part? Let us assume you bought an out of the money call option with a strike of 50 on MSFT at the beginning of the  time series and held it to the end.  We need to decide on the the annualized cost-of-carry rate, the annualized rate of interest, the time to maturity is measured in years, the annualized  volatility of the underlying security is proxied by the historical volatility.   library(fOptions)   monthprc &lt;- Ad(MSFT)[endpoints(MSFT, ""months"")]  T &lt;- length(monthprc) # 60 months, 5 years  vol &lt;- sd(returns$MSFT)*sqrt(12) # annualized volatility    optprc &lt;- matrix(NA, 60, 1)  for (t in 1:60) {   s &lt;- as.numeric(monthprc[t])   optval &lt;- GBSOption(TypeFlag = ""c"", S = s, X = 50, Time = (T - t) / 12, r = 0.001, b = 0.001, sigma = vol)   optprc[t] &lt;- optval@price  }    monthprc &lt;- cbind(monthprc, optprc)  colnames(monthprc) &lt;- c(""MSFT"", ""MSFTCall50"")    MSFTCall50rets &lt;- monthlyReturn(monthprc[,2])  colnames(MSFTCall50rets) &lt;- ""MSFTCall50rets""    returns &lt;- merge(returns, MSFTCall50rets)    wghts &lt;- rep(1/9, 9)    portret3 &lt;- returns%*%wghts  portret3 &lt;- cbind(monthprc, portret3)[,3]  colnames(portret3) &lt;- ""Equal weights derivative portfolio""    png(""performance_deriv.png"", width = 800, height = 600)  par(mfrow=c(2,2))  chart.CumReturns(portret2, ylim = c(0, 4.5))  chart.CumReturns(portret3, ylim = c(0, 4.5))  chart.Drawdown(portret2, main = ""Drawdown"", ylim = c(-0.09, 0))  chart.Drawdown(portret3, main = ""Drawdown"", ylim = c(-0.09, 0))  dev.off()  https://imgur.com/SZ1xrYx   Even though we have a massively profitable instrument in the derivative. The portfolio analysis does not include it  because of the high volatility. However, if we just use equal weighting and essentially take a massive position in  the out of the money call (which would not be possible in real life), we get huge drawdowns and volatility, but  the returns are almost two fold. But nobody will sell you a five year call.  Others can correct any mistakes or misunderstandings in the above. It hopefully gives a starting point.  Read more at:   https://en.wikipedia.org/wiki/Modern_portfolio_theory https://en.wikipedia.org/wiki/Option_(finance)  The imgur album:  https://imgur.com/a/LoBEY"