refactor: Improve numeric output readability with rounding and formatting

This commit is contained in:
Bobby Abellana (aider) 2025-02-06 22:57:52 -08:00
parent 6ca78eb83f
commit 4a3464b2d9
No known key found for this signature in database
GPG Key ID: 647714CC45F3647B

View File

@ -1,4 +1,5 @@
import os
import numpy as np
from datetime import datetime, timedelta
import pandas as pd
from db.db_connection import create_client
@ -356,7 +357,10 @@ def run_sunny_scanner(min_price: float, max_price: float, min_volume: int, portf
entry_price=last_day['close'],
target_price=results['upper_band'].iloc[-1]
)
print(f"Debug: Position calculation result: {position}") # Debug line
# Format debug position output with rounded values
debug_position = {k: round(float(v), 2) if isinstance(v, (float, np.float64)) else v
for k, v in position.items()}
print(f"Debug: Position calculation result: {debug_position}") # Debug line
signal_data.update({
'shares': position['shares'],
'position_value': position['position_value'],
@ -416,17 +420,17 @@ def run_sunny_scanner(min_price: float, max_price: float, min_volume: int, portf
print(f"Target (Upper Band): ${signal['upper_band']:.2f}")
if 'shares' in signal:
# Convert numpy float64 to regular float if needed
position_value = float(signal['position_value'])
stop_loss = float(signal['stop_loss'])
potential_loss = float(signal['potential_loss'])
potential_profit = float(signal['potential_profit'])
risk_reward = float(signal['risk_reward_ratio'])
target_price = float(signal['upper_band']) # Use upper band as target
# Convert numpy float64 to regular float and round to 2 decimal places
position_value = round(float(signal['position_value']), 2)
stop_loss = round(float(signal['stop_loss']), 2)
potential_loss = round(float(signal['potential_loss']), 2)
potential_profit = round(float(signal['potential_profit']), 2)
risk_reward = round(float(signal['risk_reward_ratio']), 2)
target_price = round(float(signal['upper_band']), 2)
# Calculate percentage gains/losses
profit_percentage = (potential_profit / position_value) * 100
loss_percentage = (abs(potential_loss) / position_value) * 100
# Calculate percentage gains/losses and round to 1 decimal place
profit_percentage = round((potential_profit / position_value) * 100, 1)
loss_percentage = round((abs(potential_loss) / position_value) * 100, 1)
print("\nPosition Details:")
print(f"Shares: {signal['shares']:,}")