Day 17 - 取得帐务相关资讯 (下)

官方说明文件:https://sinotrade.github.io/tutor/accounting/account_portfolio/
本篇的功能基本跟上一篇一样,只是执行的function不同
因为目前还想不到要写什麽主题,所以就先测试看看这份文件上的function跟前一篇的有什麽不同
请注意,此篇说明的function,在之後版本可能会被拿掉。

api.get_account_margin

api.get_account_margin,取得期货帐户权益

account_margin = api.get_account_margin() #取得期货帐户权益资讯
df_margin = pd.DataFrame(account_margin.data()) #透过data()取得资料,并转换为DataFrame
print(df_margin)

执行後,会取得shioaji.backend.http.account.AccountMargin的物件,要取得资料就要先透过data(),执行後会回传一个list,list里面是一个存放帐户权益资讯的dict。由於里头的属性很多,这里就不多加说明,有兴趣的人,可以参考以下的范例:

account_margin = api.get_account_margin() #取得期货帐户权益资讯
data = account_margin.data() #取得帐户list
account_margin.data()[0]['Equity'] #取得帐户权益数内容

前面说到,这个fuction在之後版本可能会被拿掉。若要取得期货帐户权益资讯,也可以直接使用api.AccountMargin取得。

api.get_account_openposition

api.get_account_openposition,取得未平仓部位,参数说明如下:

get_account_openposition(
    product_type="0", #商品类型
    query_type="0", #查询类型
    account={} #查询帐户,若没有指定,会
    )

程序范例如下:

positions = api.get_account_openposition(query_type='1', account=api.futopt_account)
df_positions = pd.DataFrame(positions.data())
print(df_positions)

api.get_account_settle_profitloss

api.get_account_settle_profitloss,取得平仓损益,参数说明如下:

api.get_account_settle_profitloss(
        product_type="0", #商品类型,预设为0全部
        summary="Y", #是否为汇总资料
        start_date="", #起始日期
        end_date="", #结束日期
        currency="", #币别
        account={}, #交易帐户
    )

请注意,这里的日期格式为%Y%m%d,跟之前所传入的日期格式不同。程序范例如下:

settle_profitloss = api.get_account_settle_profitloss(start_date='20210601', end_date='20210930')
df_settle_profitloss = pd.DataFrame(settle_profitloss.data())
print(df_settle_profitloss)

api.get_stock_account_funds

api.get_stock_account_funds,取得股票帐户资讯,内容包含已实现损益、未实现损并及交割资讯(T+0~T+2),参数说明如下:

api.get_stock_account_funds(
    include_tax=' ', #是否包含交易税
    account: shioaji.account.StockAccount = None, #交易帐户
)

程序范例如下:

stock_account_funds = api.get_stock_account_funds()
df_stock_account_funds = pd.DataFrame(stock_account_funds.data())
print(df_stock_account_funds)

api.get_stock_account_real_profitloss

api.get_stock_account_real_profitloss,取得帐户已实现损益,参数说明如下:

api.get_stock_account_real_profitloss(
        stock_type="A", #股票类型
        start_date="", #起始日期,必填
        end_date="", #结束日期,必填
        currency="A", #币别
        filter_rule=" ", #筛选条件
        account=None, #交易帐户
    )

程序范例如下:

real_profitloss = api.get_stock_account_real_profitloss(start_date='20210601', end_date='20210930')
df_real_summary = pd.DataFrame(real_profitloss.data()['summary'])
df_real_detail = pd.DataFrame(real_profitloss.data()['detail'])
print(df_real_summary)
print(df_real_detail)

api.get_stock_account_unreal_profitloss

api.get_stock_account_unreal_profitloss,取得帐户未实现损益,参数说明如下:

api.get_stock_account_unreal_profitloss(
    stock_type='A', #股票类型
    currency='A', #币别
    filter_rule=' ', #筛选条件
    account=None, #交易帐户
)

程序范例如下:

unreal_profitloss = api.get_stock_account_unreal_profitloss()
df_unreal_summary = pd.DataFrame(unreal_profitloss.data()['summary'])
df_unreal_detail = pd.DataFrame(unreal_profitloss.data()['detail'])
print(df_unreal_summary)
print(df_unreal_detail)

<<:  [Day17] TS:理解 Pick、Record 的实作

>>:  Day17 Redis应用实战-GEO/HyperLogLog/Transaction操作

[想试试看JavaScript ] 流程控制 if...else

流程控制 if..else if...else 可以办到到的是,「当符合条件,就自动执行程序」,语法...

B+树索引实战篇-Part1(索引的代价、扫描区间与边界条件)

前文非常详细的说明了Innodb储存引擎的B+树索引,我们必须熟悉下面这些观念。 每个索引都对应一棵...

当心已死前,来看看这篇吧!

撰写这篇时,其实心情已经平复了不少 从 2014 年加入新创团队至今也超过七年了,过程中从未有过长假...

5. 如何在快速发展的公司中生存

前言 这篇文章比较是条列式的列出讲者在slack快速发展中学到的几件事情,适合给快速成长的公司中的...

[DAY27]将Line讯息存入资料库(01)

再来就是我们要利用Line来记录我们的资料了,以下程序码我放在一个新增程序档 import psyc...