操作功能前請先登入

詳細功能請參考API Reference/squote

Open In Colab

查詢行情
查詢最後普通股競價交易即時行情資訊

透過query_tick_data方法實作,帶入股票代碼

tickDataTradeResponse=api.squote.query_tick_data('2330')
if tickDataTradeResponse.ok == True: 
    
    tickdatatrade=tickDataTradeResponse.data
    cur = list(fig_match.data[0].cells.values)
    print(tickdatatrade)
    cur[col_match['成交時間']] = tickdatatrade.match_time
    cur[col_match['成交價']] = tickdatatrade.trade_price
    cur[col_match['成交量']] = tickdatatrade.trade_volume
    
    with fig_match.batch_update():
        fig_match.data[0].cells.values = cur
    display(fig_match)

    cur = list(fig_bs5.data[0].cells.values)
    cur[col_bs5['買價1']] = tickdatatrade.best_bid_price_1
    cur[col_bs5['買量1']] = tickdatatrade.best_bid_volume_1
    cur[col_bs5['買價2']] = tickdatatrade.best_bid_price_2
    cur[col_bs5['買量2']] = tickdatatrade.best_bid_volume_2
    cur[col_bs5['買價3']] = tickdatatrade.best_bid_price_3
    cur[col_bs5['買量3']] = tickdatatrade.best_bid_volume_3
    cur[col_bs5['買價4']] = tickdatatrade.best_bid_price_4
    cur[col_bs5['買量4']] = tickdatatrade.best_bid_volume_4
    cur[col_bs5['買價5']] = tickdatatrade.best_bid_price_5
    cur[col_bs5['買量5']] = tickdatatrade.best_bid_volume_5        

    cur[col_bs5['賣價1']] = tickdatatrade.best_ask_price_1
    cur[col_bs5['賣量1']] = tickdatatrade.best_ask_volume_1
    cur[col_bs5['賣價2']] = tickdatatrade.best_ask_price_2
    cur[col_bs5['賣量2']] = tickdatatrade.best_ask_volume_2
    cur[col_bs5['賣價3']] = tickdatatrade.best_ask_price_3
    cur[col_bs5['賣量3']] = tickdatatrade.best_ask_volume_3
    cur[col_bs5['賣價4']] = tickdatatrade.best_ask_price_4
    cur[col_bs5['賣量4']] = tickdatatrade.best_ask_volume_4
    cur[col_bs5['賣價5']] = tickdatatrade.best_ask_price_5
    cur[col_bs5['賣量5']] = tickdatatrade.best_ask_volume_5       
    with fig_bs5.batch_update():
        fig_bs5.data[0].cells.values = cur     
    display(fig_bs5)

else:
    print("錯誤訊息 "+tickDataTradeResponse.error)
查詢最後普通股競價交易開(收)盤價資料資訊

透過query_tick_data_open方法實作,帶入股票代碼

tickdataopenResponse=api.squote.query_tick_open_close('2330')
if tickdataopenResponse.ok == True:
    tickdataopen=tickdataopenResponse.data
    cur = list(fig_open.data[0].cells.values) 
    cur[col_open['開盤價格']] = tickdataopen.open_price 
    cur[col_open['最高成交價格']] = tickdataopen.high_price
    cur[col_open['最低成交價格']] = tickdataopen.low_price
    cur[col_open['最近成交價']] = tickdataopen.last_trade_price
    cur[col_open['累計成交量']] = tickdataopen.cumulative_volume
    cur[col_open['時間']] = tickdataopen.time 

    with fig_open.batch_update():
        fig_open.data[0].cells.values = cur
    display(fig_open)
else:
    print("錯誤訊息 "+tickdataopenResponse.error)
查詢普通個股基本資料

透過query_base_data方法實作,帶入股票代碼

baseDataResponse=api.squote.query_base_data('2330')
if baseDataResponse.ok == True:
    tickdatahighlow=baseDataResponse.data
    cur = list(fig_base.data[0].cells.values)  
    
    cur[col_base['股票代號']] = tickdatahighlow.stock_code
    cur[col_base['商品名稱']] = tickdatahighlow.product_name
    cur[col_base['產業別']] = tickdatahighlow.industry
    cur[col_base['證券別']] = tickdatahighlow.security_type
    cur[col_base['股票異常代碼']] = tickdatahighlow.stock_abnormal_code
    cur[col_base['參考價']] = tickdatahighlow.reference_price
    cur[col_base['漲停價']] = tickdatahighlow.upper_limit_price
    cur[col_base['跌停價']] = tickdatahighlow.lower_limit_price
    cur[col_base['非10元面額']] = tickdatahighlow.non_10_denomination
    cur[col_base['異常推介個股註記']] = tickdatahighlow.abnormal_recommendation_note
    cur[col_base['特殊異常證券註記']] = tickdatahighlow.special_abnormal_security_note
    cur[col_base['可現股當沖註記']] = tickdatahighlow.day_trading_note
    cur[col_base['豁免平盤下融券賣出註記']] = tickdatahighlow.exempt_short_selling_note
    cur[col_base['豁免平盤下借券賣出註記']] = tickdatahighlow.exempt_borrowing_short_selling_note
    cur[col_base['搓合循環秒數']] = tickdatahighlow.matching_cycle_seconds
    cur[col_base['外國股票識別碼']] = tickdatahighlow.foreign_stock_identifier
    cur[col_base['交易單位']] = tickdatahighlow.trading_unit
    cur[col_base['交易幣別代號']] = tickdatahighlow.trading_currency_code 
    with fig_base.batch_update():
        fig_base.data[0].cells.values = cur
    display(fig_base)
else:
    print("錯誤 "+baseDataResponse.error)


查詢最後OTC競價交易即時行情資訊

透過query_otc_tick_data方法實作,帶入股票代碼

tickDataTradeResponse=api.squote.query_otc_tick_data('5483')
if tickDataTradeResponse.ok == True: 
    tickdatatrade=tickDataTradeResponse.data
    cur = list(fig_match.data[0].cells.values)
    cur[col_match['成交時間']] = tickdatatrade.match_time
    cur[col_match['成交價']] = tickdatatrade.trade_price
    cur[col_match['成交量']] = tickdatatrade.trade_volume
    
    with fig_match.batch_update():
        fig_match.data[0].cells.values = cur
    display(fig_match)

    cur = list(fig_bs5.data[0].cells.values)
    cur[col_bs5['買價1']] = tickdatatrade.best_bid_price_1
    cur[col_bs5['買量1']] = tickdatatrade.best_bid_volume_1
    cur[col_bs5['買價2']] = tickdatatrade.best_bid_price_2
    cur[col_bs5['買量2']] = tickdatatrade.best_bid_volume_2
    cur[col_bs5['買價3']] = tickdatatrade.best_bid_price_3
    cur[col_bs5['買量3']] = tickdatatrade.best_bid_volume_3
    cur[col_bs5['買價4']] = tickdatatrade.best_bid_price_4
    cur[col_bs5['買量4']] = tickdatatrade.best_bid_volume_4
    cur[col_bs5['買價5']] = tickdatatrade.best_bid_price_5
    cur[col_bs5['買量5']] = tickdatatrade.best_bid_volume_5        

    cur[col_bs5['賣價1']] = tickdatatrade.best_ask_price_1
    cur[col_bs5['賣量1']] = tickdatatrade.best_ask_volume_1
    cur[col_bs5['賣價2']] = tickdatatrade.best_ask_price_2
    cur[col_bs5['賣量2']] = tickdatatrade.best_ask_volume_2
    cur[col_bs5['賣價3']] = tickdatatrade.best_ask_price_3
    cur[col_bs5['賣量3']] = tickdatatrade.best_ask_volume_3
    cur[col_bs5['賣價4']] = tickdatatrade.best_ask_price_4
    cur[col_bs5['賣量4']] = tickdatatrade.best_ask_volume_4
    cur[col_bs5['賣價5']] = tickdatatrade.best_ask_price_5
    cur[col_bs5['賣量5']] = tickdatatrade.best_ask_volume_5       
    with fig_bs5.batch_update():
        fig_bs5.data[0].cells.values = cur     
    display(fig_bs5)

else:
    print("錯誤訊息 "+tickDataTradeResponse.error)
查詢最後otc競價交易開(收)盤價資料資訊

透過query_otc_tick_data_open方法實作,帶入股票代碼

tickdataopenResponse=api.squote.query_otc_tick_open_close('5483')
if tickdataopenResponse.ok == True:
    tickdataopen=tickdataopenResponse.data
    cur = list(fig_open.data[0].cells.values) 
    cur[col_open['開盤價格']] = tickdataopen.open_price 
    cur[col_open['最高成交價格']] = tickdataopen.high_price
    cur[col_open['最低成交價格']] = tickdataopen.low_price
    cur[col_open['最近成交價']] = tickdataopen.last_trade_price
    cur[col_open['累計成交量']] = tickdataopen.cumulative_volume
    cur[col_open['時間']] = tickdataopen.time 

    with fig_open.batch_update():
        fig_open.data[0].cells.values = cur
    display(fig_open)
else:
    print("錯誤訊息 "+tickdataopenResponse.error)
查詢otc基本資料

透過query_otc_base_data方法實作,帶入股票代碼

baseDataResponse=api.squote.query_otc_base_data('5483')
if baseDataResponse.ok == True:
    tickdatahighlow=baseDataResponse.data
    cur = list(fig_base.data[0].cells.values) 
   
    cur[col_base['股票代號']] = tickdatahighlow.stock_code
    cur[col_base['商品名稱']] = tickdatahighlow.product_name
    cur[col_base['產業別']] = tickdatahighlow.industry
    cur[col_base['證券別']] = tickdatahighlow.security_type
    cur[col_base['股票異常代碼']] = tickdatahighlow.stock_abnormal_code
    cur[col_base['參考價']] = tickdatahighlow.reference_price
    cur[col_base['漲停價']] = tickdatahighlow.upper_limit_price
    cur[col_base['跌停價']] = tickdatahighlow.lower_limit_price
    cur[col_base['非10元面額']] = tickdatahighlow.non_10_denomination
    cur[col_base['異常推介個股註記']] = tickdatahighlow.abnormal_recommendation_note
    cur[col_base['特殊異常證券註記']] = tickdatahighlow.special_abnormal_security_note
    cur[col_base['可現股當沖註記']] = tickdatahighlow.day_trading_note
    cur[col_base['豁免平盤下融券賣出註記']] = tickdatahighlow.exempt_short_selling_note
    cur[col_base['豁免平盤下借券賣出註記']] = tickdatahighlow.exempt_borrowing_short_selling_note
    cur[col_base['搓合循環秒數']] = tickdatahighlow.matching_cycle_seconds 
    cur[col_base['交易單位']] = tickdatahighlow.trading_unit
    cur[col_base['交易幣別代號']] = tickdatahighlow.trading_currency_code 

    with fig_base.batch_update():
        fig_base.data[0].cells.values = cur
    display(fig_base)
else:
    print("錯誤 "+baseDataResponse.error)


查詢最後指數資料資訊

透過query_index_data方法實作,帶入指數代號 臺股指數 IX0001 臺灣50指數 TW50 臺灣中型100指數 TWMC 臺灣資訊科技指數 TWIT 臺灣發達指數 TWEI 臺灣高股息指數 TWDP 臺灣就業99指數 EMP99 臺灣公司治理100指數 CG100 寶島股價指數 FRMSA 臺灣高薪100指數 HC100 電子類兩倍槓桿指數 EDRL2 電子類反向指數 EDRIN 臺指日報酬兩倍指數 TTDRL2 臺指反向一倍指數 TTDRIN 小型股300指數 SC300 金融類日報酬兩倍指數 FDRL2 金融類日報酬反向一倍指數 FDRIN 漲升股利150指數 DVA150 漲升股利100指數 DVA100 藍籌30指數 BC30 工業菁英30指數 INE30 電子菁英30指數 ITE30 低波動精選30指數 LV30 低貝塔100指數 LB100 藍籌30反向一倍指數 BC30-1 中小型精選50指數 SMC50 中小型A級動能50指數 SAM50 臺灣永續指數 F4GTTE 股利150報酬指數 IR0091 電子菁英30報酬指數 IR0095 存股雙十等權重報酬指數 IR0112 特選大蘋果報酬指數 IR0113 中小型300報酬指數 IR0114 特股高息20報酬指數 IR0115 臺灣500報酬指數 IR0116 特選外資豐擁50報酬指數 IR0117 臺灣生技指數 IX0103 特選高息低波指數 IX0104 工業菁英30反向一倍指數 IX0106 特選內需高收益指數 IX0107 臺灣中小型公司治理指數 IX0108 臺灣IPO指數 IX0109 價值投資指數 IX0110 中小型300指數 IX0114 |

indexDataResponse=api.squote.query_index_data('IX0001')
if indexDataResponse.ok == True:
    indexdata=indexDataResponse.data
    cur = list(fig_idx.data[0].cells.values) 
   
    cur[col_idx['指數代號']] = indexdata.index_code 
    cur[col_idx['指數時間']] = indexdata.index_time 
    cur[col_idx['最新指數']] = indexdata.latest_index 
    with fig_idx.batch_update():
        fig_idx.data[0].cells.values = cur 

    display(fig_idx)
else:
    print("錯誤 "+indexDataResponse.error)


查詢最後櫃買指數資料資訊

透過query_otc_index_data方法實作,帶入指數代號 櫃買指數:IX0043 富櫃五十指數:GTSM50 指標公債指數:TWTBI 線上遊戲業指數:GAME 高殖利率指數:GTHD 勞工就業88指數:EMP88 櫃買薪酬指數:GTCI 櫃買公司治理指數:TPCGI 富櫃200報酬指數:IR0118 臺灣生技指數:IX0103 臺灣中小型公司治理指數:IX0108 臺灣IPO指數:IX0109 富櫃200指數:IX0118

indexDataResponse=api.squote.query_otc_index_data('IX0043')
if indexDataResponse.ok == True:
    indexdata=indexDataResponse.data
    cur = list(fig_idx.data[0].cells.values) 
   
    cur[col_idx['指數代號']] = indexdata.index_code 
    cur[col_idx['指數時間']] = indexdata.index_time 
    cur[col_idx['最新指數']] = indexdata.latest_index 
    with fig_idx.batch_update():
        fig_idx.data[0].cells.values = cur 

    display(fig_idx)
else:
    print("錯誤 "+indexDataResponse.error)


接收即時行情
*股票行情*
*註冊*
def on_tick_data(tickdatatrade: TickData):  
    if tickdatatrade.trade_volume>0 :
        cur = list(fig_match.data[0].cells.values)
        cur[col_match['成交時間']] = tickdatatrade.match_time
        cur[col_match['成交價']] = tickdatatrade.trade_price
        cur[col_match['成交量']] = tickdatatrade.trade_volume
        
        with fig_match.batch_update():
            fig_match.data[0].cells.values = cur  
    if tickdatatrade.best_bid_volume_1>0 :
        cur = list(fig_bs5.data[0].cells.values)
        cur[col_bs5['買價1']] = tickdatatrade.best_bid_price_1
        cur[col_bs5['買量1']] = tickdatatrade.best_bid_volume_1
        cur[col_bs5['買價2']] = tickdatatrade.best_bid_price_2
        cur[col_bs5['買量2']] = tickdatatrade.best_bid_volume_2
        cur[col_bs5['買價3']] = tickdatatrade.best_bid_price_3
        cur[col_bs5['買量3']] = tickdatatrade.best_bid_volume_3
        cur[col_bs5['買價4']] = tickdatatrade.best_bid_price_4
        cur[col_bs5['買量4']] = tickdatatrade.best_bid_volume_4
        cur[col_bs5['買價5']] = tickdatatrade.best_bid_price_5
        cur[col_bs5['買量5']] = tickdatatrade.best_bid_volume_5        

        cur[col_bs5['賣價1']] = tickdatatrade.best_ask_price_1
        cur[col_bs5['賣量1']] = tickdatatrade.best_ask_volume_1
        cur[col_bs5['賣價2']] = tickdatatrade.best_ask_price_2
        cur[col_bs5['賣量2']] = tickdatatrade.best_ask_volume_2
        cur[col_bs5['賣價3']] = tickdatatrade.best_ask_price_3
        cur[col_bs5['賣量3']] = tickdatatrade.best_ask_volume_3
        cur[col_bs5['賣價4']] = tickdatatrade.best_ask_price_4
        cur[col_bs5['賣量4']] = tickdatatrade.best_ask_volume_4
        cur[col_bs5['賣價5']] = tickdatatrade.best_ask_price_5
        cur[col_bs5['賣量5']] = tickdatatrade.best_ask_volume_5       
        with fig_bs5.batch_update():
            fig_bs5.data[0].cells.values = cur    

def on_base_data(basedata: BaseData):         
    cur = list(fig_base.data[0].cells.values) 
   
    cur[col_base['股票代號']] = tickdatahighlow.stock_code
    cur[col_base['商品名稱']] = tickdatahighlow.product_name
    cur[col_base['產業別']] = tickdatahighlow.industry
    cur[col_base['證券別']] = tickdatahighlow.security_type
    cur[col_base['股票異常代碼']] = tickdatahighlow.stock_abnormal_code
    cur[col_base['參考價']] = tickdatahighlow.reference_price
    cur[col_base['漲停價']] = tickdatahighlow.upper_limit_price
    cur[col_base['跌停價']] = tickdatahighlow.lower_limit_price
    cur[col_base['非10元面額']] = tickdatahighlow.non_10_denomination
    cur[col_base['異常推介個股註記']] = tickdatahighlow.abnormal_recommendation_note
    cur[col_base['特殊異常證券註記']] = tickdatahighlow.special_abnormal_security_note
    cur[col_base['可現股當沖註記']] = tickdatahighlow.day_trading_note
    cur[col_base['豁免平盤下融券賣出註記']] = tickdatahighlow.exempt_short_selling_note
    cur[col_base['豁免平盤下借券賣出註記']] = tickdatahighlow.exempt_borrowing_short_selling_note
    cur[col_base['搓合循環秒數']] = tickdatahighlow.matching_cycle_seconds 
    cur[col_base['交易單位']] = tickdatahighlow.trading_unit
    cur[col_base['交易幣別代號']] = tickdatahighlow.trading_currency_code 

    with fig_base.batch_update():
        fig_base.data[0].cells.values = cur
    
def on_tick_data_open_close(tickdataopen: TickDataOpenClose):
    cur = list(fig_open.data[0].cells.values) 
    cur[col_open['開盤價格']] = tickdataopen.open_price 
    cur[col_open['最高成交價格']] = tickdataopen.high_price
    cur[col_open['最低成交價格']] = tickdataopen.low_price
    cur[col_open['最近成交價']] = tickdataopen.last_trade_price
    cur[col_open['累計成交量']] = tickdataopen.cumulative_volume
    cur[col_open['時間']] = tickdataopen.time  
    with fig_open.batch_update():
        fig_open.data[0].cells.values = cur

#訂閱接收事件
api.squote.on_tick_data = on_tick_data 
api.squote.on_base_data = on_base_data 
api.squote.on_tick_data_open_close = on_tick_data_open_close 
subok,msg=api.squote.sub_stock('2330')
print(f'註冊結果 {subok} {msg}')
display(fig_match)
display(fig_bs5)
display(fig_base)
display(fig_open)  
反註冊
unsub_ok,msg=api.squote.unsub_stock('2330')
print(f'反註冊結果  {unsub_ok} {msg}')
*otc行情*
*註冊*
def on_otc_tick_data(tickdatatrade: TickData):  
    if tickdatatrade.trade_volume>0 :
        cur = list(fig_match.data[0].cells.values)
        cur[col_match['成交時間']] = tickdatatrade.match_time
        cur[col_match['成交價']] = tickdatatrade.trade_price
        cur[col_match['成交量']] = tickdatatrade.trade_volume
        
        with fig_match.batch_update():
            fig_match.data[0].cells.values = cur  
    if tickdatatrade.best_bid_volume_1>0 :
        cur = list(fig_bs5.data[0].cells.values)
        cur[col_bs5['買價1']] = tickdatatrade.best_bid_price_1
        cur[col_bs5['買量1']] = tickdatatrade.best_bid_volume_1
        cur[col_bs5['買價2']] = tickdatatrade.best_bid_price_2
        cur[col_bs5['買量2']] = tickdatatrade.best_bid_volume_2
        cur[col_bs5['買價3']] = tickdatatrade.best_bid_price_3
        cur[col_bs5['買量3']] = tickdatatrade.best_bid_volume_3
        cur[col_bs5['買價4']] = tickdatatrade.best_bid_price_4
        cur[col_bs5['買量4']] = tickdatatrade.best_bid_volume_4
        cur[col_bs5['買價5']] = tickdatatrade.best_bid_price_5
        cur[col_bs5['買量5']] = tickdatatrade.best_bid_volume_5        

        cur[col_bs5['賣價1']] = tickdatatrade.best_ask_price_1
        cur[col_bs5['賣量1']] = tickdatatrade.best_ask_volume_1
        cur[col_bs5['賣價2']] = tickdatatrade.best_ask_price_2
        cur[col_bs5['賣量2']] = tickdatatrade.best_ask_volume_2
        cur[col_bs5['賣價3']] = tickdatatrade.best_ask_price_3
        cur[col_bs5['賣量3']] = tickdatatrade.best_ask_volume_3
        cur[col_bs5['賣價4']] = tickdatatrade.best_ask_price_4
        cur[col_bs5['賣量4']] = tickdatatrade.best_ask_volume_4
        cur[col_bs5['賣價5']] = tickdatatrade.best_ask_price_5
        cur[col_bs5['賣量5']] = tickdatatrade.best_ask_volume_5       
        with fig_bs5.batch_update():
            fig_bs5.data[0].cells.values = cur    

def on_otc_base_data(basedata: OTCBaseData):         
    cur = list(fig_base.data[0].cells.values) 
   
    cur[col_base['股票代號']] = tickdatahighlow.stock_code
    cur[col_base['商品名稱']] = tickdatahighlow.product_name
    cur[col_base['產業別']] = tickdatahighlow.industry
    cur[col_base['證券別']] = tickdatahighlow.security_type
    cur[col_base['股票異常代碼']] = tickdatahighlow.stock_abnormal_code
    cur[col_base['參考價']] = tickdatahighlow.reference_price
    cur[col_base['漲停價']] = tickdatahighlow.upper_limit_price
    cur[col_base['跌停價']] = tickdatahighlow.lower_limit_price
    cur[col_base['非10元面額']] = tickdatahighlow.non_10_denomination
    cur[col_base['異常推介個股註記']] = tickdatahighlow.abnormal_recommendation_note
    cur[col_base['特殊異常證券註記']] = tickdatahighlow.special_abnormal_security_note
    cur[col_base['可現股當沖註記']] = tickdatahighlow.day_trading_note
    cur[col_base['豁免平盤下融券賣出註記']] = tickdatahighlow.exempt_short_selling_note
    cur[col_base['豁免平盤下借券賣出註記']] = tickdatahighlow.exempt_borrowing_short_selling_note
    cur[col_base['搓合循環秒數']] = tickdatahighlow.matching_cycle_seconds
    cur[col_base['外國股票識別碼']] = tickdatahighlow.foreign_stock_identifier
    cur[col_base['交易單位']] = tickdatahighlow.trading_unit
    cur[col_base['交易幣別代號']] = tickdatahighlow.trading_currency_code 

    with fig_base.batch_update():
        fig_base.data[0].cells.values = cur
    
def on_otc_tick_data_open_close(tickdataopen: TickDataOpenClose):
    cur = list(fig_open.data[0].cells.values) 
    cur[col_open['開盤價格']] = tickdataopen.open_price 
    cur[col_open['最高成交價格']] = tickdataopen.high_price
    cur[col_open['最低成交價格']] = tickdataopen.low_price
    cur[col_open['最近成交價']] = tickdataopen.last_trade_price
    cur[col_open['累計成交量']] = tickdataopen.cumulative_volume
    cur[col_open['時間']] = tickdataopen.time  
    with fig_open.batch_update():
        fig_open.data[0].cells.values = cur
      
#訂閱接收事件
api.squote.on_otc_tick_data = on_otc_tick_data
api.squote.on_otc_base_data = on_otc_base_data 
api.squote.on_otc_tick_data_open_close = on_otc_tick_data_open_close 
subok,msg=api.squote.sub_otc('5483')
print(f'註冊結果 {subok} {msg}')
display(fig_match)
display(fig_bs5)
display(fig_base)
display(fig_open)  
反註冊
unsub_ok,msg=api.squote.unsub_otc('5483')
print(f'反註冊結果  {unsub_ok} {msg}')
*指數行情*
*指數行情*
*註冊*

臺股指數 IX0001 臺灣50指數 TW50 臺灣中型100指數 TWMC 臺灣資訊科技指數 TWIT 臺灣發達指數 TWEI 臺灣高股息指數 TWDP 臺灣就業99指數 EMP99 臺灣公司治理100指數 CG100 寶島股價指數 FRMSA 臺灣高薪100指數 HC100 電子類兩倍槓桿指數 EDRL2 電子類反向指數 EDRIN 臺指日報酬兩倍指數 TTDRL2 臺指反向一倍指數 TTDRIN 小型股300指數 SC300 金融類日報酬兩倍指數 FDRL2 金融類日報酬反向一倍指數 FDRIN 漲升股利150指數 DVA150 漲升股利100指數 DVA100 藍籌30指數 BC30 工業菁英30指數 INE30 電子菁英30指數 ITE30 低波動精選30指數 LV30 低貝塔100指數 LB100 藍籌30反向一倍指數 BC30-1 中小型精選50指數 SMC50 中小型A級動能50指數 SAM50 臺灣永續指數 F4GTTE 股利150報酬指數 IR0091 電子菁英30報酬指數 IR0095 存股雙十等權重報酬指數 IR0112 特選大蘋果報酬指數 IR0113 中小型300報酬指數 IR0114 特股高息20報酬指數 IR0115 臺灣500報酬指數 IR0116 特選外資豐擁50報酬指數 IR0117 臺灣生技指數 IX0103 特選高息低波指數 IX0104 工業菁英30反向一倍指數 IX0106 特選內需高收益指數 IX0107 臺灣中小型公司治理指數 IX0108 臺灣IPO指數 IX0109 價值投資指數 IX0110 中小型300指數 IX0114 |

def on_index_data(indexdata: IndexData):  
    cur = list(fig_idx.data[0].cells.values)  
    cur[col_idx['指數代號']] = indexdata.index_code 
    cur[col_idx['指數時間']] = indexdata.index_time 
    cur[col_idx['最新指數']] = indexdata.latest_index 
    with fig_idx.batch_update():
        fig_idx.data[0].cells.values = cur 
 

#訂閱接收事件
api.squote.on_index_data = on_index_data 
subok,msg=api.squote.sub_index('IX0001')
print(f'註冊結果 {subok} {msg}')
display(fig_idx) 
反註冊
unsub_ok,msg=api.squote.unsub_index('IX0001')
print(f'反註冊結果  {unsub_ok} {msg}')
*OTC指數行情*
*註冊*

櫃買指數:IX0043 富櫃五十指數:GTSM50 指標公債指數:TWTBI 線上遊戲業指數:GAME 高殖利率指數:GTHD 勞工就業88指數:EMP88 櫃買薪酬指數:GTCI 櫃買公司治理指數:TPCGI 富櫃200報酬指數:IR0118 臺灣生技指數:IX0103 臺灣中小型公司治理指數:IX0108 臺灣IPO指數:IX0109 富櫃200指數:IX0118

def on_otc_index_data(indexdata: IndexData):  
    cur = list(fig_idx.data[0].cells.values)  
    cur[col_idx['指數代號']] = indexdata.index_code 
    cur[col_idx['指數時間']] = indexdata.index_time 
    cur[col_idx['最新指數']] = indexdata.latest_index 
    with fig_idx.batch_update():
        fig_idx.data[0].cells.values = cur 
 

#訂閱接收事件
api.squote.on_otc_index_data = on_otc_index_data 
subok,msg=api.squote.sub_otc_index('IX0043')
print(f'註冊結果 {subok} {msg}')
display(fig_idx) 
反註冊
unsub_ok,msg=api.squote.unsub_index('IX0043')
print(f'反註冊結果  {unsub_ok} {msg}')