量化投资入门教程八——空中花园策略
量化投资入门教程八——空量化投资入门教程八——空 中花园(中花园(SKYPARKSKYPARK)策略)策略 目录目录 1.1. 策略原理及代码策略原理及代码 1.11.1 策略原理策略原理 1.21.2 策略代码策略代码 1.2.1 配置文件【SkyPark.ini】,代码 1.2.2 策略文件【SkyPark.py】,代码 2.2. PythonPython 相关函数相关函数 2.1Python2.1Python 标准函数标准函数 2.22.2 掘金接口函数掘金接口函数 1.1.策略原理及代码策略原理及代码 1.1 1.1 策略原理策略原理 基空中花园属于日内突破策略,是期货 CTA 日内策略。空中花园比较看重 开盘突破。 开盘时的高开或者低开均说明有大的利好或者利空使得开盘大幅远离 昨天的收盘价。开盘突破,是最快的一种入场方式。当然出错的概率也最高。因 此为了提高策略的胜率, 空中花园策略加了额外的条件, 也就是开盘要大幅高开 或者低开,形成一个空窗,因此顾名思义称为空中花园,然后再根据是否突破上 下轨来进行开仓判断。这样一来,策略的胜率将大大提高,不过由于对高开或者 低开的幅度要求过高,一般是超过 1%,因此使得策略的交易次数可能相对其它 策略而言要偏低一些。 开盘第一根 K 线是收阳还是收阴, 是判断日内趋势可能运 动方向的标准。在当天开盘高开或低开时更有效。 空中花园策略主要特点:日内交易策略,当日收盘平仓; 空中花园在当天 高开或低开时使用,即当开盘价=昨天收盘价*1.01 或开盘价=昨天收盘价 *0.99 时: ● 上轨=第一根 K 线的最高价; ● 下轨=第一根 K 线的最低价; ● 当价格突破上轨,买入开仓; ● 当价格跌穿下轨,卖出开仓; ● 当日收盘平仓。 实现量化投资策略的相关编程并非想象中这么困难,从实现量化投资策略的相关编程并非想象中这么困难,从 PythonPython 的安装到量化编的安装到量化编 程的实现只需简单几步(具体见程的实现只需简单几步(具体见 轻松轻松 安装安装 PythonPython、掘金量化平台及相关工具包、掘金量化平台及相关工具包)) 1.2 1.2 策略代码(可直接在策略代码(可直接在pythonpython 中实现)百度文库无法上传,详细内容见中实现)百度文库无法上传,详细内容见证经证经 社社 ———— )) 1.2.1 配置文件【SkyPark.ini】,代码 2.Python2.Python 相关函数相关函数 2.1Python2.1Python 标准函数标准函数 功能函数原型 参数返回值 参数名 含义 sys提供了一系列有关Python 运行环境的变量和函数。 sys.ar gv[0] 当前程序名 sys.ar 第一个参数 gv[1] 获取当前正在执行的命令行参 sys.argv 数的参数列表(list)。 sys.ar 第二个参数 gv[2] sys.argv arrow标准的时间日期库。 time.tim time返回当前时间的时间戳 e() 返回当前时间的时间戳 返回对象 (字符、 列表、 元组等) len 长度或项目个数。 len(s)s对象返回对象长度。 list.app append用于在列表末尾添加新的对象。 end(obj) obj添加到列表末尾的对象。 该方法无返回值,但是会 修改原来的列表。 2.2 2.2 掘金接口函数掘金接口函数 参数 功能函数原型 参数名类型说明 返回值 on_bar响应 Bar 事件,收到Bar 数据后本函数被调用。on_bar(bar)barbarbar 数据无 交易所代码, exchangestring 如上交所 SHSE 证券代码,如浦 sec_id 异步开多仓, 以参数指定的 symbol、 价和量下单。 open_long(exchange, open_long如果价格为 0,为市价单,否则为限价单。策略 sec_id, price, 委托价,如果 类和交易服务类都提供该接口volume) price=0,为市 pricefloat 价单, 否则为限 价单 委托下单生成的Order对象 string 发银行 600000 volumefloat委托量 交易所代码, exchangestring 如上交所 SHSE 异步平多仓接口, 以参数指定的 exchange, 证券 close_long(exchange 代码 sec_id, 价和量下单。如果价格为0,为市 close_long 价单,否则为限价单。策略类和交易服务类都提 volume) 供该接口。 委托价,如果 pricefloat price=0,为市 价单, 否则为限 , sec_id, price, sec_idstring 发银行 600000 证券代码,如浦 委托下单生成的Order对象 价单 volumefloat平仓量 交易所代码, exchangestring 如上交所 SHSE 证券代码,如浦 sec_id 异步开空仓, 以参数指定的 symbol、 价和量下单。 open_short(exchange open_short如果价格为 0,为市价单,否则为限价单。策略 , sec_id, price, 委托价,如果 类和交易服务类都提供该接口volume) price=0,为市 pricefloat 价单, 否则为限 价单 委托下单生成的Order对象 string 发银行 600000 volumefloat委托量 交易所代码, exchangestring 如上交所 SHSE 异步平空仓接口, 以参数指定的 exchange, 证券 close_long(exchange sec_id 代码 sec_id, 价和量下单。如果价格为0,为市 close_short 价单,否则为限价单。策略类和交易服务类都提 volume) 供该接口。 , sec_id, price, string 证券代码,如浦 发银行 600000 委托下单生成的Order对象 委托价,如果 price=0,为市 pricefloat 价单, 否则为限 价单 volumefloat平仓量 注:注:更多关于量化策略的教程和分析等精彩内容详见更多关于量化策略的教程和分析等精彩内容详见