设为首页收藏本站

 找回密码
 注册
查看: 1387|回复: 1
打印 上一主题 下一主题

请老师帮忙编写一个函数, Forcast [复制链接]

Rank: 4

精华
0
UID
5152
积分
373
帖子
83
主题
12
阅读权限
50
注册时间
2009-8-15
最后登录
2022-1-12
跳转到指定楼层
1#
发表于 2018-7-24 12:15:03 |只看该作者 |倒序浏览
本人将文华里的模型转到TB里来,遇到问题,就是文华里的Forcast函数,在TB里没有对应的,能否请老师帮忙编写一个,谢谢!

该函数的说明如下:
FORCAST(X,N):为X的N周期线性回归预测值。
注:
1、N包含当前k线。
2、N为有效值,但当前的k线数不足N根,该函数返回空值;
3、N为0时,该函数返回空值;
4、N为空值,该函数返回空值;
5、N可以是变量
算法举例:用最小平方法计算FORCAST(C,3)在最近一根K线上的值
1、建立一元线性方程:y=a+b*i+m
2、y的估计值:y(i)^=a+b*i
3、求残差:m^=y(i)-y(i)^=y(i)-a-b*i
4、误差平方和:
Q=m(1)*m(1)+...+m(3)*m(3)=[y(1)-a-b*1]*[y(1)-a-b*1]+...+[y(3)-a-b*3]*[y(3)-a-b*3]
5、对线性方程中的参数a,b求一阶偏导:
2*{[y(1)-a-b*1]+...+[y(3)-a-b*3]}*(-1)=0
2*[y(1)-a-b*1]*(-1)+...+[y(3)-a-b*3]*(-3)=0
6、联立以上两个公式,解出a,b的值:
a=(y(1)+y(2)+y(3))/3-b(i(1)+i(2)+i(3))/3
b=(y(1)*i(1)+y(2)*i(2)+y(3)*i(3)-(3*((i(1)+i(2)+i(3))/3)*((y(1)+y(2)+y(3))/3))/((i(1)^2+i(2)^2+i(3)^2)-3*((i(1)+i(2)+i(3))/3)^2)
7、将a,b,i值带入1,求出y值
以上公式用麦语言函数可以表示如下:
BB3*C+2*REF(C,1)+REF(C,2)-(3*((1+2+3)/3)*MA(C,3)))/((SQUARE(1)+SQUARE(2)+SQUARE(3))-3*SQUARE((1+2+3)/3));
AA:MA(C,3)-BB*(1+2+3)/3;
YY:AA+BB*3;
例:
FORCAST(CLOSE,5);//表示求5周期线性回归预测值

Rank: 4

精华
0
UID
5152
积分
373
帖子
83
主题
12
阅读权限
50
注册时间
2009-8-15
最后登录
2022-1-12
2#
发表于 2018-7-24 15:37:13 |只看该作者
自己找到了,不用了。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-12 23:48

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部