Hàm dữ liệu sổ lệnh

7. Dữ liệu chi tiết về các bước giá trong từng sổ lệnh tại thời gian thực

Mô tả cách sử dụng thư viện sau khi người dùng đã đăng nhập. Các ví dụ chi tiết được nêu ra ở cuối chương này.

event = client.BidAsk(tickers = tickers, callback = callback)

Tham số

Tên tham số
Mô tả
Kiểu dữ liệu
Bắt buộc

tickers

Tên mã , bao gồm mã chứng khoán, mã chỉ số, mã phái sinh và mã chứng quyền. Các mã này được viết in hoa.

list [str]

callback

Là hàm do người dùng tự định nghĩa để thao tác với dữ liệu.

function

Class nhận dữ liệu là BidAsk, có 2 phương thức sau:

Hàm callback

Là phương thức do người dùng tự định nghĩa để thao tác với dữ liệu, sẽ được truyền vào khi khởi tạo đối tượng nhận dữ liệu như là một đối số. Phương thức này sẽ có dạng như sau:

//pseudocode
//callback_function
def name_of_callback(data: BidAskData):
    //do something

event = client.BidAsk(tickers = ['ticker_1','ticker_2',,,'ticker_n'], callback = name_of_callback)
event.start()
# tickers can include ticker, coveredwarrant, index and derivative.
event = client.BidAsk(tickers = ['ticker_1','ticker_2',,,'ticker_n'], callback = name_of_callback)
evente.start()

BidAskData có các phương thức và thuộc tính sau:

Tên phương thức của object dữ liệu
Mô tả

to_dataFrame( )

Trả về tất cả các thuộc tính của dữ liệu thay vì một thuộc tính riêng lẻ, được lưu trữ dưới dạng một Pandas DataFrame.

Dữ liệu BidAskData có các thuộc tính:

Tên cột
Mô tả
Kiểu dữ liệu

ComGroupCode

Mã chỉ số.

str

StockType

Loại chứng khoán.

str

Ticker

Tên mã.

str

TradingDate

Thời gian.

str

Timestamp

Thời gian (làm tròn về giây).

str

Spread

Best1Ask - Best1Bid.

float

SpreadDelta

Spread tick hiện tại - Spread tick trước.

float

DepthImbalance

TotalBidVolume / (TotalBidVolume + TotalAskVolume).

float

TotalBuyTradeVolume

Tổng khối lượng giao dịch mua.

int

TotalSellTradeVolum

Tổng khối lượng giao dịch bán.

int

TotalBidVolume

Tổng khối lượng đặt mua.

int

TotalAskVolume

Tổng khối lượng đặt bán.

int

Best1Bid

Bước giá mua 1.

float

Best2Bid

Bước giá mua 2.

float

Best3Bid

Bước giá mua 3.

float

Best4Bid

Bước giá mua 4.

float

Best5Bid

Bước giá mua 5.

float

Best6Bid

Bước giá mua 6.

float

Best7Bid

Bước giá mua 7.

float

Best8Bid

Bước giá mua 8.

float

Best9Bid

Bước giá mua 9.

float

Best10Bid

Bước giá mua 10.

float

Best1Ask

Bước giá bán 1.

float

Best2Ask

Bước giá bán 2.

float

Best3Ask

Bước giá bán 3.

float

Best4Ask

Bước giá bán 4.

float

Best5Ask

Bước giá bán 5.

float

Best6Ask

Bước giá bán 6.

float

Best7Ask

Bước giá bán 7.

float

Best8Ask

Bước giá bán 8.

float

Best9Ask

Bước giá bán 9.

float

Best10Ask

Bước giá bán 10.

float

Best1BidVolume

Khối lượng đặt mua bước giá mua 1.

int

Best2BidVolume

Khối lượng đặt mua bước giá mua 2.

int

Best3BidVolume

Khối lượng đặt mua bước giá mua 3.

int

Best4BidVolume

Khối lượng đặt mua bước giá mua 4.

int

Best5BidVolume

Khối lượng đặt mua bước giá mua 5.

int

Best6BidVolume

Khối lượng đặt mua bước giá mua 6.

int

Best7BidVolume

Khối lượng đặt mua bước giá mua 7.

int

Best8BidVolume

Khối lượng đặt mua bước giá mua 8.

int

Best9BidVolume

Khối lượng đặt mua bước giá mua 9.

int

Best10BidVolume

Khối lượng đặt mua bước giá mua 10.

int

Best1AskVolume

Khối lượng đặt bán bước giá bán 1.

int

Best2AskVolume

Khối lượng đặt bán bước giá bán 2.

int

Best3AskVolume

Khối lượng đặt bán bước giá bán 3.

int

Best4AskVolume

Khối lượng đặt bán bước giá bán 4.

int

Best5AskVolume

Khối lượng đặt bán bước giá bán 5.

int

Best6AskVolume

Khối lượng đặt bán bước giá bán 6.

int

Best7AskVolume

Khối lượng đặt bán bước giá bán 7.

int

Best8AskVolume

Khối lượng đặt bán bước giá bán 8.

int

Best9AskVolume

Khối lượng đặt bán bước giá bán 9.

int

Best10AskVolume

Khối lượng đặt bán bước giá bán 10.

int

BidPriceDelta1

Chênh lệch bước giá mua 1 tick hiện tại với tick trước.

float

BidPriceDelta2

Chênh lệch bước giá mua 2 tick hiện tại với tick trước.

float

BidPriceDelta3

Chênh lệch bước giá mua 3 tick hiện tại với tick trước.

float

BidPriceDelta4

Chênh lệch bước giá mua 4 tick hiện tại với tick trước.

float

BidPriceDelta5

Chênh lệch bước giá mua 5 tick hiện tại với tick trước.

float

BidPriceDelta6

Chênh lệch bước giá mua 6 tick hiện tại với tick trước.

float

BidPriceDelta7

Chênh lệch bước giá mua 7 tick hiện tại với tick trước.

float

BidPriceDelta8

Chênh lệch bước giá mua 8 tick hiện tại với tick trước.

float

BidPriceDelta9

Chênh lệch bước giá mua 9 tick hiện tại với tick trước.

float

BidPriceDelta10

Chênh lệch bước giá mua 10 tick hiện tại với tick trước.

float

AskPriceDelta1

Chênh lệch bước giá bán 1 tick hiện tại với tick trước.

float

AskPriceDelta2

Chênh lệch bước giá bán 2 tick hiện tại với tick trước.

float

AskPriceDelta3

Chênh lệch bước giá bán 3 tick hiện tại với tick trước.

float

AskPriceDelta4

Chênh lệch bước giá bán 4 tick hiện tại với tick trước.

float

AskPriceDelta5

Chênh lệch bước giá bán 5 tick hiện tại với tick trước.

float

AskPriceDelta6

Chênh lệch bước giá bán 6 tick hiện tại với tick trước.

float

AskPriceDelta7

Chênh lệch bước giá bán 7 tick hiện tại với tick trước.

float

AskPriceDelta8

Chênh lệch bước giá bán 8 tick hiện tại với tick trước.

float

AskPriceDelta9

Chênh lệch bước giá bán 9 tick hiện tại với tick trước.

float

AskPriceDelta10

Chênh lệch bước giá bán 10 tick hiện tại với tick trước.

float

BidVolumeDelta1

Chênh lệch khối lượng bước giá mua 1 tick hiện tại với tick trước.

int

BidVolumeDelta2

Chênh lệch khối lượng bước giá mua 2 tick hiện tại với tick trước.

int

BidVolumeDelta3

Chênh lệch khối lượng bước giá mua 3 tick hiện tại với tick trước.

int

BidVolumeDelta4

Chênh lệch khối lượng bước giá mua 4 tick hiện tại với tick trước.

int

BidVolumeDelta5

Chênh lệch khối lượng bước giá mua 5 tick hiện tại với tick trước.

int

BidVolumeDelta6

Chênh lệch khối lượng bước giá mua 6 tick hiện tại với tick trước.

int

BidVolumeDelta7

Chênh lệch khối lượng bước giá mua 7 tick hiện tại với tick trước.

int

BidVolumeDelta8

Chênh lệch khối lượng bước giá mua 8 tick hiện tại với tick trước.

int

BidVolumeDelta9

Chênh lệch khối lượng bước giá mua 9 tick hiện tại với tick trước.

int

BidVolumeDelta10

Chênh lệch khối lượng bước giá mua 10 tick hiện tại với tick trước.

int

AskVolumeDelta1

Chênh lệch khối lượng bước giá bán 1 tick hiện tại với tick trước.

int

AskVolumeDelta2

Chênh lệch khối lượng bước giá bán 2 tick hiện tại với tick trước.

int

AskVolumeDelta3

Chênh lệch khối lượng bước giá bán 3 tick hiện tại với tick trước.

int

AskVolumeDelta4

Chênh lệch khối lượng bước giá bán 4 tick hiện tại với tick trước.

int

AskVolumeDelta5

Chênh lệch khối lượng bước giá bán 5 tick hiện tại với tick trước.

int

AskVolumeDelta6

Chênh lệch khối lượng bước giá bán 6 tick hiện tại với tick trước.

int

AskVolumeDelta7

Chênh lệch khối lượng bước giá bán 7 tick hiện tại với tick trước.

int

AskVolumeDelta8

Chênh lệch khối lượng bước giá bán 8 tick hiện tại với tick trước.

int

AskVolumeDelta9

Chênh lệch khối lượng bước giá bán 9 tick hiện tại với tick trước.

int

AskVolumeDelta10

Chênh lệch khối lượng bước giá bán 10 tick hiện tại với tick trước.

int

VWAPBid

Mức giá trung bình mà người mua sẵn sàng trả.

float

VWAPAsk

Mức giá trung bình mà người bán sẵn sàng chấp nhận.

float

VWAPBidSpread

Hiệu số giữa giá mua tốt nhất (Best1Bid) và VWAP Bid.

float

VWAPAskSpread

Hiệu số giữa VWAP Ask và giá bán tốt nhất (Best1Ask).

float

VWAPBidAskSpread

Chênh lệch giữa VWAP Ask và VWAP Bid.

float

OrderFlowImbalance

VWAPBidSpread/ (VWAPBidSpread + VWAPAskSpread).

float

Ví dụ về dữ liệu sổ lệnh (BidAskData):

import FiinQuantX as fq
from FiinQuantX import BidAskData
import pandas as pd
import time

client = fq.FiinSession(
    username='Enter your username',
    password='Enter your password'
)
client.login()

tickers = ['HPG','VNINDEX','VN30F1M']

def onTickerEvent(data: RealTimeData):
    print('----------------')
    print(data.to_dataFrame())
    # data.to_dataFrame().to_csv('callback.csv', mode='a', header=True)
Events = client.BidAsk(tickers=tickers, callback = onTickerEvent)
Events.start()

try:
    while not Events._stop: 
        time.sleep(1)
except KeyboardInterrupt:
    print("KeyboardInterrupt received, stopping...")
    Events.stop()

Last updated