こんにちは。

今回は再び時系列解析です。前回の記事ではTwintを使ってツイートと株価、正確には日経ですが関係があるかを見てました。結論としては処理があまりにもしんどくて良いデータは得るまでに至らなかったのですが、データを増やして行えば良いんじゃないかと言うことでした。今回は こちらの記事を参考に時系列の勉強をしてみました。ちょっと情報量が多いので何回に分けてやっていきたいと思います。ところで、機械学習は一旦おいておいて、トレーダーの人はどうやって判断を下しているのでしょうか?僕はガチトレーダーではないのですが
  • ファンダメンタル
  • テクニカル
の2種類の分析を行っています。前者はニュース、指標とかです。後者は移動平均(前回やりましたね)、ボリバンとかです。データ分析といえば後者になると思います。Twintを使った分析については五分五分?かもしれませんが。そこで今回はテクニカルに集中して日経のデータを簡単に分析しました。具体的には
  • 指数平滑移動平均(EMA)
  • MACD
  • ボリンジャーバンド
  • 高速フーリエ変換(FFT)
をPythonで行いました。初めの3つはまさにテクニカル分析です。一方でFFTはテクニカルと言うよりはデータ分析になるんですかね。時系列で使われている例は初めてみました。一般的に音声や画像などで使われることが多いようです。

詳しい説明はコード内に書いてあるのでここでは簡単にまとめます。

指数平滑移動平均(EMA)

移動平均の改良バージョン。具体的には各データに対して重みを指数関数的に与える。より早くかつ正確なトレンドが見られる。

MACD

MACD = 短期のEMA- 長期のEMA

と言う式で表される。一般的に短期長期は12,26である。MACDがシグナルを抜き上がる、業界用語ではゴールデンクロスの時にBUY、反対も同様にMACDがシグナルを下げ抜く、デッドクロスの時にSELLというように判断できる。

ボリンジャーバンド

トレンドの確認に使われる。データに対するガウス分布の仮定から標準偏差1 \sigma , 2<em> </em>\sigmaそれぞれに対して68%、95%区間と言われる幅のこと。具体的には[\mu - \sigma, \mu + \sigma ], [\mu - 2\sigma, \mu + 2\sigma ]のそれぞれにデータが入る確率が68%、95%になる。

統計検定をやっている人にはポピュラーなんじゃないだろうか。

高速フーリエ変換(FFT)

時系列データを三角関数つまり、サイン、コサインで分解しようと言うこと。高速とは離散フーリエ変換を高速に行うからである。
では実際にコードを見ながらの方がいいと思うのでそうすることにしよう。
これは余談ですが、色々ハッキング系についての情報量が溜まってきたのでそろそろ記事を書きたいんですが画像を公開する際にIPアドレスとかMACアドレスとかどこを隠して公開すればいいかわからないんですよね。よければコメントください。でわ。