show chart
This commit is contained in:
parent
0b6bb000d2
commit
485c61cf8c
@ -1883,6 +1883,9 @@ async def train_agent(agent, env, num_episodes=1000, max_steps_per_episode=1000)
|
|||||||
agent.writer.add_scalar('PredictionLoss', prediction_loss, episode)
|
agent.writer.add_scalar('PredictionLoss', prediction_loss, episode)
|
||||||
agent.writer.add_scalar('PredictionAccuracy', prediction_accuracy, episode)
|
agent.writer.add_scalar('PredictionAccuracy', prediction_accuracy, episode)
|
||||||
|
|
||||||
|
# Add final chart for this episode
|
||||||
|
agent.add_chart_to_tensorboard(env, (episode + 1) * max_steps_per_episode)
|
||||||
|
|
||||||
logger.info(f"Episode {episode}: Reward={episode_reward:.2f}, Balance=${env.balance:.2f}, "
|
logger.info(f"Episode {episode}: Reward={episode_reward:.2f}, Balance=${env.balance:.2f}, "
|
||||||
f"Win Rate={win_rate:.1f}%, Trades={len(env.trades)}, "
|
f"Win Rate={win_rate:.1f}%, Trades={len(env.trades)}, "
|
||||||
f"Episode PnL=${env.episode_pnl:.2f}, Total PnL=${env.total_pnl:.2f}, "
|
f"Episode PnL=${env.episode_pnl:.2f}, Total PnL=${env.total_pnl:.2f}, "
|
||||||
@ -2149,6 +2152,8 @@ async def live_trading(agent, env, exchange, demo=True):
|
|||||||
return
|
return
|
||||||
|
|
||||||
# Main trading loop
|
# Main trading loop
|
||||||
|
step_counter = 0
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
# Wait for the next candle (1 minute)
|
# Wait for the next candle (1 minute)
|
||||||
await asyncio.sleep(5) # Check every 5 seconds
|
await asyncio.sleep(5) # Check every 5 seconds
|
||||||
@ -2190,6 +2195,19 @@ async def live_trading(agent, env, exchange, demo=True):
|
|||||||
if trade_analysis:
|
if trade_analysis:
|
||||||
logger.info(f"Recent Performance: Win Rate={trade_analysis.get('uptrend_win_rate', 0):.1f}% in uptrends, "
|
logger.info(f"Recent Performance: Win Rate={trade_analysis.get('uptrend_win_rate', 0):.1f}% in uptrends, "
|
||||||
f"{trade_analysis.get('downtrend_win_rate', 0):.1f}% in downtrends")
|
f"{trade_analysis.get('downtrend_win_rate', 0):.1f}% in downtrends")
|
||||||
|
|
||||||
|
# Add chart to TensorBoard periodically
|
||||||
|
step_counter += 1
|
||||||
|
if step_counter % 10 == 0: # Update chart every 10 steps
|
||||||
|
agent.add_chart_to_tensorboard(env, step_counter)
|
||||||
|
|
||||||
|
# Also log current PnL and balance
|
||||||
|
agent.writer.add_scalar('Live/Balance', env.balance, step_counter)
|
||||||
|
agent.writer.add_scalar('Live/TotalPnL', env.total_pnl, step_counter)
|
||||||
|
agent.writer.add_scalar('Live/WinRate',
|
||||||
|
(env.win_count / (env.win_count + env.loss_count) * 100)
|
||||||
|
if (env.win_count + env.loss_count) > 0 else 0,
|
||||||
|
step_counter)
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
logger.info("Live trading stopped by user")
|
logger.info("Live trading stopped by user")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user