【コピペで動く!】株式投資での時間帯における投資行動の違いは大きい Twitterで出てくる知見は本当か自分で調べてみよう。【Google Colabで違いをみつけろ!】

スポンサーリンク
投資

株式投資におけて、時間帯の値動きにクセがあることはご存知ですか?ちょっとしたことですが、利益の大部分が特定のある時間帯からもたらされることがあります。それを自分で、本当に間違っていないのか、確認しながら検証します。

元記事は 2021/06/06 noteに書いた記事になります。

Twitterで出てくる知見は本当か自分で調べてみよう。6 時間帯における投資行動の違い|TF
ーーーーーーーーーーー2021/08/02 追記ーーーーーーーーーーー 今後こちらに移行します。 Twitterで出てくる知見は本当か自分で調べてみよう。6 時間帯における投資行動の違い - worth2know.comTwitterで出てくる知見は本当か自分で調べてみよう。6 時間帯における投資行動...

以前のコードでは動かくなっているようですので、こちらのサイトで修正したものをリライトして、載せていきます。

2021/07/30時点で以下のコードはエラーなく動いていることを確認しています。

以下のようなコメントいただきましたので、続編書いてみようと思います。

けだまさん、コメント大変ありがとうございます。励みになります。
ただし、期待値は低めでお願いします。 <(_ _)>

あまり、複雑でないながら、キャッチーな話題を見つけるのはそれはそれで難しいのですが、程よいものを見つけました。

有名なアノーマリーではありますが、いまだに効きますので、改めて検証してみたいと思います。

日本株での土屋先生の「真夜中は別の顔」という(現在は削除されていますが)コラムをもしご存知の方がいらっしゃったら、以下は読む必要はありません。

まずは、SPYがこの一年でどのようなパフォーマンスか最初に確認します。

https://stockcharts.com/  でSPYの一年間を%でのパフォーマンスチャートを表示します。

画像1

1年2カ月で約62%の上昇のようです。上記Tweetでは2020/3/23からなので、ざっくり正しい感じです。詳細は分かりませんが、有名なBESPOKEのヘッダーに見えますので、データ自体は正しいように感じています。

Bespoke Interactive

注目点は
日中(Open->Close)
GAP (Close->Open)
の時間帯において、値動きの癖が違うという事です。

それでは実際にGoogle Colaboratoryを使ってのPythonコードで確認します。

目次

  1. 使用する環境
  2. 実際のコードとやっていること
  3. データの取得
  4. 時間帯での特性抽出
  5. 可視化

使用する環境

今回もGoogle Colaboratoryのpythonを使うことにします。使い方などにつていはこちらを参考にしてください。

実際のコードとやっていること

Open In Colab

Google Colabの共有ファイルは上記になります。Googleのアカウントがあればログインして、そのままShift+Enterで再現できると思います。

コードは以下の通りです。

!pip install yfinance --upgrade --no-cache-dir

import datetime
import yfinance as yf
import pandas as pd
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
%matplotlib inline
import warnings
warnings.filterwarnings('ignore')
start_D = datetime.date(2020,3,23)
end_D = datetime.date.today()
codelist = ["SPY"]

data2 = yf.download(codelist, start=start_D, end=end_D)
display(data2.head(2).append(data2.tail(2)))

analyze=data2.copy()
analyze["cc"]=100*(analyze["Close"]-analyze["Close"].shift())/analyze["Close"].shift()
analyze["oo"]=100*(analyze["Open"]-analyze["Open"].shift())/analyze["Open"].shift()
analyze["intra"]=100*(analyze["Close"]-analyze["Open"])/analyze["Open"]
analyze["gap"]=100*(analyze["Open"]-analyze["Close"].shift())/analyze["Close"].shift()
display(analyze.head(3).append(analyze.tail(3)))

df_all=analyze[["cc","oo","intra","gap"]].copy()
display(df_all.head(2).append(df_all.tail(2)))


df_all.cumsum().plot(figsize=(8,5),fontsize=18)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5), fontsize=18)       
plt.axhline(y=0, linewidth=4, color='r')
plt.grid()
0

データの取得

いつも通りYahoo USでS&P500連動のETF SPYのデータをダウンロードします。

画像2

今回は修正済みの引けだけではなく、Open-High-Low-Closeの四本値を取得します。

時間帯での特性抽出

今回は以下の四つの時間軸で特性を調べます。
1.前日引値ー当日引値 (通常の前日比)
2.前日始値ー当日始値
3.当日始値ー当日引値 (寄り付きで買ってその日の引けで売る)
4.前日引値ー当日始値 (前日の引値で買って、翌朝の寄り付きで売る)

となります。

可視化

実際のパフォーマンスは以下の通りです。

画像3

チャートの線の色は違いますが、同じような結果が見て取れると思います。

ただ、上記チャート見るとわかりますが、

毎日売ったり買ったりするよりもベタにHOLDしていればいいのでは、、、

という感想を持つのも事実です。実際売り買いを行うと、手数料もかかりますし、、250営業日毎日往復手手数料払うとなると、結構パフォーマンスにネガティブなインパクトを与えるのは想像に難くないです。

20行とはいきませんでしたが、簡単なコードで確認することができました。

おまけとして、2000年からの期間では以下のようになります。
どのように思うかは皆さんの考え方次第、お任せします。

夜間買い、日中売りなんてどうですかね、、終了フラグ、、
自身で確認してみてください。

画像4

2023/12/02追記

現在も公開したプログラムは動いています。また、直近の動向は上記グラフのようになっているようです。

ディスクレーマー・投資に関する免責事項

情報の提供・作業代行を目的としており、投資勧誘を目的とするものではありません。

---

関連記事を紹介します。

Pytho,投資関係に関する記事をご紹介します。

Python高速化! for文は遅いので、”これ”を使うと30倍早いですよ!【Google ColabのPython:コピペで動く!】
【コピペで動く!】日本株、米国株で個別銘柄ベータ値(β値)を簡単に調べる方法 Python 米国株 Webサービス&コード 【Google Colabで違いをみつけろ!】
【コピペで動く!】Pythonで1.5GBのcsvファイル読み込み高速化:1分5秒⇒4秒程度 DASK , pickle (Pythonコードあり)
【コピペで動く!】Google ColabでPython を用いての 効率的フロンティア と ポートフォリオの最適化 Efficient Frontier & Portfolio Optimization with Python [Part 2/2]
【コピペで動く!】20行で資産運用モデル作成 Google ColabのPythonで 米国株の株価を取得し、グラフ・チャートを表示
【解決】Google ColabのPythonでエクセル(Excel)ファイルやCSVファイルに出力・入力する方法【コピペで動く!】
【解決】スクレイピングでHTTP Error 403: Forbiddenでアクセスできないときに試すべき方法【コピペで動く!】【Google Colab:Python:pd.read_html,selenium】
米国債のゼロクーポン債STRIPSについてのメモ
過去50年間のS&P500の季節性の値動きから負けにくいポジション構築はできるのか考える・大統領選挙のアノマリー対応!【コピペで動く!】Google ColabのPythonで自分で調べてみよう!
曜日による米国株指数(S&P500)のパフォーマンスに違いはあるのか?有利なポジション取りはできるのか?【Google ColabのPython:コピペで動く!】Twitterで出てくる知見は本当か自分で調べてみよう。
自動化・効率化できます!金融向けGoogle スプレッドシートのすぐ使える簡単な使い方4選!(Google Finance,セントルイス連銀,アメリカ合衆国財務省,スクレイピング)【コピペで動く!】
自動化・効率化でなにができるのか!Google FinanceやYahoo Financeからデータ取得して年初来パフォーマンスや週次騰落率のファクターチェック
【コピペで動く!】IB証券(インタラクティブ・ブローカーズ証券 )へのPythonでのAPI接続 ib_insync [自分が使っているPythonコード]
ボラティリティ クラスタリング(Volatility Clustering)について:Google ColabのPythonでの相場環境分析
【コピペで動く!】レイ・ダリオ推奨「オール・ウェザー戦略」をETFで構築するには? ETFの手軽さとそのパフォーマンスの高さとは!【違いをみつけろ!】

コメント

タイトルとURLをコピーしました