此主题相关图片如下:cuma2.png

在序列模式下运行XULIE:CU_MA1(CLOSE,5),COLORRED;
报溢出错误后黄色光标停留在 For k = i-(Cyc-1) To i
在逐线模式下运行
ZHUKX:CU_MA2(5),COLORBLUE;
报溢出错误后黄色光标停留在 for i = Formula.IndexData-cyc+1 to Formula.IndexData
如附件所示,请看下是哪方面原因?
[此贴子已经被作者于2015/9/1 10:35:26编辑过]
因为报错,这两个函数我改动过但最后又改回来了。版主能发它们的源码我比对下看看吗
或者使用调试手段,看一下出错行的变量是否是出现数值异常,然后依次往上排查问题
重装的话是不是只要把\Weisoft Stock\Setting\文件夹备份,装完再还原就可以了?
这个是配置文件,还有个document里面是公式文件包括了你vba里面代码。
重装时候要把document里面的.stk公式文件删掉,否则他不会替换初始文件的
重装后错误依旧
'计算逐周期模式下指定周期长度的收盘价均价
Function CU_MA2(Formula,cyc)
'得到K线数据对象
Set History = Formula.ParentGrid.GetHistoryData()
'若当前周期尚未到计算周期,不参与计算
if Formula.IndexData < cyc-1 then
CU_MA2 = 0
exit function
end if
DataCount = 0
for i = Formula.IndexData-cyc+1 to Formula.IndexData
'累加收盘价
DataCount = DataCount + history.close(i)
next
CU_MA2 = DataCount / cyc
End Function
'计算序列模式下指定周期长度的收盘价均价
Function CU_MA1(Formula,CLOSE,CYC)
CU_MA1=0
'防止公式逐周期模式时调用
If Formula.WorkMode = 0 Then
Exit Function
End If
'CLOSE数组数据长度一定会与Formula.DataSize-1相等
DataCount = UBound(CLOSE)
If DataCount <> Formula.DataSize-1 Then
Exit Function
End If
'定义一个计算返回的数组
Dim ResultMa
Redim ResultMa(DataCount)
For i = Cyc-1 To Formula.DataSize-1
Count = 0
For k = i-(Cyc-1) To i
Count = Count + CLOSE(k)
Next
ResultMa(i) = Count / Cyc
Next
'返回一个计算完毕的均线数组
CU_MA1 = ResultMa
End Function