太神奇了,只需要7行代码,就能读取期货账户的全部持仓!
holdings = get_portfolio_book(0) # 持仓合约列表
# print(f'持仓列表:\n{holdings}')
for scode in holdings:
hold = get_portfolio(scode, 0, calc=False) # 得到合约的持仓对象
iDuoTotal, iKongTotal = hold.buy_quantity, hold.sell_quantity # 多空持仓手数
iDuoPrice, iKongPrice = hold.buy_avg_open_price, hold.sell_avg_open_price # 多空平均开仓成本
nBuyMargin, nSellMargin = round(hold.buy_margin, 2), round(hold.sell_margin, 2) # 多空保证金
nPnl = round(hold.pnl, 2) # 浮动盈亏
这段代码读取账户的所有持仓,并逐个读取多空手数、开仓均价、占用保证金和浮动盈亏,使用了金字塔的Python API中的get_portfolio_book函数获取持仓合约列表,get_portfolio函数获取指定合约的持仓信息,通过循环读取合约列表就能逐个获取到持仓信息了。