楼主: 银河的上游
2249 2

[交易策略] 【文末最强福利】数字货币量化通用策略研究系列---均线结合量能突破策略 [分享]

  • 7关注
  • 57粉丝

VIP

院士

64%

还不是VIP/贵宾

-

TA的文库  其他...

精彩书评

人大经济论坛研究简报

管理咨询师书房

威望
4
论坛币
53559 个
通用积分
3.0018
学术水平
245 点
热心指数
197 点
信用等级
230 点
经验
67938 点
帖子
2063
精华
14
在线时间
2480 小时
注册时间
2010-2-17
最后登录
2020-3-13

初级学术勋章 初级热心勋章 初级信用勋章

银河的上游 发表于 2018-9-6 18:14:17 |显示全部楼层

前言:在之前的文章中,我们学习了如何在币宽工具中进行双均线策略的回测,以及均线策略的优化。本次我们交流均线结合量能突破策略在数字货币中的效果。

如果对双均线策略的优缺点不太熟悉,可以参考之前的文章[color=rgba(0, 0, 0, 0)]量化课堂-技术指标之双均线

均线属于趋势策略,在趋势中效果较好,但是在震荡市场中容易出现“假信号”,双均线策略会出现持续的回撤。由于市场价格是由资金驱动的,因此资金也会促使趋势的形成。因此,均线结合量能突破可以作为我们确认趋势确定的出发点。

策略说明:均线金叉后,量能突破设定的倍数,作为开仓买入条件。均线死叉作为卖出平仓条件。

回测交易币对BTC/USDT,回测平台是币宽(可以在官网www.nextfintech.io下载)。以下默认您已经初步学会如何使用币宽平台了。

策略相关说明:

  • 回测时间:2018-01-01至2018-07-01
  • K线频率:86400s
  • 初始资金:1000 USDT
  • 交易手续费率:0.15%
  • 均线参数:快速5日均线,慢速20日均线
  • 量能突破参数:2.5
  • 回测交易所和币对:OKEX的EOS/USDT
  • 开仓比例:0.7

策略代码如下:

  1. from __future__ import print_function, absolute_import
  2. from nf.api import *
  3. import numpy as np
  4. import talib as ta

  5. def init():
  6.     #变量初始化
  7.     global exchange     #交易所
  8.     global front        #交易币对前项币
  9.     global base         #交易币对后项币
  10.     global symbol       #交易标的
  11.     global freq          #频率
  12.     global trade
  13.     global fast
  14.     global slow
  15.     global jincha
  16.    
  17.     exchange='OKEX'
  18.     front='eos'
  19.     base='usdt'
  20.     symbol=get_symbol(market=exchange,front=front,rear=base)
  21.     freq='86400s'
  22.     trade=False
  23.     fast=5
  24.     slow=20
  25.     jincha=False
  26.     #订阅函数
  27.     subscribe(symbols=symbol,frequency=freq,count=slow+1,wait_group=True)

  28. def on_bar(bars):
  29.     global exchange     #交易所
  30.     global front        #交易币对前项币
  31.     global base         #交易币对后项币
  32.     global symbol       #交易标的
  33.     global freq          #频率
  34.     global trade
  35.     global fast
  36.     global slow
  37.     global jincha

  38.     data=context.data(symbol,freq,slow+1)
  39.     if len(data)==slow+1:
  40.         ma_fast=ta.MA(data['close'],fast)
  41.         ma_slow=ta.MA(data['close'],slow)

  42.         if ma_fast.iloc[-2]<ma_slow.iloc[-2] and ma_fast.iloc[-1]>ma_slow.iloc[-1]:
  43.             jincha=True
  44.         if ma_fast.iloc[-2]>ma_slow.iloc[-2] and ma_fast.iloc[-1]<ma_slow.iloc[-1]:
  45.             jincha=False

  46.         if jincha==True and data['volume'].iloc[-1]>2.5*np.mean(data['volume'].iloc[-5:-1]) and trade==False :
  47.             vol_buy=get_positions(exchange,base)[0]['available']/data['close'].iloc[-1]*0.7
  48.             print(bars[0]['eob'],'买入%.4f个'%vol_buy,front)
  49.             order_volume(symbol,vol_buy,side=1,order_type=1,price=data['close'].iloc[-1])
  50.             trade=True

  51.         if jincha==False and trade==True :
  52.             if len(get_positions(exchange,front))!=0:
  53.                 print(bars[0]['eob'],'清仓',front)
  54.                 order_volume(symbol,get_positions(exchange,front)[0]['available'],side=2,order_type=1,price=data['close'].iloc[-1])
  55.                 trade=False

  56. def on_execution_report(execrpt):
  57.     print('打印交易回执:',execrpt)
  58.    
  59. def on_error(code,info):
  60.     print('错误代码:',code,'错误代码说明:',info)

  61. def on_backtest_finished(indicator):
  62.     print('绩效对象打印:',indicator)

  63. if __name__ == '__main__':
  64.     run(strategy_id='6495e5ba-acea-11e8-a46f-00ffa9185dbb',
  65.         filename='main.py',
  66.         mode=MODE_LIVE,
  67.         token='6778ebc60a3b004bcc7286a5566a28df')
复制代码

回测结果如下(所有结果按每日公允汇率币/USD结算):

累计收益率:41.07%

年化收益率:127.88%

基准收益率:-79.03%

最大回撤:34.07%

Alpha:1.34

Beta:0.11

从回测结果中可以看出,策略实现了较好的绝对收益和相对收益。结合下面的EOS/USDT的收盘价可以看出,均线结合量能突破策略抓住了2018年4月至2018年5月的上升趋势,在熊市中保持空仓。

接下来我们看一下均线结合量能突破策略在其他频率的K线上的效果。

回测参数如下:

1.回测时间:2018-06-01至2018-09-05

2.K线频率:3600s

3.初始资金:1000 USDT

4.交易手续费率:0.15%

5.均线参数:快速10日均线,慢速60日均线

6.量能突破参数:3

7.回测交易所和币对:OKEX的EOS/USDT

8.开仓比例:0.7

回测结果如下(所有结果按每日公允汇率币/USD结算):

累计收益率 :17.05%

年化收益率:89.92%

基准收益率:-1.71%

最大回撤:16.59%

Alpha:0.89

Beta:0.24

从回测结果中可以发现策略在绝对收益和相对收益方面效果还不错,回测区间共交易12次,其中盈利4次,亏损8次。但是在6月份出现了连续的回撤。这是由于这段时间,EOS/USDT处于横盘震荡阶段,均线系统出现错误的信号,因此出现连续的回撤。

策略优化:对震荡区间出现的错误信号采取止损方法对策略进行优化,止损价设置为开仓时的K线的最低价。

回测结果如下:

累计收益 率 :19.08%

年华 收益率 :105.02%

基准收益率:-1.71%

最大回撤:13.28%

Alpha:1.04

Beta:0.24

增加止损后,绝对收益率和年化收益率有所增加,最大回撤减小。

小结:均线结合量能策略相比均线可以更好的抓住趋势,减少震荡市中的连续回撤。在OKEX.eos_usdt中实现的不错的收益,读者有兴趣可以在其他的K线频率上进行回测,查看策略的效果。

声明:本文主要用于共同探讨和学习,请勿直接用于实盘交易。

后续将推出更多系列的量化策略,欢迎大家关注,共同交流。

未经本人同意,严禁转载。

福利时间到!

winter is coming

币圈寒冬进行时,少交易,多学习

币小宽专门给注册用户准备了【史上最强】量化资料大礼包!

礼包内含:

1. 定价89.00元《量化交易之路:用Python做股票量化分析 量化交易之路》
2. 定价99.00元的《Python与量化投资:从基础到实战》
3. 定价59.00元的《 量化炼金术:中低频量化交易策略研发 》
4. 定价35元的《金融数学:衍生产品定价引论》
5. 定价69元的《打开量化交易的黑箱》原书第二版
6. 定价79元的《区块链技术驱动金融》
7. 定价58元的《 区块链:从数字货币到信用社会》
8. 定价59元的《对冲之王:华尔街量化投资传奇》mobi版
9. 43篇海外优质量化paper
10.45篇券商量化金工研报
高清电子版PDF


另外还将单独包邮赠送
实体书《打开量化投资的黑箱|原书第二版》正版纸质书一本

更多深度免费资料后续还将持续更新!
礼包申领扫描币宽小助手二维码

WechatIMG344.jpeg



海报--白2.jpg
了解经济前沿资讯,请关注人大经济论坛研究团队原创系列简报。收录于文库:人大经济论坛研究简报
stata SPSS
钱学森64 发表于 2018-9-6 18:54:22 |显示全部楼层
谢谢分享
回复

使用道具 举报

福源进财 发表于 2018-10-30 08:24:07 来自手机 |显示全部楼层
银河的上游 发表于 2018-9-6 18:14
前言:在之前的文章中,我们学习了如何在币宽工具中进行双均线策略的回测,以及均线策略的优化。本次我们交 ...
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2020-9-19 00:23