今回は、前の記事で取得したビットコインのデータを元に、どうやって移動平均を計算するのかを勉強していきます
移動平均の計算方法
キノコードさんの動画で、Pythonで株価の移動平均を計算する方法が紹介されています
動画で取り扱われているデータは株価ですが、ビットコインにも応用できそうなので、自分でプログラムを書いて消化しながら使っていこうと思います
Pythonのpandasというライブラリのrollingというメソッドを使うと過去何日間の平均が計算できます
pandas:主に表計算をするためのライブラリ
試しに前に取得したデータを使って、移動平均を計算してみます
前回取得したデータ
下が取得したデータで、左からビットコインのその日の高値、安値、始値、終値、出来高、調整後の終値です

ビットコインの2次元データから調整後の終値(Adj Close)を抽出する

移動平均を計算するために、表のAdj Closeの列だけを抽出します
priceの型はシリーズです
シリーズ:pandasで計算するときの1次元配列みたいなもの

終値データから5日平均と25日平均を計算し、2次元データに書き加える
priceというシリーズを使って、移動平均を計算します
理屈は詳しくわかりませんが、rollingというメソッド(関数)を使うと移動平均が計算できるらしいので、これを使っていきます
短期移動平均を5日、長期移動平均を25日としました


・・・

右に2列、移動平均が追加されています
sma1が5日移動平均、sma2が25日移動平均です
sma:移動平均の英略

5日平均はその日から過去5日間の終値の平均のことで、上の図のようにちゃんと計算できているみたいです
まとめ
2.データから単純移動平均を計算するには、
・ライブラリのpandasをインポートする
・終値のデータを抽出する
・終値データから5日平均と25日平均を計算し、2次元データに書き加える
の3ステップが必要なことがわかりました
今回の計算結果をグラフにするとこんな感じになります
青:終値
黄:長期(25日)移動平均
緑:短期(5日)移動平均
上のグラフから、今(12/28)の状態は
短期(5日)移動平均 > 長期(25日)移動平均
であるため、買いであるといえます
コメント