level2行情接口怎么用?
level2行情接口怎么用?在股票交易細節中,左第一列交易時間,一般15秒,第二列是交易價格,第三列是交易數量,如果是主動買入交易顯示紅色和向上箭頭,如果是主動賣出交易顯示綠色和向下箭頭,第四列是交易數量,即多少委托交易,通過交易數量和相應數量,可以大致估計交易參與者是否有機構,大或全是散戶投資者。
1、逐筆交易一般顯示的數據格式是在幾分鐘內以多少價格劃分多少手。
這里我們要注意的是,交易數量有時是小數點,這是因為股票買入的股票數量至少是100股,委托的股票數量也應該是100股的整數倍,但賣出沒有限制,所以交易數量會有小數點。另一點是,如果交易價格和手數沒有顯示在前面,一半是默認的。
2、分時成交一般顯示的數據格式為在幾分幾秒以多少價格成交了多少手。
這里需要注意的是成交手數永遠是整數,不會出現小數點數字。
3、一個孤獨的數字是缺乏意義的,但是一些連續的數字則是充滿想像的。
一般來說,交易數量越少,金額越大,這意味著交易相對較強,反之亦然。特別是當交易數量相對較大且集中時,表明有大量資金活躍的跡象,股票價格變動的可能性較大,應引起投資者的注意。如果沒有人買半天或一些小名單,至少在短期內不太可能成為好股票。
4、交易數據三維元素----數量、價格和筆數。
不陌生的是前兩個,筆數是交易批次。在一定數量的前提下,筆數少意味著交易強度強,反之亦然。筆數的變化與數量方向一致,交易正常,反之亦然。這些都可以在以后的操作中慢慢理解。為了提升自己的炒股經驗,初學者可以在前期用牛股寶模擬炒股,學習股票知識和操作技巧,未來股市的盈利有一定的幫助。
以下就是L2行情接口代碼,希望對你有所幫助。
Level2行情接口
訂閱事件
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()
總結
以上是生活随笔為你收集整理的level2行情接口怎么用?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Maven实战-许晓斌]-[第二章]-
- 下一篇: 病毒种类