量化交易入门阶段:三均线策略是否好于双均线(上)?

2024-02-12 17:50

本文主要是介绍量化交易入门阶段:三均线策略是否好于双均线(上)?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

在文章《双均线策略优化会怎样?》中,我给大家留下了很多问题,在本篇文章,我给大家解答其中一个问题,那就是如果在双均线的基础之上,再加一条,变为三均线策略会怎么样?

 

基础策略,我们还是用双均线,经过上次的提高,我们用的参数是30、60两条均线,那么在这两条均线的基础之上,我们进行进一步优化。

上一次30/60两条均线的收益率是1.4%,虽然低,但是这已经是目前均线策略之中拿到的最好结果。

所以如果各位投资者还用比这个方法更差的策略的话,那么想要得到更好的收益恐怕很难了。

 

那么在30/60的基础之上,我们应该加一条短均线比如10日线,还是应该加一条长均线比如90日线呢?

本篇文章,我先加一条10日线。

那么这次策略可就变得复杂了,三条均线理论上应该有三个金叉死叉。以我们目前用的10/30/60为例分别是:

10和30,金叉,死叉。

10和60,金叉,死叉。

30和60,金叉,死叉。

那么以哪一种金叉死叉作为进场信号和出场信号呢?

很多老股民,马上就会说,很简单啊,60均线作为大的方向,股价在60以上,并且10上穿30就做多,10打穿30就平仓。要是股价在60以下,就不进场了,就算出现10上穿30也不进场。

那么我们今天就回测一下这个最经典的方法,看看结果怎么样?

 

这回我们的策略是:

入场时间:

2019年1月1日-2019年12月1日

入场信号:

股价大于60日均线的条件之下,10日均线上穿30日均线,金叉进场

仓位:

每只股票都买1000元

出场信号:

股价大于60日均线的条件之下,10均线下穿30日均线,死叉平仓;或者股价下穿60日均线,死叉就平仓

股票选择:

股票池的选择我用的是全市场沪深两市所有股票的三分之一,即从深圳000开头开始升序排列,到沪市的600开头,取前1000只股票作为样本,也只有这样才能相对客观的评价这个指标是否有效,不然的话,同样都出现金叉,有的买有的不买,回测的结果并不能说明方法的好坏。

 

大家想想,会不会提高?

我们看看答案吧。

 

策略收益是亏损6.27%,胜率0.22,盈亏比0.85

可以发现交易次数明显是减少了,但是依旧亏钱。

 

上面的三均线的用法,是大多数投资者都能想到的用法,但是并不是三均线的全部用法,比如10日上穿60买入,30日打穿60日卖出,或者其他方式都可以尝试,并不能说明三均线策略到此就结束了。

三均线策略开始,策略的复杂度开始逐渐加大,变化也开始增多,希望看官们跟住我的思路,接下来还有更精彩的策略变化。

相信大家逐渐明白了,量化交易其实很简单,很客观,也不难学,这些方法都是大家平时用的方法,只不过没有真正发挥出他们的全部实力,我将逐渐让大家明白指标的真正实力。

大家有任何问题也欢迎留言,我看见之后,会给大家进行解答。

如果自己有策略,但是不会写代码的话,可以给我私信,价钱从几十到几百不等,看策略实现的难易程度而定,我使用的是聚宽平台,代码写好之后,可以在上面上模拟盘和实盘,对应的券商是第一创业证券。

这篇关于量化交易入门阶段:三均线策略是否好于双均线(上)?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/703207

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就

Codeforces Round #113 (Div. 2) B 判断多边形是否在凸包内

题目点击打开链接 凸多边形A, 多边形B, 判断B是否严格在A内。  注意AB有重点 。  将A,B上的点合在一起求凸包,如果凸包上的点是B的某个点,则B肯定不在A内。 或者说B上的某点在凸包的边上则也说明B不严格在A里面。 这个处理有个巧妙的方法,只需在求凸包的时候, <=  改成< 也就是说凸包一条边上的所有点都重复点都记录在凸包里面了。 另外不能去重点。 int

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显