高手都知道能提高勝率的出手時機

Featasy
FinMind
Published in
7 min readSep 3, 2022

我們都知道股市的本質就是一個個賭局

可與傳統賭局不同的是股市不是獨立事件

漲跌受到總體經濟, 景氣, 獲利狀況, 產業消息還有群眾心理等等不同面向的影響

有些影響是一定規模資金的流動, 具有慣性,能追蹤到這些慣性, 就能比別人多出幾個百分比的優勢, 這幾個百分比往往就是輸家與贏家的差異

這篇我們試著先用時間當例子, 畢竟股票就是一種時間序列數據

不同月份, 不同週間, 由於衍生性金融商品有規定的結算時間, 或是熱門除權息的時間, 甚至是投信的績效結算時間, 都會影響股市的漲跌, 什麼樣的月份, 星期幾適合買股票, 其實都是有跡可循的

先說結論:

  1. 早盤買股可能不是個好做法
  2. 盤中的震蕩通常都是虛的, 看見趨勢發動才追突破一般情況下有很高的失敗率

下面就來跟著我們一起看看這個結論是否合理吧

先載入會用到的package

import pandas as pd
import numpy as np
import os
from FinMind.data import DataLoader

登入FinMind(不登入也可使用只是會限制次數)

user_id = os.environ.get("FINMIND_USER", "")
password = os.environ.get("FINMIND_PASSWORD", "")
dl = DataLoader()
dl.login(user_id, password)

拉取大盤資料

stock_data = dl.taiwan_stock_daily(stock_id="TAIEX", start_date="2018-09-01",end_date= "2022-08-31")

新增月份與星期欄位

stock_data['weekday'] = pd.to_datetime(stock_data['date']).dt.weekday
stock_data['month'] = pd.to_datetime(stock_data['date']).dt.month
stock_data = stock_data[stock_data['weekday']<5]
stock_data = stock_data.dropna()

把數據normalize到開盤價, 方便我們做比較

stock_data["max"] = stock_data["max"]/stock_data["open"]
stock_data["min"] = stock_data["min"]/stock_data["open"]
stock_data["close"] = stock_data["close"]/stock_data["open"]
stock_data["open"] = stock_data["open"]/stock_data["open"]

import 蠟燭線繪圖package

import mpl_finance as mpf

對星期做簡單平均

stock_data_gb_week = stock_data.groupby(["weekday"]).mean().reset_index()
weekday = ['星期一','星期二','星期三','星期四','星期五']
stock_data_gb_week['weekday'] = stock_data_gb_week['weekday'].apply(lambda x:weekday[x])

繪圖

%matplotlib inline
import matplotlib.pyplot as plt
def draw_candle_stick(df, index):
fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(1, 1, 1)
ax.set_xticks(range(0, len(df.index)))
ax.set_xticklabels(df[index])
mpf.candlestick2_ochl(ax, df['open'], df['close'], df['max'], df['min'], width=0.7, colorup='r', colordown='g', alpha=1)
draw_candle_stick(stock_data_gb_week, 'weekday')

這張圖可以發現, 前三天大盤盤中平均而言是收紅的, 星期四五則是容易收黑, 判斷可能配合周選結算, 加上大家不習慣在週末留下部位所導致的

另外可以發現引線比實體k長非常多, 代表通常盤中上衝下洗, 最後實際產生的漲跌幅並不在盤中, 在盤中操作選擇權買方有非常高的機率失去時間價值, 能夠走出趨勢是小概率事件

接著我們把時間尺度拉到月觀察看看

stock_data_gb_month = stock_data.groupby(["month"]).mean().reset_index()
month = [f"{i}月" for i in range(0,13)]
stock_data_gb_month['month'] = stock_data_gb_month['month'].apply(lambda x:month[x])
draw_candle_stick(stock_data_gb_month, 'month')

可以發現雖然我們知道大盤長期趨勢是往上, 可是盤中收黑機率其實挺高的, 很多上班族會在上班前掛單買股看來不是個聰明的做法

年底因為關係到年度績效, 不止公司會使用些做賬手法, 就連法人投信, 為了讓自己的基金績效好看, 也會在這時候刻意去拉抬成分股

以上是很簡單的統計方式, 就能或多或少優化自己的進出場時機, 當中其實還有很多可以更深入探索的部分, 比方說跳空狀況, 震蕩週期,甚至結合其它不同資料去驗證這些假設

FinMind幫你將這些資料都做了整理,可以免費使用,希望能降低市場的資訊壟斷的情況, 有更多的競爭者才能讓這個領域越來越活絡, 也讓我們在國際市場上更有競爭力是我們的初衷, 如果認同我們的理念感謝大家的支持

有什麼想法歡迎與我們聯繫交流

👉點擊查看更多Finmind資訊

如果對這主題感興趣😍
請不吝給與掌聲
👏
我們將來會推出更多相關實用內容
💪

有任何建議請來信至 FinMind.TW@gmail.com
追蹤我們獲得更多即時資訊 Github Facebook

延伸閱讀
🔥
製作個人專屬看盤軟體(一)

🔥 利用融資維持率抓到適合的抄底時機

🔥 台股除權息報表

--

--