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('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}, "
|
||||
f"Win Rate={win_rate:.1f}%, Trades={len(env.trades)}, "
|
||||
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
|
||||
|
||||
# Main trading loop
|
||||
step_counter = 0
|
||||
|
||||
while True:
|
||||
# Wait for the next candle (1 minute)
|
||||
await asyncio.sleep(5) # Check every 5 seconds
|
||||
@ -2191,6 +2196,19 @@ async def live_trading(agent, env, exchange, demo=True):
|
||||
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")
|
||||
|
||||
# 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:
|
||||
logger.info("Live trading stopped by user")
|
||||
except Exception as e:
|
||||
|
Loading…
x
Reference in New Issue
Block a user