システムトレード開発に取り組んで感じた難しさ
システムトレードを思いついてから最初に株を購入した日付を調べてみたら、ちょうど2年ほど経っていました。
おそらく情報収集を始めた時期を含めると、取り組み始めてから3年くらいになるかと思います。
それでもまだ「まともなバックテストすらできていない」という状況です。
この時点で私が優秀なエンジニアではないことはバレてしまうのですが、一応業界歴は20年。
それを差し引いても、自動で株を売買するシステムを作るというのは本当に難易度が高いと実感しています。
(もし簡単なら、とっくに世の中に広まっているはずですよね。)
長期保有という現実
投資の勉強をすればするほど最終的に行き着くのは「結局は長期保有が一番成績が良い」というシンプルな結論です。
そう考えると、システムトレードを完成させたところで「無駄な長物」になるのかもしれません。
それでも挑戦を続けているのは、エンジニアとして「自分はこれを作り上げた」と胸を張れる成果物を残したいからです。
世間的に投資の売買システムは胡散臭く思われがちで、誰にでも理解されるテーマではないのが残念ですが、それでも挑戦する価値があると思っています。
AIとの付き合い方
最近では、データをAIに投げて効率よく開発を進めている方もいらっしゃるでしょう。
私もプログラムの一部はAIに任せていますが、完全なブラックボックスにすることは避けています。
何か問題が起こったときに対処できないため、全体設計と評価は人間が担うべき部分だと考えているからです。
そんなモチベーションで開発を続けています。
システムトレード開発の難しさ
ここからは、私が実際に感じている「開発の難しさ」をいくつか挙げてみます。
プログラミング初心者・金融知識初心者の方は、ある程度の覚悟を持って取り組むのが良いと思います。
ロジック化の難しさ
市販されているシステムトレード関連の書籍は少なく、あっても高度な数学や論文レベルの内容が多いです。
多くの本はチャートを「目視」で理解する前提で書かれており、例えば「〇〇ラインを上抜けたら買い」といったシンプルな一文も、システムに落とし込むには数式化や詳細条件のロジック化が必要です。
最近はAIが補完してくれるためだいぶ楽になりましたが、それでもテクニカル指標の状態をどうプログラムで表現するかという部分が、最も難しいと感じます。
書籍は「過去データ」を参照している
書籍で解説されているのは、過去のデータを使った理想的な事例です。
読んでいるときは「なるほど」と思っても、システムトレードでは現在の状況から未来を判断しなければなりません。
人間の目なら多少崩れた形でも「これはパターンに近い」と判断できますが、プログラムはその曖昧さを理解できません。
システム化には、より厳密で複雑な条件分岐が必要になるのです。
処理スピードの問題
テクニカル分析では、大量のデータと複雑な計算を扱います。
リアルタイムに株価へ反応させることや、データ数によっては「次の取引時間までに分析が終わらない」という事態も個人開発では大きな壁です。
AI分野に詳しい方であれば、前処理や効率化を上手にこなせるかもしれませんが、私にとってはこの部分も課題の一つです。
まとめ
果たして本当に作り上げられるのか。
仮に完成しても「6割以上の勝率を安定して出せるのか」「リアルタイム売買が正しく作動するのか」など、不安要素はまだまだ山積みです。
それでも、プロセスそのものを楽しみながら開発を続けていきたいと思っています。