y=sma(x,n,m)
y=[m*x+(n-m)*y`]/n
其中:x=(x1,x2,x3...x100),n=9,m=1
按上面的公式,算來算去不對啊?
求高人指點!
uj5u.com熱心網友回復:
Public Function CaclSMA(ByVal Cycle As Long, dData() As Currency, SMA() As Currency) As Long
' 創建日期:2014-07-05
' 最后修改:2014-07-05
'公式:
'y=sma(x,n,m)
'y=[m*x+(n-m)*y]/n
Dim u As Long
Dim i As Long
u = UBound(dData)
ReDim Preserve SMA(u)
SMA(0) = dData(0)
For i = 1 To u
SMA(i) = ((1 * dData(i) + (Cycle - 1) * SMA(i - 1))) / Cycle
Next i
' 大智慧此函式為 0.
SMA(0) = 0
End Function
自力更生,有福同享!
uj5u.com熱心網友回復:
沒做這類股票軟體的經驗,也不熟悉這個公式,真不好說啊。一般算加權平均都是先算出總額再去除的吧。uj5u.com熱心網友回復:
對于n=9,m=1,理論上要從-9算起才對SMA(-9) = dData(-9)
For i = -9 To u
SMA(i) = ((1 * dData(i) + (Cycle - 1) * SMA(i - 1))) / Cycle
Next i
就是說,第一個值也是用以前的值算出來的,而不是的dData(0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/116765.html
標籤:VB基礎類
上一篇:【求助大神】如何避免picturebox頻繁重繪導致的閃爍
下一篇:真心請求大神幫助..
