均线交叉策略

  • 均线介绍
  • 均线交叉策略
  • 回测策略
    • 优化策略参数
  • 代码
  • 总结

均线介绍

均线计算:

在某一时间段的收盘价之和进行算术平均的方法,并随着时间的推移将这些平均值连成一条线便可得出SMA。

趋势判断

均线在某一时间段里是向上移动的,它表面股票价格处于上升趋势中,即“牛市”,或即将“大涨”的趋势。
相反的,如果SMA向下移动,则是“熊市”或下跌趋势的指示标志。

支持与压力

当股价触及阻力点或支撑位后不再突破,这表明股票价格将不再下跌或上涨,这可能是开始回升或者下跌的信号。
如果它突破了该阻力点或支撑位,则意味着价格会继续向上或向下变动,表明股价很可能持续地大幅上涨或下跌。

均线交叉策略

  • 信号

两条均线形成死叉入场(快sma<慢sam)
两条均线形成金叉平仓 (快sma<慢sam)

回测策略

  • 参数
Item Vale
数据 BNBUSDT_1h
时间 2017.11.11 - 2022.07.08
快SMA 100
慢SMA 300
收益率 135159.37%
  • 回测结果

  • 年化率

优化策略参数

Item Vale
数据 BNBUSDT_1h
时间 2017.11.11 - 2022.07.08
参数空间 10-400
快SMA 350
慢SMA 390
收益率 2045148.40%
  • 回测结果

  • 年化

  • 其他数据表表现
还在测试中

代码

from strategy import *class SmaCrossStrategy(bt.Strategy):params = dict(sma1=30,  # 需要优化的参数1,短期均线窗口sma2=200,  # 需要优化的参数2,长期均线窗口is_log=False  # 是否打印日志)def log(self, txt, dt=None):if self.p.is_log:dt = dt or self.datas[0].datetime.date(0)print('%s,%s' % (dt.isoformat(), txt))def __init__(self):sma1 = bt.ind.SMA(period=int(self.params.sma1))  # 用int取整sma2 = bt.ind.SMA(period=int(self.params.sma2))  # 用int取整self.crossover = bt.ind.CrossOver(sma1, sma2)self.order = Nonedef get_buy_unit(self):size = self.broker.getcash() / self.data.high[0] * 0.5if size == 0:size = 1return sizedef next(self):if self.order:returnif not self.position:  # 不在场内,则可以买入if self.crossover[0] < 0:  # 死叉size = self.get_buy_unit()self.order = self.buy(size=size)  # 买入else:if self.crossover[0] > 0:  # 金叉self.close()  # 卖出def notify(self, order):if order.status in [order.Completed, order.Canceled, order.Margin]:if order.isbuy():self.log('执行买入, %.2f' % order.executed.price)elif order.issell():self.log('执行卖出, %.2f' % order.executed.price)self.order = Nonedef create_sma_cross_strategy(params=None):c = create_cerebro()if params is None:c.addstrategy(SmaCrossStrategy)else:c.addstrategy(SmaCrossStrategy,sma1=int(params["sma1"]),sma2=int(params["sma2"]))return cif __name__ == '__main__':path = "D:\\work\\git\\Tools\\static\\data\\BNBUSDT_1h.csv"data = get_data(path)params = {'sma1': "350",'sma2': '390'}run_strategy(create_strategy_func=create_sma_cross_strategy, data=data, params=params, is_show=True)path = show_strategy_analyze(data,create_strategy_func=create_sma_cross_strategy,params=params,is_show=True)print(path)path = show_strategy_pyfolio(data,create_strategy_func=create_sma_cross_strategy,params=params,is_show=True)print(path)

总结

目前从回测结果来看,该策略表现还行,把周期调大,减少市场干扰,减少开仓的次数,较小市场的波动,可持续性盈利。未来10年,实现财富自由,加油!!!!

量化交易学习(10)均线交叉策略相关推荐

  1. 【量亿数据-量化交易学习】均线系统

    量亿数据量化学堂 1. 均线周期的选择 均线系统的周期选择有很多种,从三日到数百日平均移动线都有投资者采用.但是到底应以几日平均移动线做行情判断的参考比较具有实效,这一问题一直困扰多数投资人.投资者因 ...

  2. 1-2 移动均线交叉策略1

    第一阶段.一个简单策略入门量化投资 1-2 移动均线交叉策略1 第一阶段一个简单策略入门量化投资 1-2 移动均线交叉策略1 前言 获取数据 移动均线交叉策略 数据可视化 绘制折线图 绘制K线图 绘制 ...

  3. 1-3移动均线交叉策略2

    第一阶段.一个简单策略入门量化投资 1-3移动均线交叉策略2 上一篇文章1-2 移动均线交叉策略1中我们最后提到: 如果我们从第一天买入股票,一直持有股票,最后一天卖出,获得的收益是每股124.02美 ...

  4. 1-4移动均线交叉策略3

    第一阶段.一个简单策略入门量化投资 1-4移动均线交叉策略3 上一文1-3移动均线交叉策略2中,我们得到的结果是令人失望的.但我们的探索还要继续. 我们知道,使用投资组合的方式进行分散投资是降低风险的 ...

  5. Python量化交易学习笔记(14)——均线交叉策略

    本文使用均线交叉策略,对平安银行自2018年1月1日至2020年2月28日的日线数据进行回测分析. 策略会用到短期移动均线及长期移动均线两个技术指标,在backtrader自定义策略init方法中,添 ...

  6. Python实现股票量化交易学习进阶(二)之简单交易策略的定义实现

    Python实现股票量化交易学习进阶第二篇之简单交易策略的定义实现 1.backtrader回测框架知识 2.需求一自定义MACD指标 3.需求二自定义实现KDJ指标 4.需求三自定义CCI指标 1. ...

  7. 【python量化交易学习】pandas获取mysql数据,使用pyecharts画K线图,ma移动均线。

    将pyecharts官方提供的数据源,替换成已经存在mysql中的数据.画出专业的k线图(k线+ma移动均线+交易额柱状图(单位是千)) 参考: [python量化交易学习]pandas获取tusha ...

  8. 用 Pandas 分析均线交叉策略收益率

    在这篇文章中,我们会利用上一篇文章中的均线交叉策略回测中获得的结果(<用 Python 基于均线交叉策略进行回测>),并花一些时间更深入地挖掘权益曲线并生成一些关键绩效指标和一些有趣的数据 ...

  9. 量化交易入门之vnpy简单策略编写

    本篇博客将介绍量化交易框架vnpy的简单策略编写.在阅读本博客前的环境准备请看我的上一篇博客.传送门如下: 零基础搭建量化交易框架 一.开发环境 因为python版本兼容有点差,且源码功能都有所变化, ...

最新文章

  1. 主成分分析 图像处理 matlab,matlab信号处理与主成分分析法,毕业设计求助
  2. Python_位_成员_身份运算符
  3. 十天精通CSS3(11)
  4. pythonurllib微博登录怎么删_Python骚操作之删微博还需用手动吗?Python去做就好了!...
  5. 【Lolttery】项目开发日志 (二) 数据库的二三事
  6. Kubernetes 1.9集群使用traefik发布服务
  7. Javascript + Servlet的鸿沟如何抹平以构建富客户端应用?[SOS]
  8. 杭电复试笔记第七天--最终篇
  9. 陈强教授《机器学习及R应用》课程 第五章作业
  10. 传感器与检测技术基础知识(4)—— 电阻式传感器
  11. 入手评测AMD锐龙r7 6800u和酷睿i7 1260p选哪个 r76800u和i71260p对比
  12. php copy函数 失败,wamp中的copy函数bug
  13. 董卫凤:不服输的华丽转身(一)
  14. ps在褶皱T恤上贴上图案
  15. 高通Camera数字成像系统简介
  16. codechef October Challenge 2017解题报告
  17. 单播通信、主播通信和广播通信
  18. 软件工程-个人作业-提问回顾与个人总结
  19. 传智健康2.0-6-移动端开发-体检预约
  20. 多平台博客发布工具OpenWrite的使用

热门文章

  1. [GXYCTF 2019]Ping Ping Ping
  2. 采蘑菇电脑c语言,英菲尼迪终于升级英菲尼迪Q50L,内行人告诉你怎么选还配备主动降噪、胎压显示!凯美瑞都比不上它! 早买早享受...
  3. 名帖109 鲜于枢 小楷《老子道德经卷》
  4. angular数据绑定
  5. cass光标大小怎么调_CAD如何调整十字光标和靶框大小
  6. U3d引擎与资源管理
  7. WIN7系统 提示缺少msvcr120.DLL,msvcr110.DLL的 请戳这里。
  8. 什么蓝绿部署(BlueGreenDeployment) ?
  9. 游戏里经常有涉及用户排行榜(金币消费排行榜),怎么设计一个良好的排行榜。
  10. 怎样利用博客推广自己的网店?