以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  高级功能研发区  (http://www.weistock.com/bbs/list.asp?boardid=5)
----  MarketData.STKINDI 60分钟  (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=67347)

--  作者:szp
--  发布时间:2014/7/14 11:26:09
--  MarketData.STKINDI 60分钟
 
set f=MarketData.STKINDI("IF07","ZJ","MA",0,4)
Application.MsgOut "DataSize=" & f.DataSize
 
DataSize 与图上显示不一致

版本 3.24 ,专业版

--  作者:王锋
--  发布时间:2014/7/14 13:47:29
--  

Stkindi 调用的公式和图表是2个不同的模块,他们没有必然的联系.

如果你要与图表一致,那么你要观察图表上加载了多少根K线,然后Stkindi中指定调用相同数量的K线就可以了


--  作者:szp
--  发布时间:2014/7/14 14:32:59
--  

我换一个问法:

我想用VBA获取IF07的1分钟的MA指标的实时数据,方法如下:

\'---------------------------------------------
Sub Test() 

    dim cycle
    cycle=0     

    dim formula
    set formula=MarketData.STKINDI("IF07","ZJ","MA",0,cycle)
    Application.MsgOut "DataSize=" & formula.DataSize
    Application.MsgOut "MA1=" & formula.GetBufData("MA1",formula.DataSize-1)

    set formula=Nothing

End Sub

\'---------------------------------------------

对比输出和图表显示(DataSize的输出和图表上最后一根K线的正序比较),
当周期为30分钟和60分钟时,数据明显不正确,
而周期为1分钟,5分钟,15分钟,日线,周线时,数据则是正确的

 


--  作者:王锋
--  发布时间:2014/7/14 15:48:08
--  
2楼已经回复你了
--  作者:szp
--  发布时间:2014/7/14 16:29:12
--  
 你看过 MA1 的输出了吗?
--  作者:szp
--  发布时间:2014/7/14 17:42:07
--  

好吧,用下面的方法发现,30分钟,60分钟,VBA的数据与图表数据是不一样的,但其它周期都一样

Sub Test() 

    dim hd,count,i,cycle
   
    cycle=4
   
    set hd=MarketData.GetHistoryData("IF07","ZJ",cycle)
    count=hd.Count-1
 
    for i=count to count-4 step -1
        Application.MsgOut "收盘价=" & hd.Close(i)
    next
    set hd=Nothing

End Sub

 

[此贴子已经被作者于2014/7/14 17:42:19编辑过]

--  作者:szp
--  发布时间:2014/7/14 17:57:23
--  
 好吧,我自己解决了.设置问题.现在数据一致了
[此贴子已经被作者于2014/7/14 17:57:53编辑过]

--  作者:王锋
--  发布时间:2014/7/14 17:59:17
--  

GetHistoryData 对象

取指定证券历史数据HistoryData对象,该对象记录了该证券历史数据。

注意:该对象使用一个共有的缓冲区来保存用户打开的市场数据,这意味着用户所调用的数据内容再下次重新调用其他品种或者调用不同种类的数据后会自动失效,若要在不同的品种间做横向数据处理请注意备份之前打开的数据,用户可以使用Visual Basic内部提供的数组,另外还可以使用金字塔为您提供的功能强大的数组类Array.

GetHistoryData (Code, Market,CycType,[Count,Parameter])

Code     证券代码

Market   市场标识

Cyctype  周期类型,0 1分钟 1 5分钟 2 15分钟 3 30分钟 4 60分钟 5日线 6周线 7月线 8年线 9多日线 10分笔成交 11多小时线 12多秒线 13多分钟线 14季度线 15半年线 16节气线 17 3分钟 18 10分钟 19 多笔线

Count    可选参数,若填数字则表示指定的调用数量,为0或者不填表示读取该品种在本地硬盘保存的全部数据

Parameter 可选参数若,当Cyctype为自定义周期时指定自定义周期数字。不填则表示使用系统选项设置中的自定义周期数字。

返回值    返回证券市场HistoryData对象


--  作者:szp
--  发布时间:2014/7/14 18:01:53
--  
 王总,你还没看明白