We are happy to announce the MultiCharts Easter Sale! Learn more
+1 888 340 6572

The Foundations of Money Management II

In the previous article The Foundations of Money Management I we’ve defined money management as a part of a trading strategy that defines the risk that should be taken at opening a position and the size of the position to be maintained at a given moment relative to the capital. In the present article some of the popular money management methods are going to be reviewed.

A dictionary of money management
Money Management – part of a trading strategy that defines the risk that should be taken at opening a position and the size of the position to be maintained at a given moment relative to the capital.

Mathematical expectation of profit – the sum of profit probabilities multiplied by the size of those profits minus the sum of loss probabilities multiplied by the size of those losses The mathematical expectation may be roughly estimated as the profit probability (%Win/100), multiplied by average profit (AvgWin), minus loss probability (%Loss/100), multiplied by the average loss (AvgLoss).




Initial risk – the sum we are ready to lose before exiting an unprofitable trade per one share (contract). The difference between the entry point an the exit at a loss point.

Current (open) risk – the difference between the current price and the exit point.

Martingale – increasing the position size as the capital decreases.

Antimartingale – increasing the position size as the capital increases.

Volatility – the measure of the extent of price changes per a given period of time.


Evidently, if we put too little at the stake, we won’t cover our expenditures of time, energy and beer, too. It is much less evident, yet so, that if we start betting too much, sooner or later we are going to lose the entire capital. Economical theories and common sense both keep telling us that the higher the risk, the more the profit. This statement is untrue: the dependece between risk and profit is non-linear.

Let us imagine there are only two outcomes in our treading: losing the bet wit ha probability 100 - PctWin, or winning WinToLoss * bet size with a probability PctWin. In this case the mathematical expectation will be:




Suppose that the PctWin and WinToLoss parameters are set and we can only control the bet size. Let us then review the dependence between profit and bet size after 100 trades with different PctWin and WinToLoss values using Monte Carlo modeling. To do this we repeat over and over 100-trade series for every combination of the bet size, PctWin, WinToLoss parameters. The exact outcome (profit or loss) will be determined by a random number generator.

Here is an example of implementing Monte Carlo methods in TradeStation (the code for the corresponding TradeStation signal is shown in Appendix 1). Copy it to PowerEditor, create in StrategyBuilder a strategy with this signal, apply it to any plot and launch parameter optimization in TradeStation as shown below.




This strategy will save to a file the profit for all combinations of parameters and random trade outcomes. One should keep in mind that the number of bars multiplied by the number of combinations mustn’t exceed 65536 (the maximal number of lines in an Excel file). The Random(100) function will generate an uniformly distributed random value between 1 and 100. Then the PctWin-Random will define with a PctWin probability whether the given trade brings profit or loss, and the profit size will be equal to WinToLoss.

Then we can plot in Excel the plots indicating the profit for the given parameters. For example, let us recall the game played by scientists from the previous article, where the bet won in 60% of cases and lost in 40%. To plot the dependence between average profit and bet size in that game, we must:

· Launch in TradeStation an optimization of a strategy by the PctRisk parameter = 5, 10, …, 90 with constant PctWin = 60%, WinToLoss = 1;

· Open in Excel the file D:\TS_Export\MTrading_MMII.csv;

· Enter the values of the parameters to be optimized in column F and the following formulas in column G:
=SUMIF (A$1:A$20860,"=5",E$1:E$20860)/COUNTIF (A$1:A$20860,"=5")
=SUMIF (A$1:A$20860,"=10",E$1:E$20860)/COUNTIF (A$1:A$20860,"=10") etc.


We then will see a plot like shown below.




The shape and values of the curve may differ somewhat in different runs, since random values are random, but the profit will invariably first rise and then descend as the risk grows.

All the multitude of money management algorithms may be divided in two principal classes: martingale and antimartingale.
Martingale methods state that the risk should increase as the capital decreases. These methods are popular with traders trying to extract profit from a series of losses.

Let us review an application of martingale in roulette. We bet 1$ on a color and every time we lose, we double the bet. Next time after we win, we start at 1$ again. If we lose 10 times in a row, which may happen with a probability of (19/37)^10 or 0,13%, we’ll have to bet $1024 to win $1.
Since in such a case the expected profit/risk ratio is disastrously low, it is often supposed that martingale methods may not be used in trading. But, one should keep in mind that in popular trend-following methods
But, one should be well aware that in popular trend-following methods
1) profits are usually 2-3 times larger than losses
2) series of small losses are typically interspersed with large profits

So martingale methods in our opinion deserve a serious study. Antimartingale methods state the direct opposite: the risk size should be increased as the capital grows and decreased as the capital decreases.
The known antimartingale methods advise to risk a fixed fraction of the capital (fixed fractional):

· Trade a constant number of stocks – with some conditions this method can be considered an antimartingale;
· Use the whole accessible capital;
· Trade one lot per X dollars on account;
· Divide the account into equal shares corresponding to the assets traded;
· Risk a part of the capital;
· Take the risk in proportion to the traded assets’ volatility;
· Use the Kelly method, optimal f anf their variants.

The fixed ratio method by Ryan Jones can also be considered antimartingale. This method states that the relation of the number of stocks traded to the capital gain necessary to increase the number of stocks should remain constant. Ryan Jones was so sure of his method’s advantages that last year he resolved to break the World Trading Cup record of Larry Williams standing since 1987. Williams then increased this capital from $10,000 to $1,147 000 in a year of real S&P and T-Bonds trading. Ryan Jones didn’t make it to 2000 year winners, but at May 31, 2001 he was a sure leader with a +226% result.

A positive aspect of antimartingale methods is that they allow the account to grow in geometrical progression.

The most popular method of money management is no money management. There are three variants of it:

1. Money management for gamblers
This method includes betting on a single trade all the accessible capital wit the maximal allowable leverage. No matter what the result, close the account and leave either with 100% loss or with a profit equal to



Recommended for newbies wishing for quick profits. This method is especially good when using a leverage of 1:100and higher: in the absence of a strategy with a positive mathematical expectation this method is optimal. The most important in this method is understanding that the strategy is used once, as luck only is exploited, not statistical advantage, which according to the law of large numbers can come true only in a large series of profits and losses.

2. Fixed number of lots
This method states: independent of the account state, always enter the position with the same (usually an even) number of lots.

Let’s apply this method to the simplest model system known as the “dynamic channel” :

Buy one lot if the average day price ((high + low)/2) grows over its minimum by X points;

Sell one lot, if the average day price ((high + low)/2 falls under its maximum by X points;

Subtract $1 from every trade to account for commissions and slippage.


The code for this system with those algorithms is shown in Appendix 2.

The results of trading a fixed number of lots with $100000 starting capital and 0.66 margin are shown in Table 1 (here and below the results are taken from TradeStation Strategy Performance Reports).

Table1. Fixed number of lots, simplest system.
Number of lotsNet profitAvg. profit/Avg. lossAverage tradeMaximal drawdownProfit factor
100331801.78141.2-411401.185
200663601.78282.4-822801.185

Let us remark that a further increase of lots activates an implicit antimartingale money management in one direction: we cannot open positions larger than our current capital, so if the capital dectreases, so will the position size. When capital grows, the position size will remain constant. So let us redefine the method as follows: independent of the account size, always enter the position with the same (usually even) number of lots, if the current capital allows that; otherwise enter the position with the maximal possible number of lots.

Although this method is fairy safe, it does not allow the account to grow in geometrical progression, so we do not recommend using it.

3. «Bet it all»
This method states: use all the available resources when opening a position.

In other words, w open the maximal possible position every time.
Let us review how results of this method depend on the leverage with the starting capital of $100000 (table 2).

Table2. Results of leverages when trading the whole capital.
Number of lotsNet profitAvg. profit/Avg. lossAverage tradeMaximal drawdownProfit factor
0.5-555861.49-236.5-18361490.993
0.6287341.51122.3-20649801.003
0.71115981.52474.9-19219941.015
0.81709581.54727.5-16436501.027
0.92070341.56881.0-13701081.041
12251941.58958.3-11364331.054

As you can see, even losing just 4 cents per share in a trade when our strategy is profitable, with a 2:1 or larger leverage we eventually lose the entire capital!

This method increases risk without an adequate increase of profit, so we cannot recommend using it.

4. Number of lots per fixed sum of money
This metod states: trade one lot per every X dollars on account:



For instance, if we’re trading one lot per$1000, then, if we have $100000 on account, then we can trade 100 lots.

The table 3 lists an example of trading with different sums reserved for trading on lot (starting capital again $100000 and margin 0.66)

Table3. Results for trading a number of lots per fixed sum of money.
$ per 1 lotNet profitAvg. profit/Avg. lossAverage tradeMaximal drawdownProfit factor
300-110421.49-46.9-7014980.996
400124841.5153.1-4263941.007
500274161.53116.7-3066161.021
600312441.55133.0-2294461.033
700347071.57147.7-1844821.046
800354601.59150.9-1522881.057
900352311.60149.9-1288471.067
1000341611.61145.4-1107981.076

The problem with the given method is that not all papers are equal: one lot of AAA shares (100 shares) would be quite different in its cost and volatility from a lot of BBB shares (1 share). AAA’s volatility is, say, 20% of BBB’s, and the behavior of a pjrtfolio composed of those two stocks will be 80% influenced by BBB and 20% by AAA.

Another problem common for all antimartingale methods is that the position size grows without a direct proportion to the capital gain. I.e. if we have a starting capital of $100 000 and buy one lot per $1000, we must increase our account to $101000 to increase the position size by one unit. Yet if our capital is $1 000 000 we must increase the account to $1001000 to increase the position size by one unit (just 0.1%). So the account grows much slower with a small starting capital.

The method’s advantage is that a trade will never be rejected as being too risky – but again, in some cases this may turn out to be a disadvantage.

5. Equal parts
This is a popular trading method that states to divide the capital in equal parts according to the number of assets traded:



This method assigns an equal weight to all papers in the portfolio and so avoids the previous’ disadvantage. For instance, with $100000 on the account and trading 6 shares without a leverage, we could buy 15 lots of AAA and 50 lots of BBB. Yet the disproportion between the position growth and capital growth in this method persists.

6. Percentage of risk
The risk per unit of assets shall be defined as the absolute difference between position entry point and the stop-loss exit, multiplied by the number of lots. The method states that the initial risk for the position should be equal to a fixed fraction of the capital:



For instance, we have a capital of $100000 and do not wish to risk more than 1% of it per trade, i.e. $1000. The simple trading system reviewed here generates a signal to pen a position in the other direction as soon as the average day price deviates from its extreme value by 4 cents or more. This defines o as $4 per lot (100 shares*$0.04) which limits our position size to 250 lots.

Table 4 lists an example of using the “% of risk” method with different parts of the capital in percents at risk (initial capital $100000, margin 0.66).

Table4. Results for trading the “% of risk” method.
% riskNet profitAvg. profit/Avg. lossAverage tradeMaximal drawdownProfit factor
0.1116491.7349.6-183081.151
0.2218381.6892.9-430261.123
0.3293691.65125.0-739551.097
0.4341611.61145.4-1107981.076
0.5344601.59150.9-1522881.057
0.6340171.56144.8-1978071.042
0.7294591.54125.4-2455981.028
0.8219391.5393.4-2930861.017
0.9122311.5152.0-3390991.008
16001.502.6-4039351.000

So with a risk of over 1% we’d get into negative figures. Betting a set percent of the capital, against our expectations, did not bring any substantial improvement. This can be explained by the fact that the level of the price correction in relation to extreme value (and consequently the risk) has been expressed in absolute values instead of relative. So next we try to change the system rules to:

Buy 1 lot if the day average price ((high + low)/2) grows by X percents or volatility units above its maximum.

Sell 1 lot, if day average price ((high + low)/2) falls by X percents or volatility units under its maximum.

We suppose this may produce a major improvement in relation to the previous methods and leave the idea for the readers to explore.

7. Percent of volatility.
Volatility is a measure of the prices’ movement for a certain period of time. It can be described by various means, among which the most frequently used is the average range



Average true range ATR (an in-built TradeStation function AvgTrueRange) by W. Wilder, or historic volatility:



The method states to set a volatility for every position in relation to a fixed fraction of the capital:



For instance, we have a capital of $ 100000 and wish to buy AAA stocks. The average true range for several days was $0.1 or $10 per lot. If we limit the volatility of our account to 10%, then we can buy a maximum of 1000 lots. Thus we can control the possible fluctuations of every element of the portfolio.

Let us apply thepercent-of-volatility method to the same conditions (stock trading with a starting capital of $100000 and a 0.66 margin). We advise you to get ready for a shock as you read the next Table 5.

Table5. Results for trading the percent of volatility.
% risk% of volatilityAvg. profit/Avg. lossAverage tradeMaximal drawdownProfit factor
11616832.11688.0-836631.407
24310881.901834.4-3892171.268
37641001.763251.5-11188401.175
410492141.674464.7-24205241.113
511556271.614917.6-42145571.070
610179801.564331.8-60887671.041
76914901.532942.5-74077681.022
83172921.511350.2-75952401.009
9331201.50140.9-64884921.001
10-1015921.53-439.8-59484300.997

Compared to trading 100 fixed lots the net profit (with 1% volatility) increased almost five-fold while the maximal drawdown only doubled. The relation of avg. profit to avg. loss and the profit factor increased by 19%. With 5% volatility the net profit for the same trades increased 35 times!

We can also limit the overall volatility for the whole portfolio for the given moment. For instance, if we limit the portfolio volatility to 10% and the volatility for separate positions to 2%, we can simultaneously open positions in 5 stocks.

The percent of risk and percent of volatility methods may be used as filters to detect and reject trades with a high risk.

Speaking of the antimartingale methods’ advantages in general, we can make the following conclusions:

1) While risking a larger part of the capital, we allow the account to grow in geometrical progression.
2) Risking a small part of the capital, we protect the account from significant damage.

Concerning the general disadvantages of antimartingale methods, we can conclude that:

1) Risking a larger part of the capital, we are prone to large losses.
2) Risking a small part of the capital, we do not allow the capital to grow quickly.
3) The positions grow disproportionally to the capital growth.

Next time we are going to discuss the newer and more efficient methods of money management including the Fixed Ratio, the optimal f and the algorithm used by Larry Williams for his record-breaking achievement.






Appendix 1. Monte-Carlo Simulation Signal.
{***********************************************************************
Monte-Carlo Simulation Signal.
Copyright (c) 2001 DT
***********************************************************************}
Inputs: PctRisk(10), {% риска от текущего капитала, 0-100}
PctWin(50), {% выигрышей, 0-100}
WinToLoss(2) {отношение выигрыш/проигрыш};
Vars: Win(0), Count(0), Expectancy(0), Equity(1), Str("");

if CurrentBar = 1 then FileDelete("D:\TS_Export\MTrading_MMII.csv");
Expectancy = 0.01 * PctWin * WinToLoss - (1 - PctWin * 0.01);
if Expectancy > 0 then begin
Equity = 1;
for count = 1 to 100 begin
value1 = Random(100);
if PctWin - value1 > 0 then
Win = WinToLoss else
Win = -1;
Equity = Equity * (1 + PctRisk * 0.01 * Win);
end;
Str = NumToStr(PctRisk, 0) + "," + NumToStr(PctWin, 0) + "," + NumToStr(WinToLoss, 2) + "," + NumToStr(Expectancy, 2) + "," + NumToStr(Equity - 1, 2) + NewLine;
FileAppend("D:\TS_Export\MTrading_MMII.csv", Str);
end;


Appendix 2. The Simplest System with Money Management.
{***********************************************************************
The Simplest System with Money Management.
Copyright (c) 2001 DT
***********************************************************************}

Input: Price((H+L)*.5), PtUp(4.), PtDn(4.);
Inputs: MM_Model(0), {0 = MM absence, 1 = MM for gamblers; 2 = MM units per fixed money; 3 = Equal Units; 4 = % Risk; 5 = % Volatility}
MM(10), {MM parameter}
InitCapital(100000), {Initial capital to trade}
Marg(.66); {Margin percentage}

Vars: MP(0), Risk(0), Num(1), Equity(0), OpenAssuredProfit(0);
Vars: WinP(0),AvgW(0),AvgL(0), Kelly(0);
Vars: Marg1(0), {Margin}
Lots(0), {Number lots in a margin, determined by Delta}
Equity_0(0), {Initial capital to trade one lot}
FRDelta(0);
Vars: LL(99999), HH(0), Trend(0), Volat(TrueRange);

MP = MarketPosition;
Volat = .5 * TrueRange + .5*Volat[1];

if MP <= 0 then begin
if Price < LL then LL = Price;
if Price cross above LL + PtUp*.01* BigPointValue then begin
Trend = 1;
HH = Price;
end;
end;
if MP >= 0 then begin
if Price > HH then HH = Price;
if Price cross below HH - PtDn*.01* BigPointValue then begin
Trend = -1;
LL = Price;
end;
end;

If trend = 1 then Risk = PtDn {+ Slippage};
If trend = -1 then Risk = PtUp {+ Slippage};

OpenAssuredProfit = MaxList((Trend*(close - EntryPrice) - Risk)*Num, 0);
Equity = (InitCapital + NetProfit + OpenAssuredProfit); {Reduced Total Equity}

if MM_Model = 0 then { Equal lots}
Num = MM;

if MM_Model = 1 then { All Resources}
Num = Floor(Equity/Marg/close);

if MM_Model = 2 then { MM Units per Fixed Money }
Num = Floor(Equity/Marg/MM);

if MM_Model = 3 then { MM Equal Units }
Num = Floor(Equity/Marg/close/MM);

if MM_Model = 4 then { % Risk Model }
if Risk <> 0 then
Num = floor(MM*Equity *.01/Risk/Marg);

if MM_Model = 5 then { % Volatility Model }
if Volat <> 0 then
Num = floor(MM*Equity *.01/Volat/BigPointValue/Marg);

if Num < 1 then Num = 1;
if Num > Equity/close/Marg then Num = Equity/close/Marg;

{ Entries}
if trend = 1 and trend[1] <> 1 then buy("LE") num contracts at market;
if trend = -1 and trend[1] <> -1 then sell("SE") num contracts at market;