Files
MoFin/venv/lib/python3.12/site-packages/akshare/option/option_czce.py
T
知微 fa45d8aa5f fix: 小果地址统一node122(兼容LAN+EasyTier)
- health_checklist.json: 192.168.1.122→node122
- ocr_client.py: docstring IP→node122
- docs/market-data-requirements.md: IP→node122
- 所有API调用通过ProxyHandler({})绕过系统代理
  Privoxy对node122:18003返回500,直连正常
2026-06-30 02:56:35 +08:00

83 lines
2.5 KiB
Python

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
Date: 2025/10/17 16:30
Desc: 郑州商品交易所-交易数据-历史行情下载-期权历史行情下载
http://www.czce.com.cn/cn/jysj/lshqxz/H770319index_1.htm
自 20200101 起,成交量、空盘量、成交额、行权量均为单边计算
郑州商品交易所-期权上市时间表
"SR": "20170419"
"CF": "20190410"
"TA": "20191216"
"MA": "20191217"
"RM": "20200116"
"ZC": "20200630"
"OI": "20220826"
"PK": "20220826"
"PX": "20230915"
"SH": "20230915"
"SA": "20231020"
"PF": "20231020"
"SM": "20231020"
"SF": "20231020"
"UR": "20231020"
"AP": "20231020"
"CJ": "20240621"
"FG": "20240621"
"PR": "20241227"
"""
import warnings
from io import StringIO
import pandas as pd
import requests
def option_hist_yearly_czce(symbol: str = "SR", year: str = "2021") -> pd.DataFrame:
"""
郑州商品交易所-交易数据-历史行情下载-期权历史行情下载
http://www.czce.com.cn/cn/jysj/lshqxz/H770319index_1.htm
:param symbol: choice of {"白糖": "SR", "棉花": "CF", "PTA": "TA", "甲醇": "MA", "菜籽粕": "RM",
"动力煤": "ZC", "菜籽油": "OI", "花生": "PK", "对二甲苯": "PX", "烧碱": "SH", "纯碱": "SA", "短纤": "PF",
"锰硅": "SM", "硅铁": "SF", "尿素": "UR", "苹果": "AP", "红枣": "CJ", "玻璃": "FG", "瓶片": "PR"}
:type symbol: str
:param year: 需要获取数据的年份, 注意品种的上市时间
:type year: str
:return: 指定年份的日频期权数据
:rtype: pandas.DataFrame
"""
symbol_year_dict = {
"SR": "2017",
"CF": "2019",
"TA": "2019",
"MA": "2019",
"RM": "2020",
"ZC": "2020",
"OI": "2022",
"PK": "2022",
"PX": "2023",
"SH": "2023",
"SA": "2023",
"PF": "2023",
"SM": "2023",
"SF": "2023",
"UR": "2023",
"AP": "2023",
"CJ": "2024",
"FG": "2024",
"PR": "2024",
}
if int(symbol_year_dict[symbol]) > int(year):
warnings.warn(f"{year} year, symbol {symbol} is not on trade")
return pd.DataFrame()
url = f"http://www.czce.com.cn/cn/DFSStaticFiles/Option/{year}/OptionDataAllHistory/{symbol}OPTIONS{year}.txt"
r = requests.get(url)
option_df = pd.read_table(StringIO(r.text), skiprows=1, sep="|", low_memory=False)
return option_df
if __name__ == "__main__":
option_hist_yearly_czce_df = option_hist_yearly_czce(symbol="RM", year="2025")
print(option_hist_yearly_czce_df)