配对交易(搬砖)

首先,历史前五日的Pearson相关系数若大于给定的阈值。
如果两只股票走势趋同,则按上涨(下跌)趋势买入(卖出)股票。
如果两只股票走势背离,则买入下跌股票,卖出上涨股票。
首先需要在A股中寻找走势相关性很大的股票,这是一项很繁复的工作。为简单起见,这里直接使用了一个现成的结果:000159和000967在2012年的走势十分相似,这一点可以通过复权收盘价曲线来验证。
df = DataAPI.MktEqudAdjGet(secID = '000159.XSHE', field = 'closePrice', beginDate = '20120101', endDate = '20130101')
df['000159'] = df['closePrice']
df = df.loc[:, ['000159']].reset_index()
df2 = DataAPI.MktEqudAdjGet(secID = '000967.XSHE', field = 'closePrice', beginDate = '20120101', endDate = '20130101')
df2['000967'] = df2['closePrice']
df2 = df2.loc[:, ['000967']].reset_index()
df = df.merge(df2, left_on=['index'], right_on=['index'])
df = df.loc[:, ['000159', '000967']]
df.plot()


回测:
from scipy.stats.stats import pearsonr
start = '2013-01-01'
end  = '2014-01-01'
benchmark = 'HS300'
universe = ['000159.XSHE', '000967.XSHE']
capital_base = 1000000
def initialize(account):
    account.cutoff = 0.9
    account.prev_prc1 = 0
    account.prev_prc2 = 0
    account.prev_prcb = 0
def handle_data(account):
    if len(account.universe) < 2: return
   
    clsp = account.get_attribute_history('closePrice', 5)
    stk1, stk2 = universe
    px1, px2 = clsp[stk1], clsp[stk2]
      
    prc1, prc2 = px1[-1], px2[-1]
    prcb = account.get_symbol_history('benchmark', 1)['return'][0]
   
    if account.prev_prc1 == 0:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值