资源简介

配对交易(Pairs Trading)是指八十年代中期华尔街著名投行Morgan Stanley的数量交易员Nunzio Tartaglia成立的一个数量分析团队提出的一种市场中性投资策略,,其成员主要是物理学家、数学家、以及计算机学家。Ganapathy Vidyamurthy在《Pairs Trading: Quantitative Methods and Analysis》一书中定义配对交易为两种类型:一类是基于统计套利的配对交易,一类是基于风险套利的配对交易。

资源截图

代码片段和文件信息

# coding=utf-8
from __future__ import print_function absolute_import unicode_literals
from gm.api import *
import  numpy as np



def init(context):
    #获得N日股票交易数据
    context.N=5
    #选择一对股票
    context.stock=[‘SZSE.000651‘‘SZSE.000333‘]
    # 每个交易日的09:40 定时执行algo任务
    schedule(schedule_func=algo date_rule=‘1d‘ time_rule=‘09:40:00‘)



def algo(context):
    # 获取上一个交易日的日期
    last_day = get_previous_trading_date(exchange=‘SHSE‘ date=context.now)
    # 获取当天有交易的股票,似乎无法同时获得两只股票的数据,所以只能麻烦一点
    not_suspended = get_history_instruments(symbols=context.stock[0] start_date=last_day end_date=last_day)
    a = len([item[‘symbol‘] for item in not_suspended if not item[‘is_suspended‘]])
    not_suspended = get_history_instruments(symbols=context.stock[1] start_date=last_dayend_date=last_day)
    b = len([item[‘symbol‘] for item in not_suspended if not item[‘is_suspended‘]])
    #如果有一支停牌,就跳过
    if a+b<2:
        return
    #获得交易数据
    prices1 = history_n(symbol=context.stock[0] frequency=‘1d‘ count=context.N end_time=last_day fields=‘close‘
                       skip_suspended=True
                       fill_missing=None adjust=ADJUST_PREV adjust_end_time=‘‘ df=True)
    prices2=history_n(symbol=context.stock[1] frequency=‘1d‘ count=context.N end_time=last_day fields=‘close‘
                       skip_suspended=True
                       fill_missing=None adjust=ADJUST_PREV adjust_end_time=‘‘ df=True)
    p1=list(prices1[‘close‘])
    p2=list(prices2[‘close‘])
    spread = np.array(p1[:-1]) - np.array(p2[:-1])
    # 计算布林带的上下轨
    up = np.mean(spread) + 2 * np.std(spread)
    down = np.mean(spread) - 2 * np.std(spread)
    # 计算最新价差
    spread_now = p1[-1] - p2[-

评论

共有 条评论