日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

什么是L2行情接口?

發布時間:2023/12/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是L2行情接口? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相信大家對股市都不陌生,甚至什么是L2,可能大家都略有了解,但是說到L2行情接口可能大家就會覺得一頭霧水,今日我們就來說說什么是L2行情接口,以及L2行情接口的優勢。

首先,L2就是level 2,Level-2產品是由上海證券交易所推出的實時行情信息收費服務,主要提供在上海證券交易所上市交易的證券產品的實時交易數據。包括level2十檔行情,買賣隊列,逐筆成交,委托總量和加權價格等多種新式數據。使用Level-2軟件的股民,在開盤時間內,可以隨時看到莊家、散戶買賣股票的情況。而L2行情接口就是指通過接口功能直接獲得行情數據,并利用數據進行股票交易策略。

L2行情接口有什么優勢?

回到正題,那到底L2行情接口有什么優勢呢?一般來講,L2行情接口其實是用于股票量化交易的工具之一,一般投資者最多只能看到10檔買賣行情,但是只有這么少的數據,我們是很難進行買賣決策的,必須拿到更多的數據才能做出比較準確的判斷,而L2行情接口就可以幫到我們了。換句話來說,L2行情接口就是為了幫助我們更好完成股票交易的一個工具。

說了這么多,相信大家對于L2行情接口多少也有了解了,如果再深入點說,L2行情接口還會根據不同的編程方式,適用的人群也不會一樣,如果大家有興趣,以后再跟大家詳細講解,今日就先說這么多,大家先好好消化一下吧。不懂的也可以找我聊聊

1.下載行情工具

https://gitee.com/l2gogogo/l2-push-python/tree/master/cli

2.目錄說明

名稱 說明

conf 配置目錄

data 數據目錄

log 日志目錄

txtool 命令行工具-Linux

txtool.exe 命令行工具-Windows

3.行情工具常用命令

命令 說明

txtool -h 查看幫助

txtool version 查看工具版本號

txtool proxy 啟動本地代理服務器。默認命令,Windows可直接雙擊執行

4.接入說明

1.下載行情工具,修改conf/proxy.toml

1.設置用戶名和密碼:User/Passwd

2.設置推送服務器地址:RpcServer/TcpServer

2.打開命令窗口,切換到cli目錄,執行命令啟動本地代理服務器

1.Linux系統執行:txtool proxy

2.Windows系統執行:txtool.exe proxy

3.如果提示本機端口已占用,可修改配置項Address(代理服務器監聽地址)

3.啟動成功,調用代理服務器提供的GRPC接口

1.接口地址見配置項Address,默認為:localhost:8090

2.接口定義,見目錄proto

4.代理服務器配置

1.proxy.toml 配置代理服務器監聽地址,是否將推送消息寫入本地文件等

2.log.toml 配置日志格式,是否寫入控制臺和文件等

Level2行情接口

l接口定義,見目錄proto

訂閱事件

get_subscription查詢訂閱

add_subscription新增訂閱

del_subscription取消訂閱

數據推送事件

tick_record_stream 推送逐筆成交行情數據

order_record_stream 推送逐筆委托行情數據

order_queue_record_stream推送委托隊列行情數據

stock_quote_record_stream 推送股票十檔行情行情數據

代碼示例

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

# 此Demo只是演示接入過程

import grpc

import entity_pb2

import proxy_pb2_grpc

import threading

from multiprocessing import Process

# 代理服務器監聽的地址和端口

ServerConnect = grpc.insecure_channel('localhost:5000')

Stub = proxy_pb2_grpc.ProxyStub(ServerConnect)

# 查詢訂閱

def get_subscription():

? ? # rep返回code為1代表成功,其余狀態碼可參考接入文檔,data是返回訂閱股票的情況

? ? Result = Stub.GetSubscription(entity_pb2.Void())

? ? print(Result)

# 新增訂閱

def add_subscription():

? ? # 實例ProtoBuf協議的方法

? ? String = entity_pb2.String()

? ? # 修改協議的值

? ? # 2:市場代碼標識(1為上海證券,2為深圳證券)

? ? # 000002:股票代碼

? ? # 15:訂閱全部標識(1為逐筆成交,2為逐筆委托,4為委托隊列,8為股票十檔行情,如果想全部訂閱可直接填入15,原理是1+2+4+8,如果想訂閱某幾個行情將幾個行情標識相加即可)

? ? String.value = '2_000002_15'

? ? # String.value = '2_000001_15,2_000002_5,2_000003_12,批量訂閱'

? ? # rep返回code為1代表成功,其余狀態碼可參考接入文檔

? ? Result = Stub.AddSubscription(String)

? ? print(Result)

# 取消訂閱

def del_subscription():

? ? # 實例ProtoBuf協議的方法

? ? String = entity_pb2.String()

? ? # 修改協議的值

? ? # 2:市場代碼標識(1為上海證券,2為深圳證券)

? ? # 000002:股票代碼

? ? # 15:取消全部標識(1為逐筆成交,2為逐筆委托,4為委托隊列,8為股票十檔行情,如果想全部取消可直接填入15,原理是1+2+4+8,如果想取消某幾個行情將幾個行情標識相加即可)

? ? String.value = '2_000002_15'

? ? # String.value = '2_000001_15,2_000002_5,2_000003_12,批量取消'

? ? # rep返回code為1代表成功,其余狀態碼可參考接入文檔

? ? Result = Stub.DelSubscription(String)

? ? print(Result)

# 推送逐筆成交行情數據

def tick_record_stream():

? ? StreamResult = Stub.NewTickRecordStream(entity_pb2.Void())

? ? # 用For循環就可以不斷消費數據

? ? for Result in StreamResult:

? ? ? ? print(Result)

# 推送逐筆委托行情數據

def order_record_stream():

? ? StreamResult = Stub.NewOrderRecordStream(entity_pb2.Void())

? ? # 用For循環就可以不斷消費數據

? ? for Result in StreamResult:

? ? ? ? print(Result)

# 推送委托隊列行情數據

def order_queue_record_stream():

? ? StreamResult = Stub.NewOrderQueueRecordStream(entity_pb2.Void())

? ? # 用For循環就可以不斷消費數據

? ? for Result in StreamResult:

? ? ? ? print(Result)

# 推送股票十檔行情行情數據

def stock_quote_record_stream():

? ? StreamResult = Stub.NewStockQuoteRecordStream(entity_pb2.Void())

? ? # 用For循環就可以不斷消費數據

? ? for Result in StreamResult:

? ? ? ? print(Result)

if __name__ == '__main__':

? ? # 可以使用多線程并發接收推送數據

? ? ThreadOne = threading.Thread(target=tick_record_stream)

? ? ThreadTwo = threading.Thread(target=order_record_stream)

? ? ThreadThree = threading.Thread(target=order_queue_record_stream)

? ? ThreadFour = threading.Thread(target=stock_quote_record_stream)

? ? # 多進程并發接收推送數據

? ? # ProcessOne = Process(target=tick_record_stream)

? ? # ProcessTwo = Process(target=order_record_stream)

? ? # ProcessThree = Process(target=order_queue_record_stream)

? ? # ProcessFour = Process(target=stock_quote_record_stream)

? ? # 這設置為隨主線程退出子線程,避免產生孤兒或僵尸線程

? ? ThreadOne.daemon = True

? ? ThreadTwo.daemon = True

? ? ThreadThree.daemon = True

? ? ThreadFour.daemon = True

? ? # ProcessOne.daemon = True

? ? # ProcessTwo.daemon = True

? ? # ProcessThree.daemon = True

? ? # ProcessFour.daemon = True

? ? # 有一點值得注意一下,假如訂閱的股票相對活躍,推送的數據就不會有休眠的狀態出現,因為Python的GIL鎖,所以用多線程接收推送效率不顯著,這個時候可以考慮用多進程來接收推送

? ? ThreadOne.start()

? ? ThreadTwo.start()

? ? ThreadThree.start()

? ? ThreadFour.start()

? ? # ProcessOne.start()

? ? # ProcessTwo.start()

? ? # ProcessThree.start()

? ? # ProcessFour.start()

? ? ThreadOne.join()

? ? ThreadTwo.join()

? ? ThreadThree.join()

? ? ThreadFour.join()

? ? # ProcessOne.join()

? ? # ProcessTwo.join()

? ? # ProcessThree.join()

? ? # ProcessFour.join()

總結

以上是生活随笔為你收集整理的什么是L2行情接口?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。