2009-08-26 16 views
1

私はランクのボラティリティを決定しようとしています。どのようにしてボラティリティを測定できますか?

より具体的には、ランクは、Xデータポイントに対して1から16まで(データポイントの数は最大30まで変化します)です。

私はこのボラティリティを測定し、それを何とかパーセンテージにマップしたいと考えています。

私はちょうどできるだけ簡単な方法でこれをコーディングしたいので、私に複雑な数式を吐き出すしないでください:)

数学オタクじゃありません。

+0

回答に何か不足していますか? –

答えて

3

最も簡単な最初のパスは、Xデータポイントの標準偏差です。

2

あなたが探しているのはStandard Deviationだと思います。対処する数式がありますが、計算するのは難しくありません。

1

あなたは本当に簡単な何かをしたい場合は、揮発性として連続ランク間の絶対差の平均を取ることができます。これには再帰的なボーナスが追加されています。初期化のために、私たち、この:

double sum=0; 
for (int i=1; i<N; i++) 
{ 
    sum += abs(ranks[i]-ranks[i-1]); 
} 
double volatility = sum/N; 

はその後のボラティリティを更新するための時間N + 1での新しいランクはあなたがKがあなたのボラティリティ測定はボラティリティの変化に適応する速度を決めるパラメータKを導入し利用可能な場合。

double K=14 //higher = slower change in volatility over time. 
double newvolatility; 
newvolatility = (oldvolatility * (K-1) + abs(rank[N+1] - rank[N]))/K; 

これも(この場合のランクにおける差分絶対値の)moving averageとして知られている:Kはしかし、「減衰時間」として、またはsomesuchのものとすることができるので、より高いKは、遅い適応を意味します。

1

小さなサンプルセット(最大30データポイント)があり、標準偏差が外れ値の影響を受けやすいとすれば、私はinterquartile rangeをボラティリティの尺度として使用することをお勧めします。それは簡単な計算であり、あなたの小さなサンプルセットに広がったデータの意味のある表現を与えるでしょう。

関連する問題