This commit is contained in:
zastian-dev
2026-02-10 19:38:01 +00:00
parent 570298a935
commit b75e93d2fa

View File

@@ -428,6 +428,10 @@ impl TradingBot {
let current = &indicators[indicators.len() - 1]; let current = &indicators[indicators.len() - 1];
let previous = &indicators[indicators.len() - 2]; let previous = &indicators[indicators.len() - 2];
if current.rsi.is_nan() || current.macd.is_nan() {
return None;
}
Some(generate_signal(symbol, current, previous)) Some(generate_signal(symbol, current, previous))
} }
@@ -487,7 +491,7 @@ impl TradingBot {
// Phase 2: Momentum ranking - only buy top N momentum stocks // Phase 2: Momentum ranking - only buy top N momentum stocks
let mut ranked_signals: Vec<&TradeSignal> = signals let mut ranked_signals: Vec<&TradeSignal> = signals
.iter() .iter()
.filter(|s| !s.momentum.is_nan() && s.momentum != 0.0) .filter(|s| !s.momentum.is_nan())
.collect(); .collect();
ranked_signals.sort_by(|a, b| { ranked_signals.sort_by(|a, b| {
b.momentum.partial_cmp(&a.momentum).unwrap_or(std::cmp::Ordering::Equal) b.momentum.partial_cmp(&a.momentum).unwrap_or(std::cmp::Ordering::Equal)
@@ -505,8 +509,8 @@ impl TradingBot {
top_momentum_symbols top_momentum_symbols
); );
// Phase 3: Process buys (only for top momentum stocks) // Phase 3: Process buys in momentum-ranked order (highest momentum first)
for signal in &signals { for signal in &ranked_signals {
if !top_momentum_symbols.contains(&signal.symbol) { if !top_momentum_symbols.contains(&signal.symbol) {
continue; continue;
} }