最近は触っていませんでしたが、私はリスク資産の振る舞いを考える際にプログラムを組んでみる事があります。この記事では、私が組んだC++プログラムの1つである「正規分布ジェネレータ(beta)」を紹介してみます。
※動作・クオリティは保障しません
1 #include<iostream>
2 #include<stdlib.h>
3 using namespace std;
4
5 int main(){
6 //random seed
7 srand(10000);
8
9 int last,open;
10 open=100;
11
12 // random walk
13 for(int ii=0;ii<100000;ii++){
14 last = 0;
15 for(int jj=0;jj<529;jj++){
16 int n=rand()%2;
17
18 if(n==1) last=last+1;
19 else if(n==0) last=last-1;
20 }
21 cout << (open+last)/(open*1.0) << endl;
22 }
23 return 0;
24 }
このソースをコンパイルし、実行すると
1.15
0.95
0.97
0.91
0.61
0.87
1.07
0.55
0.61
1.35
0.93
0.53
0.75
・
・
・
・
こんな数列が10万個出て来ます。
この数列は、「だいたい」平均1で、標準偏差が 23% (0.23)の正規分布になります。
ヒストグラムに入れてガウスフィットすると、確かにフィットがノリます。
※クリックで拡大します
標準偏差を n% に設定したい時は、15行目の jj < 529 を jj < n^2 に換えれば O.K. です。
※繰り返しますが、動作・クオリティは保障しません
- 関連記事
-