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 i
ma5(t,1)=wdata(i)/5+ma5(t,1);
+ w5 v% R) U C8 I* z
end
2 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& R
ma5就直接成为了时间段为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