請老師幫忙編寫一個函數, Forcast
作者:開拓者 TB 來源:cxh99.com 發布時間:2018年12月14日
-
咨詢內容:
本人將文華里的模型轉到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周期線性回歸預測值
?
?來源:CXH99.COM
-
TB技術人員:
自己找到了,不用了。