モデルを改善しようシリーズ① volume追加
はじめに
当記事は、
のBaseCodeをどうにかして、
モデルを改善しようseriesです。
タイトルのように、 特徴量にvolumeをくわえていきます。
目次
背景
volumeは、単位時間あたりにどれだけの取引が行われたかを示します。
ティック(価格が動いた回数)であったり、
売買代金であったり、
取引枚数であったりと
様々な種類のボリュームが存在します。
基本的にはボラティリティや流動性を表す指標という理解で問題ないかと思われます。
特徴量を作っていこう
今回は非常に簡単です。
利用する特徴量をまとめた features
に"volume"
と記述するだけです。
GMOからOHLCVをダウンロードしてくる際に、
既にdfにはvolumeが含まれます。
これまではテクニカル指標を作成するために利用していた
volumeカラムを、特徴量として使うよ、と指示してあげるだけでOKですね。
設計
featuresに"volume"
コード
features = sorted([ "volume", 'ADX', 'ADXR', 'APO', 'AROON_aroondown', 'AROON_aroonup', 'AROONOSC', 'CCI', 'DX', 'MACD_macd', 'MACD_macdsignal', 'MACD_macdhist', 'MFI', # 'MINUS_DI', # 'MINUS_DM', 'MOM', # 'PLUS_DI', # 'PLUS_DM', 'RSI', 'STOCH_slowk', 'STOCH_slowd', 'STOCHF_fastk', # 'STOCHRSI_fastd', 'ULTOSC', 'WILLR', # 'ADOSC', # 'NATR', 'HT_DCPERIOD', 'HT_DCPHASE', 'HT_PHASOR_inphase', 'HT_PHASOR_quadrature', 'HT_TRENDMODE', 'BETA', 'LINEARREG', 'LINEARREG_ANGLE', 'LINEARREG_INTERCEPT', 'LINEARREG_SLOPE', 'STDDEV', 'BBANDS_upperband', 'BBANDS_middleband', 'BBANDS_lowerband', 'DEMA', 'EMA', 'HT_TRENDLINE', 'KAMA', 'MA', 'MIDPOINT', 'T3', 'TEMA', 'TRIMA', 'WMA', ])
結果
feature importance
BaseCodeのfeature importance
volume追加後のfeature importanse
累積リターン
BaseCode
volume追加後
考察
特徴量重要度からわかるように、volumeカラムは分析に大きく貢献するようです。
そもそもの話、volumeから作成している特徴量も多いので、
元となるvolume見たほうが早い ということなのかもしれません。
累積リターンに関しては、2.5増加しています。
累積リターンは割合なので、百分率にすると、 250%
になります。
予測精度の向上により、利回りが250%改善したということですね。