機械学習で株価予測(Protraを使ったバックテスト解決編)

前回は「Backtrader」を使って学習済みデータでProtra風バックテストを試み断念しました。
 

 

そもそもProtra風にバックテスト結果を出力したいなら、Protraを使うべきでは?

 

 

いやいや・・。

Protraは学習データ「pickle」は読み込めないし、そもそも機械学習の機能なんて無いでしょ?
 

無理無理。

考えるだけ無駄無駄・・・。

[引用] ジョジョの奇妙な冒険
 

だから、違う方法を模索してるんだよ?
 

次は、どのライブラリ試そうかなぁ〜♪
 

 

ん?・・・まてよ。

今回はようやく解決編です。

Protraで学習済みデータのバックテスト

Protraで学習済みデータ「pickle」のロードは無理です。

じゃあ、どうするか?

 

 

購入銘柄、購入日をProtraに直接渡してあげる

 

 

再利用性はありませんが、例えば次のようなファイルを作成します。

これは学習済データを使ってアルゴリズムが「買い」と判断した日付の条件式リストです。

これを「LightGBM.pt」とでも名前を付けて「lib」フォルダの中に配置します。

次に、この関数を読み込みます。

ソースコードが長いように感じますが、今までのストラテジーのテンプレートそのままです。

新規変更箇所はたった2箇所です。

これで、バックテストが実施可能です。

シンプル学習モデルの有効性検証

過去のストラテジーテンプレートを使ったので次の通りです。

【資金管理条件】

  • 1) 銘柄選定(トヨタ)
  • 2) 1回の購入資金 (100万円)
  • 3) 投資総額 (1000万円)
  • 4) 単利利用

【買いルール】

  • 1) LightGBMがSMA、RSI、BB、MACD から自動買い選定

【手仕舞いルール】

  • 1) 3日経過

バックテスト結果

利益曲線は次のとおりです。

グニャグニャな曲線です。

久しぶりにここまで曲がったグラフを見ました。

が、なぜか近年の上昇率が極めて高いです。

まとめ

機械学習の学習モデルを使ってProtraでバックテストが可能なことが分かりました。

その結果、やはりExcel等でシュミレーションした時以上に悪い結果になりました。

 
 

ただし、落胆していません。

ここから機械学習の知識とシステムトレードの知識を融合すれば、確実にストラテジーが進化していきます。

今まではストラテジーを作っては捨てていましたが、それが無くなります。

すなわち、無駄と思われたストラテジーも一つの特徴データとして活用されます。

ストラテジー作りは、パラメータチューニングして新しいテクニカル指標を試して試行錯誤する・・・と言う作業の連続でした。

機械学習を使えば、学習モデルの構築に工数を割くことになります。

要するに「のめり込めば機械学習にも詳しくなり、株でも儲かる可能性が出てくる」という事です。

すなわち一挙両得!!

 
 

これは人類にとっては小さな一歩だが、一人の人間 にとっては偉大な飛躍である。

 
 

が、いつもの通り・・・仕組みができたら満足して飽きが・・・。

ソースコード

機械学習側のProtra変換する部分の抜粋です。

さすがに、「Protra + 機械学習」という異色の組み合わせで検討してきるユーザは世の中にいないと思うので全コードは不要かなと思ってます。

タイトルとURLをコピーしました