同人誌SP本シリーズの販売
最近、SP本が再版され、SP本2が新たに販売されました。
これは、同人誌であり、
黒猫アイランドさん、松崎美子さん、ひいらぎさんが共著しています。
本の内容はトレードのメンタル面や、ファンダメンタル、
過去の大きなイベントの解説など充実しています。
特に重視されている内容の一つは、「定量分析されたトレード」です。
裁量取引は定量分析を置き去りにしがち
私たちがトレードを行う場合、特に裁量において定量分析とは距離を置きがちです。
もちろん数字としての勝率、損益率、プロフィットファクターなどは把握します。
また、バックテストを行い、大体のトレードの期待値を把握するでしょう。
しかし、主としてチャートをにらめっこし、職人的に取引を行いがちになります。
データを集め、数理的に分析するクオンツは、
同じマーケットでも異なる世界を見ています。
株の世界ではバリュー投資が一つの手法として挙げられますが、
これを数値化し、感覚ではなく、測ることのできるものとして、
その他のファクターと組み合わせてポートフォリオを組んでいくというのが、
クオンツ・アルゴトレード・システムトレードの分野となります。
クオンツの分野が利益が満ちた、天国の分野であるとは言いません。
クオンツにも同じく競争相手が存在し、利益の源泉が枯渇したのであれば、
新たなファクターを探さなければならないこともあるでしょう。
ただ、クオンツとチャートと昔ながらの裁量トレードを行う私たちは、
まさに自動操縦のドローンと竹やりでの戦いの違いに
なってしまうのではないでしょうか。
トレンドフォローの向き不向きについて定量分析してみる
SP本で刺激を受けた私は、
「現在の戦略が通用する通貨ペア・先物銘柄はどれかを定量的に判別する」
ということをひとまず行いたくなりました。
現在の戦略はトレンドフォローで、レンジの多い相場は不向きです。
また、順行方向にモメンタムが発生しなかったり、
テールリスクがあまりないような値動きもトレンドフォローには不向きです。
この向き不向きを感覚ではなく、定量的に行うにはどうすればよいでしょうか。
一つの方法としては特定の通貨ペア・先物銘柄の、
取引時間軸でのリターン分布をグラフとして出し、
その形状を正規分布のモーメントとしてフィッティングすることで、
平均・分散・歪度・尖度の数値化を行います。
インジケータの特定の条件(今回は120期間移動平均と価格の位置関係)により、
リターン分布の形状に変化が生じるかどうかを比較します。
トレンドフォローとして向いてる状況であると判別するには、
- ロングに対して平均がプラスである
(純粋に期待値がプラスである) - 歪度がプラスである
(ロング方向の急騰・モメンタムが起こりやすく、逆行はだらだら下げとなる) - 尖度の割にはファットテールである
(トレンドフォローがテールリスクを利益に変えやすい)
ということを、数値とリターン分布から読み取れればよいと言うことになります。
この知識は以下のnoteを参考にしました。
Chat-GPTのCode Interpreterが定量分析を簡単にする
この定量分析には、
今まではExcel・統計・プログラミングなどの専門知識が複合的にあることで、
初めて行うことができる敷居の高いものでしたが、
現在はChat-GPTとその機能であるCode Interpreterを使うことで、
初心者が20分もかからず行うことができます。
定量分析の実例
実際に試してみます。
現在デモ運用している戦略は、1時間足の戦略です。
まず、Tradingviewより、サンプルとしてUSDJPYの1時間足のデータを3年半分ダウンロードします。
以下Chat-GPTとの対話です。
本当に1文、2文の命令で容易にできてしまうのが分かるかと思います。
アップロードしたファイルのリターン分布を計算し、0付近を拡大して表示してください。正規分布のモーメントを求めてください。リターンの計算には対数を使用してください
入力したプロンプト
対数リターンの正規分布のモーメントは以下の通りです:
平均(第1モーメント): 1.325×10^−5
分散(第2モーメント): 1.351×10^−6
歪度(第3モーメント): -2.0040
尖度(第4モーメント): 52.3561
ここからわかることは、USDJPYは全体として期待値を持っているわけではなく、
ファットテールはあるため、テールリスクからトレンドフォローで
利益を上げられる可能性があることが分かります。
現在運用するトレンドフォロー戦略では、
120期間移動平均が重要なフィルターとなっています。
移動平均より価格が上の場合、ロングをすることを考慮しますが、
これは理にかなっているのか、次の命令をすることで考察することができます。
時系列データの120期間移動平均を計算し、価格がそれより上の場合のリターン分布を求め、0付近を拡大してください。ただ、モーメントを求めてください
120期間の移動平均より価格が上の場合の対数リターンの正規分布のモーメントは以下の通りです:
平均(第1モーメント): 0.00012142
分散(第2モーメント): 1.038×10^−6
歪度(第3モーメント): 0.9591
尖度(第4モーメント): 20.5711
グラフでは分かりづらいですが、
明らかにモーメントが変化していることが分かります。
平均は若干プラス寄り。
分散はほぼ変わらず。
歪度はプラス。
尖度は小さくなったものの、ファットテールは相変わらず存在。
つまり、120期間移動平均でフィルターしたリターン分布において、
平均と歪度・ファットテールはトレンドフォローに向いていることを示しています。
これにより現在運用している1時間足トレンドフォローはUSDJPYの1時間足では、
有効な戦略であることが定量的に示されました。
ここまでにかけた手間はほとんどありません。
Chat-GPTとCode Interpreterの機能の高さには驚かされます。
実例2
付記として、USDJPY一時間足のトレンドフォローショート戦略も掲載します。
ショートの場合は、価格が120期間移動平均より「下」の場合のみショートを考慮します。
時系列データの120期間移動平均を計算し、
価格がそれより「下」の場合のリターン分布を求め、
0付近を拡大してください。ただ、モーメントを求めてください
入力したプロンプト
120期間の移動平均より価格が下の場合の対数リターンの正規分布のモーメントは以下の通りです:
平均(第1モーメント): −0.00012718
分散(第2モーメント): 1.732×10^−6
歪度(第3モーメント): -3.6404
尖度(第4モーメント): 62.0174
平均は若干のマイナス。
分散はオーダーが変わらず。
歪度はマイナス。
尖度はさらにとがり、ファットテールがある形に。
ショートの場合は、平均・歪度がマイナスでトレンドフォローしやすくなりますが、
その通りになっていることが分かります。
おわりに
このブログでは、デモ運用中のトレンドフォロー戦略について、
その成績を公開しています。
試行錯誤の最中であり、まだ利益が出ておらず辛い面があります。
ただ、このように定量分析を行うと、
通貨ペア・先物銘柄と時間軸選定、そこで行うトレンドフォロー戦略の有効性は、
数値的に担保されており、
他の点を改良すれば、利益の出る運用をできるかもしれないことが分かりました。
みなさんも定量分析を行うことで、
裁量トレードにもう一本の支軸を加えることができるかもしれません。