股指期货交割日日历效应研究
由neoblackxt创建,最终由neoblackxt 被浏览 1 用户
import dai
%%sql
SELECT instrument,last_deliver_date
FROM cn_future_basic_info
WHERE product_code = 'IF'
AND instrument NOT IN ('IF0000.CFE', 'IF8888.CFE', 'IF9999.CFE')
LIMIT 200
┌────────────┬─────────────────────┐
│ instrument │ last_deliver_date │
│ varchar │ timestamp_ns │
├────────────┼─────────────────────┤
│ IF1005.CFE │ 2010-05-21 00:00:00 │
│ IF1006.CFE │ 2010-06-18 00:00:00 │
│ IF1007.CFE │ 2010-07-16 00:00:00 │
│ IF1008.CFE │ 2010-08-20 00:00:00 │
│ IF1009.CFE │ 2010-09-17 00:00:00 │
│ IF1010.CFE │ 2010-10-15 00:00:00 │
│ IF1011.CFE │ 2010-11-19 00:00:00 │
│ IF1012.CFE │ 2010-12-17 00:00:00 │
│ IF1101.CFE │ 2011-01-21 00:00:00 │
│ IF1102.CFE │ 2011-02-18 00:00:00 │
│ · │ · │
│ · │ · │
│ · │ · │
│ IF2504.CFE │ 2025-04-18 00:00:00 │
│ IF2505.CFE │ 2025-05-16 00:00:00 │
│ IF2506.CFE │ 2025-06-20 00:00:00 │
│ IF2507.CFE │ 2025-07-18 00:00:00 │
│ IF2508.CFE │ 2025-08-15 00:00:00 │
│ IF2509.CFE │ 2025-09-19 00:00:00 │
│ IF2510.CFE │ 2025-10-17 00:00:00 │
│ IF2511.CFE │ 2025-11-21 00:00:00 │
│ IF2512.CFE │ 2025-12-19 00:00:00 │
│ IF2603.CFE │ 2026-03-20 00:00:00 │
├────────────┴─────────────────────┤
│ 189 rows (20 shown) 2 columns │
└──────────────────────────────────┘
%%sql
SELECT instrument, name, pre_close, close, date
FROM (
SELECT instrument, name, pre_close, close, date,
row_number() OVER (PARTITION BY name ORDER BY date DESC) AS rn
FROM cn_stock_index_bar1d
WHERE name in (
'上证50', '沪深300', '中证1000', '中证2000',
'中证全指', '上证指数', '深证成指', '创业板指', '科创50'
)
) t
WHERE rn = 1
LIMIT 10
┌────────────┬──────────┬────────────┬───────────┬─────────────────────┐
│ instrument │ name │ pre_close │ close │ date │
│ varchar │ varchar │ double │ double │ timestamp_ns │
├────────────┼──────────┼────────────┼───────────┼─────────────────────┤
│ 000688.SH │ 科创50 │ 1416.575 │ 1363.1684 │ 2025-10-17 00:00:00 │
│ 399006.SZ │ 创业板指 │ 3037.4423 │ 2935.3698 │ 2025-10-17 00:00:00 │
│ 000300.SH │ 沪深300 │ 4618.4218 │ 4514.2345 │ 2025-10-17 00:00:00 │
│ 399001.SZ │ 深证成指 │ 13086.4092 │ 12688.936 │ 2025-10-17 00:00:00 │
│ 932000.CSI │ 中证2000 │ 3050.4203 │ 2963.3308 │ 2025-10-17 00:00:00 │
│ 000016.SH │ 上证50 │ 3019.1966 │ 2967.7748 │ 2025-10-17 00:00:00 │
│ 000852.SH │ 中证1000 │ 7401.8375 │ 7185.4781 │ 2025-10-17 00:00:00 │
│ 000001.SH │ 上证指数 │ 3916.228 │ 3839.7553 │ 2025-10-17 00:00:00 │
│ 000985.CSI │ 中证全指 │ 5800.591 │ 5652.4627 │ 2025-10-17 00:00:00 │
└────────────┴──────────┴────────────┴───────────┴─────────────────────┘
sql = r"""
SELECT last_deliver_date
FROM cn_future_basic_info
WHERE product_code = 'IF'
AND instrument NOT IN ('IF0000.CFE', 'IF8888.CFE', 'IF9999.CFE')
"""
res = dai.query(sql, filters={"last_deliver_date": ["2010-01-01", "2025-10-17"]})
ld_date = res.df()
ld_date_list = ld_date.iloc[:,0].dt.strftime('%Y-%m-%d').tolist()
sql2 = rf"""
select instrument,name,pre_close,close,date
from cn_stock_index_bar1d
where date in ({str(ld_date_list)[1:-1]})
order by date asc
"""
def analysis_lddate_return(instrument,date_range):
index_quote = dai.query(sql2, filters={"instrument":[instrument],"date": date_range}).df()
index_quote['return'] = index_quote['close']/index_quote['pre_close'] - 1
print(f"{index_quote.loc[0,'name']}收益率均值:{index_quote['return'].mean()}")
index_quote['return'].plot()
# 指数代码
# 上证50 000016.SH
# 沪深300 000300.SH
# 中证1000 000852.SH
# 中证2000 932000.CSI
# 中证全指 000985.CSI
# 上证指数 000001.SH
# 深证成指 399001.SZ
# 创业板指 399006.SZ
# 科创50 000688.SH
analysis_lddate_return("000016.SH",["2010-01-01", "2025-10-17"])
上证50收益率均值:0.00097728291190521
analysis_lddate_return("000300.SH",["2010-01-01", "2025-10-17"])
沪深300收益率均值:0.0005211767873248918
analysis_lddate_return("000852.SH",["2010-01-01", "2025-10-17"])
中证1000收益率均值:0.00029217119174898765
analysis_dldate_return("932000.CSI",["2010-01-01", "2025-10-17"])
中证2000收益率均值:0.00036537908269404935
analysis_lddate_return("000985.CSI",["2010-01-01", "2025-10-17"])
中证全指收益率均值:0.00038458235602662226
analysis_lddate_return("000001.SH",["2010-01-01", "2025-10-17"])
上证指数收益率均值:0.00048476185803287316
analysis_lddate_return("399001.SZ",["2010-01-01", "2025-10-17"])
深证成指收益率均值:3.424310945610916e-05
analysis_dldate_return("399006.SZ",["2010-01-01", "2025-10-17"])
创业板指收益率均值:0.00014995579075559266
analysis_lddate_return("000688.SH",["2010-01-01", "2025-10-17"])
科创50收益率均值:0.001805280610643594
初步结论:股指交割日对收益率的影响无明显偏向
\