操作功能前請先登入

詳細功能請參考 API Reference/faccount

Open In Colab

保證金查詢

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

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

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

# 保證金查詢範例
actno = '使用帳號'# 使用帳號
# 初始數據
reply_data = [['','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','']]
dd = pd.DataFrame(reply_data)
dd.columns = ['幣別','前日帳款餘額','手續費','匯率','期交稅','存提金額','平倉損益','未平倉損益','買方選擇權市值','賣方選擇權市值','下單預扣權利金','當日權利金收支','淨值','原始保證金','維持保證金','可用餘額','下單可用保證金','當日委託保證金','履約損益','變動權利金','洗價時間','追繳金額','昨日未平倉損益','今日盤中浮動損益','賣方垂直價差市值','履約價款','今日餘額','帳戶總市值','足額原始保證金','總市值風險','風險係數','維持率','公司別','帳號','組別','交易員']
#查詢保證金
query_reply_response = api.faccount.get_margin(actno)
if query_reply_response.ok == True:
    i=0
    for data in query_reply_response.data:   
        dd.loc[i,'幣別']=data.currency
        dd.loc[i,'前日帳款餘額']=data.previous_day_balance
        dd.loc[i,'手續費']=data.commission
        dd.loc[i,'匯率']=data.exchange_rate
        dd.loc[i,'期交稅']=data.futures_tax
        dd.loc[i,'存提金額']=data.deposit_withdrawal_amount
        dd.loc[i,'平倉損益']=data.close_pnl
        dd.loc[i,'未平倉損益']=data.unrealized_pnl
        dd.loc[i,'買方選擇權市值']=data.buy_option_market_value
        dd.loc[i,'賣方選擇權市值']=data.sell_option_market_value
        dd.loc[i,'下單預扣權利金']=data.order_withholding_premium
        dd.loc[i,'當日權利金收支']=data.today_premium_income_expense
        dd.loc[i,'淨值']=data.net_value
        dd.loc[i,'原始保證金']=data.original_margin
        dd.loc[i,'維持保證金']=data.maintenance_margin
        dd.loc[i,'可用餘額']=data.available_balance
        dd.loc[i,'下單可用保證金']=data.order_available_margin
        dd.loc[i,'當日委託保證金']=data.today_order_margin
        dd.loc[i,'履約損益']=data.performance_pnl
        dd.loc[i,'變動權利金']=data.variable_premium
        dd.loc[i,'洗價時間']=data.marking_time
        dd.loc[i,'追繳金額']=data.additional_payment
        dd.loc[i,'昨日未平倉損益']=data.yesterday_unrealized_pnl
        dd.loc[i,'今日盤中浮動損益']=data.today_intraday_unrealized_pnl
        dd.loc[i,'賣方垂直價差市值']=data.sell_vertical_spread_market_value
        dd.loc[i,'履約價款']=data.strike_payment
        dd.loc[i,'今日餘額']=data.today_balance
        dd.loc[i,'帳戶總市值']=data.account_total_market_value
        dd.loc[i,'足額原始保證金']=data.full_original_margin
        dd.loc[i,'總市值風險']=data.total_market_value_risk
        dd.loc[i,'風險係數']=data.risk_coefficient
        dd.loc[i,'維持率']=data.maintenance_rate
        dd.loc[i,'公司別']=data.company_type
        dd.loc[i,'帳號']=data.account
        dd.loc[i,'組別']=data.group
        dd.loc[i,'交易員 ']=data.trader 
        i=i+1 
    clear_output(wait=True)
    display(dd)
else:
    print(query_reply_response.error)

未平倉查詢

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

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

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

actno = '使用帳號'# 使用帳號
# 初始數據
reply_data=[[ '','','','','','','','','','','','','','','','','','','','','','','','','']]
dd = pd.DataFrame(reply_data)
dd.columns = [ '客戶帳號', '交易所', '買賣別1', '交易種類1', '商品代號1', '商品年月1', '履約價1', '買賣權1', '未平倉量1', '結算價1', '及時價1', '未平倉損益1', '原始保證金1', '維持保證金1', '幣別1', '成交價1', '上手代號', '未平倉損益-約當台幣1', '手續費1', '營業稅1', '淨未平倉損益1', '淨未平倉損益-約當台幣1', '簡稱', '後台Pricebase', '顯示pricebase']
#查詢未平倉
query_reply_response = api.faccount.get_unliquidation(actno)
if query_reply_response.ok == True:
    i=0
    for data in query_reply_response.data:   
        dd.loc[i,'客戶帳號']= data.client_account
        dd.loc[i,'交易所']= data.exchange
        dd.loc[i,'買賣別1']= data.buy_sell_type_1
        dd.loc[i,'交易種類1']= data.trade_type_1
        dd.loc[i,'商品代號1']= data.product_code_1
        dd.loc[i,'商品年月1']= data.product_year_month_1
        dd.loc[i,'履約價1']= data.strike_price_1
        dd.loc[i,'買賣權1']= data.buy_sell_option_1
        dd.loc[i,'未平倉量1']= data.open_interest_1
        dd.loc[i,'結算價1']= data.settlement_price_1
        dd.loc[i,'及時價1']= data.spot_price_1
        dd.loc[i,'未平倉損益1']= data.unrealized_pnl_1
        dd.loc[i,'原始保證金1']= data.initial_margin_1
        dd.loc[i,'維持保證金1']= data.maintenance_margin_1
        dd.loc[i,'幣別1']= data.currency_1
        dd.loc[i,'成交價1']= data.deal_price_1
        dd.loc[i,'上手代號']= data.broker_code
        dd.loc[i,'未平倉損益-約當台幣1']= data.unrealized_pnl_ntd_1
        dd.loc[i,'手續費1']= data.commission_1
        dd.loc[i,'營業稅1']= data.business_tax_1
        dd.loc[i,'淨未平倉損益1']= data.net_open_interest_pnl_1
        dd.loc[i,'淨未平倉損益-約當台幣1']= data.net_open_interest_pnl_ntd_1 
        dd.loc[i,'簡稱']= data.abbreviation
        dd.loc[i,'後台Pricebase']= data.backend_pricebase
        dd.loc[i,'顯示pricebase']= data.display_pricebase
        i=i+1  
    clear_output(wait=True)
    display(dd)
else:
    print(query_reply_response.error) 



即時部位查詢

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

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

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

actno = '使用帳號'# 使用帳號
# 初始數據
reply_data=[[  '','','','','','','','','','','','','','','','','','','','','','','','']]
dd = pd.DataFrame(reply_data)
dd.columns = [  '客戶帳號','交易所','交易種類','商品代號','商品年月','履約價','買賣權','淨買','淨賣','買方留倉','賣方留倉','買方成交','賣方成交','買方委託','賣方委託','交割日期','幣別','成交均價','即時價','未平倉損益','平倉口數','平倉損益','簡稱','Pricebase']
#查詢即時部位
query_reply_response = api.faccount.get_position(actno, 'NTT')
if query_reply_response.ok == True:
    i=0
    for data in query_reply_response.data:    
        dd.loc[i,'客戶帳號']= data.client_account
        dd.loc[i,'交易所']= data.exchange
        dd.loc[i,'交易種類']= data.trade_type
        dd.loc[i,'商品代號']= data.product_code
        dd.loc[i,'商品年月']= data.product_year_month
        dd.loc[i,'履約價']= data.strike_price
        dd.loc[i,'買賣權']= data.buy_sell_option
        dd.loc[i,'淨買']= data.net_buy
        dd.loc[i,'淨賣']= data.net_sell
        dd.loc[i,'買方留倉']= data.buyer_position
        dd.loc[i,'賣方留倉']= data.seller_position
        dd.loc[i,'買方成交']= data.buyer_transaction
        dd.loc[i,'賣方成交']= data.seller_transaction
        dd.loc[i,'買方委託']= data.buyer_order
        dd.loc[i,'賣方委託']= data.seller_order
        dd.loc[i,'交割日期']= data.delivery_date
        dd.loc[i,'幣別']= data.currency
        dd.loc[i,'成交均價']= data.average_deal_price
        dd.loc[i,'即時價']= data.instant_price
        dd.loc[i,'未平倉損益']= data.unrealized_pnl
        dd.loc[i,'平倉口數']= data.close_volume
        dd.loc[i,'平倉損益']= data.close_pnl 
        dd.loc[i,'簡稱']= data.abbreviation
        dd.loc[i,'Pricebase']= data.price_base 
        i=i+1  
    clear_output(wait=True)
    display(dd)
else:
    print(query_reply_response.error)