feat: Update default stop loss to 7% and improve position sizing output

This commit is contained in:
Bobby (aider) 2025-02-08 08:21:28 -08:00
parent b9d6243bbe
commit bf71fa5fb2
2 changed files with 12 additions and 5 deletions

View File

@ -90,7 +90,11 @@ def run_atr_ema_scanner(min_price: float, max_price: float, min_volume: int, por
indicator = ThreeATREMAIndicator()
calculator = None
if portfolio_size and portfolio_size > 0:
calculator = PositionCalculator(account_size=portfolio_size)
calculator = PositionCalculator(
account_size=portfolio_size,
risk_percentage=1.0,
stop_loss_percentage=7.0 # Explicitly set 7% stop
)
bullish_signals = []
@ -125,8 +129,11 @@ def run_atr_ema_scanner(min_price: float, max_price: float, min_volume: int, por
'r_r': position['risk_reward_ratio']
}
bullish_signals.append(signal_data)
print(f"\n🟢 {ticker} Entry: ${current_price:.2f} Target: ${target_price:.2f}")
print(f" Potential Profit: ${signal_data['reward']:.2f} | Potential Loss: ${abs(signal_data['risk']):.2f}")
dollar_risk = signal_data['risk'] * -1
print(f"\n🟢 {ticker} @ ${current_price:.2f}")
print(f" Size: {signal_data['shares']} shares (${signal_data['position_size']:.2f})")
print(f" Stop: ${signal_data['stop_loss']:.2f} (7%) | Target: ${target_price:.2f}")
print(f" Risk/Reward: 1:{signal_data['r_r']:.1f} | Risk: ${dollar_risk:.2f}")
except Exception as e:
print(f"Error processing {ticker}: {str(e)}")

View File

@ -1,12 +1,12 @@
class PositionCalculator:
def __init__(self, account_size: float, risk_percentage: float = 1.0, stop_loss_percentage: float = 6.0):
def __init__(self, account_size: float, risk_percentage: float = 1.0, stop_loss_percentage: float = 7.0):
"""
Initialize position calculator with account size and risk percentage
Args:
account_size (float): Total trading account value
risk_percentage (float): Maximum risk per trade as percentage (default 1%)
stop_loss_percentage (float): Stop loss percentage (default 6%)
stop_loss_percentage (float): Stop loss percentage (default 7%)
"""
self.account_size = account_size
self.risk_percentage = risk_percentage / 100.0 # Convert to decimal