当前位置: 首页 > news >正文

上海网站开发技术最好公司上海公司免费起名

上海网站开发技术最好公司,上海公司免费起名,不错的网站建设,简单的网站怎样做前言 上篇#xff0c;我们介绍了如何获取历史数据#xff0c;有了历史数据#xff0c;我们可以进行分析和回测。但#xff0c;下一步#xff0c;我们更需要的是实时数据#xff0c;只有能有效的监控实时行情数据#xff0c;才能让我们变成市场上的“千里眼#xff0c;…前言 上篇我们介绍了如何获取历史数据有了历史数据我们可以进行分析和回测。但下一步我们更需要的是实时数据只有能有效的监控实时行情数据才能让我们变成市场上的“千里眼顺风耳”。 接口汇总 与获取实时数据相关的接口有以下几个 xtdata.get_full_tick() xtdata.subscribe_whole_quote() xtdata.subscribe_quote() xtdata.unsubscribe_quote()后文逐一展开说明。 实时行情 vs 历史行情 我们先探讨一下什么是实时行情其实实时无非就是很近的历史我们希望这个时间越近越好。获取到的最新行情的时间越接近他产生的时间那就更多的获得了优先决策权。虽然几秒或者几百毫秒对于人类而言微乎其微但对于计算机来讲可以做很多事。 订阅 vs 获取 熟悉编程设计模式的朋友对“订阅”这个概念不会陌生但也有可能一部分非专业的朋友不太了解我这里通俗易懂解释一下。 普通获取数据的接口调用成功一次会返回一次数据结果。那想想我们获取实时数据的场景我们需要持续、不停的获取某一数据的最新值那我就要持续轮询调用这个接口才能完成对吧比如一秒调用一次。但这里存在一个问题你也不知道最新数据是何时来的假如若是最新数据0.5秒之后就已经更新了呢那我们就浪费了0.5秒的机会对吧。 而对于订阅模式的接口来讲一旦这个接口被订阅成功在之后的时间里它会主动的给你推送数据最新数据一般这种接口都会有一个callback函数作为参数每次最新数据来的时候该callback函数就会被调用一次后面我们会结合具体例子演示。这样我们就降低了获取数据的延时性数据会第一时间返回到我们的程序中。 那对应于本文要阐述的接口get_full_tick就是普通获取接口而subscribe_quote和subscribe_whole_quote就是订阅接口。另外对于订阅接口往往需要一个取消订阅的接口来解除订阅不然数据将会一直推送unsubscribe_quote的作用就是这个。 get_full_tick 这是全推数据的主动获取接口所谓全推数据就是当前时间最新的市场横截面数据。 这里没什么复杂的只有一个参数就是传入代码的数组返回值是一个以股票代码为key的字典对应的值就是该股票最新的tick数据。如果是非交易时间这里返回了上一个交易日最后一个tick数据。 注意此接口是不能传period参数返回的数据默认是最新的tick周期数据。 from xtquant import xtdatares xtdata.get_full_tick([600519.SH])res[600519.SH]subscribe_whole_quote推荐 这是订阅全推数据的接口与get_full_tick功能类似只是模式不同此接口采用订阅模式。 from xtquant import xtdatadef on_data (datas):print(datas)seq xtdata.subscribe_whole_quote(code_list[600519.SH], callbackon_data)xtdata.run()这里的xtdata.run()并不一定是必须的这行代码只是为了阻塞该段代码一直处于运行状态由于我们是订阅模式的接口只要不取消订阅就会一直返回数据。所以让程序处于一直运行状态比较好。 可以看到on_data方法会被一直调用每次都返回最新的tick。此接口只有两个参数code_list和callbackcallback传入一个方法具体的返回数据在这个方法中处理落实到我们的例子中就是on_data方法。 下面我们再测试一下订阅的返回时间和速度为代码解析返回数据的时间戳并与当前系统时间做对比 from xtquant import xtdata from datetime import datetime import timedef on_data (datas):tick_time datas[600519.SH][time]timestamp_seconds tick_time / 1000readable_time datetime.fromtimestamp(timestamp_seconds).strftime(%Y-%m-%d %H:%M:%S.%f)# 获取当前时间戳秒级current_timestamp_seconds time.time()current_readable_time datetime.fromtimestamp(current_timestamp_seconds).strftime(%Y-%m-%d %H:%M:%S.%f)print(readable_time)print(current_readable_time)print(datas)seq xtdata.subscribe_whole_quote(code_list[600519.SH], callbackon_data)xtdata.run()根据下面的结果我们可以得知 1、该数据每三秒返回一次也就是每三秒产生一个tick这就是目前实时数据的最小时间单位。 2、返回的时间戳时间解析后是大于系统时间的大致是大个0.5~0.6秒之间我认为这个时间戳应该是做了提前处理以保证获取到数据的时间与系统时间接近。 subscribe_quote 这是单股订阅接口。最大的特点是每次订阅只能传入一只股票代码且该接口具有period参数可以不止获取tick级别的数据。 from xtquant import xtdata from datetime import datetime import timedef on_data (datas):tick_time datas[600519.SH][0][time]timestamp_seconds tick_time / 1000readable_time datetime.fromtimestamp(timestamp_seconds).strftime(%Y-%m-%d %H:%M:%S.%f)# 获取当前时间戳秒级current_timestamp_seconds time.time()current_readable_time datetime.fromtimestamp(current_timestamp_seconds).strftime(%Y-%m-%d %H:%M:%S.%f)print(readable_time)print(current_readable_time)print(datas)seq xtdata.subscribe_quote(stock_code600519.SH, periodtick, callbackon_data)xtdata.run()可以看到返回结果与subscribe_whole_quote区别不大只是值多了一层数组。 这个接口可以将peroid设为1m1h1d等但其订阅频率依旧是三秒一次比如当订阅1m也就是分钟线时会每三秒返回当前分钟线的最新值也就是分钟线的收盘价会不停变化。 另外根据迅投官方的声明这个单股订阅的接口不宜订阅过多性能上也不如全推订阅。 所以个人建议订阅实时数据时最好还是使用全推订阅接口。如果想监听分钟线、小时线、或日线这种频率较低的数据完全可以用轮询获取最新历史数据的方法来代替。 unsubscribe_quote 这是取消订阅的接口其实也是相当重要订阅模式的接口不同于普通接口一旦订阅成功就会有一个进程一直在监听并返回数据当不在需要订阅时需要显示的调用取消订阅接口才能停止此次订阅。若大量调用订阅且不及时取消时可能会造成大量的CPU和内存占用。 from xtquant import xtdata import timedef on_data (datas):print(datas)seq xtdata.subscribe_whole_quote(code_list[600519.SH], callbackon_data)time.sleep(10)xtdata.unsubscribe_quote(seq)print(取消订阅成功)在本例中我们首先调用全推订阅接口该接口会返回一个订阅号seq然后我们阻塞程序10秒钟10秒钟后取消订阅。可以看到下图程序运行10秒后终止且订阅也被取消。 在实际使用中可以根据自己的需要在适合的时机调用unsubscribe_quote比如程序终止前或者有GUI的应用也可以设计一个按钮负责取消订阅。 交易时间段内使用 需要注意的是本文提到的两个订阅接口在非交易时间都是无法触发callback的也就是说在使用或者测试这两个接口时要选在开盘时间内盘后在测试实时数据接口是比较困难的。 总结 关于如何获取实时数据的内容就讨论到这里。实时数据是做量化实盘交易的数据基础一个稳定好用的实时数据源可以更好的帮我们实现实盘量化策略。 miniQMT在这个功能上提供了实时订阅的模式功能相对来说比较完善。 miniQMT具体开通方法及要求可以参看《QMT开通规则分享》
http://www.sadfv.cn/news/15332/

相关文章:

  • 下载网站怎么下载个人备案能建立企业网站吗
  • 做购物平台网站需要注意什么铜山网站开发
  • 重庆九龙坡营销型网站建设公司哪家好android下载软件
  • 建站行业分析网站开发相关知识
  • 中盛浩瀚建设有限公司网站软件开发前端
  • 可以免费建立网站吗跨境电商自建站是什么意思
  • 重庆市建设信息网站设计签名免费网站
  • 企业网站管理系统下载什么是网络营销环境
  • 淮安做网站杨凯网络营销与直播电商学什么
  • 清华紫光是可以做网站的吗php网站开发个人职责
  • 南通电子商务网站建设济南网站建设v芯企优互联不错
  • 下载类网站 前置备案靳刘高设计公司官网
  • 专业做网站哪家好wordpress主题的连接函数
  • 儿童网站网页设计微信上做网站怎么做
  • 保定 网站建设牡丹江网站seo
  • 该去哪里购买网站域名和空间天津网页制作网页报价
  • 昆山做网站找文博虚拟机安装 wordpress
  • 龙华做棋牌网站建设哪家好企业外贸网站建设方案
  • 女装网站欣赏北京诚通新新建设有限公司网站
  • 青浦郑州阳网站建设访问wordpress时失败
  • 丹阳网站建设效果简单的手机网页制作
  • 山东网站建设维护网站建设开发综合实训小结
  • 网站鼠标特效建筑工地新型材料模板
  • 常州转化率网站建设公司怎么样肇庆seo霸屏
  • 天津网站建设优选企业网站策划书的内容
  • 重庆招聘网站有哪些济南建站服务商
  • 网站套餐到期什么意思网站模板 站长之家
  • 昆明做网站建设找谁网页设计图片之间空隙
  • 什么是wap网站广东省公共资源交易中心平台
  • 质监站网址修改wordpress登录背景图