アーリーリタイアを目指すプログラマのブログ

アーリーリタイアを目指すプログラマのブログです。アーリーリタイアを目指すにあたって考えたことや調べたことを書いていきます。

CFD動的レバレッジ戦略

前回、CFD長期保有戦略(案)としてCFDで建玉を長期で保有しながら指数の上昇に連れてレバレッジ倍率を上げていく方針を紹介しました。 あれからバックテストをした結果、よりいい方法を見つけたので紹介します。

この戦略を実行する場合は自己責任でお願いします

この戦略のデメリット

例によって、最初にこの戦略のデメリットについて書いておきます。

  • 株価指数の長期的な成長が崩れると使えなくなります
  • GMOクリック証券CFDの仕様変更が起こると使えなくなる可能性があります
  • 毎日チャートを確認・計算・設定する必要があります
    • 忘れていると大損害を負う可能性があります
    • 計算はとても面倒です
  • 機械的ではありますが、強い意思でこの戦略を信じて売買する必要があります(下落時は特に難しいことが予想されます)
  • 高いレバレッジをかけるため、高金利になると思うような利益が出なくなる可能性があります
  • なぜパフォーマンスがいいのかよくわからないところがあります
  • 過去30年間に起こらなかった事象が起こると大損害を負う可能性があります
  • バックテストはしていますがバックテストが間違っている可能性があります。あるいはバックテストの期間に最適化されてしまっている可能性があります。

大事なことなので2回言いますが、この戦略を実行する場合は自己責任でお願いします

概要

レバレッジETFのように日々決済してポジションを増減させます。ただし、レバレッジETFと異なり、IVを見て動的にレバレッジ倍率を変更します。

前回は建単価が小さい建玉を長期で保有し、指数が上昇すると強制ロスカットに引っかからない程度にレバレッジを上げることができて嬉しい、という方針でした。 これはあまり利益が出ない方法です。冷静に考えてみると、右肩上がりの相場ではこまめに決済して建玉を増やしたほうがいいです。当たり前ですね。この部分はレバレッジETFと同様です。

レバレッジETFボラティリティの大きいレンジ相場での減価と、ベア相場での大きな下落が問題としてあります。 そこで、本戦略では、ボラティリティが大きい場合はレバレッジを下げ、また、ベア相場の場合はポジションをほとんど0にするようにします。

…というような戦略です。レバレッジ倍率の計算式が重要で、この式によっては利益に大幅な差が出ます。この戦略ではどのような式にしているかは後述します。

以降はS&P500(SPX)とVIXを前提に話を進めます。

この方針でバックテストをした結果、30年間の幾何平均で年率+100%程度、最大ドローダウンは-60%になることがわかりました。2000年から2009年の相場でも10年間で7倍程度になっています。

(青線は利益率 (対数表示)、赤線はドローダウンです)

バックテストのコードはこちらにあります。ヒストリカルデータはYahoo! FinanceのGSPCVIXを利用しています。

github.com

具体的な日々の流れ

  1. 現在のVIXとVIXの20日移動平均を確認
    • このとき、CFDのVIXは見ません。CFDのVIXは限月切り替えのタイミングで大きく値が変わってしまうためです。TradingViewなどのVIXの値を見ます。
    • VIXは日本時間16:15頃から見ることができるようです
  2. 建玉の数を計算(後述)
  3. 口座内の建玉の数を調整
  4. ロスカットレートを設定

を毎日繰り返します。時刻の多少のズレは気にしなくていいと思います。

建玉数の計算

現在のVIXとVIXの20日移動平均を使います。 現在のVIXをV、VIXの20日移動平均をV20とします。

まず、口座内のレバレッジ倍率Lを計算します。

  • VとV20を比較

とします。ただし、レバレッジ倍率Lがマイナスになったときは0、10を超えたときは10とします。

これで口座に設定すべきレバレッジ倍率が出せたので、次は建玉の数を計算します。

口座の時価評価総額をA、SPXの現在の値(Ask)をPとします。 建玉の数はAL/Pになります。

2020-08-25 追記

この部分を、VがV20以下で遷移した日数、VがV20よりも大きくなった日数、を使って、 切り替わりの閾値を(1.02-日数 / 50)を乗ずることで下げていくと、どの10年間でもよりよいリターンになりました。 ただしその分ボラティリティも大きくなりました。リーマンショック時にはドローダウンが-80%まで到達します。

建玉数の調整

持っている建玉の数を調整します。 現在持っている建玉の数が最終的にしたい数よりも多い場合、余力を大きく取り戻せる建玉(後述)から決済して数を調整します。 (2020-08-23 追記: 本当に余力を大きく取り戻せる建玉から決済すべきかどうかは微妙なところかもしれません。決済は節約できますが、ロスカットレートのことを考えるとまた変わってくるかも)

建玉の数が足りなければ、最終的にしたい数になるまで建てます。

どの建玉が余力を大きく取り戻せるか

建玉に設定されているロスカットレート(拘束証拠金)によって変わります。

建玉に設定されているロスカットレートがすべて同じなら、建単価の大きい建玉が余力を大きく取り戻せる建玉になります。

建玉に設定されているレバレッジ倍率(建単価 / 拘束証拠金)がすべて同じなら、建単価の小さい建玉が余力を大きく取り戻せる建玉になります。

2020-08-23 追記: これは間違っていました。口座の評価損益によっては余力を大きく取り戻せる建玉が変わってきます。下の記事にまとめました。

www.jitenspin.com

それ以外の場合は建玉によってバラバラです。

ロスカットレートの設定

強制ロスカットにならないくらいでロスカットレートを設定します。

重要なのは建玉数なので、これは適当にやればいいのですが、建玉の数が多くなってくるととても面倒であることが予想されます。 面倒であれば建玉数の調整のところで全決済してから新規建してもいいです。 スプレッドの分だけ損をすることになりますが、頻繁にやらなければそれほど影響は出ないです。

追証と強制ロスカットについて

バックテストでは追証は30年間で8回、強制ロスカットは一度も発生しませんでした。 普通の追証であれば、それほど怖くはありません。レバ10倍で全建玉が強制ロスカットになると1日で-50%程度になりますが、1年あれば取り返すことができます。

厳しいのはレバレッジ倍率を下げていたのに強制ロスカットされた場合です。 建単価が始値と同じだったとき、サーキットブレーカーの限界20%の下落に耐えられるレバレッジ倍率は約4倍です。 レバレッジ4倍で全建玉が強制ロスカットになると資産が-80%になります。こうなると数年耐え続けなければいけなくなるかもしれません。

まあ20%の下落が起こったときは反発も強いか世界が崩壊していて相場どころではないかのどちらかだと思うのでそのときはそのときで気にしなくていいかもしれません。

税金について

この方針ではこまめに利確するため税の繰延効果はありません。

入金・出金について

適宜行えます。入金・出金後は口座時価総額が変わるので、それを元に建玉の数を決めればOKです。

金利・配当について

このバックテストでは金利は考慮に入れていません。その代わり配当も考慮に入れていないので、その2つで打ち消し合ってくれることを想定しています。

最初にも書きましたが、金利が高くなると借り入れコストの方が高くなる可能性があります。

個人的にはそれでもこの戦略は有用であると思っていますが、バックテストをやってきたなかで自分の直感とは逆の結果になることも多くあったので、 金利が上がると使い物にならなくなってしまうかもしれません。

他に試したレバレッジ倍率の計算式

  • 常に10倍レバレッジ
    • 簡単に0になります
  • VIX20日平均シグナル
    • VIXが20日平均よりも上なら 1倍、下なら10倍、という方法
    • あまり利益は出ませんでした
  • ボラティリティターゲティング
    • その日のVIXである数を割った値をレバレッジ倍率とする、という方法
    • あまり利益は出ませんでした
  • ケリー基準
    • その日のVIXから1日の標準偏差を計算、年率が1.07だったときの1日の期待値を計算して、ケリー基準を計算
    • あまり利益は出ませんでした
  • 追証回避
    • その日のVIXから、追証ギリギリまで耐えられるようなレバレッジ倍率にする方針
    • さらにVIXのRCIを使って傾斜をつける
    • 演繹的に導いた方針であり、結果もそこそこよかったですが、本戦略の計算式には勝てませんでした

いろいろ試した知見としては、少しでも下がる兆候が出ると全決済しておく、というような方針がよかったです。損小利大的な感じだと思います。

まとめ

以上、CFDの戦略について説明しました。とりあえずしばらくはこの方針でやってみようかなと思います。

あまりにもいい結果になるため、バックテストにミスがあるかもしれません。もし見つけたら教えて下さい。

レバレッジ倍率を決める部分でこの式(パラメータ)にするとかなりいい結果になるのですが、なぜこれがいいのかわからないので、わかったらまた記事にしようと思います。