Methodology

How This Works

This page explains the system, where the stock list comes from, what gets filtered out, what each gate checks, and why a name ends up in Trade-Ready, Near-Breakout Monitor, Watchlist, or Too Expensive. It also explains the hard safety guardrails that now block risky setups before they can be marked Trade-Ready.

What It Is

The app looks through a TSX stock pool, removes names that are too illiquid, checks chart strength, volume, market conditions, news quality, and whether the setup fits your account size, then sorts the survivors into a few practical buckets. It now also enforces hard account safety checks (risk cap, earnings window, and open-position cap).

What It Is Not

It is not an auto-trader, not a day-trading bot, and not a prediction machine. It is a decision filter designed to help you find a small number of cleaner TSX swing setups.

What Is Swing Trading?

Swing trading means holding a stock for days to weeks to capture a single directional price move, then exiting — rather than holding long-term or trading intraday.

  • A stock builds up energy: it consolidates, forms a base, and approaches a resistance level.
  • It breaks out above that level on strong volume.
  • You ride the move for a few days until it hits your target or your stop.
  • You exit and look for the next setup.

vs. day trading: Day traders open and close within the same session. Swing traders hold overnight and across days.

vs. buy-and-hold: Buy-and-hold investors hold for months or years regardless of short-term moves. Swing traders are in and out selectively.

The main risk is that overnight holds expose you to gap-downs on news. Disciplined stop placement and a minimum 2:1 reward-to-risk requirement — as enforced by this app — are how you manage that.

Where The Stocks Come From

The source list now comes from the official TMX Listed Company Directory workbook.

  • Exchange scope is TSX only.
  • Symbols are normalized to Yahoo format (for example, ENB becomes ENB.TO).
  • The parser keeps common-equity listings and filters out non-target instruments like ETFs, funds, trusts, debentures, rights, warrants, split shares, and preferreds.
  • The result is cached locally and refreshed on a schedule, with stale-cache fallback if TMX is temporarily unavailable.

In practical terms, the funnel looks like this:

  • The TMX source produces a broad TSX-common-equity candidate pool.
  • The app hydrates market data and applies symbol health cooldowns to repeated failures.
  • Liquidity, trend, breakout, risk/reward, upside-room, regime, and account-fit gates reduce the pool to the final signal universe.
  • Because this is market- and gate-dependent, the final count is dynamic (often around the low hundreds rather than the full source list).

What Data It Pulls

For each stock, the app pulls:

  • About 6 months of daily price history.
  • Recent volume data.
  • Trend data like 20-day and 50-day moving averages.
  • ATR, recent swing highs/lows, support, and resistance.
  • Recent news headlines and publisher quality.
  • A broad market regime check using the TSX index.

Main Filters

The stock has to survive several layers before it matters.

1. Liquidity Gate

If a stock is too thin, noisy, or awkward to trade, it gets cut early.

The current baseline is around $12M average daily dollar volume, at least about 250k average shares, and a price floor around $6.

2. Trend Gate

The app prefers stocks already acting stronger than their recent trend lines.

A basic version of this is price above the 20-day average, with the 20-day above the 50-day.

3. Breakout Gate

Trade-Ready names usually need to be breaking above the recent range, not just sitting in the middle of it.

If the stock is close but not through the level yet, it can become Near-Breakout instead.

4. Volume Gate

A move means more when it happens with stronger-than-normal activity.

The system compares current volume versus recent average volume and wants a clear pickup.

5. Risk/Reward Gate

The upside has to be big enough relative to the downside.

Trade-Ready requires about 2:1 net reward-to-risk after estimated friction. Near-Breakout monitoring allows a softer threshold.

6. Upside Room + Ceiling Gate

The setup needs enough room left to move, not a ceiling directly overhead.

The engine checks projected upside and blocks Trade-Ready setups that sit too close to the 52-week/target ceiling.

7. Market Regime Gate

Even good charts can fail more often when the overall market is weak.

The app checks TSX regime trend and risk state. Trade-Ready remains stricter than monitor buckets when regime is weak.

8. Account-Fit Gate

A setup can be good on paper but still wrong for a small account.

The app checks affordable shares, preferred price range, and capital deployment fit for your current balance tier.

9. Account Risk Gate (Hard Block)

If estimated max loss is too large versus account size, the setup is blocked.

Default hard-block is above 3% account risk; 2%+ shows caution.

10. Earnings Window Gate (Hard Block)

Setups too close to earnings are blocked to avoid gap-risk.

Default: hard-block within 7 days, caution flag between 8 and 14 days.

11. Max Positions Gate (Hard Block)

New Trade-Ready setups are blocked when all position slots are already filled.

Default cap is tier-based: generally 1 slot under $1k, 2 slots at $1k+.

12. Catalyst Quality Scoring

News quality still matters, but it mostly adjusts score rather than hard-blocking execution.

Publisher quality, freshness, and relevance contribute to confidence and ranking.

How A Stock Becomes Trade-Ready

A stock is only called Trade-Ready if all of these are true:

  • It fits your account size.
  • Its max estimated loss stays within the account risk hard cap (default 3%).
  • Your open positions are below your account's max concurrent limit.
  • It is outside the earnings danger window (default hard-block within 7 days).
  • It has actually broken above the recent breakout area.
  • Volume is strong enough.
  • The chart trend is aligned.
  • Risk/reward is at least about 2:1 after friction.
  • There is still enough upside room left (including ceiling headroom).
  • The overall market regime allows it.

If a stock is close but not fully there, it usually ends up in Near-Breakout Monitor or Watchlist instead of Trade-Ready.

Trade-Ready stays strict on purpose. Near-Breakout has a slightly softer monitor profile (for example, lower minimum upside/risk-reward and less strict regime requirements) so you can track setups that are approaching validity without calling them execution-ready too early.

Hard Safety Guardrails (New)

These checks are enforced, not advisory. If one fails, the setup cannot be Trade-Ready.

  • Account Risk Gate: hard-block above 3% max-loss vs account size; caution shown at 2%+.
  • Earnings Exclusion Gate: hard-block if earnings are within 7 calendar days; soft warning from 8-14 days.
  • Max Concurrent Positions Gate: hard-block when open positions already fill the account cap.

Default max concurrent positions are account-tiered: 1 for smaller accounts (under about $1k), and 2 for larger small accounts ($1k+), unless manually overridden in rules.

What The Different Buckets Mean

Trade-Ready

The strict execution gate passed. This is the short list.

Near-Breakout Monitor

Close to the trigger level, but still needs confirmation.

Watchlist

Interesting enough to monitor, but not good enough to act on yet. Shown as 'Monitor Now' when it is the only active section.

Too Expensive

Potentially decent setup, but it does not realistically fit the current account size.

How Account Size Changes The Gate

The app is account-aware. It reads your journal balance and adjusts what counts as realistically tradable.

  • Smaller accounts are pushed toward cheaper names and tighter capital-fit rules.
  • The system checks if you can afford enough shares to make the trade meaningful.
  • It also checks if the trade uses enough of your usable capital to matter.
  • It enforces a max-loss cap against account size (risk hard-block at 3%, caution at 2%).
  • It enforces a maximum number of simultaneous open positions by tier.
  • If the stock is good but too expensive for your current balance, it goes into Too Expensive.

So the gate is not only asking, “Is this a good chart?” It is also asking, “Is this a good chart for your actual account size?”

The system uses account tiers with different preferred price bands:

Account TierBalance RangePreferred Price BandMin Shares
Micro$0–$300$3–$301
Small$301–$750$6–$605
Mid$751–$1,500$6–$1005
Expanded$1,500+$6–$1605

As your account grows, the preferred price band expands automatically. So a stock at $65 might be "Too Expensive" for a $500 account (Small tier max $60) but become "Trade-Ready" once your balance crosses $750 into the Mid tier (max $100).

Strictness Levels

The engine supports three modes:

  • Strict: fewer names, stronger confirmation needed.
  • Balanced: middle ground.
  • Loose: more names, weaker confirmation allowed.

Right now the product direction is to keep the live app focused on one balanced execution style, so the system does not drift into too many modes on-screen.

Theme Breadth

Themes are group context, like gold, energy, telecom, or clean energy.

Breadth means: how many stocks in that theme are also acting strong right now.

In the current version, theme is mostly context, not a hard blocker. That means a stock can still qualify even if its theme breadth is weak. The theme label is there to help you understand the backdrop, not to shut trades down automatically.

What The App Is Really Trying To Do

The app is trying to answer four plain questions:

  1. Is this TSX stock liquid enough to matter?
  2. Is the chart setup strong enough to deserve attention?
  3. Is the broader market supportive enough right now?
  4. Does this trade actually fit the size of your account?

Only when the answer stays good all the way down the chain does a stock become Trade-Ready.

Refresh And Rebuild

  • The universe snapshot can auto-refresh when it gets stale, or be rebuilt manually with Refresh.
  • Market data calls use retry/backoff handling to reduce temporary provider errors.
  • Symbols that repeatedly fail hydration are put on cooldown to avoid wasting scan capacity.
  • Refresh logs track rejection reason totals so you can see which gates are blocking the most names.
  • The app keeps a weekly scan report so you can review what the system has been finding over time.

Bottom Line

This is a TSX swing-trade filter, not a crystal ball. It tries to reduce noise, focus attention on cleaner setups, and stop you from forcing trades that either do not fit the market or do not fit your account.

The real goal is not “find the most stocks.” The goal is “find the fewest stocks worth taking seriously.”