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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 套利价差错位

   

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


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

主题:套利价差错位

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


加好友 发短信
等级:论坛游侠 帖子:247 积分:0 威望:0 精华:0 注册:2016/11/29 19:18:11
套利价差错位  发帖心情 Post By:2017/4/19 10:01:04 [只看该作者]

我做套利,经常会遇到两个品种由于行情推送速度不同导致了计算价差的异常,因为我用的是上一根K收盘价,请问一下怎样才能在两个品种下一根K线都出来时才计算上一根K线的价差?举例:
CU: 前两根K线9:00:59:999  价格46000    上一根K线9:01:59:999  价格46000       当前K线(下一根)K线9:02:00:010   
                                                                                                                 (速度快的,下一根K线第一笔数据先于NI推送过来)

NI: 前两根K线9:00:59:999  价格80500     上一根K线9:01:59:999  价格80000                    当前K线(下一根)9:02:00:500  
                                                                                                                             (速度慢的,下一根K线第一笔数据后于CU推送过来)
此时我计算价差就会出现错误:当CU下一根K线第一笔数据推送过来时由于NI下一根K线第一笔数据还没推送过来,程序运行就导致NI的上一根K线价格80000其实还没走完,那么计算价差就不是46000与80000相减,而是46000-80500,产生错位了!

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/4/19 10:25:17 [只看该作者]

建议告知你是通过什么方式计算的?

PEL后台?VBA?



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
林华强
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:247 积分:0 威望:0 精华:0 注册:2016/11/29 19:18:11
  发帖心情 Post By:2017/4/19 10:27:03 [只看该作者]

VBA的,有什么可行的解决办法吗?

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/4/19 11:01:41 [只看该作者]

不是很明白你的意思,你是想只计算2个品种的上一根K线的价差?



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
林华强
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:247 积分:0 威望:0 精华:0 注册:2016/11/29 19:18:11
  发帖心情 Post By:2017/4/19 11:18:21 [只看该作者]

嗯嗯我要计算的价差是两个品种上一根K线的收盘价相减,但是由于有时候有个品种行情数据推送速度不一样,下一根K线出现有先后,会出现品种1的上一根K线减品种2上上根K线的这种错位情况!

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/4/19 11:22:47 [只看该作者]

最简单的方法就是你记住上根K线上的DATE时间日期,然后实时进行对比,只有当2个日期时间都变化了,说明都产生了新K线。然后再进行计算,计算完毕后再保存最新的DATE变量,进行下一轮比对


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
林华强
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:247 积分:0 威望:0 精华:0 注册:2016/11/29 19:18:11
  发帖心情 Post By:2017/4/20 9:45:09 [只看该作者]

老师你好,我把两个品种的行情数据推送速度不同的这个问题处理完后,发现避免了这个问题仍然会有价差计算异常的问题。最后发现金字塔在获取历史数据时也存在问题!
2017/4/20  9:32:00这一秒内的两笔数据不一样,正确的应该是第二笔78810,获取到的上一根收盘价,但是第一笔数据却是78840,这是上上根的收盘价。我获取的是行情时间2017/4/20  9:32:00,就是说下一根K线出来了,这两笔应该是一样的。请问这是什么原因呢?而且出现的概率不低,都是在00秒,这样也会带来价差计算的异常!
图片点击可在新窗口打开查看此主题相关图片如下:历史数据.png
图片点击可在新窗口打开查看
private HistoryData1, HistoryData2,diff
Sub TLStart()
    '"""注册品种"""
  call marketdata.RegReportNotify("NI09","SQ")
    call marketdata.RegReportNotify("AL06","SQ")
End Sub
''###########################################################################     
Sub MARKETDATA_ReportNotify(ReportData)
  '"""处理行情推送"""
Set Report_NI = marketdata.GetReportData("NI09","SQ")
Set Report_AL = marketdata.GetReportData("AL06","SQ")
if ReportData.Label="NI09" then

    marketdata.HistoryDataMode = 1 '不同品种为独立的缓冲区
    set HistoryData1 = marketdata.GetHistoryData("NI09","SQ",0,50)
    set HistoryData2 = marketdata.GetHistoryData("AL06","SQ",0,50)
    diff = HistoryData1.close(HistoryData1.Count-2) - HistoryData2.Close(HistoryData2.Count-2)
    application.MsgOut Report_NI.date&"   "&HistoryData1.Close(HistoryData1.Count-2)&"   "&Report_AL.date&"   "&HistoryData2.Close(HistoryData2.Count-2)&"   "&diff
    
    
end if
end sub 

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/4/20 9:57:51 [只看该作者]

请使用 HistoryData1 对象里的日期数组,也建议你在K线图上用十字光标,移动时看一下K线上的对应的时间,了解金字塔的K线时间划分规则


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部