Jim Killingsworth

The Dis­tri­b­u­tion of Price Fluc­tu­a­tions

Are price fluc­tu­a­tions in the fi­nan­cial mar­kets nor­mal­ly dis­trib­ut­ed? If I un­der­stand his­to­ry cor­rect­ly, it was French math­e­mati­cian Louis Bache­li­er who was the first to ex­plore this top­ic over 100 years ago. While Bache­lier’s work as­sumed that price move­ments were nor­mal­ly dis­trib­ut­ed, a math­e­mati­cian named Benoit Man­del­brot made some in­ter­est­ing ob­ser­va­tions that sug­gest oth­er­wise.

In the 1960s, Man­del­brot stud­ied his­tor­i­cal cot­ton prices and no­ticed the dis­tri­b­u­tion of price changes did not ex­hib­it prop­er­ties char­ac­ter­is­tic of a nor­mal dis­tri­b­u­tion. Thank­ful­ly, com­put­er tech­nol­o­gy and the avail­abil­i­ty of his­tor­i­cal price da­ta have im­proved dras­ti­cal­ly since the 1960s. Do­ing this sort of analy­sis is much eas­i­er to­day than it was in the past. In this post, I set out to per­form my own analy­sis of the dis­tri­b­u­tion of price fluc­tu­a­tions across a va­ri­ety of dif­fer­ent mar­ket­s.

An­a­lyz­ing the Da­ta

The first set of da­ta I want to look at is the dai­ly clos­ing price his­to­ry of an S&P 500 in­dex-track­ing fund. Specif­i­cal­ly, I’m us­ing the SP­DR S&P 500 ET­F. The tick­er sym­bol is SPY. This is cur­rent­ly one of the most heav­i­ly trad­ed in­stru­ments on the New York Stock Ex­change. Be­low is a chart of the dai­ly clos­ing prices over the past 21 years:

Figure 1

No­tice in the chart above that the ver­ti­cal ax­is rep­re­sents the nat­ural log­a­rithm of the clos­ing price, not the ac­tu­al clos­ing price it­self. We are con­cerned with the vari­ance of price change per­cent­ages here and not the change in re­al price, so we’re go­ing to an­a­lyze the log­a­rith­mic val­ues in this study in­stead of the ac­tu­al price val­ues. The chart be­low shows the dif­fer­ences in the log­a­rith­mic price val­ues from one day to the nex­t:

Figure 2

The price moves up and down seem­ing­ly at ran­dom. The mag­ni­tude of each price move varies from one day to the nex­t. Are these vari­a­tions in price move­ment nor­mal­ly dis­trib­ut­ed? It’s hard to tell just by look­ing at the chart. What stands out, how­ev­er, is that the vari­ance seems to be het­eroskedas­tic; there are pe­ri­ods of rel­a­tive calm fol­lowed by clus­ters of large moves up and down. While a study of het­eroskedas­tic­i­ty is be­yond the scope of this post, it is def­i­nite­ly a pe­cu­liar­i­ty worth point­ing out.

Ig­nor­ing these pock­ets of high and low vari­abil­i­ty, the ques­tion re­main­s: is the over­all vari­a­tion in price move­ment nor­mal­ly dis­trib­ut­ed? Would the da­ta bet­ter con­form to a dif­fer­ent prob­a­bil­i­ty dis­tri­b­u­tion in­stead? Let’s put the da­ta in a his­togram and see what it looks like:

Figure 3

The his­togram is over­laid with two prob­a­bil­i­ty den­si­ty func­tion­s, one rep­re­sent­ing a nor­mal dis­tri­b­u­tion and the oth­er rep­re­sent­ing a Laplace dis­tri­b­u­tion. The pa­ra­me­ters for each dis­tri­b­u­tion were es­ti­mat­ed us­ing the max­i­mum like­li­hood method. You can see my post ti­tled Nor­mal and Laplace Dis­tri­b­u­tions for de­tails on how to com­pute the max­i­mum like­li­hood es­ti­mates.

So are the price fluc­tu­a­tions nor­mal­ly dis­trib­ut­ed? Eye­balling the chart above, it ap­pears not. At least for this da­ta set. With­out mea­sur­ing it ob­jec­tive­ly, it cer­tain­ly looks like the Laplace dis­tri­b­u­tion is a bet­ter fit. But what hap­pens if we per­form this ex­per­i­ment on dif­fer­ent da­ta set­s? Will we get the same re­sults for dif­fer­ent as­set type­s? What if we study in­tra­day da­ta in­stead of dai­ly clos­ing prices? The fol­low­ing sec­tions present the re­sult of this analy­sis across a mix of dif­fer­ent mar­kets and time frames.

Ex­change-Trad­ed Funds

To get some broad­er in­sights re­gard­ing the be­hav­ior of price move­ments, I want to take a look at some more ex­change-trad­ed funds with a few dif­fer­ent un­der­ly­ing as­set type­s. Let’s ex­am­ine the dai­ly clos­ing prices for the fol­low­ing ETF­s:

Figure 4

Each da­ta set con­tains at least 10 years’ worth of data. Us­ing the same tech­nique as be­fore, we can plot the his­togram of dai­ly price fluc­tu­a­tions and over­lay the fit­ted nor­mal and Laplace den­si­ty func­tion­s. Here are the chart­s:

Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12

As you can see, the his­togram seems to fit the Laplace dis­tri­b­u­tion bet­ter than the nor­mal dis­tri­b­u­tion most of the time. But not al­ways. There are some cas­es that ap­pear to fit some­where in be­tween the nor­mal dis­tri­b­u­tion and the Laplace dis­tri­b­u­tion. A cur­so­ry look at UNG, for ex­am­ple, might sug­gest the vari­a­tion is nor­mal­ly dis­trib­ut­ed.

In­di­vid­ual Stocks (Dai­ly)

In­stead of look­ing at broad stock mar­ket in­dex­es, let’s see what hap­pens if we ex­am­ine in­di­vid­ual stock­s. Let’s con­sid­er the dai­ly clos­ing prices for the fol­low­ing stock­s:

Figure 13

Here are the chart­s:

Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23
Figure 24
Figure 25
Figure 26
Figure 27
Figure 28

Sub­jec­tive­ly, it seems like the Laplace dis­tri­b­u­tion is a bet­ter over­all fit.

In­di­vid­ual Stocks (In­tra­day)

What hap­pens if we study in­tra­day stock prices in­stead of dai­ly clos­ing prices? Let’s per­form the analy­sis on the same set of stocks us­ing one-minute price da­ta in­stead of end-of-day prices. Here are the chart­s:

Figure 29
Figure 30
Figure 31
Figure 32
Figure 33
Figure 34
Figure 35
Figure 36
Figure 37
Figure 38
Figure 39
Figure 40
Figure 41
Figure 42
Figure 43

Each da­ta set con­tains five days’ worth of da­ta. Us­ing in­tra­day da­ta in­stead of dai­ly data does­n’t seem to change the out­come with re­spect to the gen­er­al shape of the dis­tri­b­u­tion.

Volatil­i­ty In­dex

I’m cu­ri­ous what hap­pens if we ap­ply this analy­sis to the val­ues of the CBOE Volatil­i­ty In­dex. This in­dex is a mea­sure of im­plied volatil­i­ty based on the mar­ket price of S&P 500 op­tion­s. While not a trad­able in­stru­ment in its own right, there are trad­able de­riv­a­tives based on this in­dex. Here is a chart of dai­ly clos­ing val­ues cov­er­ing a span of about 19 years:

Figure 44

Con­sis­tent with the oth­er da­ta sets used in this post, the “price” val­ues on this chart are the log­a­rith­mic val­ues of the volatil­i­ty in­dex, not the ac­tu­al in­dex val­ues. The VIX is quot­ed in per­cent­age points, so the use of log­a­rith­mic val­ues may or may not be the best ap­proach here, de­pend­ing on how one might go about trad­ing volatil­i­ty de­riv­a­tives. I sus­pect that study­ing the be­hav­ior of volatil­i­ty in­stru­ments might war­rant some spe­cial con­sid­er­a­tion, but that’s be­yond the scope of the post. For our pur­pos­es here, let’s treat the in­dex the way we would any oth­er trad­able in­stru­men­t. The dai­ly “price” dif­fer­ences look like this:

Figure 45

The vari­ance seems to be a bit more con­sis­tent than that of the price dif­fer­ences of the S&P 500 ETF shown ear­lier. What does the his­togram look like? Not much dif­fer­ent than the in­di­vid­ual stocks and ETFs ex­am­ined ear­lier:

Figure 46

It looks like the changes in im­plied volatil­i­ty vary from one day to the next ac­cord­ing to a dis­tri­b­u­tion that might be some­where be­tween a nor­mal dis­tri­b­u­tion and a Laplace dis­tri­b­u­tion. Here is a his­togram of five days’ worth of one-minute in­tra­day val­ues:

Figure 47

The in­tra­day da­ta ap­pear to fit the Laplace dis­tri­b­u­tion bet­ter than the nor­mal dis­tri­b­u­tion. I was ex­pect­ing the val­ues of the volatil­i­ty in­dex to have dif­fer­ent char­ac­ter­is­tics than val­ues from the oth­er da­ta set­s, but that does­n’t seem to be the case.

For­eign Ex­change

Do the ex­change rates be­tween dif­fer­ent fi­at cur­ren­cies ex­hib­it the same prop­er­ties as the da­ta sets stud­ied above? Let’s con­sid­er the ex­change rate be­tween the eu­ro and the US dol­lar. Here is a chart of the dai­ly ex­change rate val­ues over a pe­ri­od of about 18 years:

Figure 48

As be­fore, we’re us­ing the log­a­rith­mic val­ues here in­stead of the re­al val­ues. Here is a plot of the dai­ly dif­fer­ences in log­a­rith­mic ex­change rate val­ues:

Figure 49

There does seem to be some het­eroskedas­tic­i­ty, but it’s not as pro­nounced as what we saw with the S&P 500 ET­F. Here is the his­togram:

Figure 50

Here we see a fa­mil­iar pat­tern. It takes the shape rough­ly of a Laplace dis­tri­b­u­tion.

Cur­ren­cy Pairs (Dai­ly)

To see if the pat­tern hold­s, let’s take a look at the dai­ly ex­change rates of a few more cur­ren­cy pairs. Here is the list:

Figure 51

Here are the chart­s:

Figure 52
Figure 53
Figure 54
Figure 55
Figure 56
Figure 57
Figure 58
Figure 59

And here we see the fa­mil­iar pat­tern once again.

Cur­ren­cy Pairs (In­tra­day)

For the same cur­ren­cy pairs as above, let’s ex­am­ine the dis­tri­b­u­tion of price fluc­tu­a­tions for one-minute in­tra­day da­ta over a span of 24 hours:

Figure 60
Figure 61
Figure 62
Figure 63
Figure 64
Figure 65
Figure 66
Figure 67

No­tice that in some of these charts there is a large spike in the con­cen­tra­tion of price changes at or around ze­ro. I sus­pect this is be­cause there are cer­tain times of day when these in­stru­ments are thin­ly trad­ed and don’t move very much.

Cryp­tocur­ren­cies

A num­ber of dif­fer­ent cryp­tocur­ren­cies have emerged in the past few years. And some of them have made enor­mous price moves. Can we ex­pect the price fluc­tu­a­tions of these dig­i­tal as­sets to ex­hib­it the same char­ac­ter­is­tics as stocks and cur­ren­cies? Let’s ex­am­ine a few of the most pop­u­lar ones:

Figure 68

Here are the chart­s:

Figure 69
Figure 70
Figure 71

For all three of these da­ta set­s, the vari­a­tion in dai­ly price moves does not con­form to the nor­mal dis­tri­b­u­tion. In fac­t, the dis­tri­b­u­tion of price move­ments seems to be even more clus­tered around the cen­ter than would be ex­pect­ed for a Laplace dis­tri­b­u­tion.

Draw­ing Con­clu­sions

Can we draw any con­clu­sions from this ex­per­i­men­t? I think it’s safe to say price fluc­tu­a­tions are not al­ways nor­mal­ly dis­trib­ut­ed. In all da­ta sets ex­am­ined, the kur­to­sis is more lep­tokur­tic than a nor­mal dis­tri­b­u­tion to some de­gree. But would it be ap­pro­pri­ate to use a Laplace dis­tri­b­u­tion to mod­el price move­ments?

Vance Har­wood from Six Fig­ure In­vest­ing wrote an in­ter­est­ing ar­ti­cle as­sert­ing that the Laplace dis­tri­b­u­tion should be used in­stead of the nor­mal dis­tri­b­u­tion to mod­el stock price move­ments. You can read it here:

His analy­sis in­cludes a deep­er study of the tails of the dis­tri­b­u­tion. While he ac­knowl­edges the ob­served price da­ta in­clude a high­er fre­quen­cy of large moves than what would be ex­pect­ed from a Laplace dis­tri­b­u­tion, I agree with his as­sess­ment that the Laplace dis­tri­b­u­tion is a bet­ter al­ter­na­tive com­pared to the nor­mal dis­tri­b­u­tion.

The Busi­ness Fore­cast­ing blog au­thored by Clive Jones in­cludes a whole se­ries of ar­ti­cles on the top­ic of price change dis­tri­b­u­tion­s:

This se­ries cites plen­ty of ev­i­dence that fa­vors the use of the Laplace dis­tri­b­u­tion to mod­el price move­ments. Nonethe­less, as I have il­lus­trat­ed in this post, there are still some cas­es where the his­togram does not ex­hib­it the pointy-shaped peak char­ac­ter­is­tic of the Laplace dis­tri­b­u­tion.

Based on his study of his­tor­i­cal cot­ton prices, Man­del­brot claims that price fluc­tu­a­tions are best de­scribed by a fam­i­ly of sta­ble dis­tri­b­u­tions. These dis­tri­b­u­tions are more round­ed at the peak than the Laplace dis­tri­b­u­tion. I cur­rent­ly don’t know enough about this class of prob­a­bil­i­ty dis­tri­b­u­tions to draw my own con­clu­sion­s, but I think it’s an area wor­thy of fur­ther study.

An­oth­er pos­si­bil­i­ty is that the dis­tri­b­u­tion of price fluc­tu­a­tions could take the form of a gen­er­al­ized nor­mal dis­tri­b­u­tion. This is a fam­i­ly of dis­tri­b­u­tions that can take the shape of a nor­mal dis­tri­b­u­tion, a Laplace dis­tri­b­u­tion, or some­thing else de­pend­ing on the val­ue of a shape pa­ra­me­ter. I think this might be an­oth­er area worth fur­ther in­ves­ti­ga­tion.

Ac­com­pa­ny­ing source code is avail­able on GitHub.

Com­ments

Show comments