diff --git a/output/latest_signal.json b/output/latest_signal.json index 1601fa1..d2cbacc 100755 --- a/output/latest_signal.json +++ b/output/latest_signal.json @@ -1,32 +1,34 @@ { + "timestamp": "2025-12-09T09:10:18.439136", "aggregated_signal": { - "timestamp": "2025-12-09T11:59:50.752872", + "timestamp": "2025-12-09T09:10:18.438119", "final_signal": "HOLD", - "final_confidence": 0.55, + "final_confidence": 0.65, "consensus": "CONSENSUS_HOLD", - "agreement_score": 0.55, + "agreement_score": 0.65, "quantitative_signal": { "signal_type": "HOLD", "signal": "HOLD", - "confidence": 0.5, - "composite_score": -31.8, + "confidence": 0.75, + "composite_score": 48.0, "scores": { - "trend": -66.0, - "momentum": 65, - "orderflow": -100, + "trend": 99.0, + "momentum": -45, + "orderflow": 98.2, "breakout": 0 } }, "llm_signal": { "signal_type": "HOLD", "signal": "HOLD", - "confidence": 0.6, - "reasoning": "多周期综合分析显示市场处于震荡格局。短期(5m/15m/1h)有超跌反弹的技术条件,MACD金叉和RSI位置提供日内做多机会。中期(4h/1d)方向不明,指标中性,需等待区间突破。长期(1d/1w)周线趋势虽强,但日线处于调整中,需更佳的风险回报比。当前价格90382.5接近短期支撑,优先关注日内机会。", + "confidence": 0.55, + "reasoning": "多周期综合分析显示市场处于震荡整理格局。短期(5m-1h)指标矛盾,缺乏一致方向。中期(4h-1d)趋势不明,价格在关键支撑与阻力间徘徊。长期(1d-1w)周线上涨趋势与日线调整形成对峙。当前价格位置($90,376.50)接近短期震荡区间下沿,但未出现强烈的反转或突破信号。成交量整体萎缩,表明市场参与度不高,等待新的催化剂。综合来看,当前风险收益比不佳,建议以观望为主,等待关键价位的突破来确认下一步方向。", "key_factors": [ - "短期技术指标出现反弹信号", - "价格处于关键支撑区域", - "中期趋势方向不明朗", - "成交量正常无明显放量" + "短期多空信号矛盾,缺乏方向性指引", + "中期关键支撑89368.9的防守情况", + "成交量整体萎缩,市场观望情绪浓厚", + "周线长期趋势与日线调整周期的冲突", + "上方90800-91300区域形成技术阻力" ], "opportunities": { "short_term_5m_15m_1h": { @@ -35,7 +37,7 @@ "entry_price": 0, "stop_loss": 0, "take_profit": 0, - "reasoning": "盈利空间不足1% (仅0.91%),建议观望" + "reasoning": "当前价格$90,376.50处于短期震荡区间(90300-90500)下沿。5分钟趋势虽强但MACD死叉扩大,15分钟趋势转弱,1小时RSI中性偏弱且成交量萎缩。日内多空信号矛盾,缺乏明确方向。预期盈利空间不足1%,不符合交易条件。" }, "medium_term_4h_1d": { "exists": false, @@ -43,7 +45,7 @@ "entry_price": 0, "stop_loss": 0, "take_profit": 0, - "reasoning": "4小时和日线周期趋势不明,RSI中性,MACD死叉收窄但未转强。价格在89550-92262区间震荡,缺乏明确的中期方向信号和足够的盈利空间。" + "reasoning": "4小时与日线周期量化评分均为负值,趋势不明,RSI中性偏弱,MACD死叉收窄但未转金叉。价格在关键中期支撑89368.9上方震荡,但上方阻力90800-91300区域压制明显。当前缺乏明确的波段启动信号,预期盈利空间不足2%。" }, "long_term_1d_1w": { "exists": false, @@ -51,12 +53,12 @@ "entry_price": 0, "stop_loss": 0, "take_profit": 0, - "reasoning": "周线显示上涨趋势,但日线处于高位震荡。当前价格接近震荡区间中轨,长期方向需等待突破。RSI弱势,MACD死叉,短期不具备明确的长期建仓机会。" + "reasoning": "周线趋势虽为上涨(strong),但RSI处于弱势区(38.8),MACD仍为死叉。日线在长期支撑(89368.9)与阻力(92262.6)之间宽幅震荡。长期趋势方向未明,未出现明确的趋势反转或突破信号,不符合长期建仓条件。" }, "ambush": { "exists": true, - "price_level": 89550.0, - "reasoning": "该位置是近期多次测试的强支撑(4小时和日线级别),也是12月8日低点区域。若价格回调至此并出现企稳信号,是较好的中期埋伏做多点位。" + "price_level": 89368.9, + "reasoning": "该价位是近期(12月8-9日)多次测试的关键中期支撑位(日线低点)。若价格再次回踩此位置并出现企稳信号(如长下影线、成交量放大、RSI底背离),可视为潜在的多头埋伏机会,盈亏比可能较优。" }, "intraday": { "exists": false, @@ -64,7 +66,7 @@ "entry_price": 0, "stop_loss": 0, "take_profit": 0, - "reasoning": "盈利空间不足1% (仅0.91%),建议观望" + "reasoning": "当前价格$90,376.50处于短期震荡区间(90300-90500)下沿。5分钟趋势虽强但MACD死叉扩大,15分钟趋势转弱,1小时RSI中性偏弱且成交量萎缩。日内多空信号矛盾,缺乏明确方向。预期盈利空间不足1%,不符合交易条件。" }, "swing": { "exists": false, @@ -72,77 +74,79 @@ "entry_price": 0, "stop_loss": 0, "take_profit": 0, - "reasoning": "4小时和日线周期趋势不明,RSI中性,MACD死叉收窄但未转强。价格在89550-92262区间震荡,缺乏明确的中期方向信号和足够的盈利空间。" + "reasoning": "4小时与日线周期量化评分均为负值,趋势不明,RSI中性偏弱,MACD死叉收窄但未转金叉。价格在关键中期支撑89368.9上方震荡,但上方阻力90800-91300区域压制明显。当前缺乏明确的波段启动信号,预期盈利空间不足2%。" } }, "recommendations_by_timeframe": { - "short_term": "可在90380附近轻仓试多,止损90000,目标91200。日内交易,快进快出。", - "medium_term": "观望为主,等待价格突破92000或跌破89550后选择方向。可关注89550支撑位的埋伏机会。", - "long_term": "周线趋势向上,但日线调整未结束。长期投资者可等待价格回调至87688-88000强支撑区域再考虑分批建仓。" + "short_term": "观望为主。价格在90300-90500区间内震荡,方向不明。激进者可尝试在区间下沿(90300附近)轻仓试多,严格止损于90100下方,目标看向90800。但鉴于信号矛盾且盈利空间有限,建议优先等待更明确的突破信号。", + "medium_term": "保持观望,等待方向选择。关注关键支撑89368.9和阻力90810.8的突破情况。若放量跌破89368.9,则可能打开下行空间至88000。若放量突破并站稳90800上方,则可能再次测试91300-91700区域。", + "long_term": "周线级别上涨趋势结构仍在,但日线处于调整中。长期投资者可关注89368.9关键支撑的防守情况,若在此位置附近企稳,可考虑分批布局。但需警惕若跌破此支撑,可能进一步下探86800(周线级别支撑)。" }, "trade_type": "MULTI_TIMEFRAME", "risk_level": "MEDIUM" }, "levels": { - "current_price": 90382.5, - "entry": 90382.5, - "stop_loss": 90382.5, - "take_profit_1": 90382.5, - "take_profit_2": 90382.5, - "take_profit_3": 90382.5 + "current_price": 90376.45, + "entry": 90366.78, + "stop_loss": 90176.3359, + "take_profit_1": 90538.02, + "take_profit_2": 90876.56, + "take_profit_3": 91176.66 }, - "risk_reward_ratio": 0, + "risk_reward_ratio": 0.9, "recommendation": "量化和AI分析均建议观望,等待更好的机会", - "warnings": [] + "warnings": [ + "⚠️ 风险回报比偏低 (1.0:1), 建议至少1.5:1" + ] }, "market_analysis": { - "price": 90382.5, + "price": 90376.4, "trend": { - "direction": "下跌", - "strength": "moderate", - "phase": "下跌后反弹", - "adx": 20.4, - "ema_alignment": "bearish" + "direction": "上涨", + "strength": "strong", + "phase": "上涨后回调", + "adx": 25.4, + "ema_alignment": "bullish" }, "momentum": { - "rsi": 59.2, + "rsi": 50.9, "rsi_status": "中性偏强", - "rsi_trend": "上升中", - "macd_signal": "金叉扩大", - "macd_hist": 49.9748 + "rsi_trend": "下降中", + "macd_signal": "死叉扩大", + "macd_hist": -26.6691 } }, "quantitative_signal": { - "timestamp": "2025-12-09T11:59:16.429268", + "timestamp": "2025-12-09T09:09:26.901679", "signal_type": "HOLD", - "signal_strength": 0.32, - "composite_score": -31.8, - "confidence": 0.5, + "signal_strength": 0, + "composite_score": 48.0, + "confidence": 0.75, "consensus_score": 0.65, - "profit_pct": 0, + "profit_pct": 0.2, "scores": { - "trend": -66.0, - "momentum": 65, - "orderflow": -100, + "trend": 99.0, + "momentum": -45, + "orderflow": 98.2, "breakout": 0 }, "levels": { - "current_price": 90382.5, - "entry": 90382.5, - "stop_loss": 90382.5, - "take_profit_1": 90382.5, - "take_profit_2": 90382.5, - "take_profit_3": 90382.5 + "current_price": 90376.4, + "entry": 90357.05, + "stop_loss": 90176.3359, + "take_profit_1": 90538.02, + "take_profit_2": 90876.56, + "take_profit_3": 91176.66 }, - "risk_reward_ratio": 0, - "reasoning": "趋势下跌 (moderate); RSI=59; MACD 金叉扩大; 订单流: 强卖方主导" + "risk_reward_ratio": 1.0, + "reasoning": "趋势上涨 (strong); RSI=51; MACD 死叉扩大; 订单流: 强买方主导 (原BUY信号盈利空间不足1.0%,仅0.20%)" }, "llm_signal": { - "timestamp": "2025-12-09T11:59:50.751310", + "timestamp": "2025-12-09T09:10:18.437037", "signal_type": "HOLD", - "confidence": 0.6, + "confidence": 0.55, "trade_type": "MULTI_TIMEFRAME", - "reasoning": "多周期综合分析显示市场处于震荡格局。短期(5m/15m/1h)有超跌反弹的技术条件,MACD金叉和RSI位置提供日内做多机会。中期(4h/1d)方向不明,指标中性,需等待区间突破。长期(1d/1w)周线趋势虽强,但日线处于调整中,需更佳的风险回报比。当前价格90382.5接近短期支撑,优先关注日内机会。", + "reasoning": "多周期综合分析显示市场处于震荡整理格局。短期(5m-1h)指标矛盾,缺乏一致方向。中期(4h-1d)趋势不明,价格在关键支撑与阻力间徘徊。长期(1d-1w)周线上涨趋势与日线调整形成对峙。当前价格位置($90,376.50)接近短期震荡区间下沿,但未出现强烈的反转或突破信号。成交量整体萎缩,表明市场参与度不高,等待新的催化剂。综合来看,当前风险收益比不佳,建议以观望为主,等待关键价位的突破来确认下一步方向。", "opportunities": { "short_term_5m_15m_1h": { "exists": false, @@ -150,7 +154,7 @@ "entry_price": 0, "stop_loss": 0, "take_profit": 0, - "reasoning": "盈利空间不足1% (仅0.91%),建议观望" + "reasoning": "当前价格$90,376.50处于短期震荡区间(90300-90500)下沿。5分钟趋势虽强但MACD死叉扩大,15分钟趋势转弱,1小时RSI中性偏弱且成交量萎缩。日内多空信号矛盾,缺乏明确方向。预期盈利空间不足1%,不符合交易条件。" }, "medium_term_4h_1d": { "exists": false, @@ -158,7 +162,7 @@ "entry_price": 0, "stop_loss": 0, "take_profit": 0, - "reasoning": "4小时和日线周期趋势不明,RSI中性,MACD死叉收窄但未转强。价格在89550-92262区间震荡,缺乏明确的中期方向信号和足够的盈利空间。" + "reasoning": "4小时与日线周期量化评分均为负值,趋势不明,RSI中性偏弱,MACD死叉收窄但未转金叉。价格在关键中期支撑89368.9上方震荡,但上方阻力90800-91300区域压制明显。当前缺乏明确的波段启动信号,预期盈利空间不足2%。" }, "long_term_1d_1w": { "exists": false, @@ -166,12 +170,12 @@ "entry_price": 0, "stop_loss": 0, "take_profit": 0, - "reasoning": "周线显示上涨趋势,但日线处于高位震荡。当前价格接近震荡区间中轨,长期方向需等待突破。RSI弱势,MACD死叉,短期不具备明确的长期建仓机会。" + "reasoning": "周线趋势虽为上涨(strong),但RSI处于弱势区(38.8),MACD仍为死叉。日线在长期支撑(89368.9)与阻力(92262.6)之间宽幅震荡。长期趋势方向未明,未出现明确的趋势反转或突破信号,不符合长期建仓条件。" }, "ambush": { "exists": true, - "price_level": 89550.0, - "reasoning": "该位置是近期多次测试的强支撑(4小时和日线级别),也是12月8日低点区域。若价格回调至此并出现企稳信号,是较好的中期埋伏做多点位。" + "price_level": 89368.9, + "reasoning": "该价位是近期(12月8-9日)多次测试的关键中期支撑位(日线低点)。若价格再次回踩此位置并出现企稳信号(如长下影线、成交量放大、RSI底背离),可视为潜在的多头埋伏机会,盈亏比可能较优。" }, "intraday": { "exists": false, @@ -179,7 +183,7 @@ "entry_price": 0, "stop_loss": 0, "take_profit": 0, - "reasoning": "盈利空间不足1% (仅0.91%),建议观望" + "reasoning": "当前价格$90,376.50处于短期震荡区间(90300-90500)下沿。5分钟趋势虽强但MACD死叉扩大,15分钟趋势转弱,1小时RSI中性偏弱且成交量萎缩。日内多空信号矛盾,缺乏明确方向。预期盈利空间不足1%,不符合交易条件。" }, "swing": { "exists": false, @@ -187,17 +191,17 @@ "entry_price": 0, "stop_loss": 0, "take_profit": 0, - "reasoning": "4小时和日线周期趋势不明,RSI中性,MACD死叉收窄但未转强。价格在89550-92262区间震荡,缺乏明确的中期方向信号和足够的盈利空间。" + "reasoning": "4小时与日线周期量化评分均为负值,趋势不明,RSI中性偏弱,MACD死叉收窄但未转金叉。价格在关键中期支撑89368.9上方震荡,但上方阻力90800-91300区域压制明显。当前缺乏明确的波段启动信号,预期盈利空间不足2%。" } }, "recommendations_by_timeframe": { - "short_term": "可在90380附近轻仓试多,止损90000,目标91200。日内交易,快进快出。", - "medium_term": "观望为主,等待价格突破92000或跌破89550后选择方向。可关注89550支撑位的埋伏机会。", - "long_term": "周线趋势向上,但日线调整未结束。长期投资者可等待价格回调至87688-88000强支撑区域再考虑分批建仓。" + "short_term": "观望为主。价格在90300-90500区间内震荡,方向不明。激进者可尝试在区间下沿(90300附近)轻仓试多,严格止损于90100下方,目标看向90800。但鉴于信号矛盾且盈利空间有限,建议优先等待更明确的突破信号。", + "medium_term": "保持观望,等待方向选择。关注关键支撑89368.9和阻力90810.8的突破情况。若放量跌破89368.9,则可能打开下行空间至88000。若放量突破并站稳90800上方,则可能再次测试91300-91700区域。", + "long_term": "周线级别上涨趋势结构仍在,但日线处于调整中。长期投资者可关注89368.9关键支撑的防守情况,若在此位置附近企稳,可考虑分批布局。但需警惕若跌破此支撑,可能进一步下探86800(周线级别支撑)。" }, "levels": { - "current_price": 90382.5, - "entry": 90382.5, + "current_price": 90376.5, + "entry": 90376.5, "stop_loss": 0, "take_profit_1": 0, "take_profit_2": 0, @@ -205,12 +209,13 @@ }, "risk_level": "MEDIUM", "key_factors": [ - "短期技术指标出现反弹信号", - "价格处于关键支撑区域", - "中期趋势方向不明朗", - "成交量正常无明显放量" + "短期多空信号矛盾,缺乏方向性指引", + "中期关键支撑89368.9的防守情况", + "成交量整体萎缩,市场观望情绪浓厚", + "周线长期趋势与日线调整周期的冲突", + "上方90800-91300区域形成技术阻力" ], - "raw_response": "```json\n{\n \"signal\": \"HOLD\",\n \"confidence\": 0.6,\n \"key_levels\": {\n \"short_term\": {\n \"support\": [90380.0, 90000.0, 89800.0, 89550.0],\n \"resistance\": [90800.0, 91200.0, 91500.0, 91800.0]\n },\n \"medium_term\": {\n \"support\": [89550.0, 89000.0, 88000.0, 87688.0],\n \"resistance\": [92000.0, 92262.6, 93000.0, 94185.0]\n },\n \"long_term\": {\n \"support\": [86000.0, 83786.0, 80600.0],\n \"resistance\": [95000.0, 98000.0, 104000.0]\n }\n },\n \"opportunities\": {\n \"short_term_5m_15m_1h\": {\n \"exists\": true,\n \"direction\": \"LONG\",\n \"entry_price\": 90380.0,\n \"stop_loss\": 90000.0,\n \"take_profit\": 91200.0,\n \"reasoning\": \"价格在短期支撑位90380附近企稳,5分钟MACD金叉扩大,RSI中性偏强,存在反弹至91200阻力位的日内机会,预期盈利空间约0.9%,接近1%阈值。\"\n },\n \"medium_term_4h_1d\": {\n \"exists\": false,\n \"direction\": null,\n \"entry_price\": null,\n \"stop_loss\": null,\n \"take_profit\": null,\n \"reasoning\": \"4小时和日线周期趋势不明,RSI中性,MACD死叉收窄但未转强。价格在89550-92262区间震荡,缺乏明确的中期方向信号和足够的盈利空间。\"\n },\n \"long_term_1d_1w\": {\n \"exists\": false,\n \"direction\": null,\n \"entry_price\": null,\n \"stop_loss\": null,\n \"take_profit\": null,\n \"reasoning\": \"周线显示上涨趋势,但日线处于高位震荡。当前价格接近震荡区间中轨,长期方向需等待突破。RSI弱势,MACD死叉,短期不具备明确的长期建仓机会。\"\n },\n \"ambush\": {\n \"exists\": true,\n \"price_level\": 89550.0,\n \"reasoning\": \"该位置是近期多次测试的强支撑(4小时和日线级别),也是12月8日低点区域。若价格回调至此并出现企稳信号,是较好的中期埋伏做多点位。\"\n }\n },\n \"recommendations_by_timeframe\": {\n \"short_term\": \"可在90380附近轻仓试多,止损90000,目标91200。日内交易,快进快出。\",\n \"medium_term\": \"观望为主,等待价格突破92000或跌破89550后选择方向。可关注89550支撑位的埋伏机会。\",\n \"long_term\": \"周线趋势向上,但日线调整未结束。长期投资者可等待价格回调至87688-88000强支撑区域再考虑分批建仓。\"\n },\n \"reasoning\": \"多周期综合分析显示市场处于震荡格局。短期(5m/15m/1h)有超跌反弹的技术条件,MACD金叉和RSI位置提供日内做多机会。中期(4h/1d)方向不明,指标中性,需等待区间突破。长期(1d/1w)周线趋势虽强,但日线处于调整中,需更佳的风险回报比。当前价格90382.5接近短期支撑,优先关注日内机会。\",\n \"risk_level\": \"MEDIUM\",\n \"key_factors\": [\"短期技术指标出现反弹信号\", \"价格处于关键支撑区域\", \"中期趋势方向不明朗\", \"成交量正常无明显放量\"]\n}\n```", + "raw_response": "```json\n{\n \"signal\": \"HOLD\",\n \"confidence\": 0.55,\n \"key_levels\": {\n \"short_term\": {\n \"support\": [89600.0, 89800.0, 90300.0],\n \"resistance\": [90500.0, 90800.0, 91200.0]\n },\n \"medium_term\": {\n \"support\": [89368.9, 89553.8, 89800.0],\n \"resistance\": [90810.8, 91338.2, 91753.0]\n },\n \"long_term\": {\n \"support\": [86807.7, 89368.9, 89553.8],\n \"resistance\": [92262.6, 93080.0, 94185.0]\n }\n },\n \"opportunities\": {\n \"short_term_5m_15m_1h\": {\n \"exists\": false,\n \"direction\": null,\n \"entry_price\": null,\n \"stop_loss\": null,\n \"take_profit\": null,\n \"reasoning\": \"当前价格$90,376.50处于短期震荡区间(90300-90500)下沿。5分钟趋势虽强但MACD死叉扩大,15分钟趋势转弱,1小时RSI中性偏弱且成交量萎缩。日内多空信号矛盾,缺乏明确方向。预期盈利空间不足1%,不符合交易条件。\"\n },\n \"medium_term_4h_1d\": {\n \"exists\": false,\n \"direction\": null,\n \"entry_price\": null,\n \"stop_loss\": null,\n \"take_profit\": null,\n \"reasoning\": \"4小时与日线周期量化评分均为负值,趋势不明,RSI中性偏弱,MACD死叉收窄但未转金叉。价格在关键中期支撑89368.9上方震荡,但上方阻力90800-91300区域压制明显。当前缺乏明确的波段启动信号,预期盈利空间不足2%。\"\n },\n \"long_term_1d_1w\": {\n \"exists\": false,\n \"direction\": null,\n \"entry_price\": null,\n \"stop_loss\": null,\n \"take_profit\": null,\n \"reasoning\": \"周线趋势虽为上涨(strong),但RSI处于弱势区(38.8),MACD仍为死叉。日线在长期支撑(89368.9)与阻力(92262.6)之间宽幅震荡。长期趋势方向未明,未出现明确的趋势反转或突破信号,不符合长期建仓条件。\"\n },\n \"ambush\": {\n \"exists\": true,\n \"price_level\": 89368.9,\n \"reasoning\": \"该价位是近期(12月8-9日)多次测试的关键中期支撑位(日线低点)。若价格再次回踩此位置并出现企稳信号(如长下影线、成交量放大、RSI底背离),可视为潜在的多头埋伏机会,盈亏比可能较优。\"\n }\n },\n \"recommendations_by_timeframe\": {\n \"short_term\": \"观望为主。价格在90300-90500区间内震荡,方向不明。激进者可尝试在区间下沿(90300附近)轻仓试多,严格止损于90100下方,目标看向90800。但鉴于信号矛盾且盈利空间有限,建议优先等待更明确的突破信号。\",\n \"medium_term\": \"保持观望,等待方向选择。关注关键支撑89368.9和阻力90810.8的突破情况。若放量跌破89368.9,则可能打开下行空间至88000。若放量突破并站稳90800上方,则可能再次测试91300-91700区域。\",\n \"long_term\": \"周线级别上涨趋势结构仍在,但日线处于调整中。长期投资者可关注89368.9关键支撑的防守情况,若在此位置附近企稳,可考虑分批布局。但需警惕若跌破此支撑,可能进一步下探86800(周线级别支撑)。\"\n },\n \"reasoning\": \"多周期综合分析显示市场处于震荡整理格局。短期(5m-1h)指标矛盾,缺乏一致方向。中期(4h-1d)趋势不明,价格在关键支撑与阻力间徘徊。长期(1d-1w)周线上涨趋势与日线调整形成对峙。当前价格位置($90,376.50)接近短期震荡区间下沿,但未出现强烈的反转或突破信号。成交量整体萎缩,表明市场参与度不高,等待新的催化剂。综合来看,当前风险收益比不佳,建议以观望为主,等待关键价位的突破来确认下一步方向。\",\n \"risk_level\": \"MEDIUM\",\n \"key_factors\": [\"短期多空信号矛盾,缺乏方向性指引\", \"中期关键支撑89368.9的防守情况\", \"成交量整体萎缩,市场观望情绪浓厚\", \"周线长期趋势与日线调整周期的冲突\", \"上方90800-91300区域形成技术阻力\"]\n}\n```", "risk_reward_ratio": 0 } } \ No newline at end of file diff --git a/output/paper_trading_state.json b/output/paper_trading_state.json index 2012fae..ecf2554 100644 --- a/output/paper_trading_state.json +++ b/output/paper_trading_state.json @@ -19,7 +19,32 @@ "avg_loss": 0.0, "profit_factor": 0.0 }, - "equity_curve": [] + "equity_curve": [ + { + "timestamp": "2025-12-09T09:09:26.089221", + "equity": 10000.0, + "initial_balance": 10000.0, + "realized_pnl": 0.0, + "unrealized_pnl": 0, + "price": 90380.0 + }, + { + "timestamp": "2025-12-09T09:09:56.112696", + "equity": 10000.0, + "initial_balance": 10000.0, + "realized_pnl": 0.0, + "unrealized_pnl": 0, + "price": 90380.7 + }, + { + "timestamp": "2025-12-09T09:10:26.141942", + "equity": 10000.0, + "initial_balance": 10000.0, + "realized_pnl": 0.0, + "unrealized_pnl": 0, + "price": 90353.3 + } + ] }, "medium": { "timeframe": "medium", @@ -40,7 +65,32 @@ "avg_loss": 0.0, "profit_factor": 0.0 }, - "equity_curve": [] + "equity_curve": [ + { + "timestamp": "2025-12-09T09:09:26.089236", + "equity": 10000.0, + "initial_balance": 10000.0, + "realized_pnl": 0.0, + "unrealized_pnl": 0, + "price": 90380.0 + }, + { + "timestamp": "2025-12-09T09:09:56.112853", + "equity": 10000.0, + "initial_balance": 10000.0, + "realized_pnl": 0.0, + "unrealized_pnl": 0, + "price": 90380.7 + }, + { + "timestamp": "2025-12-09T09:10:26.142282", + "equity": 10000.0, + "initial_balance": 10000.0, + "realized_pnl": 0.0, + "unrealized_pnl": 0, + "price": 90353.3 + } + ] }, "long": { "timeframe": "long", @@ -61,8 +111,33 @@ "avg_loss": 0.0, "profit_factor": 0.0 }, - "equity_curve": [] + "equity_curve": [ + { + "timestamp": "2025-12-09T09:09:26.089240", + "equity": 10000.0, + "initial_balance": 10000.0, + "realized_pnl": 0.0, + "unrealized_pnl": 0, + "price": 90380.0 + }, + { + "timestamp": "2025-12-09T09:09:56.112875", + "equity": 10000.0, + "initial_balance": 10000.0, + "realized_pnl": 0.0, + "unrealized_pnl": 0, + "price": 90380.7 + }, + { + "timestamp": "2025-12-09T09:10:26.142309", + "equity": 10000.0, + "initial_balance": 10000.0, + "realized_pnl": 0.0, + "unrealized_pnl": 0, + "price": 90353.3 + } + ] } }, - "last_updated": "2025-12-09T13:24:30.616776" + "last_updated": "2025-12-09T09:10:26.142990" } \ No newline at end of file diff --git a/trading/realtime_trader.py b/trading/realtime_trader.py index 3c53a57..89c4121 100644 --- a/trading/realtime_trader.py +++ b/trading/realtime_trader.py @@ -70,7 +70,8 @@ class RealtimeTrader: for tf in TimeFrame: config = TIMEFRAME_CONFIG[tf] account = self.trader.accounts[tf] - logger.info(f" [{config['name_en']}] Balance: ${account.balance:.2f}, Leverage: {account.leverage}x") + equity = account.get_equity() + logger.info(f" [{config['name_en']}] Equity: ${equity:.2f}, Leverage: {account.leverage}x") while self.is_running: try: @@ -178,7 +179,7 @@ class RealtimeTrader: logger.info(f" Exit: ${details['exit_price']:.2f}") logger.info(f" PnL: ${pnl:.2f} ({details['pnl_pct']:.2f}%)") logger.info(f" Reason: {details['reason']}") - logger.info(f" New Balance: ${details['new_balance']:.2f}") + logger.info(f" New Equity: ${details.get('new_equity', 0):.2f}") logger.info("=" * 60) elif action == 'REVERSE': @@ -206,7 +207,7 @@ class RealtimeTrader: logger.info(f" {pnl_icon} PnL: ${pnl:.2f} ({close_result.get('pnl_pct', 0):.2f}%)") logger.info(f" Entry: ${close_result.get('entry_price', 0):.2f}") logger.info(f" Exit: ${close_result.get('exit_price', 0):.2f}") - logger.info(f" New Balance: ${close_result.get('new_balance', 0):.2f}") + logger.info(f" New Equity: ${close_result.get('new_equity', 0):.2f}") logger.info("=" * 60) if self.on_trade_callback: @@ -224,13 +225,13 @@ class RealtimeTrader: print(f"📊 MULTI-TIMEFRAME TRADING STATUS - {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") print("=" * 80) print(f"💵 Current Price: ${self.current_price:.2f}") - print(f"💰 Total Balance: ${status['total_balance']:.2f} (Initial: ${status['total_initial_balance']:.2f})") + print(f"💰 Total Equity: ${status['total_equity']:.2f} (Initial: ${status['total_initial_balance']:.2f})") print(f"📈 Total Return: {status['total_return']:.2f}%") print("-" * 80) for tf_value, tf_status in status['timeframes'].items(): name = tf_status['name_en'] - balance = tf_status['balance'] + equity = tf_status['equity'] return_pct = tf_status['return_pct'] leverage = tf_status['leverage'] stats = tf_status['stats'] @@ -238,7 +239,7 @@ class RealtimeTrader: return_icon = "🟢" if return_pct > 0 else "🔴" if return_pct < 0 else "⚪" print(f"\n📊 {name} ({leverage}x)") - print(f" Balance: ${balance:.2f} | Return: {return_icon} {return_pct:+.2f}%") + print(f" Equity: ${equity:.2f} | Return: {return_icon} {return_pct:+.2f}%") print(f" Trades: {stats['total_trades']} | Win Rate: {stats['win_rate']:.1f}% | PnL: ${stats['total_pnl']:.2f}") pos = tf_status.get('position')