日経平均ボラティリティー・インデックス(日経平均VI)を高速フーリエ変換したが、なんもなかった
なんもなかった。が、なんもなかったなりの備忘録。
データの取得
Quandle経由で取得。元のソースはコメントに記載。
PLOTを見る限り、ちゃんとした元の値っぽい。
library("Quandl") # Sorce: https://www.quandl.com/data/NIKKEI/VLTL-Nikkei-Stock-Average-Volatility-Index # Download Nikkei VI vi <- Quandl("NIKKEI/VLTL") # Plot plot(vi$Date, vi$Close)
データをスケーリング(平均を0化のみ)し、FFTかけてPLOT。
データ自体はFFTの掟的にナイキスト周波数以降はぶった切ってる。
この図から見るに、低周波数=長周期が支配的っぽい。
# Scaling x <- vi$Close - mean(vi$Close) # FFT and convert into powerspectrum vi_fft <- (abs(fft(x))^2)[1:(nrow(vi)/2)] # Frequency range f <- (seq(0, nrow(vi)-1, 1)/(nrow(vi)))[1:(nrow(vi)/2)] #Plot frequency v.s. power spectrum(1) plot(f, vi_fft)
↑が見づらいので、高周波数領域をやや削る。
#Plot frequency v.s. power spectrum(2) plot(f[1:100], vi_fft[1:100])
周波数だとわかりにくいので、周波数→時間(周期)での表示に変換
500日強の周期を持つ波が強そうだが、これはノイズのlevel?&トレーディング的にそんなに待てないので、放置で。。。
#Plot frequency v.s. power spectrum plot(1/f[1:100], vi_fft[1:100])
もうちょっと周期の短いところだけをPLOT。
う、うーん解釈に苦しむスペクトルだ。
#Plot frequency v.s. power spectrum plot(1/f[5:100], vi_fft[5:100])
おしまい。
FFTのチェック
横軸の扱いがちょっと怪しいので確認。
周期123の正弦波のピークがちゃんとそこに立ってるかを確認(図示)。
# FFT check T <- 123 t <- (0:500) f <- (0:500)/500 wave = sin(2*pi*t/T) plot(1/f[1:50], abs(fft(wave))[1:50])
ついでに値も念のため確認。おおよそ対応する日にち(125日)にピークがあるので、あってるだろと。
> 1/f[1:50] [1] Inf 500.00000 250.00000 166.66667 125.00000 100.00000 83.33333 71.42857 62.50000 55.55556 50.00000 45.45455 [13] 41.66667 38.46154 35.71429 33.33333 31.25000 29.41176 27.77778 26.31579 25.00000 23.80952 22.72727 21.73913 [25] 20.83333 20.00000 19.23077 18.51852 17.85714 17.24138 16.66667 16.12903 15.62500 15.15152 14.70588 14.28571 [37] 13.88889 13.51351 13.15789 12.82051 12.50000 12.19512 11.90476 11.62791 11.36364 11.11111 10.86957 10.63830 [49] 10.41667 10.20408 > abs(fft(wave))[1:50] [1] 1.8103671 2.9863890 6.1342361 14.6075087 246.2353106 21.4560098 11.1087158 7.7422349 6.0391541 4.9956202 [11] 4.2832646 3.7621472 3.3622089 3.0443135 2.7847859 2.5684082 2.3849216 2.2271388 2.0898629 1.9692353 [21] 1.8623257 1.7668661 1.6810707 1.6035134 1.5330400 1.4687057 1.4097291 1.3554581 1.3053438 1.2589205 [31] 1.2157905 1.1756122 1.1380900 1.1029669 1.0700187 1.0390482 1.0098819 0.9823661 0.9563642 0.9317544 [41] 0.9084279 0.8862869 0.8652434 0.8452180 0.8261388 0.8079406 0.7905640 0.7739551 0.7580643 0.7428466