← Back to dashboard

Research Notes

The full methodology, backtests, and journals behind your weekly plan

75% ETFs / 25% opportunity Long-term ETFs Weekly live scan Stops + profit targets Mixed stocks Quick wins Autoresearch lab Momentum & universe Paper trial Cushioned quick wins

My DCA Strategy: 75 / 25

Every month the contribution is split the same way, no matter what the market does. Goal: durable growth with controlled upside — ETFs do most of the compounding; the opportunistic sleeve takes only scored, risk-defined setups.

75%

Core — VWCE / VUAA

€150 / month

All-world (VWCE) + S&P 500 (VUAA) accumulating ETFs. Pure buy-and-hold DCA: fixed day, no timing, never sold to fund the other sleeves. This is the ballast — it roughly matches the benchmark by construction.

25%

Opportunistic

€50 / month

Deployed only when the weekly scan flags a setup (conviction ≥ threshold). Which stock? The highest-scoring names from your tactical watchlist — never the ETF core. Review every 7 or 14 days; exit at a 7% stop, a 10% profit target, or the maximum hold date. No setup → cash rolls forward.

The alpha target

Benchmark: S&P 500 at the deck's 8%/yr assumption. The opportunistic sleeve targets +3%/yr of alpha above the index, so the blended 75/25 plan runs ≈+0.75%/yr ahead of the benchmark — carried entirely by the 25% outside the core.

Check quarterly: portfolio total return vs CSPX/VUAA. If the sleeve trails the index for 12+ months, shift weight back toward the 75% core. Assumed returns are illustrative, not forecasts.

Choose a Portfolio Style

Use left/right arrows to continue. Change assumptions anytime. Double-click a card to jump to Portfolio Mix (pie).

Projection Controls

Expected Value

€0

Best Case

€0

Stress Case

€0

Growth Curves

Expected vs upside/downside envelope by selected strategy — or check “overlay all” above.

Compare All Strategies

Every line uses the expected return assumption for that strategy . Adjust sliders on the Projection Controls slide.

Next: pick one card on “Choose a Portfolio Style” or use Best Bet for a ranked pick.

What To Do (Plain English)

Selected strategy: Follows your selected portfolio card

Goal:

Why these stocks make sense:

    Quick Wins and Cushioned Quick Wins use stop/invalidation behavior from the scorecard: if price closes below stop, exit instead of averaging down.

    Quick Wins (Short-Term)

    Momentum and catalyst-driven sleeve: 4–12 week horizon, higher turnover and volatility than core ETFs. Tickers are yours: the table below only scores symbols from your watchlist in data/quick-wins.json (set when you run the generator). It does not pick random stocks. Live scores use the same engine as MCP build_quick_wins_context — regenerate before deploy.

    • Favor liquid names (large-cap tech + tactical ETFs)
    • Tighter stops; take profits into strength
    • Refresh data: swing-ibkr-gen-quick-wins from the repo (writes data/quick-wins.json)

    Autoresearch Lab

    Backtest of the 25% opportunistic sleeve from your 75/25 plan. Rules live in autoresearch/strategy.py; charts below score those rules vs CSPX.L. Regenerate: swing-ibkr-gen-autoresearch.

    Equity curve (indexed)

    Excess return per period

    Strategy drawdown

    Primary metric: risk_adjusted_alpha = alpha − 0.35×|max drawdown|. Higher is better. Simplified Yahoo backtest — for comparing rule changes, not a live P&L forecast.

    Momentum & Universe

    How momentum drives picks (35% of conviction) and how to improve the watchlist universe. Regenerate: swing-ibkr-gen-momentum-universe.

    30-day momentum by ticker (vs benchmark)

    Agent scores (technical / momentum / risk)

    News themes — headline depth

    Momentum buys recent strength; Sharpe penalizes bumpy paths. Tune weights in autoresearch/strategy.py; tune candidates in config/news_themes.json.

    Paper Trial Journal

    Forward test of the 25% opportunistic sleeve — virtual executions with conviction notes and news context. Regenerate: swing-ibkr-gen-paper-trial.

    Paper trial state: reports/paper-trial-state.json. Advance with swing-ibkr paper-trial run; mirror on Alpaca with swing-ibkr alpaca execute --budget 20.

    How Quick Wins Works

    A short chapter on what the system actually does — and what it does not guess.

    1. It does not pick tickers out of thin air

    The engine only scores symbols you put on the watchlist (comma-separated list when you run the generator or MCP). It does not scan the market, read filings, or rank “the best stocks in the world.” If a symbol has no usable Yahoo Finance history, it disappears from the scorecard until data exists.

    2. Price data and eligibility

    For each ticker it downloads roughly half a year of daily OHLCV via Yahoo. A name must have at least 60 trading days of bars to be scored at all; shorter histories are skipped.

    3. Three “agents,” one number: conviction

    Technical agent looks at the last price versus a 20-day and 50-day average, and at RSI(14). Price above the 20-day and the 20 above the 50 adds points; RSI deeply oversold adds a bit, extreme overbought subtracts.

    Momentum agent rewards positive 30-day and 10-day returns and penalizes clear negative drift.

    Risk agent starts from a generous baseline then penalizes high annualized volatility (from the last 20 daily returns) and large drawdown from the recent peak.

    Those three scores (0–100 each) are blended into a single conviction score: 40% technical, 35% momentum, 25% risk — then rounded to an integer.

    4. From conviction to Buy / Add / Hold / Trim / Exit

    Quick Wins uses a score threshold (default 72) from the memo config. At or above threshold + 8 → “Buy”; at or above threshold → “Add”; softer bands → Hold, Trim, or Exit. That is pure rule arithmetic — not a discretionary story about the company.

    5. Entry zone and stop (mechanical)

    Entry band is built from the minimum of last close and the 20-day average, ±1%. The invalidation line is roughly 7% below last close (formatted as “< price”). Position size % scales from conviction when action is Buy/Add or Hold — again a formula, not chat advice.

    6. How the table is ordered

    Every surviving ticker gets a row; rows are sorted by conviction, highest first. So “who wins” on the scorecard is whoever scored highest under the same rules — not a separate AI vote per row.

    7. This deck’s charts vs the scorecard

    The Robinhood-style growth curves on other slides use hand-picked annual return assumptions per strategy (core ETF, AI, etc.) to illustrate compounding — they are not outputs of the Yahoo scoring pipeline. Only the Quick Wins table is tied to live (or demo-fallback) JSON from the generator.

    Nothing here is investment advice; it is a transparent description of mechanics so you can judge limits and change the watchlist, thresholds, or code if you disagree with the design.

    Portfolio Mix (Current Selection)

    Slice amounts show your share of capital if total deployed is between €100 and €200 (same percentages scale to any size).

    Best Bet Recommendation

    Loading recommendation...

    Publish to Cloudflare Pages

    
    cd /Users/uzzielperez/Desktop/swing-trader-ibkr
    npx wrangler pages deploy portfolio-reveal-site --project-name alphatrade-portfolio
            

    Live at alphatrade-portfolio.pages.dev. Requires npx wrangler login once. The dashboard at index.html is the daily view; this deck is the study companion.