bookloveru2

2021年2月5日6 分

pythonで株価分析⑧【1:nの相関を見ることで、追加資金投入のタイミングを考察する】

最終更新: 2021年11月1日

皆様、こんにちは。

今回は、お気に入り銘柄の買い増し(追加資金投入)のタイミングを考察していきます。

数学や統計学の込み入った話は無く、グラフで、ざっと相関を俯瞰することで、買い増しする状況か否かの判断を行っていきます(*‘ω‘ *)

では、早速行ってみましょう❕


目次

キャッシュフローの可視化

1:nの相関を見る

衝撃の告白


キャッシュフローの可視化

まず始めに、ポートフォリオの損益状況を視覚化する為に、キャッシュフローを可視化してみましょう。

※1年間の内に、『幾ら資金を投入し、どれくらいの含み損益が出ているか』を視覚化。

今回はGIF(岐阜暴威@gihuboy 様)だぜ(・ω・)ノ

はい。ドン❕

すいません。GIF貼って見たかっただけです。岐阜暴威@gihuboy 様は、私の大好きな株クラですので、皆様も良かったらTwitterフォローして見て下さい(・ω・)ノ


では、静止画で説明します。👇

期間を1年と想定し、キャッシュフローを可視化しています。

  • 期首残高(Beginning)や追加資金(Add funds)、評価損益(Valuation gain/loss 含み損益)を緑色 キャッシュイン!

  • 株式の売却による現金化(Payment ポートフォリオから消える為、マイナスとしています)が赤色 キャッシュアウト!

  • 期末残高(net 現在の時価総額)を青色

にて表示しています。

これで、現在のポートフォリオが含み益なのか❓、含み損なのか❓が見える化します。

0以上(青色のバー(net)が点線より上にある)であれば、含み益です。(・ω・)ノ

以下、コードです👇

#@title キャッシュフロー可視化【Bigin:期首残高 add:追加資金 Payment:出金 profit:評価損益】
 

 
!pip install waterfallcharts
 
import waterfall_chart
 
Beginning = 10000 #@param {type:"number"} #機首残高
 
add1 = 1500#@param {type:"number"} #追加資金①
 
add2 = 1000#@param {type:"number"}#追加資金②
 
Payment = -5850#@param {type:"number"}#追加資金③
 
profit = 6050#@param {type:"number"}#評価損益
 

 
a = ['Beginning','Add funds①','Add funds②','Payment','Valuation gain / loss']
 
b = [Beginning, add1, add2, Payment, profit]
 

 
my_plot = waterfall_chart.plot(a, b)


1:nの相関を見る

では次に、1:nで相関を見てみます。

「1:n」の意味は、『お気に入り銘柄様々な指標と比較する』ことです

例えば、お気に入り銘柄がビットコインだとすると、

  • ビットコインとテスラ

  • ビットコインと金利

  • ビットコインと原油

  • ビットコインとダウ

といった感じで、1(お気に入り銘柄):n(その他の指標)で俯瞰します。

※指標とは、お気に入り銘柄を取り巻く環境【金利や原油などの商品、ダウ平均株価等】を意味しています。


今回はビットコイン【お気に入り銘柄】を例に、ざっと相関をみていきます。

対象期間は:2020/1/1~2021/2/4までの1年間です。

対象となる指標は下記5つです。

  1. テスタモーターズ【TSLA】 話題のロビンフッドに人気です。説明不要の銘柄ですが、ビットコインの値動きと酷似していると言われています。

  2. マイクロストラテジー【MSTR】 ここ最近ビットコインを1,400億円程度購入しており、ビットコインの値動きと酷似しています。

  3. WTI原油【CL=F】

  4. 米10年国債 【^TNX】

  5. ダウ平均株価【^DJI】


では、行きます(・ω・)ノ

まず、Bitcoin:テスタモーターズです。👇

次に、Bitcoin:マイクロストラテジーです。👇

次に、Bitcoin:金利(米10年国債)です。👇

次に、Bitcoin:原油です。👇

最後に、Bitcoin:ダウ平均株価です。👇

これらの4つの指標との相関図から、

テスラとマイクロストラテジーの株価変動とビットコインとの値動きの変動がリンク(強い相関がある)ことが分かります。

その為、それらがリンクしなくなってきた時、相場がブレイク(上か下かどりらかに、大きく動く)する可能性が増加しそうです(*'▽')

その時こそ、買い増し(追加資金投入)のタイミングだと考察するのも面白いかも知れません(*‘ω‘ *)

以下、与太話。👇

例として、テスラの株価が急落し、ビットコインが急騰した場合を妄想して見ます。
 

 
【急落要因】
 
①テスラの受注が大幅に減る。
 
影響:株価はその法人の決算や成長性に影響される為、株価は下落する。
 
②アメリカの返済能力に懸念が出てきた。もしくは、FRBが金融引き締めを実行するなどして、株に資金が向かわなくなった。
 
影響:リスクオフにより、株価下落。円高米ドル安進行。世界同時株安が起こる。
 

 
通常なら、同じリスク資産であるビットコインも同時に下落しそうですが、何故かビットコインが上がったと仮定します。
 
この場合、ビットコインが政府や中央銀行等の何者にも介在されない存在の為、その価値が認められた、と判断されて急騰したと想像できます。
 
これは相関が崩れる瞬間であり、買い増しチャンスと考えられます🙉
 

 
スーパーアナーキー
 
てへぺろ
 
Bitcoin Maximalist(ビットコインマキシマリスト)

今回は、期待値や勝率、RR比率(リスクリワード)などは、一切考慮しませんでした。

グラフをざっとみて、相場を俯瞰することを想定した為、買い増ししても、儲かるかどうかは不明です(''◇'')ゞ

ただ、そうやって、ブレイクするタイミングを、1:nの相関で見るのも、一興と思って、記事にしました。

スーパーぐだぐだですいません(/o\)

次回はもっとまともな記事を書きます!

焼肉食べたいです❕

以下、コードです👇

#@title 相関をざっと見る ※欠損値除外
 
import datetime
 
import fix_yahoo_finance as yf
 
import matplotlib.pyplot as plt
 
import seaborn as sns
 

 
#スタート日を決める
 
start = "2020-1-1" #@param {type:"string"}
 
end = datetime.date.today()
 

 
#銘柄コード
 
code1 = "^DJI" #@param ["AAPL"] {allow-input: true}
 
code2 = "^TNX" #@param ["AMD"] {allow-input: true}
 
code3 = "CL=F" #@param ["MSFT"] {allow-input: true}
 
code4 = "BTC-USD" #@param ["FB"] {allow-input: true}
 
code5 = "TSLA" #@param ["FB"] {allow-input: true}
 
code6 = "MSTR" #@param ["FB"] {allow-input: true}
 
codelist = [code1,code2,code3,code4,code5,code6]
 
#終値取得(data2に終値を取り込み)※欠損値除外
 
data2 = yf.download(codelist, start=start, end=end)["Adj Close"].dropna()
 
data2

#@title 相関をざっと見る【グラフ】手入力:①x軸y軸の銘柄と値幅範囲、②カラー指定
 
#ビットコインとテスラ
 
g = sns.jointplot(x="BTC-USD", y="TSLA", data=data2,kind="reg",
 
truncate=False,
 
xlim=(0, 40000), ylim=(0, 1000),
 
color="m", height=7)
 

 
p = sns.jointplot(data=data2, x="BTC-USD", y="TSLA")
 
p.plot_joint(sns.kdeplot, color="r", zorder=0, levels=6)
 
p.plot_marginals(sns.rugplot, color="y", height=-.15, clip_on=False)
 

 
#ビットコインとマイクロストラテジー
 
g = sns.jointplot(x="BTC-USD", y="MSTR", data=data2,kind="reg",
 
truncate=False,
 
xlim=(0, 40000), ylim=(0, 800),
 
color="b", height=7)
 

 
q = sns.jointplot(data=data2, x="BTC-USD", y="MSTR")
 
q.plot_joint(sns.kdeplot, color="r", zorder=0, levels=6)
 
q.plot_marginals(sns.rugplot, color="y", height=-.15, clip_on=False)
 

 
#ビットコインと米10年国債(金利)
 
h = sns.jointplot(x="BTC-USD", y="^TNX", data=data2,kind="reg",
 
truncate=False,
 
xlim=(0, 40000), ylim=(0.1, 1.8),
 
color="g", height=7)
 

 
n = sns.jointplot(data=data2, x="BTC-USD", y="^TNX")
 
n.plot_joint(sns.kdeplot, color="r", zorder=0, levels=6)
 
n.plot_marginals(sns.rugplot, color="y", height=-.15, clip_on=False)
 
#ビットコインと原油
 
i = sns.jointplot(x="BTC-USD", y="CL=F", data=data2,kind="reg",
 
truncate=False,
 
xlim=(0, 40000), ylim=(0, 90),
 
color="y", height=7)
 

 
r = sns.jointplot(data=data2, x="BTC-USD", y="CL=F")
 
r.plot_joint(sns.kdeplot, color="r", zorder=0, levels=6)
 
r.plot_marginals(sns.rugplot, color="y", height=-.15, clip_on=False)
 

 
#ビットコインとダウ
 
i = sns.jointplot(x="BTC-USD", y="^DJI", data=data2,kind="reg",
 
truncate=False,
 
xlim=(0, 40000), ylim=(15000, 40000),
 
color="c", height=7)
 

 
c = sns.jointplot(data=data2, x="BTC-USD", y="^DJI")
 
c.plot_joint(sns.kdeplot, color="r", zorder=0, levels=6)
 
c.plot_marginals(sns.rugplot, color="y", height=-.15, clip_on=False)
 

❸衝撃の告白

すみません。

私、ビットコイン持ってません(*‘ω‘ *)

全部売りました🙉

利益(値幅こそ)が愛すべき銘柄であるため、

個別銘柄に固執しないのいです。。。汗

_( _´ω`)_ペショ

でも、トレーダーなのでまた買いましゅ(・ω・)ノ

では、ばいちゃ(`・ω・´)ゞ

pythonでプログラミングがしたい!!
 
pythonを学びたい!という方には、
 
オンラインプログラミング教室『Aidemy アイデミー』がお勧めです。
 
ご自身でプログラム環境を用意する必要は無く、サイトへアクセスするだけです。 創業者は東京大学工学部卒の石川聡彦さん。
 
著書に『人工知能プログラミングのための数学がわかる本』(KADOKAWA/2018年)など。
 
無料で、お試しもできますので安心です。
 
お時間ある方は下記リンクを覗いてみてはいかがでしょうか(*'ω'*)

    2480
    5