汉斯123法则在沪深300指数期货回测

“汉斯123法则”作为外汇市场上广为流行的一种日内突破交易策略,以其简洁的开盘后N根K线的高低点突破,作为开仓交易信号触发的评判标准。

该策略以开盘后N根k线的最高价、最低价作为交易信号触发标准,触发的上下轨可增加一定额外宽度,日内平仓。

本文尝试将这个法则应用于沪深300指数期货中,N根k线的高低价取开盘后9点到10点的5分钟bar的高低价数据。

具体策略规则如下:

· 回测标的:沪深300指数期货合约(设置定时任务每天开盘前获取);

· 回测时间:2021-05-01---2021-06-01;

· 初始资金:1000000元;

· 上轨:开盘后60分钟的5分钟bar数据的最高价的最大值*(1+阈值);

· 下轨:开盘后60分钟的5分钟bar数据的最高价的最大值*(1-阈值);

· 其他:每个标的限制只持有一手,开盘前平仓;

· 设置限价止盈止损:多头止盈最高价+5、止损最低价-5;空头止盈最低价-5、止损最高价+5。

回测效果:

回测结束时,总资产为1338745.66元,累计收益率为33.87%,最大回撤3.34%,夏普比率为5.92。

图片

结果表明,该交易法则应用于沪深300指数期货还是有可取之处的。但是不同时间段的适用性不一样,而且从回测曲线可以看出,该策略具有一定的空窗期,如果能加上其他开盘的规则或许会更好。

策略代码:

# coding=utf-8
from __future__ import print_function, absolute_import
from gm.api import *
import string
from gm.enum import OrderSide_Buy, OrderSide_Sell, OrderType_Limit, OrderType_Market, PositionEffect_Close
import pandas as pd
from pandas.core.frame import DataFrame
'''
日内策略
每日开盘前09:00:00获取沪深300指数期货可交易的期货合约;
假设开盘后time时间的走势形成的高低价作为突破的上轨和下轨,这里time设置为一小时,即10点开始跟踪趋势,高点突破则作为开仓信号。
订阅频率为5分钟
不允许重复下单
开盘前平仓
止盈20止损20
每天早上9点,平掉所有单子。
'''

# 策略中必须有init方法
def init(context):
    #每天的09:00:00执行策略algo_1  开盘前获取沪深300指数期货交易标的信息
    schedule(schedule_func=algo_1, date_rule='1d', time_rule='09:00:00')
    #记录标的的高低价情况
    context.high=pd.DataFrame()
    context.low=pd.DataFrame()
    #突破开盘区间的高低阈值,定义为0.6%
    context.hold=0.006
    #定义上轨
    context.uphold=pd.DataFrame()
    #定义下轨
    context.downhold=pd.DataFrame()
    #每天的10:00:00执行策略algo_2  开始执行策略逻辑,开盘后N根k线的高低点突破,作为开仓信号
    schedule(schedule_func=algo_2, date_rule='1d', time_rule='10:00:00')
    #设置止盈止损

为尊重原创,欲获取完整代码请点击:汉斯123法则在沪深300指数期货回测 - 掘金量化社区 - 量化交易者的交流社区掘金量化社区是量化投资者策略研讨、答疑解惑、资源共享的互动交流论坛。https://bbs.myquant.cn/topic/2465/2

声明:本内容由掘金量化团队原创,仅供学习、交流、演示之用,不构成任何投资建议!如需转载请联系掘金小Q(VX:myquant2018)授权,否则作侵权处理!

猜你喜欢

转载自blog.csdn.net/weixin_42219751/article/details/121180016