stock-tracker

This commit is contained in:
C菌
2026-07-04 00:17:11 +08:00
commit 6087341a48
6463 changed files with 1929869 additions and 0 deletions
@@ -0,0 +1,6 @@
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
Date: 2020/1/10 17:09
Desc:
"""
@@ -0,0 +1,138 @@
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
Date: 2024/5/11 22:00
Desc: 东方财富网-经济数据-银行间拆借利率
https://data.eastmoney.com/shibor/shibor.aspx
"""
import pandas as pd
import requests
from akshare.utils.tqdm import get_tqdm
def rate_interbank(
market: str = "上海银行同业拆借市场",
symbol: str = "Shibor人民币",
indicator: str = "隔夜",
):
"""
东方财富-拆借利率一览-具体市场的具体品种的具体指标的拆借利率数据
具体 market 和 symbol 参见: https://data.eastmoney.com/shibor/shibor.aspx?m=sg&t=88&d=99333&cu=sgd&type=009065&p=79
:param market: choice of {"上海银行同业拆借市场", "中国银行同业拆借市场", "伦敦银行同业拆借市场", "欧洲银行同业拆借市场", "香港银行同业拆借市场", "新加坡银行同业拆借市场"}
:type market: str
:param symbol: choice of {"Shibor人民币", "Chibor人民币", "Libor英镑", "***", "Sibor美元"}
:type symbol: str
:param indicator: choice of {"隔夜", "1周", "2周", "***", "1年"}
:type indicator: str
:return: 具体市场的具体品种的具体指标的拆借利率数据
:rtype: pandas.DataFrame
"""
market_map = {
"上海银行同业拆借市场": "001",
"中国银行同业拆借市场": "002",
"伦敦银行同业拆借市场": "003",
"欧洲银行同业拆借市场": "004",
"香港银行同业拆借市场": "005",
"新加坡银行同业拆借市场": "006",
}
symbol_map = {
"Shibor人民币": "CNY",
"Chibor人民币": "CNY",
"Libor英镑": "GBP",
"Libor欧元": "EUR",
"Libor美元": "USD",
"Libor日元": "JPY",
"Euribor欧元": "EUR",
"Hibor美元": "USD",
"Hibor人民币": "CNH",
"Hibor港币": "HKD",
"Sibor星元": "SGD",
"Sibor美元": "USD",
}
indicator_map = {
"隔夜": "001",
"1周": "101",
"2周": "102",
"3周": "103",
"1月": "201",
"2月": "202",
"3月": "203",
"4月": "204",
"5月": "205",
"6月": "206",
"7月": "207",
"8月": "208",
"9月": "209",
"10月": "210",
"11月": "211",
"1年": "301",
}
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
params = {
"reportName": "RPT_IMP_INTRESTRATEN",
"columns": "REPORT_DATE,REPORT_PERIOD,IR_RATE,CHANGE_RATE,INDICATOR_ID,"
"LATEST_RECORD,MARKET,MARKET_CODE,CURRENCY,CURRENCY_CODE",
"quoteColumns": "",
"filter": f"""(MARKET_CODE="{market_map[market]}")(CURRENCY_CODE="{symbol_map[symbol]}")
(INDICATOR_ID="{indicator_map[indicator]}")""",
"pageNumber": "1",
"pageSize": "500",
"sortTypes": "-1",
"sortColumns": "REPORT_DATE",
"source": "WEB",
"client": "WEB",
"p": "1",
"pageNo": "1",
"pageNum": "1",
}
r = requests.get(url, params=params)
data_json = r.json()
total_page = data_json["result"]["pages"]
big_df = pd.DataFrame()
tqdm = get_tqdm()
for page in tqdm(range(1, total_page + 1), leave=False):
params.update(
{
"pageNumber": page,
"p": page,
"pageNo": page,
"pageNum": page,
}
)
r = requests.get(url, params=params)
data_json = r.json()
temp_df = pd.DataFrame(data_json["result"]["data"])
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
big_df.columns = [
"报告日",
"-",
"利率",
"涨跌",
"-",
"-",
"-",
"-",
"-",
"-",
]
big_df = big_df[
[
"报告日",
"利率",
"涨跌",
]
]
big_df["报告日"] = pd.to_datetime(big_df["报告日"], errors="coerce").dt.date
big_df["利率"] = pd.to_numeric(big_df["利率"], errors="coerce")
big_df["涨跌"] = pd.to_numeric(big_df["涨跌"], errors="coerce")
big_df.sort_values(["报告日"], inplace=True)
big_df.reset_index(inplace=True, drop=True)
return big_df
if __name__ == "__main__":
rate_interbank_shanghai_df = rate_interbank(
market="上海银行同业拆借市场", symbol="Shibor人民币", indicator="3月"
)
print(rate_interbank_shanghai_df)