見出し画像

システムトレードの体験談と戦略・戦術ロジックの備忘録


はじめに

システムトレード自体は20年以上前から試していますが最近やっと形になり始めたので運用結果を記録していきたいと思います。そもそも公開する必要はないのですが、備忘録目的であると同時に、公開することで「見られてる意識」が上がって恣意的な運用をして失敗することを防止するのが主要な目的でもあります。

というのも2015年から2018年にかけて裁量トレードを行っていたときに億り人にまでなったのですが、流動性の欠如に遭ってポジションを解消できず、それから1年半ほどで投資口座の残高を1億円以上吹き飛ばし、精神状態はおくりびとにおくられる人になりました。もし当時公開していたら、もっと客観的に判断して流動性関係なく損切りできていたのではないかと思うと悔やまれます。そういった工夫や仕組みで失敗するリスクを低減できるのであれば安いものだと思います。

あとは自分の考えを実際に書き出してみることで思考を整理できるというのもメリットだと思っています。ブログで公開するとなれば自己チェックで何度も推敲するので、冷静に自分のポジションを判断することができ、独りよがりなミスに気づきやすいというのも利点です。

それにシストレのサイトはそれなりに多いものの、その大半はFXをメインにしたMT4のEA関連のもので、IB証券のAPIを使ってシストレしている人は少数派、さらにその中で先物やオプション取引をメインにしてるのはもっとレアということで、ニッチな層の参考になればという背景もあります。

金先物オプションのIV Surface

システムトレードの試行錯誤

ちなみに初めてシステムトレードをしたのは2003年頃。今からするとシステムトレードといってよいのかと思える程度のものですが、板情報を元にスキャルピングするプログラムをJavaで作って走らせてました。当時は5Gのような高速モバイルインターネットもなかったので、約定したらJ-Phoneのメールを仕事中の自分に送っていました。

J-Phone(後にボーダフォンに買収された携帯通信業者、今のSoftBankの祖先)

が、3分間で当時の月収(20万円ほど)をすべて吹き飛ばす負けをして会議中にストレス性の急性腹痛になるなど結果は芳しくなく、転職で忙しくなったこともあり自然消滅しました。自動取引でデイトレしていたので何の銘柄を買ってるのかもわからず※、四半期ごとに大量に投函されていた特定口座用の取引明細で初めて銘柄名を知ることもありました。(※特に日本は数字が銘柄に割り当てられているため、アメリカのティッカーシンボルと違って銘柄コードを見ただけではどの企業なのかわかりません)

米国株のヒートマップ

次に手を出したのはFX。今でも現役で使われているMT4でEAを自作して取引していました。MT4は最近でも試したりQuantAnalyzerを使って分析・改善も試みましたが、ボラティリティが低いFXではエッジがスプレッドと手数料でかき消されてしまって実効性のあるロジックまで至りませんでした。今ではEAを販売するマーケットまでできてますが、EA開発者たちがEAの取引ではなくEAの販売で稼いでいることを考えると「稼げるEA」を作るのがいかに難しいかを思い知らされます

QuantAnalyzerのバックテストレポート

そして今メインにしているのがTWSのAPI。API自体は日本にいたときから使っていましたが、裁量トレードで良い結果が出ていたので裁量トレードに注力してしばらくご無沙汰していました。

その後堕ちるに堕ち、種銭も底を尽きて数年間Living dead状態になっていましたが2022年の夏あたりからいろいろ試行錯誤し始めて2023年の年末ごろにようやく本番環境で動かせる程度のものができあがった形になっています。

今のところ安定稼働していますが、どこかで致命的なバグが発生したり、暴落で変なロジックが働いて死亡するかもしれません…。VIXで死んだときのようにそういうメシウマを求めて見ていただければと思います。

実際、システムトレードにシステムリスクは付き物です。バグを潰し切ったと思ってもサーバ側で意図しない動作が起きて損を出すかもしれません。結局裁量トレードと同じで、負けてもまた這い上がれる程度にリスク許容度を抑えて失敗を次に活かしていくのが最善だと思います。

システムトレードの有効条件と基礎ロジック

そもそものシステムトレードの定義については後半に付けておきたいと思いますが、それを踏まえて有効性のあるシステムトレードについての経験則的なものを挙げてみたいと思います。

  1. システムトレードとはあらかじめプログラムされたロジックに従って取引する仕組み

  2. 長期になればなるほどロジックが通用しなくなる(政治的、社会的事件でセオリーを無視した動きが起きやすい)

  3. よって、システムトレードをするなら短期トレード

  4. 超短期になるほど確実性は上がるが、その分スプレッドと手数料のマイナス影響でペイしなくなる

  5. そういった「帯に短したすきに長し」状態の中で有効性のあるタイムフレームとロジックを見つけるのが鍵

2についての補足ですが、長期になるとサンプル数が少なくなるという弊害もあります。1年間のトレードとすると毎年絶え間なくトレード機会(条件を満たすマーケットの状態)が来るとしても過去10年間のサンプル数はn=10です。過去実績数の少なさから自分自身がそのロジックに信頼と信念を持てなくなり運用できなくなります。過去50年としてもn=50ですが、1970年代とは時代もマーケット環境も違うので1970年代の結果をそもそも信頼できないという事態に陥ります(バックテストするにしても当時のデータは日足くらいしか手に入らないでしょうが…)。

また、ロジックが通用するかどうかとは関係ありませんが、長期では取引頻度が少なくなるので複利の力が利用できなくなるというデメリットもあります。指数関数的に増やしたいなら複利の力は必須で、そのためには長期トレードでは難しくなります。

ロジック自体についても、勝率を高めようと条件を複雑にすると取引頻度が減ってサンプル数の低下&複利効率ダウンにつながります。EAの中には24時間走らせ続けて取引するのは1か月に数回程度というものもありますが、それでは過去10年間のバックテストでもサンプル数が少なすぎて大数の法則を利用した信頼性のある結果が出せません。

そして上記のキーポイントを考察する際の前提となっている基礎ロジックは、ランダムウォーク理論と効率的市場仮説の2つとそれらに対する反駁です。

ランダムウォーク理論と効率的市場仮説

ランダムウォークとは、過去の価格変動から未来の価格変動を予測することは不可能であるという考え方を指します。これは、株価などの価格変動がランダムな動きをしており、規則性やパターンが存在しないことを意味します。

Three random walks in three dimensions

効率的市場仮説は、市場における全ての情報が既に価格に反映されているため、投資家による分析や予測は意味がないという仮説です。この仮説は、市場参加者たちが常に合理的に行動し、新しい情報がすぐに価格に反映されるという考えに基づいています。

つまり、ランダムウォーク理論と効率的市場仮説が正しいとすれば、ファンダメンタル分析もテクニカル分析も無意味でチャートやインジケーター(移動平均線やRSI、ストキャスティクスなどの指標)も意味がないということになります。

が、「人間は皆平等だ」というスローガンと同じく、理想と現実は異なっていてランダムウォークと効率的市場仮説も以下の点で「真」であるとは言えません。

  • 情報の非対称性:市場参加者全員が同じ情報を持っているわけではないため、市場は常に効率的とは限らない。

  • 行動経済学における人間心理:投資家たちは必ずしも合理的に行動するわけではなく、感情に左右される。

後者の代表的なものは株価における暴落現象でしょう。ランダムウォークであれば株価の上昇と下落に有意な違いはないはずですが、実際は上げ相場は緩やかで、下げ相場は短期的に急落するパターンが多いです。これは投げ売りという群衆心理行動に起因しているためランダムウォーク理論が通用しないことの証左になります。

ランダムウォークと効率的市場仮説は、あくまでも仮説であり、常に正しいとは限らず、その不完全なところにこそ付け入る隙、エッジが生まれます

オプション取引でいえば、ブラックショールズモデルで説明しきれない未知数Xをインプライドボラティリティ(オプショングリークスでいうところのベガ)と定義し、そのモデルと実際との乖離を取引するボラティリティトレードの考え方と同じです。

ブラックショールズ方程式ではσ(シグマ)が非効率的なエッジに該当

そしてIVのスマイルカーブにスキューが生じてSmirk Curveになるのもコールとプットの間に歪みが生じていることを表しています。

CallとPutの非対称性からSkewが生じる

オプションに限らず後者の行動経済学はマーケットに歪みが生じる要因ともなっており、以下具体的に見ていきたいと思います。

行動経済学

投資行動における人間の心理的な特徴は、さまざまな用語で表現されます。以下に、いくつかの例を挙げます。

  • アンカリング効果: 過去の価格情報などに囚われてしまい、過度に依存してしまう傾向。

  • 損失回避: 利益よりも損失をより大きく感じる傾向。

  • 過剰な自信: 自分の能力や判断を過剰に評価してしまう傾向。

  • 現状維持バイアス: 変化を避け、現状を維持しようとする傾向。

  • 群衆心理: 周りの人々に同調してしまう傾向。

  • FOMO (Fear of Missing Out): 何かを逃してしまうのではないかという不安。

  • YOLO (You Only Live Once): 一度の人生だから、思い切って行動しようとする考え方。

  • ギャンブルの罠: 短期的な利益に目がくらみ、長期的なリスクを軽視してしまう傾向。

  • 認知バイアス: 過去の経験や思い込みによって、判断が歪められる傾向。

これらの心理的な特徴は、投資家にとって大きな落とし穴となる可能性があります。以下に、これらの心理的な特徴が投資行動に与える影響について、具体的な例をいくつか挙げます。

  • アンカリング効果: 過去と比べて安くなっている株をバーゲンセールだと思い込んで割高な価格で投資してしまう可能性があります。

  • 損失回避: 損失を確定することを恐れて、損失が出続けている投資を継続してしまう可能性があります。

  • 過剰な自信: 自分の投資判断に自信を持ちすぎて、十分な調査を怠ったり、リスク管理を怠ったりしてしまう可能性があります。

  • 現状維持バイアス: 投資先を変更することを避け、すでにパフォーマンスの悪い投資を継続してしまう可能性があります。

  • 群衆心理: 周りの人が投資しているからといって、自分もその投資に飛びつく可能性があります。

ランダムウォークと標準偏差

なお、ランダムウォーク理論に似たロジックとして標準偏差がありますが、両者は本質的には異なるロジックです。

標準偏差は金融市場における価格変動を分析する確率論の一種で、インジケーターとしてはボリンジャーバンドが有名ですが、±2σに入る確率が95.4%というように過去の値動き幅を参考にしており、「ランダム=過去の値動きを基準とした定量可能なもの」としている時点で、過去に左右されないとするランダムウォーク理論とは異なります。

つまり、ランダムウォーク理論は投資戦略を立てる際の反面教師ですが、標準偏差は投資戦術の際の閾値参考資料です。標準偏差はバルサラの破産確率表のように投下資金判断のリスクパラメータとしての性格が強いです。

Nazer J. Balsara's Money Management Strategies For Futures Traders

実際の運用としては標準偏差にブラックスワンに備えたヘッジを加えて確率的にプラスになるように損益範囲を収斂させていく形になると思います。

QuantAnalyzerのモンテカルロシミュレーション

システムトレード概要

冒頭ではエッセンスと結論から書き始めましたが、システムトレードと呼称しているものの定義について記載しておきたいと思います。

システムトレードとは、人間の裁量を排し、一定のルールに基づいて自動的に売買を行う投資手法です。具体的には、チャート分析やテクニカル指標などを用いて、売買シグナルを検出し、注文を自動実行します。

システムトレードの特徴

  • 感情に左右されない:システムトレードは、人間の感情に左右されることなく、機械的に売買を行うため、感情的な判断による損失を防ぐことができます。

  • 時間効率が良い:システムトレードは、チャート分析や注文執行などを自動化できるため、時間的な制約を受けずに投資を行うことができます。

  • バックテストが可能:過去のデータに基づいて、システムの有効性を検証することができます。

システムトレードの種類

システムトレードには、さまざまな種類があります。代表的なものとしては、以下のようなものがあります。

  • トレンドフォロー:トレンドの方向に沿って売買を行う手法。

  • スイングトレード:短期的な値動きを利用して売買を行う手法。

  • デイトレード:日中の値動きを利用して売買を行う手法。

  • スキャルピング:非常に短期間の値動きを利用して売買を行う手法。

システムトレードのメリット

  • 感情に左右されない

  • 時間効率が良い

  • バックテストが可能

  • 物理的なスペースが小さくて済む(複数のモニターを並べるような設備は不要)

システムトレードのデメリット

  • システム開発に時間がかかる

  • 必ずしも利益が出るとは限らない

  • システムのメンテナンスが必要

  • システムエラーのリスクがある

システムトレードを始めるには、以下の準備が必要です。

  • 投資の知識

  • システム開発スキル

  • 取引プラットフォーム

  • 資金

特にシステム開発については、APIやRESTful APIといった取引プラットフォーム特有の仕様や、対応しているプログラム言語(IBではPython, Java, C#, C++, VBに対応、MetaTraderではMQL4など)、実際にプログラムを書く際のIDE(統合開発環境)、ビッグデータを使う場合はMySQLといったデータベースも必要になります。

システムトレードは、投資の知識やシステム開発スキルが必要となるため、初心者には難易度が高いと感じるかもしれません。しかし、近年では日本でもkabu.com APIなどの株取引用APIや、初心者向けのシステムトレードツールやサービスも増えてきているので、興味があればぜひ挑戦してみてください。

この記事が気に入ったらサポートをしてみませんか?