操作功能前請先登入

詳細功能請參考API Reference/fquote

Open In Colab

下載範例

查詢成交價

透過fquote.query_tick_data_trade方法實作,帶入商品
回傳物件為FTickDataTradeResponse
ok為True表示查詢成功,data型別為FTickDataTrade
ok為False表示查詢失敗,error會呈現錯誤訊息

#查詢成交和最佳買賣價範例
#查詢最後成交價量
response = unitrade.fquote.query_tick_data_trade("CME", "NQ", "202509", "", "F"))
# FTickDataTradeResponse(ok=True, error='', data=FTickDataTrade(
# exchage='CME',//交易所
# symbol='NQ',//商品代號
# ym='202509',//年月
# cp='F',//CP
# strike='',//履約價
# display_denominator=1.0,//分母
# display_multiply=1.0,//倍率
# total=33017,//總量
# lastprice=21857.75,//成交價
# lastvolume=1,//成交量
# time='141835084'//成交時間
#))

查詢最佳買進報價

透過fquote.query_tick_data_bid方法實作,帶入商品
回傳物件為FTickDataBidResponse
ok為True表示查詢成功,data型別為FTickDataBid
ok為False表示查詢失敗,error會呈現錯誤訊息

response = unitrade.fquote.query_tick_data_bid("CME", "NQ", "202509", "", "F")  
# FTickDataBidResponse(ok=True, error='', data=FTickDataBid(
# exchage='CME',//交易所
# symbol='NQ',//商品代號
# ym='202509',//年月
# cp='F',//CP
# strike='',//履約價
# display_denominator=1.0,//分母
# display_multiply=1.0,//倍率
# BidDOM1Price=21846.5,//最佳買價1
# BidDOM1Volume=1,//最佳買量1
# BidDOM2Price=21846.25,//最佳買價2
# BidDOM2Volume=3,//最佳買量2 
# BidDOM3Price=21846.0,//最佳買價3 
# BidDOM3Volume=4,//最佳買量3
# BidDOM4Price=21845.75,//最佳買價4 
# BidDOM4Volume=1,//最佳買量4 
# BidDOM5Price=21845.5,//最佳買價5
# BidDOM5Volume=2,//最佳買量5
# BidDOM6Price=21845.25,//最佳買價6
# BidDOM6Volume=2,//最佳買量6 
# BidDOM7Price=21845.0,//最佳買價7
# BidDOM7Volume=5,//最佳買量7
# BidDOM8Price=21844.75,//最佳買價8 
# BidDOM8Volume=4,//最佳買量8 
# BidDOM9Price=21844.25,//最佳買價9
# BidDOM9Volume=5,//最佳買量9 
# BidDOM10Price=21844.0,//最佳買價10
# BidDOM10Volume=5//最佳買量10
#))  

查詢最佳賣出報價

透過fquote.query_tick_data_offer方法實作,帶入商品
回傳物件為FTickDataOfferResponse
ok為True表示查詢成功,data型別為FTickDataOffer
ok為False表示查詢失敗,error會呈現錯誤訊息

response = unitrade.fquote.query_tick_data_offer("CME", "NQ", "202509", "", "F")
# FTickDataOfferResponse(ok=True, error='', data=FTickDataOffer(
# exchage='CME',//交易所
# symbol='NQ',//商品代號 
# ym='202509',//年月
# cp='F',//CP
# strike='',//履約價
# display_denominator=1.0,//分母
# display_multiply=1.0,//倍率
# OfferDOM1Price=21844.0,//最佳賣價1
# OfferDOM1Volume=1,//最佳賣量1
# OfferDOM2Price=21844.25,//最佳賣價2 
# OfferDOM2Volume=2,//最佳賣量2
# OfferDOM3Price=21844.5,//最佳賣價3
# OfferDOM3Volume=3,//最佳賣量3 
# OfferDOM4Price=21844.75,//最佳賣價4
# OfferDOM4Volume=2,//最佳賣量4
# OfferDOM5Price=21845.0,//最佳賣價5
# OfferDOM5Volume=1,//最佳賣量5
# OfferDOM6Price=21845.25,//最佳賣價6
# OfferDOM6Volume=1,//最佳賣量6
# OfferDOM7Price=21845.5,//最佳賣價7
# OfferDOM7Volume=4,//最佳賣量7
# OfferDOM8Price=21845.75,//最佳賣價8 
# OfferDOM8Volume=1,//最佳賣量8 
# OfferDOM9Price=21846.0,//最佳賣價9
# OfferDOM9Volume=4,//最佳賣量9
# OfferDOM10Price=21846.25,//最佳賣價10
# OfferDOM10Volume=3//最佳賣量10
#))

隱含買賣價量

透過fquote.query_tick_data_implied方法實作,帶入商品
回傳物件為FTickDataImpliedResponse
ok為True表示查詢成功,data型別為FTickDataImplied
ok為False表示查詢失敗,error會呈現錯誤訊息

response = unitrade.fquote.query_tick_data_implied("CME", "NQ", "202509", "", "F")
# FTickDataImpliedResponse(ok=True, error='', data=FTickDataImplied(
# exchage='CME',//交易所
# symbol='NQ',//商品代號
# ym='202509',//年月
# cp='F',//CP
# strike='',//履約價
# display_denominator=1.0,//分母
# display_multiply=1.0,//倍率 
# ImpliedBidPrice=0.0,//隱含買價 
# ImpliedBidVolume=0,//隱含買量 
# ImpliedOfferPrice=0.0,//隱含賣價
# ImpliedOfferVolume=0//隱含賣量
#)

查詢開收盤價

透過fquote.query_tick_data_open_close方法實作,帶入商品
回傳物件為FTickDataOpencloseResponse
ok為True表示查詢成功,data型別為FTickDataOpenclose
ok為False表示查詢失敗,error會呈現錯誤訊息

response = unitrade.fquote.query_tick_data_open_close("CME", "NQ", "202509", "", "F")
# FTickDataOpencloseResponse(ok=True, error='', data=FTickDataOpenclose
# exchage='CME',//交易所
# symbol='NQ',//商品代號
# ym='202509',//年月
# cp='F',//CP
# strike='',//履約價
# display_denominator=1.0,//分母 
# display_multiply=1.0,//倍率 
# Opening=21956.75,//開盤價
# Closing=21842.75//收盤價
#))

查詢最高最低價

透過fquote.query_tick_data_high_low方法實作,帶入商品
回傳物件為FTickDataHighLowResponse
ok為True表示查詢成功,data型別為FTickDataHighLow
ok為False表示查詢失敗,error會呈現錯誤訊息

response = unitrade.fquote.query_tick_data_high_low("CME", "NQ", "202509", "", "F")
# FTickDataHighLowResponse(ok=True, error='', data=FTickDataHighLow(
# exchage='CME',//交易所
# symbol='NQ',//商品代號
# ym='202509',//年月
# cp='F',//CP
# strike='',//履約價
# display_denominator=1.0,//分母
# display_multiply=1.0,//倍率 
# High=21970.75,//最高價
# Low=21790.0//最低價
#))

查詢結算價

透過fquote.query_tick_data_settle方法實作,帶入商品
回傳物件為FTickDataSettleResponse
ok為True表示查詢成功,data型別為FTickDataSettle
ok為False表示查詢失敗,error會呈現錯誤訊息

response = unitrade.fquote.query_tick_data_settle("CME", "NQ", "202509", "", "F")
# FTickDataSettleResponse(ok=True, error='', data=FTickDataSettle(
# exchage='CME',//交易所
# symbol='NQ',//商品代號
# ym='202509',//年月
# cp='F',//CP
# strike='',//履約價
# display_denominator=1.0,//分母
# display_multiply=1.0,//倍率
# CurrStl=21945.25,//目前結算價
# NewStl=21945.25//最新結算價
#))

訂閱成交和最佳買賣價接收

fquote.on_tick_data_trade事件接收成交價量
fquote.on_tick_data_bid事件接收最佳買價
fquote.on_tick_data_offer事件接收最佳賣價
fquote.on_tick_data_implied事件接收隱含價
fquote.on_tick_data_high_low事件接收最高最低價
fquote.on_tick_data_open_close事件接收開收盤價
fquote.on_tick_data_settle事件接收結算價
fquote.subscribe方法可以註冊接收即時行情傳入商品

#訂閱接收事件
unitrade.fquote.on_tick_data_trade = on_tick_data_trade
unitrade.fquote.on_tick_data_bid = on_tick_data_bid  
unitrade.fquote.on_tick_data_offer = on_tick_data_offer  
unitrade.fquote.on_tick_data_implied = on_tick_data_implied  
unitrade.fquote.on_tick_data_high_low = on_tick_data_high_low  
unitrade.fquote.on_tick_data_open_close = on_tick_data_open_close
unitrade.fquote.on_tick_data_settle = on_tick_data_settle 
# 註冊報價
subok, msg = unitrade.fquote.subscribe("CME", "NQ", "202509", "", "F") 
#成交價量處理
def on_tick_data_trade(tickdatatrade: FTickDataTrade):
    print(tickdatatrade)
    # FTickDataTrade(
    # exchage='CME',//交易所
    # symbol='NQ',//商品代號
    # ym='202509',//年月
    # cp='F',//CP
    # strike='',//履約價
    # display_denominator=1.0,//分母
    # display_multiply=1.0,//倍率
    # total=33017,//總量
    # lastprice=21857.75,//成交價
    # lastvolume=1,//成交量
    # time='141835084'//成交時間
    #))
#最佳買價處理
def on_tick_data_bid(tickdatabid: FTickDataBid):
    print(tickdatabid)
    # FTickDataBid(
    # exchage='CME',//交易所
    # symbol='NQ',//商品代號
    # ym='202509',//年月
    # cp='F',//CP
    # strike='',//履約價
    # display_denominator=1.0,//分母
    # display_multiply=1.0,//倍率
    # BidDOM1Price=21846.5,//最佳買價1
    # BidDOM1Volume=1,//最佳買量1
    # BidDOM2Price=21846.25,//最佳買價2
    # BidDOM2Volume=3,//最佳買量2 
    # BidDOM3Price=21846.0,//最佳買價3 
    # BidDOM3Volume=4,//最佳買量3
    # BidDOM4Price=21845.75,//最佳買價4 
    # BidDOM4Volume=1,//最佳買量4 
    # BidDOM5Price=21845.5,//最佳買價5
    # BidDOM5Volume=2,//最佳買量5
    # BidDOM6Price=21845.25,//最佳買價6
    # BidDOM6Volume=2,//最佳買量6 
    # BidDOM7Price=21845.0,//最佳買價7
    # BidDOM7Volume=5,//最佳買量7
    # BidDOM8Price=21844.75,//最佳買價8 
    # BidDOM8Volume=4,//最佳買量8 
    # BidDOM9Price=21844.25,//最佳買價9
    # BidDOM9Volume=5,//最佳買量9 
    # BidDOM10Price=21844.0,//最佳買價10
    # BidDOM10Volume=5//最佳買量10
    #))  
#最佳賣價處理
def on_tick_data_offer(tickdataOffer: FTickDataOffer):
    # FTickDataOffer(
    # exchage='CME',//交易所
    # symbol='NQ',//商品代號 
    # ym='202509',//年月
    # cp='F',//CP
    # strike='',//履約價
    # display_denominator=1.0,//分母
    # display_multiply=1.0,//倍率
    # OfferDOM1Price=21844.0,//最佳賣價1
    # OfferDOM1Volume=1,//最佳賣量1
    # OfferDOM2Price=21844.25,//最佳賣價2 
    # OfferDOM2Volume=2,//最佳賣量2
    # OfferDOM3Price=21844.5,//最佳賣價3
    # OfferDOM3Volume=3,//最佳賣量3 
    # OfferDOM4Price=21844.75,//最佳賣價4
    # OfferDOM4Volume=2,//最佳賣量4
    # OfferDOM5Price=21845.0,//最佳賣價5
    # OfferDOM5Volume=1,//最佳賣量5
    # OfferDOM6Price=21845.25,//最佳賣價6
    # OfferDOM6Volume=1,//最佳賣量6
    # OfferDOM7Price=21845.5,//最佳賣價7
    # OfferDOM7Volume=4,//最佳賣量7
    # OfferDOM8Price=21845.75,//最佳賣價8 
    # OfferDOM8Volume=1,//最佳賣量8 
    # OfferDOM9Price=21846.0,//最佳賣價9
    # OfferDOM9Volume=4,//最佳賣量9
    # OfferDOM10Price=21846.25,//最佳賣價10
    # OfferDOM10Volume=3//最佳賣量10
    #)) 
#隱含買賣價接收處理
def on_tick_data_implied(ticksataimplied: FTickDataImplied):
    print(ticksataimplied)
    # FTickDataImplied(
    # exchage='CME',//交易所
    # symbol='NQ',//商品代號
    # ym='202509',//年月
    # cp='F',//CP
    # strike='',//履約價
    # display_denominator=1.0,//分母
    # display_multiply=1.0,//倍率 
    # ImpliedBidPrice=0.0,//隱含買價 
    # ImpliedBidVolume=0,//隱含買量 
    # ImpliedOfferPrice=0.0,//隱含賣價
    # ImpliedOfferVolume=0//隱含賣量
    #)

#最高最低價接收處理
def on_tick_data_high_low(tickdatahighlow: FTickDataHighLow):
    print(tickdatahighlow)
    # FTickDataHighLow(
    # exchage='CME',//交易所
    # symbol='NQ',//商品代號
    # ym='202509',//年月
    # cp='F',//CP
    # strike='',//履約價
    # display_denominator=1.0,//分母
    # display_multiply=1.0,//倍率 
    # High=21970.75,//最高價
    # Low=21790.0//最低價
    #))
#開收盤價接收處理
def on_tick_data_open_close(tickdataopenclose: FTickDataOpenclose):
    print(tickdataopenclose)
    # FTickDataOpenclose
    # exchage='CME',//交易所
    # symbol='NQ',//商品代號
    # ym='202509',//年月
    # cp='F',//CP
    # strike='',//履約價
    # display_denominator=1.0,//分母 
    # display_multiply=1.0,//倍率 
    # Opening=21956.75,//開盤價
    # Closing=21842.75//收盤價
    #))

#結算價接收處理
def on_tick_data_settle(tickdatasettle: FTickDataSettle):
    print(tickdatasettle)
    # FTickDataSettle(
    # exchage='CME',//交易所
    # symbol='NQ',//商品代號
    # ym='202509',//年月
    # cp='F',//CP
    # strike='',//履約價
    # display_denominator=1.0,//分母
    # display_multiply=1.0,//倍率
    # CurrStl=21945.25,//目前結算價
    # NewStl=21945.25//最新結算價
    #))

反註冊報價

fquote.unsubscribe方法可以反註冊停止接收即時行情,傳入商品代碼

#反註冊報價 
unsub_ok,msg=unitrade.fquote.unsubscribe("CME", "NQ", "202509", "", "F")
print(f'反註冊報價 {productid} {unsub_ok} {msg}')

查詢歷史K線行情(在V1.0.0.4版本開始提供)

透過fquote.get_history_bardata方法實作, 傳入參數:interval(D:日K、1K:分K). 起始日期.結束日期.商品種類.商品代碼. 取得K線數量

回傳物件為BarDataResponse

以下為查詢1分K範例

response = unitrade.fquote.get_history_bardata("1K", datetime(2025, 6, 10, 0, 0, 0), datetime(2025, 7, 7, 0, 0, 0), "1", "CMX", "GC", "202508", "F", "", 2)
# BarDataResponse(ok=True,
#  error='',
#  data=[BarData(productId='CMX|GC|202508|F|',
#  productkind=None,
#  date='20250626',
#  time='144500',
#  open=3350.3,
#  high=3351.1,
#  low=3350.2,
#  close=3350.6,
#  volume=169),
#  BarData(productId='CMX|GC|202508|F|',
#  productkind=None,
#  date='20250626',
#  time='144600',
#  open=3350.7,
#  high=3351.4,
#  low=3350.6,
#  close=3351.3,
#  volume=82)])