量化交易:websocket获取行情数据并加以利用

本文介绍如何通过websocket获取量化交易的行情数据,并利用这些数据在策略中。通过将websocket代码封装到单独类中,使用回调将行情数据放入队列,策略模块在独立线程中从队列获取数据,解决了复杂策略的数据获取问题。以火币的order_book 5档数据为例,展示了具体实现代码。
摘要由CSDN通过智能技术生成

量化交易:websocket获取行情数据并加以利用

上次只写了获取行情数据,这次继续完善如何简单利用获取的行情数据加入策略中。先说一下思路,websocket的相关代码写入单独一个py文件中的类里面,策略模块通过回调获取相关的行情数据并加以利用。但但但有个问题是,如果仅通过回调的话,策略模块只能一并写入到这个回调函数中,如果是简单策略,没有问题,但较复杂一些的策略,,,,请大家自己脑补吧。
所以引入了线程和队列来解决这个问题,回调得到的行情数据写入队列中,确切说是写入了栈中(先进后出),如此,单独线程运行的策略模块需要行情数据只需要从栈中get()就可以了。
直接上代码,火币的websocket不需要科学上网,所以方便调试,这里以order_book 5档数据示例。
1、py文件一:huobiwss.py

# -*- coding:utf-8 -*-


from websocket import WebSocketApp
'''websocket-client 0.5.7版本'''
from threading import Thread
import json
import zlib


class MARKETWEBSOCKET:

    def __init__(self,callback=None):
        super(MARKETWEBSOCKET, self).__init__()
        self.url = "wss://api.hadax.com/ws"
        self.ws = None
        self.result = None
        self.callback = callback
        # self.callback_fun = callback_fun


    def on_message(self, message):
        # print("回调on_message")
        msg = json.loads(zlib.decompress(message, 31))
        # print(msg)
        if 'ping' in msg:
            # print(msg)
            self.ws.send(json.dumps(
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值