ALGORITHM PERFORMANCE RESEARCH

Deep analysis of all failing prediction systems • Generated Feb 16, 2026

Algorithm Analysis Live vs Research Alerts Dashboard GitHub Research

TABLE OF CONTENTS

1. Executive Summary

10
Active Alerts
3
Critical Alerts
7
Warning Alerts
6
Systems Tracked
Critical Finding: The 3 worst-performing algorithms (Consensus, Ichimoku Cloud, Awesome Oscillator) account for 669 picks and -$431 total loss. Meanwhile, 3 strong algorithms (ADX Trend Strength, Momentum Burst, RSI(2) Scalp) are profitable but underutilized with only 257 picks and +$166 total profit. The system is over-weighting its worst strategies.

System Health Overview

SystemPicksWin RateAvg ReturnStatusRoot Cause
Live Signal1,656 44.4%-0.25% DEGRADED Worst algos dominate volume; best algos underused
Consolidated82 9.5%-3.98% CRITICAL Correlated LONG-only picks; 14/15 lost on Day 1; no price tracking for 7 tickers
Meme Scanner29 0%-0.16% FAILING Tokens too obscure for price feeds; LONG-only; tight SL
Edge Dashboard4 75%+0.24% STALE Algorithm works (75% WR) but pipeline dead since Feb 10
Sports Betting69 N/AN/A STALE No outcome resolution possible; pipeline dead since Feb 12
Penny Stocks6 N/AN/A NEW Too early to evaluate; no closures yet

2. Live Signal System — Deep Dive

The largest system with 1,656 picks across 16 algorithms. Overall 44.4% win rate, -0.25% average return.

2.1 Algorithm Performance Ranking

Algorithms ranked by profitability (avg return). Green = profitable, Red = losing money. The system should weight toward profitable algorithms and reduce/disable unprofitable ones.
RankAlgorithmPicksWin RateAvg ReturnTotal P&LGrade
1Momentum Burst9 55.6%+2.93%+$14.65 A+
2Breakout 24h2 50.0%+2.44%+$4.87 A
3RSI(2) Scalp17 58.8%+0.92%+$15.66 A
4Bollinger Squeeze7 42.9%+0.66%+$3.97 B+
5ADX Trend Strength231 58.9%+0.62%+$136.10 A
6Challenger Bot9 11.1%+0.52%+$1.04 C
7VAM125 37.6%+0.21%+$22.50 B
8Volume Spike38 21.1%+0.19%+$3.17 C+
9Trend Sniper265 35.5%-0.16%-$38.18 D
10Alpha Predator58 43.1%-0.20%-$11.74 D
11StochRSI Crossover182 43.4%-0.31%-$56.16 D-
12Ichimoku Cloud471 39.7%-0.47%-$196.31 F
13RSI Reversal1 0%-0.89%-$0.89 F
14MACD Crossover43 30.2%-0.97%-$33.12 F
15Awesome Oscillator41 39.0%-1.13%-$41.82 F
16Consensus157 24.2%-1.23%-$193.51 F

2.2 Key Findings

Ichimoku Cloud is the #1 problem. It generates the most picks (471 = 28% of all signals) yet has a 39.7% win rate and -$196 total loss. It alone accounts for 53% of the system's total losses.
Consensus algorithm is the worst per-trade. At 24.2% win rate across 157 trades, it loses -1.23% per trade on average. It acts as a "worst of" ensemble — when multiple bad algorithms agree, it amplifies the error.
ADX Trend Strength is the clear winner. 231 picks, 58.9% win rate, +$136 total profit. This algorithm should be given MORE weight in the ensemble, not less.

2.3 Daily Performance Trend

DatePicksWinsLossesWin RateAssessment
Feb 103012653688.0%Excellent
Feb 1159615044625.2%Crash
Feb 1233811622234.3%Poor
Feb 1324713211553.4%Recovery
Feb 16110110%11-loss streak
Feb 11 was catastrophic: 596 picks with only 25.2% win rate. This coincided with a crypto market selloff. The system lacked a regime filter — it continued generating LONG signals into a falling market. A simple volatility or trend regime check would have paused signals.

2.4 Proposed Changes for Live Signal

P0 Disable or heavily throttle Consensus algorithm

The Consensus algorithm has the worst per-trade performance (-1.23% avg). With 157 picks generating -$193 in losses, it should be disabled immediately. The "consensus of bad algorithms" problem means it amplifies errors rather than filtering them.

Proposed replacement: "Weighted Consensus" — only count signals from algorithms with >45% win rate (ADX, RSI(2) Scalp, VAM, Bollinger Squeeze). Require at least 2 profitable algorithms to agree before generating a signal.

P0 Reduce Ichimoku Cloud signal volume by 70%

Ichimoku Cloud generates 471 picks (28% of volume) but loses money. Add stricter filters:

  • Require ADX > 25 (confirming trend strength) before accepting Ichimoku signals
  • Require price to be clearly outside the cloud (not just touching it)
  • Reduce confidence score threshold from 50 to 65
  • Limit to 5 Ichimoku signals per 6-hour window (prevent flood)

P1 Add market regime filter

The Feb 11 crash (25.2% WR) shows the system doesn't adapt to market conditions. Implement a regime detector:

// Regime Detection (run every 30 min) btc_24h_change = (btc_now - btc_24h_ago) / btc_24h_ago * 100 btc_volatility = stddev(btc_hourly_returns, 24) // 24-hour rolling if btc_24h_change < -3% AND btc_volatility > 2%: regime = "RISK_OFF" // Pause all LONG signals, allow SHORTs only elif btc_24h_change > 5%: regime = "EUPHORIA" // Tighten SL, reduce position sizing else: regime = "NORMAL" // Full signal generation

P1 Amplify ADX Trend Strength signals

The best algorithm (58.9% WR, +$136) should generate more signals:

  • Lower the ADX confirmation threshold from 25 to 20 for high-conviction setups
  • Allow ADX signals on more timeframes (currently just one)
  • When ADX confirms AND another profitable algo agrees, boost confidence to 90+

P2 Implement "Algorithm Confidence Weighting"

Instead of treating all algorithm signals equally, weight them by historical performance:

// Dynamic weight calculation (recalculate weekly) algo_weight = (win_rate * 2) + (avg_return * 10) + (sample_size_bonus) // Example weights based on current data: ADX Trend Strength: (0.589 * 2) + (0.62 * 10) + 10 = 17.38 // HEAVY RSI(2) Scalp: (0.588 * 2) + (0.92 * 10) + 5 = 15.38 // HEAVY VAM: (0.376 * 2) + (0.21 * 10) + 8 = 10.85 // MEDIUM Ichimoku Cloud: (0.397 * 2) + (-0.47 * 10) + 10 = 5.49 // LOW Consensus: (0.242 * 2) + (-1.23 * 10) + 8 = -3.82 // DISABLED

3. Consolidated Picks — Deep Dive

82 stock picks from the consensus engine. 21 closed, 2 wins (9.5% win rate), -3.98% average return.

9.5%
Win Rate (21 closed)
-$83.48
Total Return
-3.98%
Avg Return / Trade
8% / 4%
TP / SL (all picks)

3.1 Root Cause Analysis

Problem 1: Catastrophic Day 1. Feb 10 had 15 closures with 14 losses and 1 win. All picks were LONG. This single day poisoned the entire system's statistics. The 14 losers were all momentum/sector plays that got stopped out simultaneously — classic correlated-loss scenario.
Problem 2: Asymmetric R:R requires 33% WR. With 8% target and 4% stop loss (2:1 ratio), the system needs >33% win rate just to break even. At 9.5%, it's deeply underwater. The R:R ratio is appropriate, but the signal quality is far too low.
Problem 3: Price tracking gaps. 7 of 82 picks had $0 current price (now fixed), meaning the outcome checker couldn't resolve them. 3 (SNAP, UBER, CSCO) had actually hit stop losses days ago but weren't recorded. The true loss count was higher than reported.

3.2 Daily Breakdown

DateClosedWinsLossesWin RateKey Losers
Feb 10151146.7%14 sector/momentum plays all SL'd
Feb 111010%Alpha Factor combo SL
Feb 1221150%DIS won (+3%), quality pick SL'd
Feb 133030%SNAP -6.9%, UBER -6.1%, CSCO -11.5%

3.3 What Won vs What Lost

CategoryAlgorithm(s)ResultInsight
WIN Blue Chip Growth + Alpha Factor Quality AMT +9.88% Quality + growth filters together = best combo
WIN Mean Reversion Sniper DIS +3.0% (expired) Mean reversion on blue chip worked
LOSS x14 Various momentum/sector plays Avg -4.2% All correlated LONG, all SL'd on same downturn

3.4 Proposed Changes for Consolidated

P0 Add position correlation check

Never allow >5 simultaneous LONG picks in the same sector or >10 total correlated LONG picks. The Feb 10 disaster had 15+ LONG picks all entering simultaneously — when the market dipped, all hit SL together.

// Correlation Guard max_same_direction = 10 // Max picks in same direction at once max_same_sector = 3 // Max picks in same GICS sector cooldown_after_sl = 4h // After 3 SL hits in 1 hour, pause for 4 hours if count_open(direction='LONG') >= max_same_direction: skip_new_long_signals() if count_open(sector=pick.sector) >= max_same_sector: skip_signal()

P0 Tighten entry criteria: Require multi-factor confirmation

Currently, 2 algorithms agreeing triggers a pick. Raise to 3+ algorithms, with at least 1 being a "quality" factor (Alpha Factor Quality, Alpha Factor Safe Bets, Blue Chip Growth).

The ONLY winning algorithm combo was "Blue Chip Growth + Alpha Factor Quality" — quality-first picks outperform.

P1 Add market environment filter

Check S&P 500 and VIX before generating picks:

  • If SPY is below its 20-day SMA: reduce pick count by 50%, require 4+ algo agreement
  • If VIX > 25: pause all momentum picks, only allow quality/value factor picks
  • If 3+ picks hit SL in same day: activate "defensive mode" for next 24h

P2 Adjust R:R based on volatility

Fixed 8%/4% TP/SL doesn't account for individual stock volatility. SNAP (very volatile) and JPM (low volatility) shouldn't have the same targets.

// Volatility-adjusted targets atr_20 = average_true_range(ticker, 20) // 20-day ATR tp_pct = max(6%, min(12%, atr_20 * 2.5)) // 2.5x ATR, clamped 6-12% sl_pct = max(2%, min(5%, atr_20 * 1.2)) // 1.2x ATR, clamped 2-5%

4. Meme Scanner — Deep Dive

29 picks on micro-cap meme tokens. 0% win rate. All 6 closed trades were losses; 23 expired with no outcome data.

0%
Win Rate
29
Total Picks
6
SL Hits
23
Expired (no data)

4.1 Token Analysis

TokenPicksOutcomeProblem
WHITEWHALE_USDT5All expired No price API available for White Whale token
PIPPIN_USDT5All expired No price API; picked 5 times in 24h (over-trading)
TOSHI_USDT4All expired No price API; 4 picks in 2 hours on same token
BUTTCOIN_USDT3All expired No price API; repeated picks on fading momentum
MOODENG_USDT44 SL hits SL triggered in <2h each time; kept re-entering after losses
BONK_USDT22 SL hits -2.3% loss both times; same entry/SL levels
COPPERINU_USDT2All expired No price API
FLOKI_USDT1Expired No price API (note: FLOKIUSD works on live_signal)
QUQ_USDT2All expired No price API; extremely low-cap token

4.2 Root Causes

Fatal Flaw 1: No price feed for 80% of tokens. 23 of 29 picks could never be resolved because the tokens are too obscure for any price API. The scanner picks tokens that can't be tracked. This means the 0% win rate is based on only 6 tracked trades — the true performance is unknown for the other 23.
Fatal Flaw 2: Repeated entries after losses. MOODENG was picked 4 times in 1 hour (all hit SL). PIPPIN was picked 5 times in 24h. The scanner has no cooldown — it keeps re-entering losing positions.
Flaw 3: LONG-only strategy in falling meme market. All 29 picks were LONG. During the Feb 11-12 crypto selloff, every meme token fell. No SHORT capability means the scanner can only lose in bear conditions.
Flaw 4: 2-hour hold period too short. Meme tokens are volatile. A 2-hour window with 1.5-3.5% SL gets stopped out by normal noise. The risk/reward is fundamentally broken for micro-caps.

4.3 Proposed Meme Scanner Redesign

P0 Whitelist trackable tokens only

Only generate picks for tokens that have a verified price API endpoint. Maintain a whitelist of tokens with confirmed CoinGecko/CMC/exchange API coverage. Reject any token not on the whitelist.

// Whitelist: tokens with confirmed price tracking TRACKABLE_MEMES = [ 'BONK_USDT', 'FLOKI_USDT', 'PEPE_USDT', 'DOGE_USDT', 'SHIB_USDT', 'WIF_USDT', 'MEME_USDT', 'MOODENG_USDT', 'POPCAT_USDT', 'NEIRO_USDT' ] // Before generating pick: if token not in TRACKABLE_MEMES: skip("No price tracking for " + token)

P0 Add per-token cooldown

After any pick on a token (win, loss, or expiry), enforce a 6-hour cooldown before re-picking. After 2 consecutive losses on same token, enforce 24-hour cooldown.

P1 Increase hold period and widen SL

Meme tokens need wider stops and longer hold times due to their volatility:

  • Hold period: 2h → 8-12h (allow for recovery from noise)
  • Stop loss: 1.5-3.5% → 5-8% (wider to avoid noise stop-outs)
  • Target: Keep at 3-6% or increase to match wider SL (maintain 2:1 R:R)

P1 Add volume/liquidity filter

Only pick tokens with >$500K 24h trading volume. Tokens like QUQ and COPPERINU have extremely low liquidity — the "price" may not reflect executable levels. Low liquidity also means wider spreads that eat into returns.

5. Edge Dashboard — Pipeline Gap Analysis

Only 4 picks total, all from Feb 10. Despite 75% win rate, the system hasn't generated a new pick in 6 days.

75%
Win Rate
4
Total Picks
+$0.95
Total Return
6 days
Since Last Pick

5.1 Performance (Small Sample)

TickerDirectionOutcomeReturn
DOGEUSDSHORTTP Hit+2.50%
DOTUSDSHORTExpired Win+1.10%
INJUSDSHORTExpired Win+1.15%
ETHUSDLONGSL Hit-3.79%
The Edge Confluence algorithm works well. 3 out of 4 picks were winners. The one loss (ETHUSD LONG) was against the bearish trend that the other 3 SHORT picks correctly identified. The algorithm's strength is requiring 3+ algorithms to agree — high-conviction signals only.

5.2 Why No New Picks?

The lm_opportunities table stopped receiving data after Feb 10. The Edge Dashboard scans for "confluence" — moments when 3+ different algorithms simultaneously signal the same asset. This is a rare event by design. However, 6 days with zero picks suggests the scanning pipeline (GitHub Actions workflow) may have stopped running, not that conditions haven't been met.

5.3 Proposed Fix

P1 Verify and restart Edge scanning pipeline

  • Check if the GitHub Actions workflow that populates lm_opportunities is still running
  • Lower confluence threshold from 3 to 2 algorithms (more picks, slightly lower quality)
  • Add more algorithm sources to the confluence check (currently seems limited)
  • Generate at least 1 pick per day — if no 3-algo confluence exists, output a 2-algo pick with lower confidence

6. Sports Betting — Outcome Resolution & Pipeline

69 picks from Feb 11-12 (all basketball), all now expired. No outcome resolution was ever possible.

69
Total Picks
0
Resolved
4 days
Since Last Pick
value_bet
Algorithm Used

6.1 Why Outcomes Were Never Resolved

The goldmine tracker's outcome checker only handles price-based assets. It checks current price vs entry/TP/SL for stocks and crypto. Sports bets have a fundamentally different outcome model — a game is won or lost, not a price that moves. The tracker has no integration with a sports scores API.

6.2 What the Picks Look Like

All 69 picks were basketball moneyline or spread bets from the Odds API, with these characteristics:

6.3 Proposed Fix

P0 Add sports outcome resolution via ESPN API

Integrate the free ESPN scoreboard API to resolve sports bets after game completion:

// Sports Outcome Resolution // 1. Parse ticker: "basketball_nba:Golden State Wa" -> sport + team // 2. Check ESPN API: https://site.api.espn.com/apis/site/v2/sports/basketball/nba/scoreboard // 3. Match game by team name + date // 4. If our pick team won: mark as "tp_hit" (win) // 5. If our pick team lost: mark as "sl_hit" (loss) // 6. For spreads: check if team covered the spread // Run: every hour during game days, check all open sports picks // where pick_time + 5 hours < now (game should be finished)

P1 Restart sports betting pipeline

The lm_sports_daily_picks table stopped receiving data after Feb 12. The Odds API integration (sports-betting-refresh workflow) needs to be verified and restarted. With no new picks, no performance data can be accumulated.

P2 Improve value_bet algorithm

All 69 picks used the same "value_bet" algorithm. Consider adding:

  • Injury check: Cross-reference with injury reports before placing picks
  • Recent form: Check team's last 5-game record (win streak / losing streak)
  • Home/away factor: Weight home advantage more heavily for NCAAB
  • Line movement: If the line moves against the pick before game time, reconsider

7. Proposed Algorithm Improvements — Summary

7.1 Quick Wins (Fix in <4 hours)

PriorityChangeExpected ImpactSystem
P0 Disable Consensus algorithm Eliminate -$193 in losses (157 bad picks removed) Live Signal
P0 Add Ichimoku ADX confirmation filter ~70% fewer Ichimoku picks, much higher quality Live Signal
P0 Whitelist trackable meme tokens 100% of meme picks become trackable Meme
P0 Add correlation guard (max 10 same-direction) Prevent Feb 10-style 14-loss days Consolidated

7.2 Medium-Term (1-2 days)

PriorityChangeExpected ImpactSystem
P1 Add market regime filter (BTC/SPY trend check) Avoid trading against macro trend; prevent -25% WR days All Systems
P1 Implement algorithm confidence weighting Best algos get more picks, worst get fewer Live Signal
P1 Sports outcome resolution via ESPN API 69 picks become trackable; real sports WR data Sports
P1 Restart Edge/Meme/Sports pipelines Fresh data flowing; stale alerts auto-resolve Edge, Meme, Sports
P1 Meme scanner: wider SL (5-8%), longer hold (8-12h) Fewer false SL triggers from normal volatility Meme

7.3 Longer-Term (1 week+)

PriorityChangeExpected ImpactSystem
P2 Volatility-adjusted TP/SL for stocks Better R:R per ticker; fewer premature SL hits Consolidated
P2 Multi-factor sports algorithm (injuries + form + home) Higher-quality sports picks Sports
P2 Add SHORT capability to Meme Scanner Profit in bear meme markets Meme
P2 Auto-pause algorithm after 5 consecutive losses Circuit breaker prevents runaway losses All Systems

8. Implementation Roadmap

Phase 1: Emergency Fixes (Today)

  1. Disable Consensus algorithm in lm_signals configuration
  2. Add Ichimoku-ADX confirmation requirement to signal generator
  3. Add correlation guard to consolidated picks engine
  4. Create meme token whitelist in mc_winners config

Phase 2: Infrastructure (This Week)

  1. Implement market regime filter (BTC trend + VIX check)
  2. Build ESPN API integration for sports outcome resolution
  3. Restart all stale pipelines (Edge, Meme, Sports)
  4. Deploy algorithm confidence weighting system

Phase 3: Optimization (Next Week)

  1. Implement volatility-adjusted TP/SL for consolidated picks
  2. Add per-token cooldown for meme scanner
  3. Build auto-pause circuit breaker for all algorithms
  4. Add SHORT capability to meme scanner

Expected Impact After All Phases

>50%
Target: Live Signal WR
>35%
Target: Consolidated WR
>30%
Target: Meme Scanner WR
0
Target: Stale Systems
Projected outcome: If the top-3 changes are implemented (disable Consensus, filter Ichimoku, add regime detector), the Live Signal system alone should improve from 44.4% to ~52%+ win rate, and the portfolio would swing from -$370 to approximately breakeven or slightly positive. The key insight is that the system already has profitable algorithms (ADX, RSI(2), Momentum Burst) — we just need to stop the unprofitable ones from drowning them out.
Algorithm Performance Research • Generated Feb 16, 2026 at 23:20 UTC
Data source: goldmine_tracker.phpMaintenance StatusAlerts Dashboard