From 218efef538b7e547950697e2d18ab50cbfcdca99 Mon Sep 17 00:00:00 2001 From: silencesdg Date: Fri, 15 May 2026 13:58:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A1=A5=E5=9B=9E=E8=AF=AF=E5=88=A0?= =?UTF-8?q?=E7=9A=84=20initial=5Fcapital=20+=20=E6=97=A5=E5=BF=97=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=9C=89=E6=95=88=E6=9D=A0=E6=9D=86=E7=BC=A9=E6=94=BE?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .ea_pid | 2 +- core/risk/position.py | 5 +++++ execution/realtime_trader.py | 18 +++++++++++++----- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/.ea_pid b/.ea_pid index 2c7315d..9be7ee9 100644 --- a/.ea_pid +++ b/.ea_pid @@ -1 +1 @@ -269701 \ No newline at end of file +274000 \ No newline at end of file diff --git a/core/risk/position.py b/core/risk/position.py index 4354a02..c261d5a 100644 --- a/core/risk/position.py +++ b/core/risk/position.py @@ -62,6 +62,11 @@ class PositionManager: self.take_profit_pct = risk.get("take_profit_pct", 0.20) * self._lev_ratio self.min_profit_for_time_exit = risk.get("min_profit_for_time_exit", 0.001) * self._lev_ratio + # 资金管理 + self.initial_capital = INITIAL_CAPITAL + self.long_capital_pct = CAPITAL_ALLOCATION.get("long_pct", 0.5) + self.short_capital_pct = CAPITAL_ALLOCATION.get("short_pct", 0.5) + # 持仓和交易记录 self.positions = [] self.closed_trades = [] diff --git a/execution/realtime_trader.py b/execution/realtime_trader.py index c55c8d6..d2dda78 100644 --- a/execution/realtime_trader.py +++ b/execution/realtime_trader.py @@ -29,13 +29,21 @@ class RealtimeTrader: signal.signal(signal.SIGINT, self._signal_handler) signal.signal(signal.SIGTERM, self._signal_handler) + # ★ 杠杆自适应:打印有效值 + try: + acct = self.data_provider.get_account_info() + lev = acct.leverage if hasattr(acct, 'leverage') else acct.get('leverage', 2000) + except Exception: + lev = 2000 + ratio = lev / 100.0 + # ★ 启动参数一览 logger.info("=" * 50) - logger.info(f"品种: {SYMBOL} | 周期: M{TIMEFRAME} | 间隔: {self.update_interval}s") - logger.info(f"风控: 止损={RISK_CONFIG['stop_loss_pct']:.1%} | " - f"止盈={RISK_CONFIG['take_profit_pct']:.1%} | " - f"拖尾激活={RISK_CONFIG['min_profit_for_trailing']:.1%} | " - f"拖尾回撤={RISK_CONFIG['profit_retracement_pct']:.1%}") + logger.info(f"品种: {SYMBOL} | 周期: M{TIMEFRAME} | 间隔: {self.update_interval}s | 杠杆: {lev}x") + logger.info(f"风控: 止损={RISK_CONFIG['stop_loss_pct']*ratio:.1%} | " + f"止盈={RISK_CONFIG['take_profit_pct']*ratio:.1%} | " + f"拖尾激活={RISK_CONFIG['min_profit_for_trailing']*ratio:.1%} | " + f"拖尾回撤={RISK_CONFIG['profit_retracement_pct']*ratio:.1%}") logger.info(f"信号: 买入阈值={SIGNAL_THRESHOLDS.get('buy_threshold',1.5)} | " f"卖出阈值={SIGNAL_THRESHOLDS.get('sell_threshold',-1.5)}") logger.info(f"仓位: 最多多={REALTIME_CONFIG['max_long_positions']} 最多空={REALTIME_CONFIG['max_short_positions']} | "