PHP原生实现股票MACD指标算法

        日前用boaPHP做云选股系统,股票技术指标计算一般都用TA-LIB库,其对python用户支持很好,作为PHP用户我找到php-trader扩展,其也是基于TA-LIB库的,奈何文档很少。

        其中一个较常用的股票技术指标MACD,用它算出来结果的和通达信、同花顺上不一致,查阅相关资料,需要从股票上市第一天的数据开始计算。

        这就会有个新问题,每次盘中实时选股都要将一只股票30年的数据带进去计算一遍,效率太低。干脆直接用PHP实现MACD算法,后续也可以用C语言实现将其封装成PHP的扩展。

        计算MACD的函数:通过前一个macd值就可以计算当前的,无需每次从上市第一天开始算,如果前一个macd值为null,则为上市第一天。将计算出来的MACD结果保存,供下次使用,以此循环。首次需要全量计算,以后每次用前一次保存的结果代入计算。

/*
计算MACD指标
$macd:传入保存的前一个macd值,就可以直接计算当前的,上市第一天这个值传入null
$close:当前股价或收盘价
返回值:当前计算出来的macd值,可以保存作为下次传入
*/
function macd($macd, $close, $fastPeriod = 12, $slowPeriod = 26, $signalPeriod = 9){
	$fast = ema($macd['fast'], $close, $fastPeriod);
	$slow = ema($macd['slow'], $close, $slowPeriod);
	$dif = $fast - $slow;
	$dea = ema(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值