关于系统自带的CU_MA2函数的问题?我把它赋给一个变量,输出结果怎么一直是0 [金字塔]
- 咨询内容:
我的问题
1. ma2(逐周期模式),在逐周期模式下调用为什么得到的结果为0 .应该是MA的历史均值才对啊.
2. 如果在序列模式下调用应该是出错,还是得到的最后一根K线的算术平均值.
M2:=CU_MA2(3);
msgout(1,'M2为'+NUMTOSTR(M2,1));
- 金字塔客服:
通常自定义函数只能执行一种模式的运算,不要在序列和逐周期这两种模式下混用。
如果在序列模式下调用会不执行该函数体
[此贴子已经被作者于2011-8-5 10:03:01编辑过] - 用户回复:
找到问题所在
下面是程序的源代码,其中
“若当前周期尚未到计算周期,不参与计算”
这一段注释对应的程序一直在执行所以返回为0
我再进一步查看
'计算逐周期模式下指定周期长度的收盘价均价
Function CU_MA2(Formula,cyc)
'得到K线数据对象
Set History = Formula.ParentGrid.GetHistoryData()
'若当前周期尚未到计算周期,不参与计算
if Formula.IndexData < cyc-1 then
application.MsgOut Formula.IndexData &" "&cyc-1
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 - 网友回复:
逐K线下有数据 就是数据比较多
你是不是用的序列模式 返回为0
- 网友回复:
这个函数属于统计性的函数,应该运行在逐周期模式下,如果你只想在最后一个周期获得他的数值,那么你可以在指标开头加一句:
IF NOT(ISLASTBAR) THEN EXIT;
- 上一篇:[原创]自动发短信代码
- 下一篇:急,飞狐公式如何导入金字塔
相关文章
-
没有相关内容