以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  计算一条MA不能实现的移动平均线,代码中遇到的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=7086)

--  作者:国王归来
--  发布时间:2011/7/4 10:25:33
--  计算一条MA不能实现的移动平均线,代码中遇到的问题

用VBS计算了一条均线,其计算法则用MA(C,N)函数无法实现。以5日均线为例,每天5日均线值=(上日该5日均线值*4+当日收盘价)/5;我的VBS代码是

Function CU_MA3(Formula,A)
    \'系统会在逐周期模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
    \'得到K线数据对象
 Set History = Formula.ParentGrid.GetHistoryData()
 \'若当前周期尚未到计算周期,不参与计算
 DataCount = 0
 FOR I=0 TO A-1
 DataCount = DataCount + history.close(I)
 NEXT
 DIM JUNJIA
 JUNJIA=DataCount/A
    for i = A to 100
     \'计算均价
     JUNJIA=(JUNJIA*(A-1)+ history.close(i))/A
    next
 CU_MA3 = JUNJIA

End Function

公式内容是

A:CU_MA3(N);

在K线中可以计算出一条直线,只有一个值不是曲线。

 

另外我的公式只计算了100个周期的收盘价,怎么写才可以计算到最后一个k线周期?

 

求教,谢谢。

 


--  作者:admin
--  发布时间:2011/7/4 16:54:49
--  

大致看了一下,你的自定义函数是在逐周期模式下工作的,你是不是在序列模式下调用了