首页 > 其他分享 >自动化交易(一):level2行情接入示例

自动化交易(一):level2行情接入示例

时间:2025-01-14 19:32:05浏览次数:1  
标签:示例 接入 error level2 ws time message 数据 交易

在量化交易领域,个人投资者相较于机构投资者而言,最大的优势在于其灵活性。交易市场遵循着固有规律,即不可能让所有人都实现盈利,这就决定了交易策略必然具有私有属性。

从事量化交易,首先要掌握数据分析与数据获取的能力,同时需要借助工具来辅助完成量化分析和交易操作。实际上,专业量化机构所开展的工作核心也在于此。

数据是量化交易的基础,是程序运行的输入来源,因此获取数据是首要任务 。在拥有数据之后,就要进行策略的构建、验证,并将其应用到实际交易当中。

概括来说,进行程序化交易,行情数据的接入以及交易接口是不可或缺的要素。策略的可靠性并非取决于外部因素,而是源于自身的研究。

在策略研究和分析方面,如果缺乏计算机的辅助,仅依靠人眼每天浏览 3000 只股票,很难在脑海中形成对市场的准确认知,甚至极有可能因个人偏好和固有认知而产生错误判断。毕竟,人脑在处理海量数据时的学习效率远不及计算机。所以,掌握一些简单的编程技能是十分必要的。

在股票数据获取方面,虽然获取股票数据并非难事,但确保数据的准确度和实时性却颇具挑战。获取股票历史数据时,通常可以从普通财经网站抓取,这些网站一般都会开放 K 线数据。然而,对于日内交易而言,K 线回归数据的粒度较粗,无法满足对某一日内交易明细的需求,比如开盘后的走势、午盘后的走势等细节信息难以获取。所以,若要从事量化交易,从当下开始积累数据至关重要,因为每一份数据都具有不可重复性。

在进行回归回测时,历史数据的质量起着关键作用,level2 数据是较为理想的选择,它能做到事无巨细地记录各类信息,便于后续根据需求决定模型回测的粒度。交易本质上是逐笔进行的,市场中的每一次撮合交易都会留下记录。level2 行情数据提供了最为详尽的交易信息,相比于 level1 每隔几秒的快照报价,更适合用于量化投资分析。

level2行情接入示例

!python3

-- coding:utf-8 --

import time
import websocket
import zlib

发送订阅

def on_open(ws):
ws.send("all=lv2_600519,lv1_000001")

接收推送

def on_message(ws, message, type, flag):
# 命令返回文本消息
if type == websocket.ABNF.OPCODE_TEXT:
print(time.strftime('%H:%M:%S', time.localtime(time.time())), "Text响应:", message)
# 行情推送压缩二进制消息,在此解压缩
if type == websocket.ABNF.OPCODE_BINARY:
rb = zlib.decompress(message, -zlib.MAX_WBITS)
print(time.strftime('%H:%M:%S', time.localtime(time.time())), "Binary响应:", rb.decode("utf-8"))

def on_error(ws, error):
print(error)

def on_close(ws, code, msg):
print(time.strftime('%H:%M:%S', time.localtime(time.time())), "连接已断开")

wsUrl = "ws://<服务器地址>/?token="
ws = websocket.WebSocketApp(wsUrl,
on_open=on_open,
on_data=on_message,
on_error=on_error,
on_close=on_close)
ws.run_forever()

参考链接:https://jvquant.com/wiki/行情/SDK/Python接入WebSocket行情.html
原文链接:https://blog.csdn.net/weixin_62178457/article/details/145145984

标签:示例,接入,error,level2,ws,time,message,数据,交易
From: https://www.cnblogs.com/itquanter/p/18671439

相关文章

  • 示例1
    letcurrentOption='pieOption';constmyChart=echarts.init(document.getElementById('main'));constdata=[{value:335,name:'直接访问'},{value:310,name:'邮件营销'},{value:234,name:'联盟广告'},{va......
  • swoole Task用法示例
    <?php$server=newSwoole\Server('127.0.0.1',9501);$server->set(['worker_num'=>2,//worker进程数'task_worker_num'=>2,//Taskworker进程数]);$server->on('receive',function($server,$fd,$......
  • web.config站内301永久重定向代码示例
    注:此代码只适用于IIS服务器,如需要将123.asp重定向到123.html,请使用以下代码。修改说明: 在web.config文件中添加301重定向规则,将123.asp重定向到123.html。<?xmlversion="1.0"encoding="UTF-8"?><configuration><system.webServer><rewrite>......
  • TensorFlow 示例
    以下是一些TensorFlow的代码示例,涵盖了不同的使用场景,包括基本的线性回归、简单的神经网络分类以及使用卷积神经网络进行图像分类等。1.线性回归示例这是一个使用TensorFlow实现线性回归的简单示例,用于拟合一条直线:y=Wx+bimporttensorflowastfimportnumpyas......
  • qiankun微前端——接入子应用Vue3+vite实现
    qiankun:乾坤微前端框架什么是微前端Techniques,strategiesandrecipesforbuildingamodernwebappwithmultipleteamsthatcanshipfeaturesindependently.–MicroFrontends微前端是一种多个团队通过独立发布功能的方式来共同构建现代化web应用的技术......
  • 中关村科金智能客服机器人:多渠道接入与全媒体整合的典范
    随着互联网技术的飞速发展,企业必须打破传统服务模式的局限,构建一个能够覆盖多种渠道、整合全媒体资源的智能客服系统,以满足客户在不同场景下的沟通需求。中关村科金智能客服机器人以其多渠道接入能力和全媒体整合功能,树立了行业内的典范,为企业与客户之间的高效沟通搭建了坚实的......
  • Vue2+OpenLayers调用WMTS服务初始化天地图示例
    目录一、案例截图二、安装OpenLayers库三、WMTS服务详解四、完整代码五、Gitee源码一、案例截图二、安装OpenLayers库npminstallol三、WMTS服务详解WMTS(WebMapTileService)是一种标准的网络地图服务协议,用于提供基于瓦片的地图数据。它允许客户端请求地图的具......
  • 百度云加速接入网站解析未生效的原因及解决方法
    针对您遇到的百度云加速接入网站解析未生效的问题,我们进行了详细排查,并提供了以下解决方案:DNS解析问题:我们已经为您修改为默认DNS设置。请确认是否已经生效。如果仍然无法解析,请检查本地DNS缓存是否已清除(可以通过命令行执行ipconfig/flushdns)。此外,确保您的域名解析记录正确......
  • 【经典JESD204B ADC采集示例】基于FPGA的JESD204B ADC数据采集驱动源码(以AD9689为例)
    一、基础信息Ad9689是双通道ADC,分辨率14bit,最高采样率2Gsps/2.6Gsps;采用JESD204Bsubclass1协议,共8lanes串行接口输出;框图如下:在不同采样率下,不同输入频点的SFDR和SNR典型值:内部有可编程FIR滤波器,4个DDC:每个DDC包含一个48bitNCO实现混频,以及可编程的抽取速率;如此可......
  • win32汇编环境,对话框程序中对按钮控件常用操作的示例
    ;运行效果;win32汇编环境,对话框程序中对按钮控件常用操作的示例;常用的操作,例如创建按钮控件,使其无效,改变文本,得到文本等。;将代码复制进radasm软件里,直接就可以编译运行。重点部分加备注。;以下为asm文件。;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&......