当前位置: 首页 > news >正文

SPL做量化--MACD(指数平滑异同移动平均线)

MACD 即指数平滑异同移动平均线(Moving Average Convergence Divergence,macd)是股票交易中一种常见的技术分析工具,是从双移动平均线发展而来的,由 Gerald Appel 于 1970 年代提出,用于研判价格或指数变化的强度、方向、能量以及趋势周期,以便把握买进和卖出的时机。

MACD 利用收盘价的短期(常用为 12 日)指数移动平均线(EMA)与长期(常用为 26 日)指数移动平均线 (EMA) 之间的聚合与分离状况,对买进、卖出时机作出研判。

计算方法:
1、 离差值 DIF:
MACD _DIF=EMA(收盘价,12)-EMA(收盘价,26),EMA 采用收盘价计算
2、 根据离差值 DIF 计算其 9 日的 EMA,即离差平均值,是所求的 MACD 值。为了不与指标原名相混淆,此值又名 DEA 或 DEM。
MACD_DEA = EMA(MACD_DIF, 9)
3、 MACD 柱状值 = 2 *(MACD_DIFF - MACD_DEA)
故 MACD 指标是由两线一柱组合起来形成,快速线为 DIF,慢速线为 DEA,柱状图为 MACD。

例如计算浦发银行 2024 年的 [12,26,9] 日 MACD 值:

A
1600000
22024-01-01
32024-12-31
4=call("adjustprice.splx", "", call("loadkday.splx", A1, A2,A3) )
5=call@f("index.splx")
6=ema(A4,"close",12)
7=ema(A4,"close",26)
8=A4.new(code,tdate,A6(#).ema_12-A7(#).ema_26:macd_dif)
9=ema(A8,"macd_dif",9)
10=A8.derive(A9(#).ema_9:macd_dea,2*(macd_dif-macd_dea):macd)

A1-A4 读取股票数据

A5 登记 index.splx 脚本中的函数

A6-A7 计算短期和长期 ema

A8 计算 macd_dif

A9 计算 macd_dif 的 9 日 ema

A10 计算 macd_dea 和 macd

..

也可以将 macd 的计算方法封装为脚本 macd.splx,使用起来更加方便。

脚本代码:

A
1=call@f("index.splx")
2=ema(data,field,N(1))
3=ema(data,field,N(2))
4=data.new(code,tdate,A2(#).ema_${N(1)}-A3(#).ema_${N(2)}:macd_dif)
5=ema(A4,"macd_dif",N(3))
6=A4.derive(A5(#).ema_${N(3)}:macd_dea,2*(macd_dif-macd_dea):macd)

脚本参数:

data序表,某支股票的日线数据
field字符串,字段名如 "close"
N序列,移动平均周期,如 [12,26,9]

返回数据集结构:

code股票代码
tdate日期
macd_dif差离值 DIF
macd_dea讯号线 DEA
macdMACD柱状值

例如调用脚本计算浦发银行 2024 年的 [12,26,9] 日 MACD 值:

AB
……读取股票数据
5=call("macd.splx",A4,"close",[12,26,9])调用脚本计算 macd

运行效果:

..

 SPL 可以在这里下载:免费下载。使用免费的桌面版就可以了,直接安装即可使用。专业程序员也可以使用这里的开源版,但需要自行配置部署。

SPL 配有系统的教程,这里有面向新手的课程(含视频):SPL程序设计语言 · 乾学院VIP课程 ,乾学院 也有更多学习资料。

相关文章:

  • 产品设计基石--用户体验要素--实战4
  • vue3配置element-ui的使用
  • 开启WSL的镜像网络模式
  • 从攻击者角度来看Go1.24的路径遍历攻击防御
  • IEEE出版|2025年算法、软件与网络安全国际学术会议(ASNS2025)
  • 【愚公系列】《Manus极简入门》034-跨文化交流顾问:“文化桥梁使者”
  • 制造业IT管理方法论:柔性变更与数据治理的融合实践
  • 星海智算云平台部署GPT-SoVITS模型教程
  • 电脑端实用软件合集:土拨鼠+Rufus+实时网速监控工具
  • OpenCV进阶操作:光流估计
  • 原生的 XMLHttpRequest 和基于 jQuery 的 $.ajax 方法的异同之处以及使用场景
  • 人工智能浪潮下:如何选择适合你的认证路径?
  • netty 客户端发送消息服务端收到消息无法打印,springBoot配合 lombok使用@Slf4j
  • 辣椒青椒幼苗和杂草检测数据集VOC+YOLO格式706张2类别
  • 《AI大模型应知应会100篇》第59篇:Flowise:无代码搭建大模型应用
  • flutter使用命令生成BinarySize分析图
  • 专题二:二叉树的深度搜索(二叉树剪枝)
  • 《 C++ 点滴漫谈: 三十七 》左值?右值?完美转发?C++ 引用的真相超乎你想象!
  • GB/T 17626.5-2019浪涌抗扰度【研读笔记】
  • IOP|2025第二届机电一体化、机器人与控制系统国际会议(MRCS2025)
  • 权益类基金发行回暖,这些老将挂帅新基,谁值得买?
  • 2025年上海好护士揭晓,上海护士五年增近两成达12.31万人
  • 伊朗外长称正与美国进行“善意”的会谈
  • 巴基斯坦空袭印度多地空军基地,巴战机进入印领空
  • 巴基斯坦称回应挑衅,对印度发起军事行动
  • 涨知识|没想到吧,体育老师强调的运动恢复方法是错的?