1.策略介绍
作为外汇市场上广为流行的一种突破交易策略,HANS123以其简洁的开盘后N根K线的高低点突破,作为交易信号触发的评判标准。这也是一种入场较早的交易模式,配合适当过滤技术,或可提高其胜算。
过滤原理:这个过滤是为了让市场消化品种隔夜的各种信息,当有些突发信息公布,市场分歧很大的时候,开盘会呈现方向不明、宽幅震荡的情况,此时,对任何突破策略都会是灾难,所以忽略这段时间。
策略原理:
- 日内交易策略,收盘平仓;
- HANS123在开盘30分钟后准备入场;
- 上轨=开盘后30分钟高点;
- 下轨=开盘后30分钟低点;
- 当价格突破上轨,买入开仓;
- 当价格跌穿下轨,卖出开仓。
2.策略代码
2.1配置文件【HANS123.ini】(提示ini配置文件,需要保存成UTF8格式)
2.2策略文件【HANS123.py】
3.回测结果
4.代码涉及的函数
4.1Python相关函数
| 功能 | 函数原型 | 参数 | 返回值 |
参数名 | 含义 |
sys | 提供了一系列有关Python运行环境的变量和函数。 |
| | | sys.argv[0] | 当前程序名 | |
sys.argv | 获取当前正在执行的命令行参数的参数列表(list)。 | sys.argv | sys.argv[1] | 第一个参数 | |
sys.argv[2] | 第二个参数 | |
arrow | 标准的时间日期库。 |
time | 返回当前时间的时间戳 | time.time() | | | 返回当前时间的时间戳 |
len | 返回对象(字符、列表、元组等)长度或项目个数。 | len(s) | s | 对象 | 返回对象长度。 |
append | 用于在列表末尾添加新的对象。 | list.append(obj) | obj | 添加到列表末尾的对象。 | 该方法无返回值,但是会修改原来的列表。 |
4.2掘金接口函数
| 功能 | 函数原型 | 参数 | 返回值 |
参数名 | 类型 | 说明 |
on_bar | 响应Bar事件,收到Bar数据后本函数被调用。 | on_bar(bar) | bar | bar | bar数据 | 无 |
open_long | 异步开多仓,以参数指定的symbol、价和量下单。如果价格为0,为市价单,否则为限价单。策略类和交易服务类都提供该接口 | open_long(exchange, sec_id, price, volume) | exchange | string | 交易所代码, 如上交所SHSE | 委托下单生成的Order对象 |
sec_id | string | 证券代码,如浦发银行600000 |
price | float | 委托价,如果price=0,为市价单,否则为限价单 |
volume | float | 委托量 |
close_long | 异步平多仓接口,以参数指定的exchange, 证券代码sec_id, 价和量下单。如果价格为0,为市价单,否则为限价单。策略类和交易服务类都提供该接口。 | close_long(exchange, sec_id, price, volume) | exchange | string | 交易所代码, 如上交所SHSE | 委托下单生成的Order对象 |
sec_id | string | 证券代码,如浦发银行600000 |
price | float | 委托价,如果price=0,为市价单,否则为限价单 |
volume | float | 平仓量 |
open_short | 异步开空仓,以参数指定的symbol、价和量下单。如果价格为0,为市价单,否则为限价单。策略类和交易服务类都提供该接口 | open_short(exchange, sec_id, price, volume) | exchange | string | 交易所代码, 如上交所SHSE | 委托下单生成的Order对象 |
sec_id | string | 证券代码,如浦发银行600000 |
price | float | 委托价,如果price=0,为市价单,否则为限价单 |
volume | float | 委托量 |
close_short | 异步平空仓接口,以参数指定的exchange, 证券代码sec_id, 价和量下单。如果价格为0,为市价单,否则为限价单。策略类和交易服务类都提供该接口。 | close_long(exchange, sec_id, price, volume) | exchange | string | 交易所代码, 如上交所SHSE | 委托下单生成的Order对象 |
sec_id | string | 证券代码,如浦发银行600000 |
price | float | 委托价,如果price=0,为市价单,否则为限价单 |
volume | float | 平仓量 |