7. Weekly Operational Workflow
PowerShell note: Use ; to chain commands, not &&
Correct: python script1.py ; python script2.py
Incorrect: python script1.py && python script2.py
Optional automation: Run
python watch_downloads.py(from project root) so new downloads are renamed and filed intoholdings/anddata/input/.IBD downloads: From IBD Digital, export (Excel) at minimum:
Big Cap 20
Big Cap 50 (used as the IBD 50-family input in this pipeline via
BIG_CAP_50_*.xlspattern inweekly_run)IBD Relative Strength / RS master list: weekly export uses the same filename each week, e.g.
[local path] STRENGTH AT NEW HIGH.xls. Also matchesIBD_RS*.xls/ “RELATIVE STRENGTH” patterns—seeetrade_identify.py.Save into Downloads (or a watched folder) so
watch_downloadsor manual copy can place files indata/input/with the expectedBIG_CAP_20_*.xls,BIG_CAP_50_*.xls,IBD_RS_*.xlsnaming.MarketSurge workflow note (PowerShell): Correct command to copy only IBD/MarketSurge files (and avoid unrelated files):
# Correct command — only copies IBD/MarketSurge files, not unrelated files Get-ChildItem "$env:USERPROFILE\Downloads\*.xlsx", "$env:USERPROFILE\Downloads\*.csv" | Where-Object {$_.Name -match "^(IBD|Big.Cap|RS.Leader|Near.Pivot|Technical.Strength|MarketSurge)"} | Copy-Item -Destination "[local path] Projects\ibd-strategy\data\input\"
E*TRADE exports: Download positions for IRA and Brokerage; ensure filenames end up as
etrade_ira_raw_YYYY_MM_DD.csvandetrade_brokerage_raw_YYYY_MM_DD.csvinholdings/(via watcher or manual rename).Run pipeline: From project root:
python weekly_run.py. Resolves latest inputs by date in filename (YYYY_MM_DD) or mtime.Outputs: Check
data/output/for watchlists, reports,performance_latest.json. Console prints performance tracker status; browser may openhttp://localhost:8765/dashboard.html(server started if port 8765 is free).Interpreting the dashboard: See §10.
Commit and push weekly run:
git add -A ; git commit -m 'W## weekly run complete' ; git push
7.1 File naming conventions¶
| Pattern | Role |
|---|---|
BIG_CAP_20_*.xls | IRA universe (BC20) |
BIG_CAP_50_*.xls | IRA universe (IBD 50 / Big Cap 50 export) |
IBD_RS_*.xls | Brokerage RS Master |
etrade_ira_raw_YYYY_MM_DD.csv | Raw IRA positions |
etrade_brokerage_raw_YYYY_MM_DD.csv | Raw brokerage positions |
etrade_ira_clean_YYYY_MM_DD.csv | Produced by normalize_etrade |
Etrade_IRA_Report.csv | portfolio_analyzer output (account label “Etrade IRA”) |
normalize_etrade.py — correct usage¶
Requires two positional arguments: python normalize_etrade.py <raw_csv> <clean_csv>
Example (replace date with today’s date): python normalize_etrade.py holdings/etrade_ira_raw_2026_04_27.csv holdings/etrade_ira_clean_2026_04_27.csv python normalize_etrade.py holdings/etrade_brokerage_raw_2026_04_27.csv holdings/etrade_brokerage_clean_2026_04_27.csv
Note: weekly_run.py handles this automatically when holdings files from today exist. Only run manually if clean files are missing after watch_downloads.py
7.2 Entry Decision Checklist — Complete Entry Rules¶
Run through all 10 checks in order before any entry. Every rule below came from a real trade W14-W18 where the rule was missing or violated.
60-Second Checklist — Run Before Price Chart¶
Mandatory gate on IBD Digital Stock Checkup and MarketSurge pattern data before opening the price chart. Completes in under 60 seconds. If any step fails — do not proceed to chart analysis.
| Step | Check | Action |
|---|---|---|
| 1 | Acc/Dis | D or E → close chart immediately |
| 2 | Earnings surprise | Negative → flag; investigate before any buy |
| 3 | % from pivot | Above 5% → do not buy |
| 4 | Group RS rank | Below 50/145 → caution |
| 5 | Base stage | Stage 1-2 preferred; Stage 3 acceptable with caution; Stage 4+ → do not buy |
THEN: Look at price chart (daily chart for current base stage; weekly for context).
Real example — CRDO:
Weekly chart showed +493% from pivot — misleading (405-day-old pivot)
Daily chart showed Stage 3(3) — stopped entry correctly
Always check daily chart for actual current base stage
See also §4.12 Pre-Buy Thesis Template (MarketSurge pattern fields).
The Two-Step Rule (Core — non-negotiable)¶
Step 1: Price above IBD buy point? YES -> Step 2 / NO -> wait
Step 2: Volume 1.40x+ after 1pm ET? YES -> BUY / NO -> wait
BOTH must be YES simultaneously.
Established after: WWD, ADI, NVDA failed breakout
Complete 10-Point Entry Checklist¶
IBD market pulse: Confirmed Uptrend?
Exposure 60%+: consider entries
Exposure below 40%: hold cash, no new entriesComposite Rating 85+?
Prefer 90+. Below 75 = auto-disqualify.RS Rating 80+?
Prefer 85+. Below 70 = auto-disqualify.Acc/Dis Rating B or better?
A = strong institutional accumulation
C or below = wait for improvement
D or E = auto-disqualifyProfitable company? (IRA requirement)
Positive EPS required for IRA quality strategy
Brokerage: pre-earnings growth names acceptableBeta within account mandate?
IRA: under 1.5 (prefer under 1.0)
Brokerage: under 2.5
Aggressive: any beta acceptableEarnings more than 2 weeks away?
Earnings within 2 weeks = binary risk = wait
Exception: position already held through earningsHolding through earnings: See Earnings Season — Conference Call Risk below. Do not re-assess on headline price alone.
Price within 5% of IBD buy point?
Below buy point: not ready — wait
0-5% above: in buy zone — valid entry
5-8% above: extended — caution
Above 8%: do not chase — wait for baseVolume 1.40x+ average after 1pm ET?
Never check volume before 1pm — misleading
1.40x+ = institutional confirmation = BUY
Below 1.0x = weak = waitTicker appeared 2+ consecutive weeks?
1 week: note only
2 weeks: watchlist — approaching
3+ weeks: high conviction — actively ready
5+ weeks: highest conviction — deploy on signal
Entry Signal Score (Enhancement 8)¶
Score 75-100: BUY_ZONE — all four components aligned
Score 60-74: WATCH — developing, set price alert
Score 45-59: MONITOR — early stage
Below 45: NOT_READY — conditions not aligned
Score is a guide — two-step rule still required before entry.
Buy Zone Calculation¶
IBD buy point from chart (weekly view, 10 cents above base high)
Buy zone top = buy point x 1.05
Example: Buy point 600 to 630: extended — do not enter
To find buy point:
IBD Digital: Stock -> Chart tab -> Weekly -> look for
horizontal buy point line
MarketSurge: Near Pivot list shows stocks within 5% of buy point
Position Sizing Rules¶
IRA quality account:
First position: up to 50% of available cash
Second add: smaller than first (pyramid up)
Third add: smaller than second
Max any one name: 70% of IRA invested capital
Brokerage momentum account:
Standard: 2,000 fixed (for statistical comparison)
Volume-Adjusted Sell Rules (§16.15)¶
Standard 8% rule — apply when ANY true:
Company-specific negative news
Volume on down day 1.40x+ (distribution)
Composite drops below 75
Acc/Dis drops to D or E
After exit — classify per §4.15 Enhancement 11:
Type 1 (thesis broken) → permanent exit, no re-entry watch
Type 2 (macro interruption) → Thesis Intact Exits watchlist
Extended hold (8-12%) — apply when ALL true:
Macro/sector decline only (not company news)
Volume below average on down day
Composite 85+, RS 80+, Acc/Dis B+
Thesis unchanged
Failed breakout rule:
Stock breaks above buy point then falls back below
Exit the breakout entry only
Keep original lower-cost position
Earnings Season — Conference Call Risk¶
When holding through earnings, price immediately after the announcement does not represent the final institutional view.
Three-stage reaction model (MRVL May 2026):
Stage 1 (headline): Retail reacts to EPS/revenue numbers
Stage 2 (call): Institutions process CEO language and guidance detail
Stage 3 (settle): Digested institutional assessment
Rule: Wait for the full conference call to complete before re-assessing any position held through earnings. The Stage 3 settled price is the meaningful signal.
See also §4.15 Conference Call Risk and §4.11 Pre-Earnings Run-Up Rule.
Auto-Disqualifiers (do not enter regardless of price)¶
Composite below 75
RS below 70
Acc/Dis D or E
Base stage 4+ (daily chart)
Not profitable (IRA only)
Earnings within 2 weeks
Price more than 8% above buy point
IBD market at 0%-20% exposure
Real Trade Examples¶
WWD April 14: Violated Rule 9 (volume below average)
Result: -11.25% loss
ADI April 20: Violated Rule 9 (volume 0.66x)
Result: Position struggled early
NVDA $215 ATH: Violated Rule 8 (1.3% above, volume 0.83x)
Modified exception — conservative 5 shares
Result: -6.87% failed breakout, sold correctly
AGX May 3: Violated Rule 8 (15-17% above buy point)
Result: Waiting for base — correct discipline