导语:作为策略锦集第五篇,再向大家介绍一个霸道的交易系统—布林强盗交易系统。

一、布林强盗交易系统阐述

布林强盗交易系统的由来

布林线 (BOLL )是非常著名的一个技术分析指标,其由John Bollinger 在20 世纪60 年

代创建的。布林线由上轨、中轨、下轨三条线组成,期初,人们将上轨当做压力位使用,下

轨当做支撑位,但经过测试发现,BOLL 技术指标的用法并非如此简单。

布林强盗交易系统其实就是布林线一种使用方法,凭借其其在期货交易上的盈利能力,

人们称其为“强盗”,可以说是非常高的评价了。

布林强盗交易系统介绍

布林强盗交易系统只有两个组成部分,分别为:进场、离场。

A.进场:

1.当日收盘价超过 50 日移动平均线的上轨。注意:上轨值=过去 50 日收盘价平均值+过

去 50 日收盘价的标准差

2.当日收盘价超过过去 30 个交易 日收盘价的最大值。

3. 同时满足上述两个条件,则下个交易 日开盘全仓买入。

B.离场:

1.自适应均值:进场后,设置自适应移动均值,首日自适应移动均值为过去 50 日收盘价

均值,即为中轨。之后持仓时间每多一个交易日,计算移动平值的天数减去 1。但移动均值

的计算天数最小递减到10。如果达到了 10,则不再递减。

2.当日收盘价跌破自适应移动均值。

3. 自适应移动均值小于上轨。此处的上轨依旧是 50 日移动平均线的上轨,注意:上轨值

=过去 50 日收盘价平均值+过去 50 日收盘价的标准差

4. 同时满足上述两个条件,则下个交易 日开盘清仓。

----------------------- Page 89-----------------------

本篇内容以沪深300 指数 ETF 为例,来向大家展示布林强盗交易系统

以下为策略实现的基本信息:

策略实现难度:2

实现过程中所需要用到的API 函数,ps:通过 MindGo 量化交易平台 API 文档快速掌握:

需要用到的API 函数           功能

before_trading_start() 定时运行函数,每个交易 日9.00 运行

history                获取多只股票多属性的历史行情数据

二、代码示意图

----------------------- Page 90-----------------------

三、编写释义

本策略的编写难点在于理解布林强盗交易系统的运行逻辑,以下是布林强盗交易系统运

行逻辑的梳理:

编写布林强盗交易系统的时候,依旧建议采用主干+枝干的思路。

----------------------- Page 91-----------------------

四、最终结果

策略回测区间:2014.01.01-2018.01.30

回测资金:100000

回测频率:日级

回测结果:红色曲线为策略收益率曲线,蓝色曲线为对应的基准指数收益率曲线

----------------------- Page 92-----------------------

策略源代码:

import pandas as pd

import numpy as np

#==============================初始化账户======================

def initialize(account):

account.security = '159919.OF' #沪深300 指数 ETF 为例

set_benchmark(account.security)

account.steam = False

account.mid50 = 0#储存中轨  每日更新以下5 个数据

account.up50 = 0#储存上轨

account.close = 0#储存上个交易日的收盘价

account.closemax = 0#储存过去 30 个交易 日的收盘价最大值

account.day = 50 # 自适应均线计算,没持仓一天,减去 1

account.maday = 0 #储存自适应均线值

#======================盘前运行============================

def before_trading_start(account,data):

#开盘前获取中轨,上轨,自适应均线,昨日收盘价,前三十 日收盘价,放置账户信息中,

以便调用

close = history(account.security, ['close'], 50, '1d', False, 'pre', is_panel=1)['close']

account.maday = np.mean(close[-account.day:])

account.mid50 = np.mean(close) #50  日均线,中轨

account.up50 = account.mid50 + np.std(close) #上轨= 中规+1*标准差

account.close = close[-1]

account.closemax = max(close[-31:-1])

#设置买卖条件,每个交易频率 (日/分钟/tick )调用一次

def handle_data(account,data):

#判断系统开启条件

if account.steam == False:

account.steam = steam(account,data)

if account.steam == True:

#满足系统开启条件买入

order_target_percent(account.security,1)

else:

pass

#判断系统是否需要止损或者止盈,以关闭系统

elif account.steam == True:

trade=giveuptrade(account,data)

if trade =='sell':

# 需要止损,并关闭系统, 自适应天数回复

order_target(account.security,0)

account.steam = False

account.day = 50

else:

#不需要止损,但是需要将自适应天数减去 1

account.day=account.day-1

if account.day <10:

account.day = 10

pass

----------------------- Page 93-----------------------

#=======================离场条件判断,系统是否需要关闭===============

def giveuptrade(account,data):#day 参数主要是计算自适应均线

if account.close < account.maday:

if account.maday < account.up50:

return 'sell'

else:

return None

else:

return None

#=======================入场条件判断,系统是否需要开启================

def steam(account,data):

if account.close > account.up50:

if account.close > account.closemax:

return True

else:

return False

else:

return False

----------------------- Page 94-----------------------

第四章:经典量化策略集锦(第五篇:布林强盗,一个霸道的交易系统)相关推荐

  1. 第四章:经典量化策略集锦(第九篇:Fama-French 三因子模型应用 )

    导语:在CAPM 模型的基础上,再向大家讲述Fama-French 的三因子模型,并构建策略,实 际应用于 A 股市场. 一.策略阐述 Fama-French 三因子模型由来 Fama 和 Frenc ...

  2. 第四章:经典量化策略集锦(第三篇:网格交易—动态调仓策略)

    导语:市场上股票的价格总是在不断的上下波动,投资者通过低买高卖获利.第三篇将向大 家介绍网格交易,一个动态的调仓策略,有效解决仓位和价位控制. 一.策略阐述 窥探网格交易 "追涨杀跌&quo ...

  3. 第四章:经典量化策略集锦(第四篇:进军交易系统,从 Dual Thrust 中学“趋势”)

    导语: "趋势"这个字眼,大家肯定不陌生,炒股票的老股民天天口里说着 "趋势为王", 那么今天我们向大家介绍一个趋势跟踪交易系统:Dual Thrust ,其简 ...

  4. The Little Book of Semaphores 信号量小书 第四章 经典同步问题 4.3 无饿死互斥

    第四章 经典同步问题 4.3 无饿死的互斥 在上一节中,我们讨论了被称之为绝对饥饿的问题,其中一类线程(读者)允许另一类别(写者)挨饿. 在更基本的层面上,我们必须解决线程饿死的问题,即一个线程可能无 ...

  5. 中国式危机公关9加1策略(第四章 情感公关策略)

    第四章 情感公关策略 第一节 情感公关的应用原则 现代心理学研究表明,人的行为是由动机支配的,动机是由需要引起的,需要是以个性心理现象为基础的. 需要,就是人们对某种目标的渴求或欲望,也就是一种心理的 ...

  6. 分享量化交易券商接口的几个经典量化策略

    今天我们来一起看一下量化交易券商接口的几个经典量化策略. 量化交易是指从大量的历史数据中筛选出"大概率事件",然后利用大概率之间制定策略,建立模型. 主要采取数学模型替代主观判断的 ...

  7. 走向.NET架构设计—第四章—业务层分层架构(后篇)

    走向.NET架构设计-第四章-业务层分层架构(后篇) 前言: 在上一篇文章中,我们讨论了组织业务逻辑的模式:Transaction Script和Active Record,Domain Model. ...

  8. 走向.NET架构设计—第四章—业务层分层架构(前篇)

    走向.NET架构设计-第四章-业务层分层架构(前篇) 前言:在任何一个项目中业务层毫无疑问是最重要的层,所以在设计的过程中,如何组织业务层是至关重要的.本章的讨论将会涉及Flower的架构模式一书中的 ...

  9. Head First HTML与CSS、XHTML++笔记(第四章 WEB镇之旅 第五章 认识媒体)

    第四章 链接(详解<a>元素) 目标锚 在目标位置 <h2><a id="chai">contentTest</a></h2& ...

最新文章

  1. Spring源代码解析(收藏)
  2. 怎么看mysql有没有安装成功_MySQL 安装看这一篇就够了
  3. SQL注入漏洞(原理;网页注入)
  4. English trip -- VC(情景课)2 C Where's my pencli?
  5. None.js 第五步 Buffer(缓冲区)
  6. (转)Singleton 单例模式(懒汉方式和饿汉方式)
  7. 安卓Gallery配合ImageSwitcher不显示图片
  8. 极域电子书包课堂管理系统_朝阳群众说小康 | 从黑板课本到VR互动课堂、电子书包,朝阳的课堂如此有趣!...
  9. T3 登陆报错 3709
  10. Python爬虫系列之得物小程序data算法
  11. mysql游标少循环_掌握更少的后卫和循环
  12. python打造批量关键词排名查询工具
  13. Lowe的SIFT(尺度不变特征变换)程序使用详细说明
  14. Android 11 状态栏电池图标的定制
  15. I/O——Spring cache abstraction
  16. turtle设置背景图片
  17. 大家人寿大幅减持,金地集团良好融资局面还能延续多久?
  18. 富士康本科计算机,富士康计算机 南开大学【深圳成考】
  19. 原码、反码、补码的互相转换
  20. 批处理修改注册表调整输入法

热门文章

  1. win 10网络适配器没有无线网络连接
  2. Fedora 12详细安装设置Compiz+Emerald+AWN实现特效
  3. 谈谈PBOC3.0中使用的国密SM2算法
  4. 胡立阳:如何避免落入弱势反弹的陷阱
  5. 测试经理谈软件测试行业(想学习转行的看收益颇多)
  6. Advanced Installer 使用说明
  7. 拿科比死和疫情伤亡人数对比,不是蠢就是坏!
  8. 快速实现软件试用的解决方案
  9. matlab仿真瑞利分布与高斯分布
  10. 产生瑞利分布的随机数 C语言实现