均值回归策略(二)—代码实现
在上一篇均值回归策略(一)中我们简单的介绍了均值回归策略的一些基础知识,这里我们将通过代码的形式来实现均值回归策略的指标计算及买卖点的识别,以及最后收益率和持有天数的计算。
一、数据提取
本文用到的数据主要是从优矿平台下载的沪深300从2013年1月1日至2024年5月31日的前复权的所有股票的价格信息。删除了2013年之后上市的股票,确保股价数据的完整性。优矿平台数据调取代码如下(需在优矿平台运行该代码):
这里就不对代码进行详细解释了,有兴趣的同学,可以自己研究一下哈
import re
import pandas as pd
hushen300 = DataAPI.IdxConsGet(secID=u"",ticker=u"000300",isNew=u"",intoDate=u"20240531",field=u"",pandas="1")
hushen300_name = hushen300["consShortName"]
hushen300_id_org = hushen300["consID"]
hushen300_id = hushen300["consID"].str.extract(r'(\d+)', expand=False)
hushen300_price = pd.DataFrame()
for m in range(0,300):
object_time = datetime(2013, 1, 1, 0, 0, 0)
ttm = DataAPI.EquGet(secID=hushen300_id_org[m],ticker=u"",equTypeCD=u"A",listStatusCD=u"",exchangeCD="",ListSectorCD=u"",field=u"secID,listDate,secShortName",pandas="1")
ttm['listDate'] = pd.to_datetime(ttm['listDate'])
mubiaoshijian=datetime(2013, 1, 1, 0, 0, 0)
if ttm["listDate"][0] < mubiaoshijian:#从沪深300成分股里面筛选出2013年之前上市的股票
stock_price = DataAPI.MktEqudAdjGet(secID=u"",ticker=hushen300_id[m],tradeDate=u"",beginDate=u"20130101",endDate=u"",isOpen="",field=u"tradeDate,closePrice",pandas="1")#股价是前复权股价
stock_price = stock_price.set_index("tradeDate")
stock_price = stock_price.rename(columns={
"closePrice":hushen300_name[m]})
if m==0:
hushen300_price=stock_price
else:
hushen300_price = hushen300_price.join(stock_price)
hushen300_price = hushen300_price.dropna() #删除带有空值的行
hushen300_price.to_csv('hushen300_price.csv')
二、数据读取
数据下载到本地,使用python读取数据,以便后续数据的分析使用。具体代码如下:
import pandas as pd

最低0.47元/天 解锁文章
2092

被折叠的 条评论
为什么被折叠?



