网格交易策略(Grid Trading)

策略介绍

网格策略本质上是一种低吸高抛的策略。标的物价格越低,吸纳的头寸越多;标的物价格越高,卖出的头寸越多。网格策略巧妙地借鉴了日常生活中渔翁撒网扑鱼的思路,对低位震荡市场进行撒网、加仓(标的物价格下跌时)、减仓(标的物价格上涨时)、收网(平仓)等操作,实现了一个基本上不需要看基本面(如果标的物是股票)和价格走势的获利系统。

本策略设置买卖价格各4档,在不同价格上设置不同的仓位,并且加入止盈和止损机制。

实现方法

首先,我们要确定一个撒网(建仓)时间和基准价。撒网需要选择在低位震荡行情相对底部的位置。一般的思路是比较当前的标的物价格与该时间点之前某个时间段内的价格均值,如果当前价格小于价格均值的一个下限,我们基本上就可以认为当前是处于相对底部的位置,可以进行撒网操作,并记录下撒网的价格基准。

确定好了基准价,我们就可以建立网格图表了。

如上图,我们建立了一个买卖的网格。以基准价建仓,建仓仓位为50%。在高于基准价时,价格每上涨5%,就卖出一部分仓位;在低于基准价时,价格每下跌3%,就增加一部分仓位。当价格上涨到卖4档或更高时,全仓卖出;当价格下跌到买4档或更低时,全仓买入。

我们设定买卖档位时,价格是非对称的,跌3%买,而涨5%卖。这样非对称的设定,是为了在期望值上使得整个系统的收益要大于0。

优点

网格交易法,加入了明确的仓位控制,并根据价格的变化采取高抛低吸的策略,在震荡的市场中十分有效。在网格的设定上,使用者可以根据市场情形的不同而灵活设定。比如,在熊市中,我们应当使用大网格,防止过早满仓;在震荡行情中,应当缩小网格,尽量多的抓住每一个小的波动。

缺点

由于网格策略由于本质上是一个低吸高抛的策略(类似于动量反转),在单边行情中,它存在一定的风险(俗称“破网”)。在大熊市中,可能会早早的满仓,并且一直没有离场信号,持续亏损。而在大牛市中,却一直仓位很低甚至空仓,资金使用率很低,收益跑不过基准。

如上图中,由于我们的基准价比较低,当价格大幅上涨时,很快突破了网格的最高档位,我们根据策略全仓卖出,一大波行情只抓住了一个开头,收益甚微。反过来,如果是个大幅下降的行情,我们会在很高的位置就满仓,套牢,损失不可估量。

因此,一个好的网格策略,必须要设计好相应的止损机制,并且能够对市场行情加以判断,适当做出调整。同时,需要在适当的时候对网格的基准价以及档位设置进行调整,以适应当前市场的变化。

回测

  • 参数设置:
时间段 2015-01-01至2015-10-01
回测频率(context.frequency) 1d
网格参数设置 见上文实现方法
  • 回测结果:

从上图我们可以看出,网格策略在这一个震荡时间段运行的非常好,在基准下跌20%的情况下,策略居然跑出了20%的收益。这就是网格策略的特性,在震荡中,通过对仓位的调整,不停的低买高卖,从波动中赚取收益。

但是,如果我们维持上面的参数不变,只是拉长回测时间,情况却有所不同。

价格持续上升,到后来突破了网格的上界(破网),并且一直没有回来,导致策略一直处于空仓,后面的上涨完全没有吃到。所以,我们在使用网格策略的过程中,要结合行情。在震荡的行情中,找到合适的基础价撒网。在大牛或者大熊市中,则要考虑更换其他的策略,或者结合其他的指标,来动态的分析。当价格长时间处于网格的上界或者下界之外时,我们要考虑重新设置基础价格,以适应行情的变化。

总结

网格交易策略把价格的变化和仓位的控制很好的结合到了一起,简单而又实用,在震荡波动的行情中尤为突出,能很好的做到高抛低吸,赚取价差。网格的宽度要结合行情进行调整,震荡行情适当收窄,趋势行情适当放宽。基准价的设定也很关键,而且在必要时可以重新设置。

实盘测试收益很低!代码有问题???

WeQuant交易策略—网格交易的更多相关文章

  1. AMA指标原作者Perry Kaufman 100+套交易策略源码分享

    更多精彩内容,欢迎关注公众号:数量技术宅.想要获取本期分享的完整策略代码,请加技术宅微信:sljsz01 AMA技术指标与原作者 Kaufman 说起 Perry Kaufman 这个名字,不少读者会 ...

  2. 用matplotlib和pandas绘制股票MACD指标图,并验证化交易策略

    我的新书<基于股票大数据分析的Python入门实战>于近日上架,在这篇博文向大家介绍我的新书:<基于股票大数据分析的Python入门实战>里,介绍了这本书的内容.这里将摘录出部 ...

  3. 3. 量化交易策略 - https://github.com/3123958139/blog-3123958139/README.md

    3. 量化交易策略 * 输入数据 - 只取最原始可靠的,如 * date * open * high * low * close * volume * 输出数据 - 根据数理统计取权重,把 o, h, ...

  4. 高频交易策略[z]

    Market Order以最高速下市价单(market order)是买方最基本的策略 Looking for Price Discrepancies 这个就是高频统计套利(high frequenc ...

  5. 高频交易策略之Penny Jump[z]

    高频交易策略之Penny Jump 今天假设有一个笨笨的大型机构投资人(共同基金,银行,退休基金....),他想要买进一只股票,但又不想挂市价买进,所以就在市场里面挂了一张要买进的大单.这时候所有市场 ...

  6. 系统交易策略 hylt

    最令我尴尬的事情,莫过于很多朋友来到网站,不知道我说的是什么.大多数人以为鬼仆是推销软件的.其实这里理解是错的,特别是一些软件制作与经销商,更出 于推销的目的,故意夸大产品性能,模糊交易系统与一般行情 ...

  7. BotVS趋势交易策略-RSI

    BotVS趋势交易策略-RSI, 基于Python实现. RSI简单买卖测试, 默认 70-100卖出,0-30买入 参数 代码 import math def adjustFloat(v): ret ...

  8. 金融量化分析【day112】:量化交易策略基本框架

    摘要 策略编写的基本框架及其实现 回测的含义及其实现 初步学习解决代码错误 周期循环的开始时间 自测与自学 通过前文对量化交易有了一个基本认识之后,我们开始学习做量化交易.毕竟就像学游泳,有些东西讲是 ...

  9. 【海龟汤策略】反趋势交易策略源代码分享(基于BOTVS)

    策略介绍: 海龟之汤,简称“龟汤”,是个与海龟交易法则相反的交易策略,它利用了跟势交易(特别是海龟方式)在很多假突破方面的缺陷来获利(把海龟做成汤吃掉).上世纪八十年代早期,有个非常著名的交易员团体— ...

随机推荐

  1. Jenkins: 执行 PowerShell 命令

    Jenkins 默认是不支持执行 PowerShell 命令的,需要安装插件才能完成这样的任务.本文将介绍 Jenkins PoserShell 插件的基本用法和常见问题. 安装 PowerShell ...

  2. C3制作导航栏分割线及立体风格

    //首先写一个导航栏样式 .nav{    width:560px;    height: 50px;    font:bold 0/50px Arial;    text-align:center; ...

  3. 第2章 rsync(一):基本命令和用法

    本文目录: 2.1 说在前面的话 2.2 rsync同步基本说明 2.3 rsync三种工作方式 2.4 选项说明和示例 2.4.1 基础示例 2.4.2 "--exclude"排 ...

  4. synchronized Lock用法

    在介绍Lock与synchronized时,先介绍下Lock: public interface Lock { void lock(); void lockInterruptibly() throws ...

  5. 初识RabbitMQ系列之一:简单介绍

    一:RabbitMQ是什么? 众所周知,MQ是Message  Queue(消息队列)的意思,RabbitMQ就是众多MQ框架其中的一款,开源实现了AMQP协议(官网:http://www.amqp. ...

  6. [BZOJ 2500] 幸福的道路

    照例先贴题面(汪汪汪) 2500: 幸福的道路 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 368  Solved: 145[Submit][Sta ...

  7. Web项目、Http协议简介

    Web 静态web项目 静态web项目就是一个文件夹.静态Web项目 就是文件夹中都是静态资源. 如何将web项目部署到tomcat? 将web项目的文件夹复制到webapps目录下.比如把test文 ...

  8. 表达式求值(二叉树方法/C++语言描述)(五)

    本例中的二叉树图是使用Graphviz绘制的(Graphviz官网),在Ubuntu Linux下可以使用apt-get命令安装它: sudo apt-get install graphviz 表达式 ...

  9. Hibernate批量操作(一)

    在项目的开发过程之中,我们常会遇到数据的批量处理问题.在持久层采用Hibernate框架时,在进行批量操作时,需要考虑Hibernate实现机制带来的一些问题. 我们知道在每个Hibernate Se ...

  10. Javascript DOM 编程艺术———总结-1

    第一章: 1.DOM:是一套对文档内容进行抽象和概念化的方法,是一种API. 2.W3C对DOM的定义:一个与系统平台和编程语言无关的借口程序和脚本可以通过这个接口动态的访问和修改文档内容,结构和样式 ...