以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  请问在逐K模式下怎么获得指标序列数据  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=143648)

--  作者:microsoft
--  发布时间:2016/11/30 15:05:21
--  请问在逐K模式下怎么获得指标序列数据
例如在逐K模式下获得macd数值数组,谢谢了
--  作者:wenarm
--  发布时间:2016/11/30 15:33:15
--  
macd,是根据ema计算的,结果就是一个数据类型
--  作者:microsoft
--  发布时间:2016/11/30 15:36:06
--  
序列模式下,是一个数组啊
--  作者:wenarm
--  发布时间:2016/11/30 15:39:49
--  

不是说序列模式下。这个是根据函数的类型决定的


--  作者:microsoft
--  发布时间:2016/11/30 15:49:18
--  

好的,明白。

就是想在逐K模式下,将指标数组传递到vba进行计算(不是在vba使用marketdata.StkindiByData

序列模式下,传递过去的就是数组,逐k传递的是单个数值


--  作者:microsoft
--  发布时间:2016/11/30 18:18:36
--  

可以再回答一下吗

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


--  作者:wenarm
--  发布时间:2016/12/1 8:26:35
--  
关于vba的问题,你需要高级编程区咨询