测试与逻辑修正

This commit is contained in:
2025-10-31 16:40:05 +08:00
parent 9f30f392d2
commit 706ed8cffa
5 changed files with 98 additions and 54 deletions
+18 -13
View File
@@ -1,5 +1,4 @@
# coding:utf-8
from os import popen
import time, sys
from peewee import ModelSelect
@@ -11,7 +10,7 @@ import sfgrid_constants
from core.sfgrid_trade_controller import StockTradeController
from core.util import getInstrumentName, getStockPosition
from xtquant.xttrader import XtQuantTrader
from xtquant.xttype import StockAccount, XtOrder, XtTrade
from xtquant.xttype import StockAccount, XtAsset, XtOrder, XtPosition, XtTrade
from xtquant import xtdata
from xtquant.xttrader import XtQuantTraderCallback
import datetime
@@ -38,7 +37,7 @@ class SFGridController(XtQuantTraderCallback):
subscribe_result = self.xt_trader.subscribe(self.account)
print(f'- 交易状态订阅{'成功' if subscribe_result == 0 else '失败'}')
self.stock_trade_ctrl = {}
self.init_instrument_pool()
self.init_instrument_pool(self.xt_trader, self.account)
self.seq = None
print('- 三疯交易系统初始化完成')
@@ -95,10 +94,14 @@ class SFGridController(XtQuantTraderCallback):
self.refresh_targets()
def init_instrument_pool(self):
def init_instrument_pool(self, xtTrader:XtQuantTrader, account:StockAccount):
self.refresh_targets()
for tradeTarget in self.instrument_pool:
for temp in self.instrument_pool:
tradeTarget:strategy_db.TradeTarget = temp
tradeTarget.current_position = getStockPosition(tradeTarget.stock_code, xtTrader, account)
result = tradeTarget.save()
print(f' |- 同步当前持仓信息 {tradeTarget.stock_code}, {tradeTarget.current_position}, result = {result}')
stockTradeController = StockTradeController(tradeTarget, self.xt_trader, self.account, tradeTarget.enabled)
self.stock_trade_ctrl[tradeTarget.stock_code] = stockTradeController
@@ -121,24 +124,26 @@ class SFGridController(XtQuantTraderCallback):
positions = self.xt_trader.query_stock_positions(self.account)
if positions:
print("\n- 持仓信息")
for pos in positions:
for temp in positions:
pos : XtPosition = temp
if pos.m_nVolume <=0:
continue
print(f"股票代码: {pos.stock_code}-{getInstrumentName(pos.stock_code)}")
print(f"总持仓: {pos.m_nVolume}")
print(f"可用持仓: {pos.m_nCanUseVolume}")
print(f"总持仓: {pos.volume}")
print(f"可用持仓: {pos.can_use_volume}")
print(f"持仓成本: {pos.avg_price}")
print("---")
else:
print("\n当前无持仓")
def print_account_info(self):
account_info = self.xt_trader.query_stock_asset(self.account)
temp = self.xt_trader.query_stock_asset(self.account)
asset: XtAsset =temp
print(f"\n=== 账户信息 {self.account.account_id} ===")
print(f"可用资金: {account_info.m_dCash}")
print(f"总资产: {account_info.m_dTotalAsset}")
print(f"证券市值: {account_info.m_dMarketValue}")
print(f"=== 账户信息 {self.account.account_id} ===")
print(f"可用资金: {asset.cash}")
print(f"总资产: {asset.total_asset}")
print(f"证券市值: {asset.market_value}")
def print_stock_orders(self):
orders = self.xt_trader.query_stock_orders(self.account, cancelable_only=True)