【D9】取得加权指数历史资料

前言

认为整体环境看多,优秀的个股不会太差;大环境不好,优秀的股票也会被拖累。有这个概念後我们取得三大法人的留仓作为判断依据,但这个判断依据是不是可以跟市场趋势做结合,这时候就是需要可以代替整体市场的发行量加权股价指数,作为比较的依据,来验正这个想法。

本日程序码使用:d9_saveTaiexToDb.py


简介:发行量加权股价指数

发行量加权股价指数」是交易所自行编撰的指数,又称为加权指数、上市指数、TAIEX,是跟美国S&P 500的公式相同,可以作为判断台北股市的状况。

此指数是从1966开始,并且以1966年为基期,基期指数设为100,其计算公式为:发行量加权股价指数 =(当期总发行市值 / 基值)× 基期指数。现在大概为17304(2021/9/9)。

汇入资料

建立Table

这次取得的资料是从「发行量加权股价指数历史资料」取得,此为一个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++)

>>:  爱用iPhone的设计师可以多恐怖?

CSS基础介绍(3)

来轻松聊聊 终於来到基础CSS的最後一篇,这次要分享的是CSS的变量。 想像一个情境,你正在负责一个...

搞懂 P2P 技术 (3) - WebRTC x AWS x KVS

WebRTC 全名 Web Real-Time Communication,是一个支援网页浏览器进行...

【Day14】Git 版本控制 - 建立分支(branch)

相信在上一篇文章的解释大家都已经了解分支(branch)的重要性,若没有使用分支,而是直接将版本混在...

PHP 连接资料库 使用 PDO

PDO PDO 全称 PHP Data Object extension 是 PHP 5.1 开始提...

24.移转 Aras PLM大小事-流程签核动态指派(3)

如果能找出对应的签核主管之後 下面就来解释一下可以设定签核指派的页面 这里我在厂商提供的页面中,新增...