不是说序列模式下。这个是根据函数的类型决定的
好的,明白。
就是想在逐K模式下,将指标数组传递到vba进行计算(不是在vba使用marketdata.StkindiByData)
序列模式下,传递过去的就是数组,逐k传递的是单个数值
可以再回答一下吗
marketdata.StkindiByData的效率实在的太低了,卡的用不了
800个K线,切换一下周期,延迟起码3秒以上
就像下边这么简单的代码,在副图加载macdc4_2是秒速切换的
Set HistoryData = Formula.ParentGrid.GetHistoryData()
str = "macdc4_2(" & cstr(P) & "," & cstr(S) & "," & cstr(M) & ")"
Set Formula1 = marketdata.StkindiByData( str ,HistoryData)
openArr = Formula1.VARDATA( "Open1" )
highArr = Formula1.VARDATA( "high1" )
lowArr = Formula1.VARDATA( "low1" )
closeArr = Formula1.VARDATA( "close1" )
macdArr = Formula1.VARDATA( "MACD1" )
diffArr = Formula1.VARDATA( "DIFF1" )
deaArr = Formula1.VARDATA( "DEA1" )
macdNotDisArr = Formula1.VARDATA( "macd_not_dis1" )
lastBdDisArr = Formula1.VARDATA( "macdDisLast1" )
dateArr = Formula1.VARDATA( "date1" )
timeArr = Formula1.VARDATA( "time1" )
len1 = Formula.IndexData + 1
instrument = Formula.ParentGrid.StockLabel
set instrument = nothing
marketdata.DestroyHistoryData
set HistoryData = nothing
set Formula1 = nothing