ねほり.com

何もないから何かみつかる

機械学習で株価予測(Backtraderでバックテスト調査)

   

中国・武漢で発生した「新型コロナウイルス(新型肺炎)」が、世界に拡散中です。

これにより投資家心理を圧迫し、アジアの主な株式市場が春節(旧正月)で休場となり商いが薄いなか、日本株のヘッジ売りが目立つ状況です(483円安)。

会社の取引先の社員もコロナウイルスに感染したらしく、社内でもマスク人口が拡大しています。

 

 

Pythonのバックテストライブラリ「Backtrader」は開発・コミュニティも活発で自由度も高そうです。

ですが、海外含めてマトモにストラテジー組んで運用している人は少ないのでは?

と思うほどサンプルを超えた情報が少ないです。

FX用なのか、ショート・ロング、pipsなどの情報もあり、複数銘柄売買もよく分かりません。

まず知りたいのは、次の機能です。

  • 機械学習済のデータのバックテストが可能か?

加えて、バックテスト結果を見るために大事なのは、

「Protraレベルの分析機能を持っているのか?」

だと思ってます。

  • バックテスト結果の各種計算算出
  • 複数銘柄にまたがるバックテスト
  • 市場全体の傾向指標の追加(騰落レシオ等)
  • 空売りや指値買い
  • 単利計算、複利計算

この辺りを調査するために、Backtraderを利用してみます。

ただし、のめり込むと目的(学習データの利益確認)と施策(Backtraderの理解)が変わってしまうので注意です。

※ 私はFFS理論のD因子(拡散型)タイプ

sklearnの学習データの保存&ロード

今回は学習済みのモデルを利用する方法の一つとして pickle を扱い方を調べてみます。

学習済みモデルを保存する

30MB程度のファイルが出来ました。

別のバージョンの Python からも読み込むことが考えられるときは protocol オプションに 2 を指定します。

これでPython 2.3 以降であれば保存したモデルを復元できるようになります。

学習済みモデルをロードする

ロードも簡単です。

実際にロードした学習データで計算可能な事が確認できました。

Backtraderでpickleの利用方法

・・・。

調べてもサンプルがありません。

Backtraderの売買方法を完全に理解すれば可能だと思いますが・・・目的と施策が変わってしまう・・・。

Backtraderで複数銘柄の扱い方

可能なようです。

bactrader_sample.pyを見る限り、銘柄数読み込んで「cerebro.adddata」に渡しているように見えます。

ただ、読み込んだ銘柄数だけグラフ表示が別になります。

Multi Exampleでは、フォルダ内のCSVを読み込んで利用する方法が書かれています。

結構、面倒なんだね。

Backtraderを使った学習データ利用

ドキュメントは下記にあります。

https://www.backtrader.com/docu/analyzers-reference/

が、説明が少なくて何の数値が算出されているのか分かりにくいです。

Protra風に出力する

とりあえずやってみました。

結果は次のようになります。

まだ知識が乏しいので合っているかどうか分かりません。

が、なんかやり切った感です。

まとめ

出力結果がProtraっぽくなりました。

 

 

よし、じゃあ三点チャージ法作ったり、今までのストラテジー移植方法でも調べるか!

 

 

と、売買部分を調査し始めて気づきました。
 

 

肝心の「機械学習の結果を用いたバックテスト」が分かっていない・・・

 

 

この施策だと目的達成には遠そうな気がします。

・・・

本質を見失わないようにしよう。 

うん、そうだ!

よく気づいた自分!
 

 

・・・で、更に上位の目的は何だっけ?
 

 

さらに、機械学習で株価予想するのは何のためだっけ?
 

 

そもそも、株価予想は何のためだっけ?
 

 
あれ??

ソースコード

 - 2020年(社会人16年), 機械学習, テクノロジー, システムトレード

  関連記事

Kaggle の Titanic Prediction Competition でクラス分類(scikit-learn編)

統計学や人工知能(AI)を駆使してデータを分析し、課題の発見や解決に導く「データ …

研究は3年間「形状復元」をやってきましたが・・・

February 26, 2005 本題こっち。 HTTP_USER_AGENT …

Kaggleの概要を理解する(Titanicの次に向けて)

これまで、Kaggleの「Titanic: Machine Learning f …

トレシズ氏の移動平均乖離率(出来高)の有効性検証(1/2)(システムトレード)

トレシズ氏は、イザナミを専門にシステムトレードの開発・公開・販売を行っている人物 …

MM手法(BB、RSI、ADX、MACD)の有効性検証(protraシストレ)

少し複雑な投資手法のバックテストにチャレンジしてみます。 MM法 増田正美氏が考 …

Developers Summit 2013 2日目に参加

会社を休んで、Developers Summit 2013に行ってきました。 去 …

機械学習で株価予測(Two SigmaのKaggleコンペを確認)

計量的・実証的な投資におけるアルファは質の高いサーベイからもたらされるものであり …

バックテスト完了後に売買結果をテキストに保存する(システムトレード)

過去のイザナミ愛用者のブログを読み漁ると、2015年頃までは独自ストラテジー・開 …

千葉市内の一級河川と魚種の再確認

近年、印旛沼水系でも頻繁に見掛ける様になった「お魚キラー」ですが、「ビンドウ」を …

Developers Summit 2012 に行ってきました

「Developers Summit 2012~10年後も世界で通じるエンジニア …