均值回归策略(二)—代码实现

均值回归策略(二)—代码实现

在上一篇均值回归策略(一)中我们简单的介绍了均值回归策略的一些基础知识,这里我们将通过代码的形式来实现均值回归策略的指标计算及买卖点的识别,以及最后收益率和持有天数的计算。

一、数据提取

本文用到的数据主要是从优矿平台下载的沪深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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值