iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
Software Development

金融分析 X Python-訊號燈系列 第 10

【D10】市場熱絡程度:每日市場成交資訊

前言

常見的市場熱絡程度,也有用成交金額判斷,當大家踴躍交易的時候,容易價格抬升。試想如果,大家預期未來會一直狂跌,有人會想要現在買嗎?沒有人會想要買股票在高價,因此在跌勢中,市場的成交無論是數量或是金額都會大大的降低,所以判斷市場熱度是很重要的。

本日程式碼使用:d10_saveDailyMarketInfoToDb.py


市場成交價格與市場熱度

在前言有說,當看空整個市場時,不會有人用「現在的高價」買股票,一定會等未來低價的時候買,這時交易量就會下降;同樣的,未來預期會漲,大家願意拿錢去購買「現在便宜」的股票,等未來高價的時候賣掉,這時候市場就很熱絡。

就好像這篇新聞〈台股漲33點收17,304點 成交量萎縮至2,439億元〉有提到「雖然今日有拉尾盤、上漲家數大於下跌家數,不過成交量縮至3,000億元以下,預期後續指數仍偏向大箱型區間震盪走勢」,因此這類的資訊也是觀察點。

取得:每日市場成交資訊

這樣的概念可以衍生出觀察整個市場的交易數量和金額,因此本日的資料就是要收集這個相關的:盤後資訊 > 每日市場成交資訊,裡面有整個市場的成交股數成交金額成交筆數,就是我們要的重點。

建立Table

由於成交金額最近比較低,從新聞可知道有2439億,用int無法負荷,這邊要使用bigint。接著再觀察資料:

日期,成交股數,成交金額,成交筆數,發行量加權股價指數,漲跌點數
"1100901","7417302954","365348125049","2348742","17473.99","-16.30"

有的還要處理小數點和正負號,所以我們就在確定是正數的地方,像是成交股數成交金額成交筆數使用unsigned,然後有小數點的,留一些空間等未來指數漲更大(?)。因此Table會變成:

CREATE TABLE `StockTransactionInfo` (
  `TradeDate` date NOT NULL,
  `TranscationQty` bigint(11) unsigned NOT NULL DEFAULT '0',
  `TranscationAmount` bigint(11) unsigned NOT NULL DEFAULT '0',
  `TranscationCount` bigint(11) unsigned NOT NULL DEFAULT '0',
  `Taiex` float(9,2) NOT NULL DEFAULT '0.00',
  `ChangePoint` float(9,2) NOT NULL DEFAULT '0.00',
  `CreateTime` datetime DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`TradeDate`)
) ;

匯入資料庫

這邊就先不討論要如何取資料,可以看前面的篇章,不過要注意的是,這邊Day9一樣,日期要修改一下,從民國年改成西元年。

# 建立connection物件
my_connt_obj = db_connect.mysql_connect()
conn = my_connt_obj.connect()
with conn.cursor() as cursor:
    # 新增SQL語法
    for _, row in self.df.iterrows():
        trade_date = str(row[0])
        trade_date = f"{str(int(row[0]/10000)+1911)}-{str(row[0])[3:5]}-{str(row[0])[5:8]}"
        cmd = f"""INSERT INTO StockTransactionInfo
        (TradeDate,
        TranscationQty, TranscationAmount, TranscationCount,
        Taiex, ChangePoint)
        values('{trade_date}',
        '{row[1]}', {row[2]}, {row[3]}, {row[4]}, {row[5]});"""
        cursor.execute(cmd)
    conn.commit()

這樣就沒啥要注意的了,就可以直接匯入。


後記:

這樣我們就有一些製作訊號燈的素材,有大盤交易資訊、加權指數點數、三大法人對於最近幾天的看法(留倉),這樣可以製作出自己的市場溫度計。

接下來會用這些素材,思考彼此的關係進而 做出一些訊號燈,告訴自己現在市場的熱絡程度。


上一篇
【D9】取得加權指數歷史資料
下一篇
【D11】避免重複交易資料匯入:使用PK和Unique key
系列文
金融分析 X Python-訊號燈32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言