认为整体环境看多,优秀的个股不会太差;大环境不好,优秀的股票也会被拖累。有这个概念後我们取得三大法人的留仓作为判断依据,但这个判断依据是不是可以跟市场趋势做结合,这时候就是需要可以代替整体市场的发行量加权股价指数,作为比较的依据,来验正这个想法。
本日程序码使用:d9_saveTaiexToDb.py
「发行量加权股价指数」是交易所自行编撰的指数,又称为加权指数、上市指数、TAIEX,是跟美国S&P 500的公式相同,可以作为判断台北股市的状况。
此指数是从1966开始,并且以1966年为基期,基期指数设为100,其计算公式为:发行量加权股价指数 =(当期总发行市值 / 基值)× 基期指数
。现在大概为17304(2021/9/9)。
这次取得的资料是从「发行量加权股价指数历史资料」取得,此为一个CSV档,里面的栏位为:
因此纪录加权指数的Table会长成这样:
CREATE TABLE `Taiex` (
`TradeDate` date NOT NULL,
`Open` float NOT NULL DEFAULT '0',
`High` float NOT NULL DEFAULT '0',
`Low` float NOT NULL DEFAULT '0',
`Close` float NOT NULL DEFAULT '0',
PRIMARY KEY (`TradeDate`)
)
接着仿效Day6的做法,先从网路取得CSV,然後再用pandas
读取CSV,进而转乘Dataframe
:
try:
csv = requests.get(self.url)
df = pandas.read_csv(StringIO(csv.text)) # 有header
print(df) # debug
self.df = df
except Exception as exc:
print(exc)
return False
接着把资料资料汇入之前,稍微检查一下资料,发现日期为1100901
,为民国年,需要转成西元年,因此要特别转换,这边使用:
str(int(row[0]/10000)+1911)}-{str(row[0])[3:5]}-{str(row[0])[5:8]
由於资料本身就是数值,所以就直接除以10000,然後用int()
只取前面的年,接着再加上1911
,然後再重新组合成日期格式,这边就把数值用str()
方式转换成文字,接着用方式转换成文字,接着用切割的方式切成所需的片段,也就是月份和日的部分,最後就组成:2021-09-01
。然後就可以存进去罗!
所以这一块的程序码为:
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 = f"{str(int(row[0]/10000)+1911)}-{str(row[0])[3:5]}-{str(row[0])[5:8]}"
cmd = f"""INSERT INTO Taiex
(TradeDate, Open, High, Low, Close)
values('{trade_date}',
'{row[1]}', {row[2]}, {row[3]}, {row[4]});"""
cursor.execute(cmd)
counter += 1
conn.commit()
<<: [Day 4] Leetcode 764. Largest Plus Sign (C++)
来轻松聊聊 终於来到基础CSS的最後一篇,这次要分享的是CSS的变量。 想像一个情境,你正在负责一个...
WebRTC 全名 Web Real-Time Communication,是一个支援网页浏览器进行...
相信在上一篇文章的解释大家都已经了解分支(branch)的重要性,若没有使用分支,而是直接将版本混在...
PDO PDO 全称 PHP Data Object extension 是 PHP 5.1 开始提...
如果能找出对应的签核主管之後 下面就来解释一下可以设定签核指派的页面 这里我在厂商提供的页面中,新增...