Avocadoの投資・トレード日記

資金250万円からの投資・トレードの記録です。日々の成長を記録します。

Comming soon!
Comming soon!

Chat-GPTとCode Intepreterで定量分析を行い、自分の戦略が通用するユニバースを選択する

↓新しい記事が出たら一回クリックしてこのブログを応援しよう!↓
ブログランキング・にほんブログ村へ
-----------------------------------------

最近、SP本が再版されSP本2が新たに販売されました。

 

 

これは、同人誌であり、

黒猫アイランドさん、松崎美子さん、ひいらぎさんが共著しています。

 

本の内容はトレードのメンタル面や、ファンダメンタル、

過去の大きなイベントの解説など充実しています。

特に重視されている内容の一つは、「定量分析されたトレード」です。

 

私たちがトレードを行う場合、特に裁量において定量分析とは距離を置きがちです。

もちろん数字としての勝率、損益率、プロフィットファクターなどは把握します。

また、バックテストを行い、大体のトレードの期待値を把握するでしょう。

しかし、主としてチャートをにらめっこし、

職人的に取引を行いがちになります。

 

データを集め、数理的に分析するクオンツは、

同じマーケットでも異なる世界を見ています。

株の世界ではバリュー投資が一つの手法として挙げられますが、

これを数値化し、感覚ではなく、測ることのできるものとして、

その他のファクターと組み合わせてポートフォリオを組んでいくというのが、

クオンツ・アルゴトレード・システムトレードの分野となります。

 

クオンツの分野が利益が満ちた、天国の分野であるとは言いません。

同様の世界には同じく競争相手が存在し、利益の源泉が枯渇したのであれば、

新たなファクターを探さなければならないこともあるでしょう。

ただ、クオンツにとって、

チャートとインジケータを見続けて昔ながらの裁量トレードを行う私たちは、

まさに自動操縦のドローンと竹やりでの戦いの違いに

なってしまうのではないでしょうか。

 

SP本で刺激を受けた私は、

ひとまず「現在の戦略が通用する通貨ペア・先物銘柄はどれかを定量的に判別する」

ということを行いたくなりました。

 

現在の戦略はトレンドフォローであり、レンジの多い相場は不向きになります。

また、順行方向にモメンタムが発生しなかったり、

テールリスクがあまりないような値動きもトレンドフォローには不向きです。

これを感覚ではなく、定量的に行うにはどうすればよいでしょうか。

 

一つの方法としては特定の通貨ペア・先物銘柄の、

取引時間軸でのリターン分布をグラフとして出し、

その形状を正規分布のモーメントとしてフィッティングすることで、

平均・分散・歪度・尖度の数値化を行います。

インジケータの特定の条件(今回は120期間移動平均と価格の位置関係)により、

リターン分布の形状に変化が生じるかどうかを比較します。

 

トレンドフォローとして向いてる状況であると判別するには、

・ロングに対して平均がプラスである。

(純粋に期待値がプラスである)

・歪度がプラスである

(ロング方向の急騰・モメンタムが起こりやすく、逆行はだらだら下げとなる)

・尖度の割にはファットテールである

(トレンドフォローがテールリスクを利益に変えやすい)

ということを、数値とリターン分布から読み取れればよいと言うことになります。

 

参考リンク:

シストレのススメ第6回 トレードする市場を選定する|UKI

 

この定量分析には、

今までは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の機能の高さには驚かされます。

 

付記として、USDJPY一時間足のトレンドフォローショート戦略も掲載します。

ショートの場合は、

価格が120期間移動平均より「下」の場合のみショートを考慮します。

時系列データの120期間移動平均を計算し、

価格がそれより「下」の場合のリターン分布を求め、

0付近を拡大してください。ただ、モーメントを求めてください

 

 



120期間の移動平均より価格が下の場合の対数リターンの正規分布のモーメントは以下の通りです:

平均(第1モーメント): −0.00012718
分散(第2モーメント): 1.732×10^−6
歪度(第3モーメント): -3.6404
尖度(第4モーメント): 62.0174

 

平均は若干のマイナス。

分散はオーダーが変わらず。

歪度はマイナス。

尖度はさらにとがり、ファットテールがある形に。

ショートの場合は、平均・歪度がマイナスでトレンドフォローしやすくなりますが、

その通りになっていることが分かります。

 

このブログでは、デモ運用中のトレンドフォロー戦略について、

その成績を公開しています。

試行錯誤の最中であり、まだ利益が出ておらず辛い面があります。

ただ、このように定量分析を行うと、

通貨ペア・先物銘柄と時間軸選定、そこで行うトレンドフォロー戦略の有効性は、

数値的に担保されており、

他の点を改良すれば、利益の出る運用をできるかもしれないことが分かりました。

 

みなさんも定量分析を行うことで、

裁量トレードにもう一本の支軸を加えることができるかもしれません。