iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0
AI & Data

從零開始的套牢生活 - AI股票預測系統系列 第 6

[Day 6] 從零開始的股票預測 - 準備資料

一、前言

在開始實驗前,我們首先需要決定輸入資料的型態,昨天說過了資料可分為

  • 股價類型的「技術面」
  • 營運類型的「基本面」

我們暫時先不看「基本面」資料,把重點放在「技術面」資料上。

二、技術資料一覽

  • 開盤價(Open)
  • 最高價(High)
  • 最低價(Low)
  • 收盤價(Close)
  • 買賣價差(Spread)
  • 成交量(Trading_Volume)
  • 成交金額(Trading_money)
  • 交易筆數(Trading_turnover)

三、取得資料

還記得前天的FinMind
我們稍微修改一下,改成取得ETF50的1月至8月的股票資料。

import pandas as pd
import datetime
import requests

etf50_df = pd.read_csv("data/ETF50.csv")
etf50_id = etf50_df.loc[:, "STOCK_ID"].astype(str)

frames = []
for id in etf50_id:
    url = "https://api.finmindtrade.com/api/v4/data"
    parameter = {
        "dataset": "TaiwanStockPrice",
        "start_date": datetime.datetime(2021, 1, 1, 0, 0).strftime("%Y-%m-%d"),
        "end_date": datetime.datetime(2021, 8, 31, 0, 0).strftime("%Y-%m-%d"),
        "data_id": id,
    }

    data = requests.get(url, params=parameter)
    data = data.json()
    df = pd.DataFrame(data["data"])

    frames.append(df)

result_df = pd.concat(frames)
result_df = result_df.reset_index(drop=True)

result_df.to_csv("data/2021-08-31-etf50-tech.csv", index=False, header=True)
result_df.head()

四、就這樣?

是的,今天的文章到這邊就結束了,
一來昨天的論文筆記花了太多時間結果沒存稿了,
二來今天有個白癡花太多時間研究技術指標,結果原本要做的資料清理來不及做。

往好的方面想,現在有存稿了...

總而言之,之後開始做資料清理,我們明天見。

參考


上一篇
[Day 5] 站在巨人的肩膀上 - 回顧股票市場交易論文
下一篇
[Day 7] 從零開始的股票預測 - 異常值偵測
系列文
從零開始的套牢生活 - AI股票預測系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言