量化交易策略 — RSRS斜率

发布于: 雪球转发:0回复:0喜欢:3

声明:

1.本文策略源码均来自掘金量化示例策略库,仅供参考!

2.由于雪球编辑器不支持python语言,源码可能存在格式错误,请自行修正。


RSRS斜率python策略源码:


from __future__ import print_function, absolute_import

from gm.api import *

import statsmodels.api as sm

import numpy as np

def init(context):

#设置参数

context.N=18

context.M=3600

context.ans=[]

#获取历史数据及历史斜率

prices = history_n(symbol='SHSE.000300', frequency='1d', count=context.M, end_time='2014-01-01', fields='high,low',skip_suspended=True,

fill_missing=None,adjust=ADJUST_PREV,df=True)

highs = prices.high

lows = prices.low

context.ans = []

for i in range(len(highs))[context.N:]:

data_high = highs.iloc[i - context.N + 1:i + 1]

data_low = lows.iloc[i - context.N + 1:i + 1]

X = sm.add_constant(data_low)

model = sm.OLS(data_high, X)

results = model.fit()

context.ans.append(results.params[1])

mu=np.mean(context.ans)

sigama=np.std(context.ans)

#求阈值

context.buy=mu+sigama

context.sell=mu-sigama

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)

#计算前一日的RSRS斜率

prices = history_n(symbol='SHSE.000300', frequency='1d', count=context.N, end_time=last_day, fields='', skip_suspended=True,

fill_missing=None, adjust=ADJUST_PREV, adjust_end_time='', df=True)

#做回归计算

highs = prices.high

lows = prices.low

X = sm.add_constant(lows)

model = sm.OLS(highs, X)

results = model.fit().params[1]

if results > context.buy:

order_target_percent(symbol='SHSE.000300', percent=1, order_type=OrderType_Market,

position_side=PositionSide_Long)

if results < context.sell:

order_close_all()

if __name__ == '__main__':

run(strategy_id='73bb5bf2-a536-11e8-bd52-9cd21ef04ea9',

filename='789.py',

mode=MODE_BACKTEST,

token='c395247a76e8a5caeee699d668d6f550213bc418',

backtest_start_time='2014-01-01 08:00:00',

backtest_end_time='2018-01-01 16:00:00',

backtest_adjust=ADJUST_PREV,

backtest_initial_cash=10000000,

backtest_commission_ratio=0,

backtest_slippage_ratio=0)


关联阅读:阻力支撑的新视角