EDA365电子论坛网

标题: 求教movavg(Asset, Lead, Lag, Alpha) [打印本页]

作者: nocturne    时间: 2023-1-3 13:55
标题: 求教movavg(Asset, Lead, Lag, Alpha)
movavg(Asset, Lead, Lag, Alpha)这个函数是求平均的吗?里面Asset, Lead, Lag, Alpha分别是什么意思?
7 g# T- j1 d. \3 W2 E$ X比如,我现在有个序列数AA,我想求他的前10个平均数,即AVG(AA,10),用MATLAB怎么写?有个写程序化均线的帖子里写过一个代码“[Short5, Long20] = movavg(IF, 5, 20);”,请问这个就是求5日跟20日均线的对吗?# H5 G, _+ n; z9 \' j

作者: purpose_857    时间: 2023-1-3 14:53
你说的是faruto那个简单的均线策略代码吧,你可以在命令窗口自己写个看看不就知道了,help里有example
作者: whatever_    时间: 2023-1-3 15:16
movavg这相当于一个双均线函数,Asset是画线的标的品种,Lead是快速均线的周期数,Lag是慢速均线的周期数,Alpha是均线的种类(好像有0,1,2。。几个参数吧代表不同的均线类型比如简单平均呀,加权平均什么的),注意的是快速均线的周期要比慢速的小哦
作者: I_believe    时间: 2023-1-3 15:27
movavg是一个取移动平均很好用的命令。  V& a7 C% X! |7 n$ ^. |
之前对于一个股价序列wdata,为了取ma5和ma20,我不得不写好几个循环。
2 c! e4 N( F- C5 j& q6 A其中ma5是
/ C- p8 j& \: \7 {0 h  f. B9 ^for t=i-4:i
% S# @8 k# J) u' x6 Y% i7 q6 ima5(t,1)=wdata(i)/5+ma5(t,1);
+ w5 v% R) U  C8 I* zend2 F2 C! P6 C# v! @) R: M
还需要考虑到初始项,不能让数据发生溢出,比如出现wdata(0)或者wdata(-1)这样的项。
2 _. f1 I( _! L6 p  O$ O而使用movavg命令的话,代码就简化成了
( d8 p+ w# s' C; l! s8 X[ma5,ma20]=movavg(wdata,5,20);
: f+ J) y/ X& Rma5就直接成为了时间段为5的移动平均项。其中ma5(1,1)=wdata(1,1)/5 ,ma5(2,1)=sum(wdata(1:2))/5。$ ?. G3 Q/ y. B8 n6 u5 ]" G
而不需要考虑最前端的数据了。拿来用的时候直接从ma5(20)与ma20(20)开始使用,数据就是正常的了。+ m5 U  C7 Y# L4 k0 o' b$ [, [6 g
[Short, Long] = movavg(Asset, Lead, Lag, Alpha)
! {) G: M$ R2 F6 d最后一项可以添加alpha,默认为0,简单的移动平均。0.5意味着平方根权重的移动平均,1意味着线性移动平均,2意味着平方权重的移动平均。e意味着指数权重的移动平均。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2