ねほり.com

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

機械学習による株価予測(導き出たのは斉藤正章氏の手法)

   

11回目ではファンダメンタルズ指標を追加することで「AUC=0.70」を超えました。

13回目では過学習(オーバーフィッティング)を抑え学習モデルを可視化しました。

これは、果敢にも人類の夢「株の自動売買で億り人」に挑戦し、詰みかけている一人の中年男の物語です。

前回までで銘柄毎の分類器を作ることは、過学習に陥る可能性が高い事が分かりました。

 

今回は、交差検証で作成された学習モデルを保存し、日経225採用銘柄に適用してみます。

一般的なシステムトレードに近い形です。

交差検証の学習モデルの保存・ロード方法

一般的な交差検証のサンプルル実装は次のようになっています。

学習モデル構築中にテストデータも検証しています。

そして分割数で割っています・・・これは何だろう?

今回の例では、交差検証のために「学習データ」と「検証データ」に5回分割を試みました。

それぞれの学習により構築された「学習モデル」を使って「テストデータ」を予測し「分割数」で割ることで平均値を取っているようです。
 

これが正しいのであれば各学習モデルを保存し、「テストデータ」に適用して「分割数」で割ってあげるだけです。

結果を見る限り同じ結果が得られたので正しいと仮定して、日経平均255採用銘柄を使って確認してみます。

バックテスト結果

日経255採用銘柄に対してmax_depth=4で正解率60%を抽出してバックテストした検証結果は次のとおりです。

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

糞じゃねーか!!!

max_depth=2で色々と実験してみる

このままでは引き下がれないので、max_depth=2にして入力データを変えながら実験してみます。

もはや機械学習でも何でもなく、

  • 株価予測には重要な指標とパラメーターは何なのか?
  • そのストラテジーの構築方法は?

を確認しているに過ぎません。

1998/01/05~2015/12/14 を学習データに使った場合

日経255採用銘柄に対してmax_depth=2で正解率60%を抽出してバックテストした検証結果 (skiprows=0, skipfooter=1000)は次のとおりです。

学習モデル(5つの交差検証の一つ)は次のとおりです。

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

2006/02/20~2019/10/24 を学習データに使った場合

日経255採用銘柄に対してmax_depth=2で正解率60%を抽出してバックテストした検証結果 (skiprows=2000, skipfooter=60)は次のとおりです。

学習モデル(5つの交差検証の一つ)は次のとおりです。

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

2002/01/25~2019/10/24 を学習データに使った場合

日経255採用銘柄に対してmax_depth=2で正解率60%を抽出してバックテストした検証結果 (skiprows=1000, skipfooter=60)は次のとおりです。

学習モデル(5つの交差検証の一つ)は次のとおりです。

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

1998/01/05~2020/01/24 を学習データに使った場合

日経255採用銘柄に対してmax_depth=2で正解率60%を抽出してバックテストした検証結果 (skiprows=0, skipfooter=0)は次のとおりです。

学習モデル(5つの交差検証の一つ)は次のとおりです。

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

考察

ここまでの実験が正しいのであれば、導ける結果は次のとおりです。

  • 5日間移動平均との乖離率は重要な指標
  • 15日間移動平均との乖離率は重要な指標
  • (日経255採用銘柄のみの考察だが)逆張りは有効

と、機械学習は教えてくれました。

そして、これは「斉藤正章氏の逆張り手法」とほぼ同じストラテジーです。

まとめ

一ヶ月かけて機械学習で作成できたストラテジーは斉藤正章氏の手法でした・・・。

そして、今回の取り組みで作成したストラテジーは、次のような魅力の無いものです。

  • 勝率60%未満
  • プロフィットファクター2.0未満
  • 年利5%未満

また、案の定Log関数のような利益曲線となりました。

手動のストラテジーのパラメータ調整やどの指標を使うべきか?の支援ツールとしては意味がありそうです・・・どこかの会社が作りそうですね。

要するに、作ったストラテジーに、あとは何の指標を追加すれば勝率が上がるか?最適なパラメーターは何?を自動的に出力はできそうです。

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

  関連記事

機械学習を使った株価予測(pandas-profiling、create_tree_digraphで可視化する)

株式投資は、予測するものではなくルールに沿って選ぶものです。 その際に、選んだ銘 …

テニスコートの自動キャンセル確認&予約システム

2008年05月31日(土) 何か他にも活用できるかも テニスコートの自動キャン …

「Make: Tokyo Meeting 07」に行った感想

2011年12月03日(土) 「Make: Tokyo Meeting 07」に …

ドクター田平氏とダイヤモンドザイのテクニカル指標の有効性検証(protraシストレ)

浪花のカリスマ・トレーダーのドクター田平氏とダイヤモンドザイの「私のFXバイブル …

テレビを捨てた放送局、テレビを捨てた家電メーカー

「テレビの視聴者離れが進み、ネットコンテンツが充実し、テレビはオワコン」 と、よ …

KaggleのDigit Recognizerで画像分析(Pytorch編)

これまでディープラーニング(深層学習)の実装にはKerasを利用していました。 …

JavaScriptを使った一発ギャグ

有限会社ヘッドジャパン・・・・の求人情報 待遇・・・・ 各種社保完備 昇給 賞与 …

篠原(強弱・AB)レシオのチャート描写方法(システムトレード)

2年ぶりに人間ドックに行きました。 体重 +10 kg 腹囲 +10 cm メタ …

最大ドローダウン(時価)を計算してみる(システムトレード)

【前回のあらすじ】 おっす!オラ悟空! みんなはドローダウン(時価)って知ってっ …

「イノベーションとはパクるもの」by ザンバー3兄弟

大学時代に取得できなかった資格「ソフトウェア開発」勉強でもするかな・・・と確認し …