操作功能前請先登入

詳細功能請參考API Reference/daccount

Open In Colab

保證金查詢

使用 daccount.get_margin 方法查詢指定帳號的保證金。這個方法需要兩個參數:帳號和幣別。

執行查詢後,會回傳一個 DMarginResponse 物件,其中包含查詢的結果。

如果 ok == True,表示查詢成功,回傳的保證金資料可以從 data 中取得,其欄位請參考 DMargin

## 保證金查詢範例
actno = '使用帳號'# 使用帳號
# 初始數據
reply_data = [['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
               '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']]
reply_dd = pd.DataFrame(reply_data)
reply_dd.columns = ['總筆數', '現在筆數', '網路序號', '公司別', '帳號', '帳務日期', '幣別', '匯率', '昨日權益數', '昨日餘額', '存提', '期貨平倉損益', '未沖銷期貨浮動損益', '選擇權平倉損益', '選擇權未平倉損益', '當日權利金支出收入', '成交手續費', '成交期交稅', '委託預扣權利金', '權益數', '委託預扣原始保證金', '原始保證金', '維持保證金',
                    '可動用(出金)保證金', '買方選擇權市值', '賣方選擇權市值', '權益總值', '原始比率', '維持比率', '清算比率', '台幣權益總值', '台幣原始比率', '台幣可動用(出金)保證金', '有價證券抵繳金額', '加收保證金', '風險指標', '資料更新日期', '資料更新時間', '有價證券評價價值', '到期履約損益', '交易總額度', '超額/追繳保證金', '資料來源類別', '夜盤收盤權益數', '夜盤風險指標', '夜盤權利總值', '夜盤原始保證金', '夜盤維持保證金']
#查詢保證金
query_reply_response = api.daccount.get_margin(actno, 'NTT')
if query_reply_response.ok == True:
    margin = query_reply_response.data
    new_row = {}
    new_row["總筆數"] = margin.total_count
    new_row["現在筆數"] = margin.current_count
    new_row["網路序號"] = margin.network_id
    new_row["公司別"] = margin.company
    new_row["帳號"] = margin.actno
    new_row["帳務日期"] = margin.account_date
    new_row["幣別"] = margin.currency
    new_row["匯率"] = margin.exrate
    new_row["昨日權益數"] = margin.lctdab
    new_row["昨日餘額"] = margin.ltdab
    new_row["存提"] = margin.dwamt
    new_row["期貨平倉損益"] = margin.osprtlos
    new_row["未沖銷期貨浮動損益"] = margin.prtlos
    new_row["選擇權平倉損益"] = margin.optosprtlos
    new_row["選擇權未平倉損益"] = margin.optprtlos
    new_row["當日權利金支出收入"] = margin.tpremium
    new_row["成交手續費"] = margin.orignfee
    new_row["成交期交稅"] = margin.ctaxamt
    new_row["委託預扣權利金"] = margin.ordpremium
    new_row["權益數"] = margin.ctdab
    new_row["委託預扣原始保證金"] = margin.ordiamt
    new_row["原始保證金"] = margin.iamt
    new_row["維持保證金"] = margin.mamt
    new_row["可動用(出金) 保證金"] = margin.ordcexcess
    new_row["買方選擇權市值"] = margin.bpremium
    new_row["賣方選擇權市值"] = margin.spremium
    new_row["權益總值"] = margin.optequity
    new_row["原始比率"] = margin.inirate
    new_row["維持比率"] = margin.matrate
    new_row["清算比率"] = margin.liquidation_ratio
    new_row["台幣權益總值"] = margin.twdoptequity
    new_row["台幣原始比率"] = margin.twdinirate
    new_row["台幣可動用(出金)保證金"] = margin.twdordexcess
    new_row["有價證券抵繳金額"] = margin.securities_payment_amount
    new_row["加收保證金"] = margin.tmp1prices
    new_row["風險指標"] = margin.optrate
    new_row["資料更新日期"] = margin.update_date
    new_row["資料更新時間"] = margin.update_time
    new_row["有價證券評價價值"] = margin.securities_valuation
    new_row["到期履約損益"] = margin.excerciseprice
    new_row["交易總額度"] = margin.transaction_total_quota
    new_row["超額/追繳保證金"] = margin.excess_margin
    new_row["資料來源類別"] = margin.data_source_type
    new_row["夜盤收盤權益數"] = margin.night_session_closing_ctdab
    new_row["夜盤風險指標"] = margin.night_session_optrate
    new_row["夜盤權利總值"] = margin.night_session_optequity
    new_row["夜盤原始保證金"] = margin.night_session_iamt
    new_row["夜盤維持保證金"] = margin.night_session_mamt
    reply_data[0]=new_row
    reply_dd = pd.DataFrame(reply_data)
else:
    print(query_reply_response.error)
clear_output(wait=True)
display(reply_dd)

未平倉查詢

使用 daccount.get_unliquidation 方法查詢指定帳號的未平倉。這個方法需要兩個參數:帳號和幣別。

執行查詢後,會回傳一個 DUnliquidationResponse 物件,其中包含查詢的結果。

如果 ok == True,表示查詢成功,回傳的未平倉資料可以從 data 中取得,其欄位請參考 DUnliquidation

# 未平倉查詢範例
actno = '使用帳號'# 使用帳號
# 初始數據
reply_data=[['','','','','','','','','','','','','','','','','','','','','','','','','','','','','','']]
dd = pd.DataFrame(reply_data)
dd.columns = ['現在筆數','網路序號','公司別','帳號','商品代碼','買賣別','留倉口數','成交均價','即時價','浮動損益','交易稅','手續費','淨損益','腳一商品類別','腳一商品年月','腳一履約價','腳一買賣權','腳一買賣別','腳一成交均價','腳二商品類別','腳二商品年月','腳二履約價','腳二買賣權','腳二買賣別','腳二成交均價','商品名稱','腳一商品','腳二商品','複式單策略名稱','資料來源類別']
#查詢未平倉
query_reply_response = api.daccount.get_unliquidation(actno, 'NTT')
if query_reply_response.ok == True:
    i=0
    for data in query_reply_response.data:  
        dd.loc[i,"現在筆數"]=data.current_count
        dd.loc[i,"網路序號"]=data.network_id
        dd.loc[i,"公司別"]=data.company
        dd.loc[i,"帳號"]=data.actno
        dd.loc[i,"商品代碼"]=data.productid
        dd.loc[i,"買賣別"]=data.bs
        dd.loc[i,"留倉口數"]=data.totalotqty
        dd.loc[i,"成交均價"]=data.avgmatchprice
        dd.loc[i,"即時價"]=data.realprice
        dd.loc[i,"浮動損益"]=data.reftotalpl
        dd.loc[i,"交易稅"]=data.ctaxamt
        dd.loc[i,"手續費"]=data.commission_fee
        dd.loc[i,"淨損益"]=data.net_profit_loss
        dd.loc[i,"腳一商品類別"]=data.leg1_product_category
        dd.loc[i,"腳一商品年月"]=data.leg1_product_date
        dd.loc[i,"腳一履約價"]=data.leg1_strike_price
        dd.loc[i,"腳一買賣權"]=data.leg1_call_put
        dd.loc[i,"腳一買賣別"]=data.leg1_buy_sell
        dd.loc[i,"腳一成交均價"]=data.leg1_average_price
        dd.loc[i,"腳二商品類別"]=data.leg2_product_category
        dd.loc[i,"腳二商品年月"]=data.leg2_product_date
        dd.loc[i,"腳二履約價"]=data.leg2_strike_price
        dd.loc[i,"腳二買賣權"]=data.leg2_call_put
        dd.loc[i,"腳二買賣別"]=data.leg2_buy_sell
        dd.loc[i,"腳二成交均價"]=data.leg2_average_price
        dd.loc[i,"商品名稱"]=data.product_name
        dd.loc[i,"腳一商品"]=data.leg1_productid
        dd.loc[i,"腳二商品"]=data.leg2_productid
        dd.loc[i,"複式單策略名稱"]=data.multiname
        dd.loc[i,"資料來源類別"]=data.data_source_type  
        i=i+1  
else:
    print(query_reply_response.error) 

clear_output(wait=True)
display(dd)

即時部位查詢

使用 daccount.get_position 方法查詢指定帳號的即時部位。這個方法需要兩個參數:帳號和幣別。

執行查詢後,會回傳一個 DPositionResponse 物件,其中包含查詢的結果。

如果 ok == True,表示查詢成功,回傳的即時部位資料可以從 data 中取得,其欄位請參考 DPosition

# 即時部位查詢範例
actno = '使用帳號'# 使用帳號
# 初始數據
reply_data=[['','','','','','','','','','','','','','','','','','','','','','','','','','','','','']]
dd = pd.DataFrame(reply_data)
dd.columns = ['現在筆數','網路序號','公司別','帳號','幣別','商品','月份','Call Put','履約價','前日買進留倉','前日賣出留倉','本日買進委託','本日賣出委託','本日買進成交','本日賣出成交','本日平倉','目前買進留倉','目前賣出留倉','組合買進餘額','組合賣出餘額','留倉買進平均成本','留倉賣出平均成本','買方原始保證金','賣方原始保證金','買方維持保證金','賣方維持保證金','商品基數','參考即時價','平倉損益']
#查詢即時部位
query_reply_response = api.daccount.get_position(actno, 'NTT')
if query_reply_response.ok == True:
    i=0
    for data in query_reply_response.data:  
        dd.loc[i,'現在筆數']=data.current_count 
        dd.loc[i,'網路序號']=data.network_id
        dd.loc[i,'公司別']=data.company 
        dd.loc[i,'帳號']=data.actno 
        dd.loc[i,'幣別']=data.currency
        dd.loc[i,'商品']=data.product
        dd.loc[i,'月份']=data.month
        dd.loc[i,'Call Put']=data.call_put
        dd.loc[i,'履約價']=data.strike_price 
        dd.loc[i,'前日買進留倉']=data.ot_qty_b 
        dd.loc[i,'前日賣出留倉']=data.ot_qty_s 
        dd.loc[i,'本日買進委託']=data.noworder_qty_b 
        dd.loc[i,'本日賣出委託']=data.noworder_qty_s 
        dd.loc[i,'本日買進成交']=data.nowmatch_qty_b 
        dd.loc[i,'本日賣出成交']=data.nowmatch_qty_s 
        dd.loc[i,'本日平倉']=data.today_close_position 
        dd.loc[i,'目前買進留倉']=data.current_buy_open_position 
        dd.loc[i,'目前賣出留倉']=data.current_sell_open_position 
        dd.loc[i,'組合買進餘額']=data.combined_buy_balance 
        dd.loc[i,'組合賣出餘額']=data.combined_sell_balance 
        dd.loc[i,'留倉買進平均成本']=data.open_buy_position_average_cost 
        dd.loc[i,'留倉賣出平均成本']=data.open_sell_position_average_cost 
        dd.loc[i,'買方原始保證金']=data.buyer_IAMT 
        dd.loc[i,'賣方原始保證金']=data.seller_IAMT 
        dd.loc[i,'買方維持保證金']=data.buyer_MAMT 
        dd.loc[i,'賣方維持保證金']=data.seller_MAMT 
        dd.loc[i,'商品基數']=data.product_base_number 
        dd.loc[i,'參考即時價']=data.reference_realPrice 
        dd.loc[i,'平倉損益']=data.close_position_pnl 
        i=i+1  
    clear_output(wait=True)
    display(dd)
else:
    print(query_reply_response.error)