以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  高级功能研发区  (http://222.73.7.161/bbs/list.asp?boardid=5)
----  GetHistoryData 不对,让我一个脑袋两个大....  (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=81400)

--  作者:wsslei
--  发布时间:2015/7/20 11:08:50
--  GetHistoryData 不对,让我一个脑袋两个大....
问题是这样的,

PEL+ VBS, 之前用2.962,写C++, VBS 用gethistorydata 取 PEL的historydata, 1m 和分笔生成的5s 数据,都对。

今天加装了3.63, 重新下载了 5s,1m,图表都能显示数据,VBS 用gethistorydata 取 PEL的historydata, 就只能不对了。 1m实际有11万条,只能取出24XXX条,同理 5s只能取出14XXX条。

这种错,都没法调试的,请工程师指点,我感觉是对gethistorydata函数做过程序调整了,请指示,我整了老半天....

--  作者:wsslei
--  发布时间:2015/7/20 11:12:28
--  
诸位大哥辛苦了, 指点下,是否新版有啥新设置要求, 记得3.X版测试过,也没有该问题.  
--  作者:wsslei
--  发布时间:2015/7/20 16:31:38
--  
代码如下: 

    Set temp_HistoryData_5s = marketdata.GetHistoryData("IF00","ZJ",12,150000)
   
    
    Set HistoryData_1m = marketdata.GetHistoryData("IF00","ZJ",0,90000)

老版本没有用那个Historymode 语,所以是分开不同的值抓数的,也没有显式销毁该对象
[此贴子已经被作者于2015/7/20 16:32:32编辑过]

--  作者:yukizzc
--  发布时间:2015/7/20 19:50:53
--  

同品种是共享缓冲区的

你最后输出时候其实是1分钟的数据量了,用这种形式直接输出下数据量看下呢。

Set temp_HistoryData_5s = marketdata.GetHistoryData("IF00","ZJ",12,150000)
    application.MsgOut temp_HistoryData_5s.count
    Set HistoryData_1m = marketdata.GetHistoryData("IF00","ZJ",0,90000)
   application.MsgOut HistoryData_1m.count


--  作者:wsslei
--  发布时间:2015/7/28 17:07:41
--  
我说大哥版主, 你们每次都把用户想得太笨.

我非常清楚老版本没historymode前,是共享的,所有在V2.962测试时,我是用完一个gethistory,而后再用一个的。 现在弄到3.63后,5s,1m的数据都取不对了。 报告我没有用historymode。5s数据有47592,取出来14844,后来不知道怎么好了。 NND,大哥你知道,这种不知道怎么最Tmd的恐怖。

1m 有14万数据,结果弄出来48000,
Set HistoryData_1m = marketdata.GetHistoryData("IF00","ZJ",0,100000)
call application.msgout("HistoryData_1m_"& HistoryData_1m.count)

这是怎么回事啊。 我最近发了3个贴,没有一个你们能搞定的,

http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=81400#editform
http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&replyID=283708&ID=81729&skin=1
http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=81540&replyID=&skin=1

感觉就像我监理某国内知名ERP实施,正输都对,倒输都是bug,数据一多都是问题,你让用户怎么活。

--  作者:wsslei
--  发布时间:2015/7/28 18:35:09
--  
Set HistoryData_1m = marketdata.GetHistoryData("IF00","ZJ",0,140000)
call application.msgout("HistoryData_1m_"& HistoryData_1m.count)  

这东西很奇怪, 参数 140000,  HistoryData_1m_8928
参数 150000  HistoryData_1m_18928
参数 130000  HistoryData_1m_64464
参数 110000  HistoryData_1m_44464

天哪,我要取超过80000根,怎么也不行,  是不是不能超过65535了???  这个新版到底改了什么

--  作者:yukizzc
--  发布时间:2015/7/28 20:56:51
--  
问题已看到,就像你说的参数最大限制在了65535,已和开发那提过了该情况后续版本会修复,谢谢。
目前版本您要使用比如8w这种大数据量,把这个参数设置0意即本地所有数据。

--  作者:wsslei
--  发布时间:2015/8/1 21:44:03
--  
老兄, 参数0 也不行的, 取48928只有.....  
真佩服开发人员,好好的程序,你升级瞎改什么,改了要做回归测试......
大哥,这东西不给人路走,什么时候能修复? 着急啊

--  作者:yukizzc
--  发布时间:2015/8/2 20:01:03
--  

修复会在后面版本进行修复,最后一个参数用0就是表示所有,这边测试也没有问题的


图片点击可在新窗口打开查看此主题相关图片如下:h}5fkup0w%m%rs`@2$9jh.jpg
图片点击可在新窗口打开查看

--  作者:wsslei
--  发布时间:2015/8/4 7:21:05
--  
谢版主,我检查我这还有问题, 和版主不同的是,我之前还有一次getHistorydata

Set temp_HistoryData_5s = marketdata.GetHistoryData("IF00","ZJ",12,180000,5)
call application.msgout("temp_HistoryData_5s_"& temp_HistoryData_5s.count)

Set HistoryData_1m = marketdata.GetHistoryData("IF00","ZJ",0,0)
call application.msgout("HistoryData_1m_"& HistoryData_1m.count)

结果就成这个样了。。。。
temp_HistoryData_5s_47590
HistoryData_1m_48928

没用historymode,应该是覆盖呀.... 开发人员没作回归测试