獲取qmt賬號的資金賬號后,我們進入下一步,如何獲得當前賬號的持倉情況
還是之前的步驟,打開qmt,選擇獨立交易,
之后使用pycharm,編寫py文件。
from xtquant import xtdata
from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback
from xtquant.xttype import StockAccount
import time, datetime, traceback, sys
import pandas as pd
連接miniqmt系統:
path = r'C:\國金QMT交易端模擬\userdata_mini'
# QMT賬號
account = '55003243'
# 取賬號信息
session_id = int(time.time())
xt_trader = XtQuantTrader(path, session_id)
acc = StockAccount(account, 'STOCK')
# 啟動交易線程
xt_trader.start()
# 建立交易連接,返回0表示連接成功
connect_result = xt_trader.connect()
print('建立交易連接,返回0表示連接成功', connect_result)
# 對交易回調進行訂閱,訂閱后可以收到交易主推,返回0表示訂閱成功
subscribe_result = xt_trader.subscribe(acc)
print('對交易回調進行訂閱,訂閱后可以收到交易主推,返回0表示訂閱成功', subscribe_result)
獲取賬號持倉:
# 查賬號持倉
positions = xt_trader.query_stock_positions(acc)
data = pd.DataFrame()
if len(positions) != 0:for i in range(len(positions)):df = pd.DataFrame()df['賬號類型'] = [positions[i].account_type]df['資金賬號'] = [positions[i].account_id]df['證券代碼'] = [positions[i].stock_code]df['證券代碼'] = df['證券代碼'].apply(lambda x: str(x)[:6])df['持倉數量'] = [positions[i].volume]df['可用數量'] = [positions[i].can_use_volume]df['平均建倉成本'] = [positions[i].open_price]df['市值'] = [positions[i].market_value]data = pd.concat([data, df], ignore_index=True)
print('持倉', data)