简单的算法问题

一个均值权重的算法,不知如何用程序表达在onbar中,目前常用的15日收盘价均价算法如下,变量都已经声明OKaa = xaverage(close ,15) 这个没问题后续有个算法是 加权模式目前我们求一个 bb, 她的算法表达如下, 加权系数,没问题,就是不知道如何通过程序表达bbbb == 0.2* aa t+ 0.8* aa t-1 用表格数据来表达算法时间向后推T1=第16根barT2= T1+1 barT3= T2+1 bar......aa (15)15根bar的收盘均价bbT=1 第16根bar5050(初始值)T=2 第17根棒520.2*52+0.8*50==50.4 ==bbT=3480.2*48 + 0.8*50.4 == 49.92(t3的bb值)T=4550.2*55 + 0.8*49.92 ==11+39.93==50.93这个算法用程序,应该如何表达

看下系统的指数平均 就是你这个需求 price就是你的aafactor可以按照你的需求设置成参数

回复:6

回复:感谢大神,参照大神给的架构,现在的写法如下,请大神过目,是否okParams Numeric ts(0.2); Numeric dif(15); Vars Series<Numeric> aa ; Series<Numeric> bb ;Events OnBarOpen(ArrayRef<Integer> indexs) { aa = XAverage(Close,dif); // 15日 收盘均价 if(CurrentBar == 0) aa = Price; Else { bb= ts*aa + (1-ts)*aa[1]; } }

回复:大哥 这可不是我的 是系统自带的 打开策略管理 策略应用 旁边就是用户函数 里面很多案例可以学习和使用CurrentBar == 0是第一根bar哦,看你初始的设计 是从第16根bar开始算另外,根据你的设计,aa是算的指数平均值,bb是指数平均的移动加权。使用的时候好像弄混了。 OnBarOpen(ArrayRef<Integer> indexs) { aa = XAverage(Close,dif); // 15日 收盘均价 if(CurrentBar == dif+1) bb = aa; Else if(CurrentBar > dif) { bb= ts*aa + (1-ts)*aa[1]; } }写得不太严谨哈 老师说要把所有的情况都考虑到哈 ,我没有写CurrentBar < dif+1的情况还有没有bug我也不确定 你自己试试 我只能看出这么多

回复:*Else if(CurrentBar > dif+1)

回复:ok,逻辑能够通顺,应该是想要的部分。。编译没有问题,后续弄完后,在测试。。十分感谢。。十分感谢。。

请教各位大神老师,求教