热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

r语言多均线量化策略回测

移动平均线是技术分析中最常用的,作为一种简单有效的数学模型而被广泛使用。均线使用的方式的差异在于均线的计算方式与价格使用方式。不同的均线计算方式会产生不同的结果,不同的价格使用也会有不同的效果。此外,

移动平均线是技术分析中最常用的,作为一种简单有效的数学模型而被广泛使用。均线使用的方式的差异在于均线的计算方式与价格使用方式。不同的均线计算方式会产生不同的结果,不同的价格使用也会有不同的效果。此外,使用一条、两条、三条甚至更多条均线的交易策略,也会有很不一样的结果。因此,本文使用R软件对传统的均线交叉策略进行了改进,测试了不同的止损策略,尽可能实现了收益的最大化。

策略说明

买入条件:多头排列时 ma30

本策略用R软件对比了不同的清仓信号、止损信号组合的回测效果。对于选股方面并不做太多对比,有兴趣的小伙伴可以自行尝试R软件更换选股操作。

卖出条件分别测试卖出是close<ma5 ,卖出是close<ma10 ,卖出是close<ma20 ,查看前6条数据head(data)

Time Open High Low Close MA5 MA10 MA20 MA30 X 1 2014/07/30 5.72 5.77 5.68 5.74 5.652 5.645 5.776 5.657 NA 2 2014/07/31 5.75 5.78 5.72 5.77 5.716 5.648 5.768 5.675 NA 3 2014/08/01 5.76 5.76 5.64 5.67 5.726 5.640 5.754 5.687 NA 4 2014/08/04 5.65 5.73 5.63 5.72 5.726 5.655 5.748 5.702 NA 5 2014/08/05 5.73 5.82 5.72 5.82 5.744 5.680 5.739 5.718 NA 6 2014/08/06 5.82 5.85 5.75 5.82 5.760 5.706 5.739 5.735 NA

 

蜡烛图

移动平均均线图

选择滑动平均指标

均线图+散点

plan 1 卖出是close<ma5

查看每笔交易Value op cash amount asset diff 2014-07-30 5.74 B 3.46 17421 100000.0 0.00 2014-07-31 5.77 S 100522.63 0 100522.6 522.63 2014-08-01 5.67 B 4.87 17728 100522.6 0.00 2014-08-05 5.82 S 103181.83 0 103181.8 2659.20 2014-08-08 5.73 B 1.72 18007 103181.8 0.00 2014-08-11 5.84 S 105162.60 0 105162.6 1980.77

盈利的交易Value op cash amount asset diff 2014-07-30 5.74 B 3.46 17421 100000.0 0.00 2014-07-31 5.77 S 100522.63 0 100522.6 522.63 2014-08-01 5.67 B 4.87 17728 100522.6 0.00 2014-08-05 5.82 S 103181.83 0 103181.8 2659.20 2014-08-08 5.73 B 1.72 18007 103181.8 0.00 2014-08-11 5.84 S 105162.60 0 105162.6 1980.77

亏损的交易Value op cash amount asset diff 2014-11-10 7.39 B 5.99 16776 123980.6 0.00 2014-11-17 7.06 S 118444.55 0 118444.6 -5536.08 2014-12-05 7.46 B 1.93 15898 118601.0 0.00 2014-12-11 7.25 S 115262.43 0 115262.4 -3338.58 2014-12-16 7.11 B 2.22 16211 115262.4 0.00 2014-12-24 6.92 S 112182.34 0 112182.3 -3080.09

  

股价+现金流量 现金流量画图

plan1的盈利区间

plan 3卖出是close<ma20跑一次,

交易记录

查看每笔交易

Value op cash amount asset diff 2014-07-30 5.74 B 3.46 17421 100000.0 0.0 2014-08-19 6.34 S 110452.60 0 110452.6 10452.6 2014-09-10 6.82 S 110452.60 0 110452.6 0.0 2014-09-12 6.95 S 110452.60 0 110452.6 0.0 2014-09-15 6.91 S 110452.60 0 110452.6 0.0 2014-09-16 6.60 S 110452.60 0 110452.6 0.0

盈利的交易

Value op cash amount asset diff 2014-07-30 5.74 B 3.46 17421 100000.0 0.00 2014-08-19 6.34 S 110452.60 0 110452.6 10452.60 2014-11-03 7.49 B 5.06 14746 110452.6 0.00 2014-11-06 7.58 S 111779.74 0 111779.7 1327.14 2014-11-07 7.45 B 7.39 15003 111779.7 0.00 2014-11-21 7.58 S 113730.13 0 113730.1 1950.39

亏损的交易

Value op cash amount asset diff 2014-12-08 7.32 B 5.90 15817 115786.34 0.00 2015-01-08 6.85 S 108352.35 0 108352.35 -7433.99 2015-01-09 6.75 B 1.35 16052 108352.35 0.00 2015-01-16 6.68 S 107228.71 0 107228.71 -1123.64 2015-06-15 26.75 B 10.13 4782 127928.63 0.00 2015-07-21 17.23 S 82403.99 0 82403.99 -45524.64

 

现金流量画图

选择滑动平均指标画图

对比组合的策略收益,可以看到使用跌幅止损的策略具有最高的策略收益,且最大回撤控制得也比较好;使用概率止损的策略虽然收益较少,但波动率较低,且最大回撤减少了近一半;

 


推荐阅读
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • 本文讨论了如何根据特定条件动态显示或隐藏文件上传控件中的默认文本(如“未选择文件”)。通过结合CSS和JavaScript,可以实现更灵活的用户界面。 ... [详细]
  • 尽管使用TensorFlow和PyTorch等成熟框架可以显著降低实现递归神经网络(RNN)的门槛,但对于初学者来说,理解其底层原理至关重要。本文将引导您使用NumPy从头构建一个用于自然语言处理(NLP)的RNN模型。 ... [详细]
  • 深入理解Java泛型:JDK 5的新特性
    本文详细介绍了Java泛型的概念及其在JDK 5中的应用,通过具体代码示例解释了泛型的引入、作用和优势。同时,探讨了泛型类、泛型方法和泛型接口的实现,并深入讲解了通配符的使用。 ... [详细]
  • moment 国际化设置中文语言 (全局) 及使用示例 ... [详细]
  • 汇编语言等号伪指令解析:探究其陡峭的学习曲线
    汇编语言以其独特的特性和复杂的语法结构,一直被认为是编程领域中学习难度较高的语言之一。本文将探讨汇编语言中的等号伪指令及其对初学者带来的挑战,并结合社区反馈分析其学习曲线。 ... [详细]
  • 本文介绍了在Windows Server 2003环境下,使用XAMPP Lite 1.7.1和DotProject 2.1.3时遇到的日历和甘特图中文乱码问题的解决方案。通过修改相关文件和配置,可以有效解决这些问题。 ... [详细]
  • 射频系统中IM3、IIP3、OIP3、增益和P1dB的关系解析
    本文探讨了噪声系数与非线性失真对射频系统性能的影响,详细分析了IM3、IIP3、OIP3、增益(G)和1dB压缩点(P1dB)之间的关系,并提供了相关公式和图表解释。 ... [详细]
  • 在 Flutter 开发过程中,开发者经常会遇到 Widget 构造函数中的可选参数 Key。对于初学者来说,理解 Key 的作用和使用场景可能是一个挑战。本文将详细探讨 Key 的概念及其应用场景,并通过实例帮助你更好地掌握这一重要工具。 ... [详细]
  • 作为一名 Ember.js 新手,了解如何在路由和模型中正确加载 JSON 数据是至关重要的。本文将探讨两者之间的差异,并提供实用的建议。 ... [详细]
  • 本文详细介绍了如何使用 MySQL 查询特定时间段的数据,包括今天、本周、上周、本月和上个月的数据。适合对 MySQL 查询感兴趣的读者。 ... [详细]
  • 本文详细介绍了如何规划和部署一个高可用的Etcd集群,包括主机配置、软件安装、防火墙设置及集群健康检查等内容。通过合理的硬件配置和网络规划,确保Etcd集群在生产环境中的稳定运行。 ... [详细]
  • 本文介绍Linux中的Diff命令,该命令用于逐行对比两个文本文件,展示它们之间的差异。通过系统性检查,它能有效标识出文件间所有不同的行,无需事先对文件进行排序。 ... [详细]
author-avatar
韩韩韩韩韩海
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有