【数量技术宅交易系统开发系列分享】网格交易系统开发

2024/04/01 最新动态


  网格交易策略是一种不预测价格涨跌的交易方法,按照价格在网格的走势形态执行交易。通常是在股票在市场上买卖的金额下跌至一个网格时,进行买入;在价格趋势上涨至一个网格时,进行卖出。网格交易法是一种买跌卖涨的交易方式,它是属于逆势的交易方式,与常见的价格趋势交易相反。

  网格交易策略的第一步是设定价值中枢(基准价格),然后利用网格高度,对投资标的进行机械式操作。我们以下图为例,当价格低于基准价格1个网格高度,我们买入1份的仓位,如果价格持续下跌,跌破2个网格高度,我们继续买入第2份的仓位,如果此时价格持续上涨,又涨回到了基准价格下方的1个网格高度,我们卖出第2份买入的仓位,如果价格仍然持续上涨到了基准价格,我们再继续卖出第1份买入的仓位。而对于先卖空、后买入回补的做空操作,相当于是与做多完全相反的操作,价格每上涨1个网格高度,就做空1份的头寸,而价格每下跌1个网格高度,就平掉1份做空的头寸。

  网格交易策略的优点是充分的捕捉市场上下的大幅波动,只要价格不出现极速的单方向行情,网格交易就能一次又一次的赚取市场往复波动的利润。我们的角度来看一个具体的例子,假设某只股票的价格从11元跌到3.87元,而后又涨回到11元,如果我们只是持有该股票,最终的收益率是0,而如果我们按照下表每档10%来进行单向做多的网格交易(A股只能做多),根据测算,网格交易总计买入97104.47元,卖出后总计收回107782.75元,总体收益11%。

  网格交易策略,配合马丁格尔仓位管理,不出意外的状况下资金曲线度角上扬的。但网格交易比较害怕单边行情,我们应该对单边行情进行风控预案的设计,下图测试曲线向下的阶段,是不可避免的单边行情带来的回撤。

  发明者量化(原BotVS)是首家支持商品期货与数字货币(比特币量化交易、区块链资产量化交易)的量化交易买卖平台, 支持Javascript/Python/可视化/麦语言/C++ 五种编程语言,在币圈的量化交易中,应用尤其广泛。本期分享,技术宅将借助发明者量化平台,采用JavaScript语言,实现一个带风控的数字货币的双向网格交易策略。

  对于这一个数字货币的双向网格交易策略,我们在实现的时候,将它拆解为了一个个的功能模块来实现,而每一个功能模块,都用一个或几个函数进行封装。下面我们介绍一下程序中最重要的几个模块。

  网格挂单模块:根据计算的动态网格中心,按照向上间隔一定价格距离,依次挂卖单,同时向下间隔一定价格距离,依次对称的挂买单,数量也可以再一次进行选择是按照等量挂单,还是马丁加仓法挂单,并记录下所有报单的ID。报单结束,休眠一段时间后,根据报单ID再次查询所有报单,返回订单结构体。

  检查订单成交模块:遍历所有的在途报单,如果挂入的开仓单成交,立即按照开仓单成交的方向,反向挂入平仓单,平仓单的挂单价格是开仓价格盈利一个网格单位所计算得到的价格;如果挂入的平仓单成交,也是类似逻辑,立即挂入反向的开仓单,同时开仓单的挂单价格是平仓时对应上次开仓单的挂单价格不变。

  止损模块:首先计算最新中间价,如果新的中间价偏离了网格报单中间价20%的比例,撤掉所有订单,并对当前的亏损仓位全部止损。例如,价格向下偏离原始网格中点,平掉所有多头仓位;而价格向上偏离,平掉所有空头仓位。平仓结束后,将新的中间价设为网格中点,并调用挂单模块,重新报多空开仓的网格单。

  介绍完核心的三大模块,我们通过一张执行流程图,来看一下这个网格策略交易系统的整体开发框架。

  首先,策略启动,我们调用init函数进行初始化,init函数执行两个功能,一是通过历史行情计算确定网格中点,二是读取账户信息,包括挂单、成交、钱、币等信息。

  接着,调用putGridOrder函数,执行网格挂单模块,在该模块的执行过程中,依赖init计算的网格中点,往上、往下分别等间隔的挂n份多单、空单。

  再接着运行checkStopLoss,检查当前最新行情是不是击穿所有网格并触发止损,此处有两个分支:如果触发止损,我们第一步平掉亏损方向的所有订单,平仓完成后重新执行初始化,即获取网格中点,读取账户,重新对新的网格中点执行网格挂单;而如果止损未触发,则执行checkout模块,检查挂单中是否有订单已被成交,如果开仓单被成交,则在对应止盈的格子价位挂反向平仓单,如果平仓单被成交,则在对应被成交的开仓价位,重新挂开仓单。通过流图我们大家可以看到,整个程序是一个无限循环判断+执行的过程。

  以上,就是我们对这个数字货币双向网格交易策略实现代码的详细介绍,欢迎各位扫码添加数量技术宅个人微信,领取策略的完整代码。

  欢迎加入数量技术宅知识星球:量化学院,知识星球每日更新,内有更多量化干货,等着你来学习。星球学院=公众号全策略+星球独家量化干货+答疑+日更。欢迎订阅量化学院,用一年的时间,做一件让自己感动的事。(下图为本周量化学院更新内容)