Function getEMALen02(Formula,lenP)
getEMALen02 = -1
Set HistoryData = Formula.ParentGrid.GetHistoryData()
for n1 = 5 to 300 step 5
rtnV = getEMALen03(Formula,HistoryData,n1,lenP)
if rtnV > 0 then
getEMALen02 = rtnV
exit for
end if
next
End Function
Function getEMALen03(Formula,HistoryData,lenP1,lenP2)
str = "emac1(" & cstr(lenP1) & ")"
Set Formula1 = marketdata.StkindiByData( str ,HistoryData)
emaArr = Formula1.VARDATA( "e1" )
emaDis3Arr = Formula1.VARDATA( "dis3_ref" )
emaDis4Arr = Formula1.VARDATA( "dis4_ref" )
emaDis3 = emaDis3Arr(Formula.IndexData)
emaDis4 = emaDis4Arr(Formula.IndexData)
getEMALen03 = emaArr(Formula.IndexData)
marketdata.DestroyHistoryData
End Function
这样的代码很慢,盘中根本运行不了
如果直接写成下边那样(一共60行),又运行很流畅
ema5 : ema(close,5);
ema10 : ema(close,10);
ema15 : ema(close,15);
ema20 : ema(close,20);
ema25 : ema(close,25);
ema30 : ema(close,30);
ema35 : ema(close,35);
。。。
ema295 : ema(close,295);
ema300 : ema(close,300);
这是为什么呢?
如果是逐k线模式,这么运行等于巨大的计算量,建议你理清思路,我们不知道你的算法需求没法具体帮你