高频交易算法研发心得--MACD指标算法及应用

时间:2022-04-20 00:31:16

凤鸾宝帐景非常,尽是泥金巧样妆。

曲曲远山飞翠色;翩翩舞袖映霞裳。

梨花带雨争娇艳;芍药笼烟骋媚妆。

但得妖娆能举动,取回长乐侍君王。

【摘自《封神演义》纣王在女娲宫上香时题的诗】

一首定场诗完毕,咱们书接上回。上回咱们说到使用基于MA长短周期均线上下穿越的方式对行情进行跟踪。同时也提出该方法的问题,即:当前K线在短时间内出现了类似正弦曲线的波动时,短周期均线和长周期均线会频繁的相互交差。这种情况的问题就是会导致系统进行频繁的交易,如果看官们有过手动交易的经验值,就不难发现,交易的越频繁,可能赔的越多,同是,心脏承担的压力也越大。

从本文开始,我们来聊聊如果使用短线指标来尽量降低交易次数(注意:只能尽量降低,不可能完全屏幕!),首先来看看MACD指标。

MACD指标应该是大多数交易软件中的默认技术指标(另笔者比较晕的是,为什么这些指标会被叫做“技术指标”,完全看不出来和技术有半点关系,另外我也很讨厌很多公司里都把软件工程师叫做“技术”),其*的定义如下:

MACD指数平滑异同移动平均线(Moving Average Convergence / Divergence, MACD)是股票交易中一种常见的技术分析工具,用于研判股票价格变化的强度、方向、能量,以及趋势周期,以便把握股票买进和卖出的时机。MACD指标由一组曲线与图形组成,通过收盘时股价或指数的快变及慢变的指数移动平均值(EMA)之间的计算出来。“快”指更短时段的EMA,而“慢”则指较长时段的EMA,最常用的是12及26日EMA。

通常情况下,我们会看到的默认数值为MACD(12,26,9),那么,该指标的算法过程是什么,参数的意义又是什么呢?

其计算过程如下:

//1.首先分别计算当前点的12次EMA均值和26次EMA均值的差,KlineValues可以取Close值或者中间值,其名曰:dif

var dif = EMA(KlineValues, 12) - EMA(KlineValues, 26);

//2.为了数据的平稳性,对前面的均值差,再一次计算EMA,次数为9

var dea = EMA(dif,9);

//3.为了其数据的可视化,求上面二者的差值,并放大两倍

var macd = (dif - dea) * 2;

从计算过程的第一步中,看官不难发现,MACD的本质是将EMA曲线进行了坐标系统的变换,即:以长周期为X轴,并查看短周期的变化情况。由于DIF值是由两个不同周期的均线计算得到的,因此,该值总是围绕着0点上下变换的。

(看官:如果您有过3D系统开发经验(DX,OPENGL,U3D。。。)或者嵌入式电子系统开发经验的话,那么对这种“先进行坐标系统变换,然后得到可量化处理数据”的应用方式就不会感到陌生。)

如果将上面计算过程中dea的参数次数由9改为1的话,上面的macd值就退化成我们前一篇文章中所说的长短均线追逐了,当dif值大于0时,短周期上穿长周期,可以考虑买入,反之亦然。

通过分析,我们大体上可以了解MACD(12,26,9)的数学含义。您可以认为12,26是两个较短周期的跟踪方式。在默认参数的情况下,MACD值出现了穿越了0值时,不能100%的做为买入、卖出条件,但是可以成为上一章节所提的MA线追逐算法降低交易次数的重要参考,情况如下图所示:

高频交易算法研发心得--MACD指标算法及应用

由于MACD值是由均值差值计算所得,因此,即使K线走势持平或者微弱上升,都会导致两个均值的差值越来越小,MACD也可能会出现0值跳变。另外,高点或低点峰不能作为判定点,因为你无法预料后面是否还会出现峰值。

如果希望弥补MACD线的弱点,可以使用SAR指标加以共同判读,关于SAR指标,且听下回分解。

作者:科学家

Email:warensoft@163.com

微信:43175692

高频交易算法研发心得--MACD指标算法及应用的更多相关文章

  1. 高频交易算法研发心得--RSI指标及应用

    高频交易算法研发心得--RSI指标及应用 前面文章中我们提到了MA均线(包括EMA,SMA).MACD以及SAR指标,这三类指标存在一个共同特点,即:从固定周期的价格作为判读的指导思想,并将价格进行平 ...

  2. 高频交易算法研发心得--WAVT指标(Warensoft交易量趋势指标)算法及应用

    高频交易算法研发心得--WAVT指标(Warensoft交易量趋势指标)算法及应用 注:WAVT指标由Warensoft(王宇)原创. 前面聊了一系列的常见应用指标,包括短线.长线的指标,并且也无耐的 ...

  3. AI大厂算法测试心得:人脸识别关键指标有哪些?

    仅仅在几年前,程序员要开发一款人脸识别应用,就必须精通算法的编写.但现在,随着成熟算法的对外开放,越来越多开发者只需专注于开发垂直行业的产品即可. 由调查机构发布的<中国AI产业地图研究> ...

  4. 高频交易:Solarflare组建超低延迟网络

    10Gb以太网适配器制.网卡造商Solarflare目前正在将自己的网卡系列产品转变为服务器产品.其产品在金融领域有着广泛的应用. Solarflare首先将现场可编程门阵列(FPGA)放入网络适配器 ...

  5. Machine Learning 算法可视化实现2 - Apriori算法实现

    目录 关联分析 Apriori原理 Apriori算法实现 - 频繁项集 Apriori算法实现 - 从频繁项集挖掘关联规则 一.关联分析 关联分析是一种在大规模数据集中寻找有趣关系的任务. 这些关系 ...

  6. Java才是世界上最好的语言,Java在高频交易中替代C&plus;&plus;

    高频交易 高频交易是指从那些人们无法利用的极为短暂的市场变化中寻求获利的计算机化交易,比如,某种证券买入价和卖出价差价的微小变化,或者某只股票在不同交易所之间的微小价差.在高频交易中,自动化应用程序每 ...

  7. 基于改进人工蜂群算法的K均值聚类算法(附MATLAB版源代码)

    其实一直以来也没有准备在园子里发这样的文章,相对来说,算法改进放在园子里还是会稍稍显得格格不入.但是最近邮箱收到的几封邮件让我觉得有必要通过我的博客把过去做过的东西分享出去更给更多需要的人.从论文刊登 ...

  8. JVM内存管理------GC算法精解(复制算法与标记&sol;整理算法)

    本次LZ和各位分享GC最后两种算法,复制算法以及标记/整理算法.上一章在讲解标记/清除算法时已经提到过,这两种算法都是在此基础上演化而来的,究竟这两种算法优化了之前标记/清除算法的哪些问题呢? 复制算 ...

  9. 学习MACD指标

    概念 MACD叫指数平滑异同移动平均线指标. 零轴 MACD柱线 DIFF线 DEA线 使用 一般出现如下情形,股价处于或即将进入上涨趋势中: MACD指标在零轴上方出现金叉,其后DIFF快线一直位于 ...

随机推荐

  1. VS2010下安装Cocos2dx完整教程&lpar;原&rpar;

    一.本人所使用的Cocos2dx版本(cocos2d-2.1rc0-x-2.1.3),下载地址:http://code.google.com/p/cocos2d-x/downloads/list 当前 ...

  2. 基于ASP&period;NET MVC定时执行任务调度

    相对FluentScheduler实现定时调度任务的使用简单,配置少的特点,Quartz.Net则配置稍微复杂一些.下面我们就接合一个 ASP.NET MVC网站应用程序的定时执行任务调试的小实例来了 ...

  3. yum缓存配置

    引自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/09/2203916.html $ cat /etc/yum.conf    ...

  4. js 事件监听封装

    var eventUtil={//添加句柄 //element,节点 //type,事件类型 //handler,函数 addHandler:function(element,type,handler ...

  5. SQL语言的组成

    在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的 组成: 1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义. 2.一个SQL表由行集构成, ...

  6. css盒子模型,定位,浮动

    1.盒子模型 Margin(外边距) - 清除边框外的区域,外边距是透明的. Border(边框) - 围绕在内边距和内容外的边框. Padding(内边距) - 清除内容周围的区域,内边距是透明的. ...

  7. BootStrap 智能表单系列 八 表单配置json详解

    本章属于该系列的高级部分,将介绍表单中一些列的配置 1.config列的配置: 主要用于控制布局 :config:{autoLayout:true|'1,2,2,4'} true:根据配置项最里层的数 ...

  8. c语言的流程控制

    1. 流程控制 ● 顺序结构:默认的流程结构.按照书写顺序执行每一条语句. ● 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码. ● 循环结构:在给定条件成立的情况下,反复执行某一 ...

  9. Linux下安装numpy

    转自:https://blog.csdn.net/abc_321a/article/details/82056019 1.下载源码包 ,命令如下 wget http://jaist.dl.source ...

  10. Java并发编程学习:线程安全与锁优化

    本文参考<深入理解java虚拟机第二版> 一.什么是线程安全? 这里我借<Java Concurrency In Practice>里面的话:当多个线程访问一个对象,如果不考虑 ...