测试与逻辑修正
This commit is contained in:
+18
-13
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user