虚拟货币网格 网格
网格交易法或者网格交易策略,网上有很多的介绍,这里是利用C#实现了比特币网格交易的策略及程序化交易,并利用OKex上的K线数据进行了回测验证,同时也进行可视化的K线展示。对于网格交易策略简单的说就是低买高卖策略,网格的含义是指对买卖区间和买卖仓位的控制手段。比如这里我有8万的资金,总网格数定义为4格,每格的区间定义为5%,比特币的基准价为40000元人民币。那策略的每格的仓位为20000元(8万除以4),每下跌5%买入一格,也就是到比特币跌到38000时买入第一格,买入金额20000元。以此类推跌到36000元时买入第二格,仓位也是20000元,第三格、第四格以此类推。这是买入的策略。对于卖出策略也是严格按照每格设定的策略进行,策略是和买入相反,只是定义的卖出价格不是按照每上升一格就卖出的策略,这里定义每上涨三格才卖出的策略。比如最后一格的买入价为32000,每上涨3格卖出的价格为32000+32000*0.15=36800元。在程序开发中基准价和网格宽度都是灵活可调的。具体仓位及买卖点如下所示:
格子 | 买入价格 | 格宽5% | 仓位 | 卖出价格 |
第一格 | 38000 | -5% | 20000 | 43700 |
第二格 | 36000 | -10% | 20000 | 41400 |
第三格 | 34000 | -15% | 20000 | 39100 |
第四格 | 32000 | -20% | 20000 | 36800 |
整个程序是用C#开发的,除了实现了网格策略的实现及回测代码,为了进行策略回测还获取了OKex上的1分钟、3分钟、5分钟、1天、3天等K线数据。1天的K线数据是从2017年-10月-11日开始的。如图:
网格定义和回测主界面是在同一个窗口中,策略定义和生成主要包括资产类型、币种选择、移动平均线(可以通过移动平均线选择基准价)选择、总仓位、买卖仓位、网格数、网格宽度及止损点(目前没有做止损控制)等参数项,这里测试我们选择的网格总数4格,宽度为0.05(即5%),点击“生成网格”按钮会生成四条网格策略数据,每条数据主要包含买点价格、卖点价格。如下图:
回测功能包括回测数据时间选择,包括开始时间和结束时间,还包括测的K线数据类型,如1天、30分钟等,回测结果包括成交次数、盈利总和、盈利百分比、成交列表等数据。成交列表主要包括每条成交的买点价格、买点时间、卖点价格、卖点时间、交易成本(这里是OKex的买卖各收0.2%的手续费计算的)。这里我们选择的回测数据是2017-11-9至2018-4-9时间段,日线的数据作为回测数据,总资金20万,网格4格,网格宽度5%。回测结果总成交6次,盈利23.5万,1.17倍,如下图:
K线分析,在K线上可视化的标示出了网格买点、网格卖点及实际买点和实际卖点,如: