全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 量化投资
2202 1
2017-07-27
1. 策略原理:
      R-Breaker是个经典的具有长生命周期的日内模型。
类型:日内趋势追踪+反转策略
周期:1分钟、5分钟
根据前一个交易日的收盘价、最高价和最低价数据通过一定方式计算出六个价位,
从大到小依次为:
突破买入价(buy_break)、观察卖出价(sell_setup)、
反转卖出价(sell_enter)、反转买入价(buy_enter)、
观察买入价(buy_setup)、突破卖出价(sell_break)
以此来形成当前交易日盘中交易的触发条件。

交易规则:
反转:
持多单,当日内最高价超过观察卖出价后,盘中价格出现回落,且进一步跌破反转卖出价构成的支撑线时,采取反转策略,即在该点位反手做空;
持空单,当日内最低价低于观察买入价后,盘中价格出现反弹,且进一步超过反转买入价构成的阻力线时,采取反转策略,即在该点位反手做多;
突破:
在空仓的情况下,如果盘中价格超过突破买入价,则采取趋势策略,即在该点位开仓做多;
在空仓的情况下,如果盘中价格跌破突破卖出价,则采取趋势策略,即在该点位开仓做空;
2. 代码解读:
2.1 R_Breaker.ini
复制代码
2.2 R_Breaker.py
复制代码
3. Python相关函数
3.1 Python标准函数:
功能函数原型参数返回值
参数名含义
find检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。str.find(str, beg=0, end=len(string))str指定检索的字符串。如果包含子字符串返回开始的索引值,否则返回-1。
beg开始索引,默认为0。
end结束索引,默认为字符串的长度。
arrowArrow是一个专门处理时间和日期的轻量级Python库,它提供了一种合理、智能的方式来创建、操作、格式化、转换时间和日期。转换为Arrow对象后,我们可以很方便的获取我们想要的各种时间数据,通过year、month、day、hour、minute、second、week等属性。
time.localtime()将一个时间戳转换为当前时区的struct_time。time.localtime([secs])secs若未提供,则以当前时间为准。
time.gmtime()是将一个时间戳转换为UTC时区(0时区)的struct_time。time.gmtime([secs])secs若未提供,则以当前时间为准。
time.time返回当前时间的时间戳。time.time()
time.mktime将一个struct_time转化为时间戳。time.mktime()
time.sleep线程推迟指定的时间运行。单位为秒。time.sleep()
time.asctime把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。time.asctime([t])t如果没有参数,将会将time.localtime()作为参数传入。
time.ctime把一个时间戳(按秒计算的浮点数)转化time.asctime()的形式。time.ctime如果参数未给或者为None的时候,将会默认time.time()
为参数。它的作用相当于time.asctime(time.localtime(secs))。
time.clock这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。(实际上是以WIN32上QueryPerformanceCounter()为基础,它比毫秒表示更为精确)time.clock()
len返回对象(字符、列表、元组等)长度或项目个数。len(s)s对象返回对象长度。


3.2 掘金接口函数:
功能函数原型参数返回值
参数名类型说明
on_bar响应Bar事件,收到Bar数据后本函数被调用。on_bar(bar)barbarbar数据
on_tick响应Tick事件,收到Tick数据后本函数被调用。on_tick(tick)tickticktick数据
on_execrpt响应委托执行回报事件,收到Execution数据后本函数被调用。on_execrpt(rpt)rptExecRpt
get_last_dailybars提取最新1条DailyBar数据,支持单个代码提取或多个代码组合提取。策略类和行情服务类都提供该接口。get_last_dailybars(symbol_list)symbolstring证券代码, 带交易所代码以确保唯一,如SHSE.600000,同时支持多只代码DailyBar列表
get_positions查询当前策略指定symbol(由交易所代码和证券ID组成)和买卖方向的持仓信息。策略类和交易服务类都提供该接口。get_position(exchange, sec_id, side);exchangestring交易所代码Position对象,持仓信息
sec_idstring证券代码
sideint买卖方向
open_long异步开多仓,以参数指定的symbol、价和量下单。如果价格为0,为市价单,否则为限价单。策略类和交易服务类都提供该接口。open_long(exchange, sec_id, price, volume)exchangestring交易所代码, 如上交所SHSE委托下单生成的Order对象
sec_idstring证券代码,如浦发银行600000
pricefloat委托价,如果price=0,为市价单,否则为限价单
volumefloat委托量
close_short异步平空仓接口,以参数指定exchange, 证券代码sec_id, 价和量下单。如果价格为0,为市价单,否则为限价单。策略类和交易服务类都提供该接口。close_short(exchange, sec_id, price, volume)exchangestring交易所代码, 如上交所SHSE返回委托下单生成的Order对象
sec_idstring证券代码,如浦发银行600000
pricefloat委托价,如果price=0,为市价单,否则为限价单
volumefloat委托量
close_long异步平多仓接口,以参数指定exchange, 证券代码sec_id, 价和量下单。如果价格为0,为市价单,否则为限价单。策略类和交易服务类都提供该接口。close_long(exchange, sec_id, price, volume)exchangestring交易所代码, 如上交所SHSE委托下单生成的Order对象
sec_idstring证券代码,如浦发银行600000
pricefloat委托价,如果price=0,为市价单,否则为限价单
volumefloat平仓量
open_short异步开空仓接口,以参数指定的exchange, 证券代码sec_id, 价和量下单。如果价格为0,为市价单,否则为限价单。策略类和交易服务类都提供该接口。open_short(exchange, sec_id, price, volume)exchangestring交易所代码, 如上交所SHSE委托下单生成的Order对象
sec_idstring证券代码,如浦发银行600000
pricefloat委托价,如果price=0,为市价单,否则为限价单
volumefloat平仓量


4. 金融术语
R-Breaker是个经典的具有长生命周期的日内模型。曾14年排名Future Trust杂志年度前10最赚钱的策略。R-Breaker交易规则示意图如下图:


附件列表
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-7-27 14:35:11
后续还会继续上干货策略,好东西希望和大家一起分享,如果想了解更多精彩的量化方面的内容可以去证经社——http://zjshe.cn/q/forum.php?gid=36了解更多,这个论坛刚刚建立还是有挺多干货的~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群