個別株の自作トレードシステム(仮)が完成しました【シストレとAIを融合させる】

しばらく歴史ネタを全く書いていませんでした。というのも、株式投資にハマり自作のトレードシステムを作っていたからです。

 

 

投資歴は若干あったものの、投資もプログラムもど素人だったので苦労しましたがようやく本格的に実践投入できそうです。ニューラルネットワークを使った手法も採用してみました。

 

ざっくりとしたシステムの概要は以下の記事でも紹介しています。完成の記念として感じたり思ったりしたことをこの記事でまとめておくことにします。

サラリーマンが日本の個別株でシステムトレードをする方法を紹介【pythonで自作しました】

スポンサーリンク
スポンサーリンク

お金があるなら既製品を買った方が良い

いきなりですが、完成してみて思ったのは

 

「個別株なら高額だけどイザナミとかの既存製品使った方がコスパ良い」

 

 

ってことです。自分の努力を全否定する感想ですが、実際にそうだと思います。

 

 

ただ、システムを作る際に学んだプログラムの知識は何かに活かせそうです。ニューラルネットワークをいじるにのawsの基本的な動作はできるし、レンタルサーバがlinuxなのでコマンド操作とかssh接続についても覚えました。

 

 

スクレイピング もできるようになり、pandasに関してはかなり覚えたと思います。統計の知識も基本程度は身に付きました。それと、オブジェクト指向的な話も触っているうちにわかってきたし、様々な言語で共通する基本的な部分もある程度は理解できそうです。

 

未経験の完全など素人だったので、だいぶ進歩したと思います。

 

 

というわけで、プログラムに興味のある方には自作はオススメですが、「とにかく稼げればなんでもいい!」って人にはオススメしません。システムを作ったから確実に儲けられるわけでもないですし。

 

 

ただ、自作システムの良いところは細かい調整や自分アイデアを簡単に実現できる点でしょう。既存製品だとアイデアが思い浮かんでも、仕様になければ実践できませんが、その点自作の場合はかなり柔軟です。

システムトレードはメンタル超大事

実は、システム自体は2019年2月ごろから実際のトレードに活用しています。

 

 

が、ミスがあったり、理論上の損益と実際に生じる損益では感じ方が全く違ったりで、様々な微調整が求められました。

 

 

最初に想定していたトレードは、一回あたりの取引額が多すぎて仕事に集中できないほどでした。結果、ビビって裁量トレードをしてしまい利小損大の悲惨な結果に終わりました。

 

 

一方で、裁量トレード自体はあっても良いのかなとも思いました。「悪材料が出た次の日は買いトレードはしない」とかそれぐらいの明確な基準を設けた上での裁量トレードはありなような気がしています。(悪材料で上げることあるのが株の難しいところですが・・・)

 

 

それに加え、楽天の1日信用は空売りはできないケースも多く、理論値とどれだけずれるのかも試しながらトレードしていました。

 

 

色々試行錯誤の結果、4月にようやく、取引量とか裁量トレードの基準も見えてきて取引が安定してきた感じです。

 

 

私は株式投資に関する本では、以下の本が好きなんですが、株式投資を本格的にするのならメンタル系の本を少なくとも一冊は読んでおく必要があると感じます。裁量でもそうですけど、シストレでもメンタル管理は超大事です。

 

 

ルールは、買い3つ・売り2つ・AI1つ

売買ルールは、合計6つ。

買い3つと売り2つとAI(ニューラルネットワーク)が1つです。

 

買いと売りはバックテストで取引頻度がある程度同じになるよう設定しています。(若干売りの方が多い)

 

 

買いと売りを織り交ぜることで、ドローダウンを抑えることができています。(バックテスト上は)

 

 

加えて、ニューラルネットワークによる株式投資もやってみることにしました。CNNやRNNは用いずシンプルなニューラルネットワークを用います。時系列データにはRNNかなぁとも思いましたが、私の手法は寄り引けトレードで1日で終わってしまうトレードなので、あまりRNNを使うメリットを感じられませんでした。

 

 

業種ごと株価の振る舞いは違うので、業種ごとに学習モデルを作ってやります。今実践投入しているモデルは全部で8つです。銘柄の数や各銘柄の日々の出来高数などを考慮して選びました。

 

 

色々試行錯誤をしていた2〜3月はマイナスになってしまいましたが、4月は比較的安定しています。ほんと2月3月は辛かった・・・。仕事が終わったら、それ以外はほとんどプログラミングの日々でした。

時系列データに絶対はない

私は、システムトレードを始めようと思った時、「過去のデータを分析して特定の条件のもとトレードすれば負けることはないだろう」と思っていました。

 

 

が、実際にシステムを作って、実際に取引してみると、「シストレをしたからと言って、絶対に勝てる保証はない」と強く実感しています。

 

 

そもそも、シストレで使われる勝率とかPFを盲目的に信用して良いのは、統計学的に言えば株価の動きが独立同分布(iid)になっている時だけです。

 

 

独立同分布とは、統計に用いるデータは全て同じ確率分布に基づいていて、かつ、データ同士が互いに依存し合っていない(データの順番などに結果が依存しない)データ分布のことを言います。

 

 

株価はどちらも当てはまりません。まず、時系列データである以上、統計結果はデータの順番に依存します。(これは株価にはトレンドがあることからも明らかです)

 

それに日々の株価の動きが常に同じ平均値や分散値を持った確率分布になっているかもわかりません。(この点については、調べる方法は存在するし、場合によっては同じ確率分布だと言えるケースもありそう)

 

 

・・・というわけで、感覚的にも理屈的にもシステムを絶対視することなどできないわけです。だからこそ、自分のメンタルがブレない程度の資金量とトレード手法で安定的にトレードを行う必要があるのです。システムを過信したらダメだと思う。

定期的なメンテナンスやトレード手法は日々研究する必要がある

今回システムが完成しましたが、これはあくまで(仮)です。

 

 

自分の作った売買ルールが陳腐化するかもしれないからです。毎月収支を計算し、ダメなような売買ルールを再構築し、以下ループ・・・です。

 

 

この点、AIトレードは優秀だと感じています。確かにメンテナンスは必要ですが、モデルに学習データをぶち込むだけなので、メンテナンスがとても簡単です。今の所、月一の頻度で最新のデータを取り入れながら学習モデルを更新していく予定です。

システムトレードは楽!サラリーマンでもできる

色々苦労はありつつも、慣れてしまえばやっぱりシステムトレードは楽です。システムにしたがって注文を出すだけですからね。

 

 

これで儲けられるのなら、メンテナンスやイレギュラー・バグ対応を除けばほぼ不労収入に近い形になると思います。

 

 

 

・・・以上、思ったままにつらつらと書いてみました。AIトレードに関しては学習データさえ用意できればFXや先物にも比較的簡単に応用できそうです。ここでいうAIとはニューラルネットワークのことですが、儲けられるかは別としてAIの用途は投資の世界でもかなりあるのだなと強く感じました

 

 

昔にゴールドマンサックスの投資部門で大規模なリストラが行われて、今では投資判断のほとんどがAIによって担われているとも聞きます。これからは、システムトレードもAIが主流になってくるんだろうなぁ・・・。

コメント