ストックドッグ

KatoTakahiro。金融系の会社で働くSEが株やPython、その他諸々について書いています。サービスも運営してます→http://fmbrain.work

株価の予測精度が60%を超えた

【更新 2017-08-15】
未だによくアクセスがあるので、書いておきます。
この結果が検証したわけではないですが、きっと間違いです。
シミュレーション期間がとても短いこともあって、運が良かっただけのように思います。
検証するのも面倒なので、しませんが。
ただ、記事としては残しておこうと思います。
若気の至り的な自戒もこめて...

目次

予測精度が60%超えた!?

2014年8月15日〜2017年2月28日までの期間で、株価を予測するシミュレーションを行ったところ...

66.19%

となりました。


2値分類モデルで、n日後の株価が上昇しているか下落しているかを予測する、というものです。


予測対象はETFで、2013年1月時点で運用をしているという条件で絞り込んでいます。

[ 1305, 1306, 1308, 1309, 1310, 1311, 1320, 1321, 1324, 1325, 1326, 1328, 1329, 1330, 1343, 1344, 1345, 1346, 1348, 1540, 1541, 1542, 1545, 1546, 1547, 1550, 1552, 1554, 1555, 1563, 1566, 1569, 1570, 1571, 1572, 1615, 1671, 1678, 1680, 1681, 1698, 1699 ]

ETFだから予測精度が高いとかそういうことではなくて、個別銘柄でもおそらくあまり変わらない結果が出ると思います。

ETFにしているのは、購入単位が安いので売買シミュレーションがしやすいからです。

以下は平均予測精度を時系列順にプロットしたものです。

f:id:doz13189:20170303184448p:plain

これらの平均が66.19%ということになります。

定期的に大きく予測が外れるという特徴は以前から変わらずですね。

本当に予測できてるのか?

わかりません。

もう実践に投入して確かめるしかないと思ってます。


シミュレーションというシミュレーションはし尽くしました。

使用しているプログラムにも今の所ミスは見つかっていません。

ただ、今までの経験上予測精度が60%を超えると確実にミスが発見されます。

引き続きプログラムミスの可能性を疑ってかかることにします。


ということもありますが、今後はこれを活かすためにシストレやりたいなぁという方向性で頑張っています。

ただ、それらの知識が皆無なので大変です。

なんとか4月の入社までにある程度の形にもっていきたいですが、厳しいかも。

中身のアルゴリズムはあまり詳しく話しませんが...

私が株価予測を行う上で、ここを気にしたというポイントをまとめます。

2ヶ月前の自分に口酸っぱく言いたいな!という内容を書いています。

  • 株価の価格を予測しない
  • 時系列を意識する
  • 手法を組み合わせる


この3つに集約されます。

この3つを意識したあたりから、私は上手く行き出しました。

株価の価格を予測しない、というのはちょっとわかりにくいですね。

言い換えると、株価の価格を予測しても精度は上がらないよ、ということです。

じゃあ何予測すんねんって感じですね笑

これは私の経験則であり、組むアルゴリズムによってそこらへんの事情は変わると思いますが、私は価格を予測しようとしても精度は50%程度にいつも収束していきました。

だから、予測する対象を変えました。

予測する対象は、市場の方向性です。

市場の方向性とはつまり、市場が上昇傾向にあるのか、あるいは下落傾向にあるのか、です。

方向性を予測した結果を銘柄に適用しているだけです。


2つめの時系列を意識するというのは、当たり前かもしれません。

例えば、株価は自己相関しますね。(自己相関とは、上がったら下がってきて、下がったら上がってくる、という株価の性質をカッコよく言っているだけです。)

その性質を利用したアルゴリズムは数多く提唱されており、例えば、anticorなどが有名です。

anticorは時系列を強く意識したアルゴリズムと言えます。

株価の1回1回の価格形成は独立しているわけではありません。(前日の株価が次の日の株価に影響を与えている、ということ)

私は自己相関を利用しているわけではありませんが、時系列というのは強く意識しています。

株価が時間と共に変動している以上、時間という要素を抜いてはあまり上手くはいかないのじゃあないかな、というのが私の意見です。


はい、3つ目。

単発の手法ではなかなか精度は上がらないかな、というこれも私の経験則に基づいたものです。

株価に限らず、予測という分野は手法を組み合わせることで精度が劇的に上がるケースは多いと思います。

となると、ディープラーニングと何を組み合わせようかな〜、と考えてしまう人がいると思いますが、これはきっと上手く行きません。

ディープラーニングを使わないと予測できないとか、機械学習を使わないと予測できないとか、手法の問題ではないと思います。

手法を組み合わせるって言っても、考え方の問題だと私は思っています。

私は、アルゴリズムの中に強化学習を使用していますが、強化学習のどのアルゴリズムを使用しているというわけではありません。

強化学習の「報酬を最大化」する、という考え方をアルゴリズムに組み込んでいるだけです。

どうしても手法ありきで考えてしまうと、この手法は株価予測に使えるor使えないで判断してしまいます。

株価予測に最適なアルゴリズムなんてものはないので、ピッタリくるものはなかなか出会えないですよね。

色々なアルゴリズムの考え方を組み合わせながら、株価予測のアルゴリズムを構築していくのが大事かなって思います。

以上、ゆるーくポイントをまとめてみました。

ゆくゆくはアルゴリズムもフルオープンにしたいなぁと考えるもそう甘くはない

アルゴリズム取引の世界ってすごくクローズドですよね。

こんなにも様々な分野の様々な記事がネット上にアップされているにも関わらず、アルゴリズムトレードに関するものは極端に数が少なく、あったとしてもその記事の質は低かったりします。

もちろん、アルゴリズムを公開していて生き残って行ける業界ではないのですが。

ただ、ノウハウを個人個人で溜め込んで、それを墓まで持っていくスタイルなので、ノウハウの蓄積が少なく、若い人材が確実に育ちにくい形態をしています。

業界の体質上仕方がない気もしますが、なんとも歯がゆい...


今後10年でアルゴリズム取引という業界は今よりもっともっと大きくなります。

今でさえ米国では80〜90%の取引はアルゴリズムによるものであるというデータがありますし、フラッシュクラッシュなんて楽しいことも起きています。

現状、日本市場で動いているアルゴリズム取引も米国産のものが多いと言われていますし、日本のシストレ勢はまだまだ少ないように思います。

(少ないと言っても私のフォロー・フォロワーさんは優秀なシストレ勢がたくさんいますが...)


この現状をどうにかしたいなぁ、なんて考えているのでよく株価分析系の記事をできるだけわかりやすい内容にしてアップしたりはしているのですが、もっと根本の部分から変えないと現状は変わらないように感じています。

どうにかその仕組みづくりをできればなぁなんてのが最近の野望です。

最後に予測モデルで売買シミュレーションを行ったので、それを貼って記事を締めます

予測モデルと言っても、以前から使用してる予測精度が54〜55%くらいのモデルです。

(60%を超えたモデルではまだ売買シミュレーションをやっていません。)

予測モデルに従い、100万円を元手に2014年から2016年の3年間に取引を行うとどうなるかっていうシミュレーションです。

手数料はSBI証券のものを適用しています。

対象銘柄は、先ほどと同じETFであり、予測結果の中からランダムで銘柄選択をしているので、シミュレーションを20回行っています。

f:id:doz13189:20170303202833p:plain

3年間運用して、元手の100万円を割ったのは、20回中3回。

厳しい結果ですね。

予測精度と言っても、結局当たるか外れるかは確率なので、予測精度が利益に繋がるとは限りませんね。

これだとまだまだ市場投入するには早いかなって思います。

60%を超えたモデルでのシミュレーションはまだ行っていないので近々やると思います。

結果が楽しみです。(~o~)


今回は目的もなくダラダラと書いてしまって、収集がつきません。

強制的にここらで終わることにします。

終わり!