Day11 - 如何查询目前期权帐户可用余额

今天的主题是如何查询目前期权帐户的可用余额,相关的官网教学可以点这个连结。因为我没有期权帐户,所以也没办法查询期权帐户余额,因此文章里面的程序码和ouput的内容都来自於官网的教学。

首先,当然,你要先登入帐户...

#实际帐户
import shioaji as sj
api = sj.Shioaji()
api.login(
    person_id="你的证券帐户",
    passwd="你的证券密码",
    contracts_cb=lambda security_type: print(f"{repr(security_type)} fetch done.")
)

要查询期权帐户的资讯,程序码如下:

account_margin = api.get_account_margin()
account_margin

程序执行结果如下:

AccountMargin(person_id='PERSON_ID' broker_id='BROKER_ID' account_id='ACC_ID' signed=SIGNED username='USERNAME')

而如果要把期权帐户资讯直接转成dataframe的话,程序码就这样写:

df_margin = pd.DataFrame(account_margin.data())
df_margin

这样你就可以看到期权帐户的所有资讯了。

OrderPSecurity ProfitAccCount FProfit FMissConProfit OMissConProfit ... Bapamt Sapamt Adps Adamt Ybaln
0 50000 50000 0 0 0 ... 0 0 0 0 50000

get_account_margin()这个function抓出来的资料很多,但最常看的应该还是OrderPSecurity(可动用保证金)和ProfitAccCount(权益总值)了。

除了查询帐户余额,我们也可以查询帐户的持有部位及损益,程序码列在下面供大家参考,详细的情形可以看Shioaji官网教学。

#查看持有部位
positions = api.get_account_openposition(query_type='1', account=api.futopt_account)
df_positions = pd.DataFrame(positions.data())
df_positions

结果如下:

Account Code CodeName ContractAverPrice Currency Date FlowProfitLoss MTAMT OTAMT OrderBS OrderNum OrderType RealPrice SettlePrice SettleProfitLoss StartSecurity UpKeepSecurity Volume paddingByte
0 FF0020009104000 TXFA9 台指期货 01 9508.41 NTD 00000000 4.7952e+06 6.438e+06 8.352e+06 B 9784 9784 4.7952e+06 8.352e+06 6.438e+06 87
#查看(已实现)损益
st_date = (date.today() - timedelta(days=60)).strftime('%Y%m%d')
settle_profitloss = api.get_account_settle_profitloss(summary='Y', start_date=st_date)
df_profitloss = pd.DataFrame(settle_profitloss.data())
df_profitloss

结果如下:

account averagePrice code codeName currency floatProfitLoss handCharge ord_bs ord_type ordno ordno_b settleAvgPrc settleDate settleVolume tFlag tdate tradeProfitLoss tradeTax unVolume volume
0 F0020009104000 9900 TXFK8 台指期货 11 NTD 460 60 S 00 kY002 kY003 9897 20181022 1 1 20181022 600 80 0 1

以上就是关於查询期权帐户余额的教学,下篇文章的主题是Short stock source。


<<:  用React刻自己的投资Dashboard Day11 - 分离UI元件与抓取数据元件

>>:  Alpine Linux Porting (一点五?)

[Day4] 实作 - 主角篇

首先先在plugins/底下创立一个档案叫做ActionBattle_Actor.js 接着用昨天的...

D16: 工程师太师了: 第8.5话

工程师太师了: 第8话 杂记: 额温枪就是侦测额头散发红外线推算体温的温度计。 任何物体在高於绝对零...

IT铁人第29天 Elasticsearch 使用python查询资料 Aggregations:Terms

今天的文章要介绍的是Bucket Aggregations的一种聚合方式,其实Metrics Agg...

Day27. 范例:Line群组通知(观察者模式)

本文同步更新於blog 情境:让我们用Line群组,来实作观察者模式 首先实作抽象的观察者类别 (...

What is Vuex?

今天要介绍的是Vuex 先来说说我们在什麽时候会比较需要用使用到Vuex呢?如果在做比较大型的专案时...