欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 请问,VBS如何得知发生断网或服务器断线的情况?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3308人关注过本帖树形打印复制链接

主题:请问,VBS如何得知发生断网或服务器断线的情况?

帅哥哟,离线,有人找我吗?
emtfemtf
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:28 积分:0 威望:0 精华:0 注册:2016/8/3 23:19:09
请问,VBS如何得知发生断网或服务器断线的情况?  发帖心情 Post By:2016/8/24 19:12:27 [显示全部帖子]

请问,VBS如何得知发生断网或服务器断线的情况?
发生断网或服务器断线时,金字塔软件立刻就会得知情况并报警重新连接网络,那么我的在里面编写的VBS程序如何能收到发生断网或服务器断线的消息?从而做出相应的操作。

 回到顶部
帅哥哟,离线,有人找我吗?
emtfemtf
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:28 积分:0 威望:0 精华:0 注册:2016/8/3 23:19:09
  发帖心情 Post By:2016/8/25 15:52:06 [显示全部帖子]

谢谢!
那么,比如网络中断了十几分钟,恢复后,金字塔就会很快的自动下载并显示出来这缺失的十几根K线(假设正打开的是某品种1分钟K线图)。

 我想问的是,如果我用Call MarketData.RegReportNotify("RB10","SQ")注册了一个品种,网络恢复时,当我在Sub MarketData_ReportNotify(ReportData)事件中,收到第一个Tick时,此时缺失的十几根K线的数据金字塔是否已经补充好了?
也就是说,金字塔是先补充缺失的数据,再发出第一个Tick,还是,补数据和发Tick是两个独立的线程,时间上没有先后关系?

之所以问这个问题,是因为我自己的代码维护K线的话,新收到第一个Tick,就认为网络恢复了,这时我会用marketdata.GetHistoryData()或者 Grid.GetHistoryData() 方法读取这缺失的十几根K线,而此时如果金字塔K线数据还没有补好,那我读回来的数据也就有问题。

另外,marketdata.GetHistoryData()或者 Grid.GetHistoryData()哪一个执行快一些?高级教程上说marketdata.GetHistoryData()是读取本地硬盘的数据,如果我只要缺失的十几根K线,还要等金字塔存了盘后,我才从盘里读出来,岂不是很慢?
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

 回到顶部
帅哥哟,离线,有人找我吗?
emtfemtf
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:28 积分:0 威望:0 精华:0 注册:2016/8/3 23:19:09
  发帖心情 Post By:2016/8/25 16:27:43 [显示全部帖子]

“”云服务器“”我在调研一下。。。

我是想用VBS实现自己的策略,那么策略计算就需要正确的K线数据。读金字塔的K线当然可以,可是marketdata.GetHistoryData()或者 Grid.GetHistoryData()执行起来是不是会都太慢?我不知道。我自己逐个Tick去维护K线当然是最实时最快的。可是,断线恢复后,历史的十几根缺失的K线数据就只好从金字塔中读取,这是,上面的问题就来了。

我看到,application.PostMessage(),有个:查看菜单->刷新    编号是:32883。我是否可以先执行一个这个,强制金字塔刷新一下再读取?

或者我看到Grid对象有个ReInitData 方法:重新初始化数据,再配合上Frame的CalcDataed 事件:当窗格计算完毕数据后发生。然后用 Grid.GetHistoryData()读取,可行吗?


 回到顶部
帅哥哟,离线,有人找我吗?
emtfemtf
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:28 积分:0 威望:0 精华:0 注册:2016/8/3 23:19:09
  发帖心情 Post By:2016/8/26 13:41:11 [显示全部帖子]

好的。
那就直接从Grid里读取吧。

我试了下,当一个Tick来到时, Sub MarketData_ReportNotify事件、Sub Technic_CalcData(Grid, DataCount)事件和Sub Technic_CalcDataed(Grid)事件的发生顺序。发现是:
第一: Sub MarketData_ReportNotify事件
第二: Sub Technic_CalcData(Grid, DataCount)
第三:Sub Technic_CalcDataed(Grid)事件
由此不难推测,如果发生服务器或者网络故障,数据缺失后,当故障恢复时,新Tick的事件会先于数据补充动作。

那么,我想,对于很多使用图表自动化交易,或者后台自动化交易的人,也许会发生:新Tick导致交易动作,而后续补充的数据回来后,又发现这个交易信号是错误的。
建议金字塔考虑下这个漏洞,毕竟短时的断网和断服务器的情况,对于一般交易者,还是较易发生的。可以设个选项:新数据补齐后再发生新的Tick事件。

 回到顶部