以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  3.8 beta3 新版本 分笔数据 VBS保存问题  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=89118)

--  作者:wsslei
--  发布时间:2016/1/3 22:56:53
--  3.8 beta3 新版本 分笔数据 VBS保存问题
3.8 beta3 新版本,在 MinuteData对象增加分笔数据 
Set MinuteData = marketdata.GetHistoryMinuteData("if00","zj","2015-12-29")
minutedata.InsertAt(minutedata.Count)
minutedata.Date(minutedata.Count) = "15:14:59"
minutedata.NewPrice(minutedata.Count) = 777
call minutedata.SaveData("IF00","ZJ")
marketdata.DestroyMinuteData

目前只有 minutedata.InsertAt(minutedata.Count) 是最末加了个空记录进去
空记录赋值不是无效果,就是软件直接报错,请检查

-----------------------------------------------------------------------------
前问题是想在已有的某日分笔数据里增加或修正某条分笔记录时的问题

现在的问题是假设2015/12/24整日分笔数据缺失,进行整日添加

Set MinuteData = marketdata.GetHistoryMinuteData("if00","zj","2015-12-24")
msgbox minutedata.Count ‘显示 0,说明该日无分笔记录,看上去正确
minutedata.InsertAt(minutedata.Count) ’运行无错误
msgbox minutedata.Count  ‘显示1, 说明已增加1笔空记录
minutedata.Date(minutedata.Count) = "15:14:59"  ’貌似该行没起作用
minutedata.NewPrice(minutedata.Count) = 777  ’貌似该行没起作用
call minutedata.SaveData("IF00","ZJ")  ‘存是存了,文件是1970年的,软件内查看数据是1975年的..... , 应该存 2015/12/24
marketdata.DestroyMinuteData

save设返回值也是1,貌似Save成功的,是否属性赋值语句我写得有问题?

--  作者:admin
--  发布时间:2016/1/3 22:59:15
--  

minutedata.Date(minutedata.Count) = "15:14:59"

这里不能只写时间,日期也要搞上去


--  作者:wsslei
--  发布时间:2016/1/4 11:52:45
--  
改为
minutedata.Date(minutedata.Count) = "2015-12-29 15:14:59"

还是老样子: 

目前只有 minutedata.InsertAt(minutedata.Count) 是最末加了个空记录进去
空记录赋值不是无效果,就是软件直接报错,请检查



--  作者:wsslei
--  发布时间:2016/1/4 15:28:12
--  
顶下
--  作者:yukizzc
--  发布时间:2016/1/5 12:51:03
--  

先手动在分笔文件夹内创建好分笔文件。代码的参数部分注意是从0开始的,所以要用count-1

Set MinuteData = marketdata.GetHistoryMinuteData("IF00","ZJ","2016/01/02")

minutedata.InsertAt(minutedata.Count)

minutedata.Date(minutedata.Count-1) = "2016/01/02 14:16:59"
minutedata.NewPrice(minutedata.Count-1) = 777
application.MsgOut minutedata.Date(minutedata.Count-1)
call minutedata.SaveData("IF00","ZJ")
marketdata.DestroyMinuteData

 


--  作者:王锋
--  发布时间:2016/1/5 13:23:31
--  

之前的版本是不能直接创建新的分笔数据文件的,下个升级版对这个问题专门做了修正。

 

你前面的代码也有BUG,参考下面的改动

 

Set MinuteData = marketdata.GetHistoryMinuteData("if00","zj","2015-12-24")
  
msgbox minutedata.Count
minutedata.InsertAt(minutedata.Count)
msgbox minutedata.Count     
minutedata.Date(minutedata.Count-1) = "2015-12-24 15:14:59"
minutedata.NewPrice(minutedata.Count-1) = 777
call minutedata.SaveData("IF00","ZJ")
marketdata.DestroyMinuteData

[此贴子已经被作者于2016/1/5 13:24:56编辑过]

--  作者:wsslei
--  发布时间:2016/1/5 15:28:31
--  
好的,多谢王工