千葉県知事選が話題になっている。
前千葉市長の熊谷氏とは子供の学校同じなんだよな……。
運動会などで見かける事があるんだけど、
とした姿を見るたびに、自分のちっぽけさに嫌気が指し吐き気に見舞われた気分になる。
現実から目を背けるように、ふと「他の立候補者は誰かなぁ……」も覗いてみた。
後藤輝樹氏
も立候補してるじゃんww。
Boys be シコリシャス
と政見放送で語り、ネタ枠として一気に有名になった人物だ。
因みに、この人は9回落選らしく都道府県知事の供託金は300万円。
「立候補軍資金どうしてるのさ?」
とWikipediaで調べてみた。
27歳で家を出るまでに(中略)株・FXの取引で1000万円の選挙資金を貯めた
最近は、YouTuberなどが登録者を増やすために立候補するらしい……。行動力凄い……。
株価の動きは個別銘柄によりまちまちだ。
日本株全般が堅調にもかかわらず全く株価が上昇しない「弱い株」がある一方、日本株全般が軟調にもかかわらず株価の上昇が続く「強い株」も存在する。
なぜこのように銘柄ごとに株価の動きが異なるのか?
その理由の1つにあげられるのが
信用残高
私は人を信用しない。信用という言葉は嫌いだ。信用なんてクソ喰らえ!
だから、もちろん「信用取引」なんてしないから関係ない。
という人がいるが、他人事のように思ってはいけない。
以前、外資ファンドのプロのシステムトレーダーにあった際に「需給」が大事だとヒントをもらった。
買う人が多ければ株価は上がり、売る人が多ければ下がる。
「信用残高」は需給を知る一つの目安であり、トップダウンな考え方をするための重要な鍵となる。
「信用残高」と「信用倍率」とはなにか?
「信用残高」とは、信用取引の未決済残高のこと。
「信用買い残高(略称:買い残)」と「信用売り残高(略称:売り残)」の2つがある。
- 「信用買い残高」は、信用買いを実行し、まだ返済売りが行われずに残っている株数
- 「信用売り残高」は、信用売り(=空売り)を実行し、まだ返済の買戻しが行われずに残っている株数
また「信用倍率」とは、「信用買い残高÷信用売り残高」
例えば、
- 信用買い残高が20万株、信用売り残高が5万株・・・信用倍率=4倍
- 信用買い残高が5万株、信用売り残高が20万株・・・信用倍率=0.25倍
「信用買い残高は減少しているが株価が上昇している場合」は、「大口の投資家による現物買い」など、強い買い需要が生じている可能性ある
など色々と分かるため、
信用残高が株価に与える影響を知っているか投資成績に直結するといっても過言ではない
と言い切ってるサイトだってある。
これらの数値はYahooファイナンスなどで簡単に過去の週毎のデータを確認することが可能だ。
まとめると、
- 信用倍率が上昇傾向にあれば需給悪化(将来の売り圧力が高まるため、株価の上値を抑える原因)
- 信用倍率が低下傾向にあれば需給改善(将来の買い戻し圧力が高まるので、株価の下支えや上昇の原因)
一般には、信用買い残高が日々の平均売買高の3倍以上に積み上がってくると、需給に悪影響を与えると言われる。
Pythonで欠損値を直前の値を使って埋めてプロットする
一度グラフ出力して見ないと何も言えない。
因みにOmegaChartは標準で「信用買残」「信用売残」が表示されるようになっている。10年以上前から重要性に気づいていたということか……。
さて、今回入手した信用残高は「東証」なので一週間単位のデータしかない。
更新のある火曜日以外の平日は「欠損値」という扱いにしてPythonで前の値を使って穴埋めをしてみよう。
本当は関数補完の方が良さそうだけど、システムトレードに使う時には前日の値が分からなくなるので利用しない。
でも、ゼロパディングや欠損値補完など色々と面倒だな……と思ってやってなかったが、実装すると30行程度だった。
欠損値補完などは、Kaggleで色々と学習した。
たとえば、method=’ffill’(forward fillの略称)で直前の値が穴埋めが可能となる。
1 |
df_method.fillna(method='ffill') # 直前の値を使って埋めていく |
結果はExcelで出力してみた。
株価データの上に信用倍率を透過して乗せている。
週単位なので大局的に見る必要があるものの、信用倍率が高いときは株価が下がり、信用倍率が低い時には株価が上がっているように見えなくもない。
うーん、機械学習で解かせたらどうなるんだろう?有効な指標として判別するのかな。
機械学習で解いてみる
仮説は実証して初めて真実になる
って福山雅治が言ってたよ?
そういえば新作のドラマ「ガリレオ」は今年の春ごろ、映画は6月ごろにクランクイン予定らしい、超楽しみ!
おっと脱線、過去の機械学習のコードを読み直そう♪
ふむ……。
ふむふむ……。
……。
動かし方を忘れたわ。
……。
やっちまったなぁ~
クールポコ
まとめ
ちょww、まとまらないっしょ……。
40代中年の記憶力が、こんなにも落ちるとは思ってなかったーーー!
あぁーー、機械学習の復習をするかぁ……。
ソースコード
参考として「トヨタ自動車(7203)」の信用倍率だけ整形してみる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# -*- coding: utf-8 -*- # python convert.py import pandas as pd from datetime import datetime from datetime import timedelta import re import numpy as np import functools print = functools.partial(print, flush=True) # CSV読み込み(各自変更) P_PATH = "C:\\Users\\HOGE\\Desktop\\Protra\\data\\price\\" S_PATH = "C:\\Users\\HOGE\\Desktop\\Shinyou\\out\\" # 年月日変換+ゼロパディング def date_zeropadding(date): l = re.findall(r"\d+", date) return l[0].zfill(4) + "/" + l[1].zfill(2) + "/" + l[2].zfill(2) def main(): # ヘッダあり・なしCSVの読み込み df_protra = pd.read_csv(P_PATH + "7\\7203.csv", names=("日付", "open", "high", "low", "close", "volume")) df_shinyou = pd.read_csv(S_PATH + "7203.csv") # 複数の行をまとめて削除する場合はリストで指定 # df_protra = df_protra.drop(["open", "high", "low", "close", "volume"], axis=1) print(df_protra) df_shinyou['日付'] = df_shinyou['日付'].apply(date_zeropadding) print(df_shinyou) df_protra = pd.merge(df_protra, df_shinyou, on='日付', how='left') # 直前の値を使って埋めていく df_protra = df_protra.fillna(method='ffill') df_protra = df_protra.replace(np.nan, '', regex=True) print(df_protra) df_protra.to_csv("output.csv", header=False, index=False) #以下、メインルーチン if __name__ == "__main__": main() |
結果はCSVで出力するが、ファイル形式を説明するために print文で出力しているので、参考にどうぞ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
日付 open high low close volume 0 1998/01/05 3750 3760 3620 3640 1170.0 1 1998/01/06 3670 3670 3630 3640 1896.0 2 1998/01/07 3650 3710 3650 3710 1924.0 3 1998/01/08 3730 3770 3690 3690 3072.0 4 1998/01/09 3690 3710 3670 3700 2562.0 ... ... ... ... ... ... ... 5677 2021/03/05 7910 7969 7786 7969 6787.0 5678 2021/03/08 8089 8147 7922 7961 6899.2 5679 2021/03/09 8089 8189 8020 8189 8117.0 5680 2021/03/10 8200 8213 8105 8128 5727.4 5681 2021/03/11 8154 8179 8060 8091 5823.5 [5682 rows x 6 columns] 日付 売残 買残 売残増減 買残増減 信用倍率 0 1999/03/05 2179000 606000 0 0 0.28 1 1999/03/12 2740000 444000 561000 -162000 0.16 2 1999/03/19 2097000 477000 -643000 33000 0.23 3 1999/03/26 1102000 746000 -995000 269000 0.68 4 1999/04/02 1738000 586000 636000 -160000 0.34 ... ... ... ... ... ... ... 1114 2021/02/05 978000 2022900 262500 -648600 2.07 1115 2021/02/12 1370400 1939700 392400 -83200 1.42 1116 2021/02/19 987300 2802500 -383100 862800 2.84 1117 2021/02/26 819500 2995300 -167800 192800 3.66 1118 2021/03/05 816900 2996900 -2600 1600 3.67 [1119 rows x 6 columns] 日付 open high low close volume 売残 買残 売残増減 買残増減 信用倍率 0 1998/01/05 3750 3760 3620 3640 1170.0 1 1998/01/06 3670 3670 3630 3640 1896.0 2 1998/01/07 3650 3710 3650 3710 1924.0 3 1998/01/08 3730 3770 3690 3690 3072.0 4 1998/01/09 3690 3710 3670 3700 2562.0 ... ... ... ... ... ... ... ... ... ... ... ... 5677 2021/03/05 7910 7969 7786 7969 6787.0 816900.0 2996900.0 -2600.0 1600.0 3.67 5678 2021/03/08 8089 8147 7922 7961 6899.2 816900.0 2996900.0 -2600.0 1600.0 3.67 5679 2021/03/09 8089 8189 8020 8189 8117.0 816900.0 2996900.0 -2600.0 1600.0 3.67 5680 2021/03/10 8200 8213 8105 8128 5727.4 816900.0 2996900.0 -2600.0 1600.0 3.67 5681 2021/03/11 8154 8179 8060 8091 5823.5 816900.0 2996900.0 -2600.0 1600.0 3.67 [5682 rows x 11 columns] |