earnings-flash-dip-catch — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited earnings-flash-dip-catch (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Purpose: 财报夜股价插针,在高概率的位置接刀、在阻力位卖出。 The #1 rule (born from the MRVL $170 error): 接刀位锚定最近的台阶, 不是旧基座;并用 实现波动 ≈ 隐含 × 0.65 做硬校验。详见最后的 Post-Mortem。
✅ Trigger when: a clear ticker + earnings/post-earnings context ("财报接飞刀", "盘后捞货", "财报后怎么接", "catch the dip on X earnings").
❌ Do NOT trigger for: code "catch", error handling, flaky-test catches, or any non-equity use of "catch/dip/knife".
Run these mcp__yfmcp__* tools. Do them in parallel where independent.
currentPrice, regularMarketPrice, previousClose, regularMarketDayLow/HighpostMarketPrice, postMarketChangePercent, marketState (POST/PRE/REGULAR)fiftyTwoWeekHigh, fiftyDayAverage, twoHundredDayAverageforwardPE, trailingPE, priceToSalesTrailing12Months, targetMedianPrice,targetMeanPrice, numberOfAnalystOpinions, recommendationKey
earningsTimestamp (when it reports), beta, averageVolumeperiod="5d", interval="30m", prepost=true→ this is the after-hours tape; read the actual flush low/high from the post-4pm-ET bars. Also pull period="3mo", interval="1d" for the shelf (Step 3).
print (for the straddle/expected move) AND the next monthly** (for durable walls).
exceed the token limit → they save to a file. Parse with python/jq:
Caveat to always state: the price-alert cron checker reads the regular-session price (regularMarketPrice/last_price) — it will NOT see tonight's after-hours flush. After-hours catching = broker extended-hours limit orders, not the bot.
| Field | What it tells you |
|---|---|
postMarketPrice vs previousClose | the actual earnings gap % (the move that happened) |
| straddle expected move % | what options PRICED IN (1σ). Realized ≈ this × 0.6–0.7 |
fiftyTwoWeekHigh, run vs 50/200DMA | how extended → bigger run = bigger "sell the news" risk |
forwardPE, priceToSales, targetMedianPrice | is it already above analyst targets? (premium = fragile) |
beta | high beta (>2) = wider AH whipsaw |
The primary catch is anchored to the most-recent higher-low consolidation shelf — the last zone where price went sideways for 2–5 days building higher lows, right before the final impulsive leg up into earnings.
Algorithm:
final leg). That cluster's low = the shelf floor = primary catch.
formed 3 days ago, that is the anchor — NOT a shelf from 3 weeks ago.
MANDATORY guardrail (this catches the MRVL error):
The shelf must be within ~1 realized move of the pre-earnings close, i.e. shelf ≳ close × (1 − implied×0.65). If your candidate shelf is more than ~1.3× the realized move below the close, it is the WRONG (stale) shelf — go find the newer, higher one.Example check: MRVL close $208, implied 13.3% → realized ≈ 8.6% → expected floor ~$190. A $170 "shelf" is −18% = 2× too far → reject it, it's the old base.
realized_move = implied_straddle_pct × 0.65 # vol-risk-premium haircut
expected_floor = pre_earnings_close × (1 − realized_move)
CATCH 1 (primary, ~50%) = the shallower (higher) of { most-recent shelf , expected_floor }
≈ also the top put wall just under spot
CATCH 2 (deep, ~30%) = next put-wall cluster below (gap-fill; fills only if it keeps falling)
CATCH 3 (tail, ~20%) = full 1σ implied straddle low (rare; usually does NOT fill)
STOP = CLOSING break below the start of the latest leg up
(a structural level, NOT a vol-derived number)
SELL 1 / 2 / 3 = the stacked CALL walls above (trim 1/3 at each); max-pain
and prior 52wH/ATH are magnetsCore mental model (never violate):
绝不押在波动率尾部 (1σ)**。
earnings bets that close/expire). Trust the MONTHLY walls for durable structure; re-read max pain after the gap.
"fair" gamma level by a few %, then mean-reverts at the 9:30 ET open. That overshoot is the wick you catch with a resting limit order, not by watching.
# $TICKER 财报接飞刀 — 接/卖阶梯
**现价**: $X (盘后 $Y, marketState) · **前收**: $Z
**财报**: [beat+raise / in-line / miss] — [一句话实际数字]
**预期波动**: 隐含 ±A%(跨式) → 实现估计 ±B% (×0.65) → 预期下沿 ~$F
**最近台阶**: $S (建于 [日期区间]) **本段 leg 起点**: $L
| 触发 | 动作 | 依据 |
|---|---|---|
| 跌破 $CATCH1 | 接刀1 · 主仓 50% | 最近台阶 ∩ 实现波动下沿 ∩ put 墙 |
| 跌破 $CATCH2 | 接刀2 · 30% | 下一道 put 墙(仅大盘走弱) |
| 跌破 $CATCH3 | 接刀3 · 20% | 1σ 满幅(罕见,常不成交) |
| 收盘破 $STOP | 止损清仓 | 跌破本段 leg 起点 = 结构破坏 |
| 涨破 $SELL1/2/3 | 各减 1/3 | call 墙 / max pain / ATH 磁吸 |
**怎么挂**: 券商 extended-hours **限价**买单(别用市价),GTC,明早确认仍有效。
**一句话**: [浅跌买台阶 / 深跌看质量 / 破 leg 起点走人]Then set the ladder as alerts in the private repo ssurmic/invest-watchlist (price-alert/scripts/add_alert.py TICKER below|above PRICE --note "..."), commit + push. NEVER push personal levels to the public claude-investment-skills repo.
treated the full 1σ ($174) as the expected drop. AH low was only ~$187–189 → never filled, missed nothing (the print was beat+raise so the dip was always going to be shallow).
was $188–190 (5/20–5/22). Both → $190, exactly where it bottomed. The user's "Jacko" call of ~$189 was right because it anchors to the recent shelf.
shelf ≳ close×(1−implied×0.65),reject anything >1.3× realized below close) makes the $170 anchor impossible.
(The base migrates UP with price — always use the most recent shelf.)
tail; realized moves run ~0.65× implied. Primary goes at the shelf.
price). Use broker extended-hours limit orders.
jackal-state-machine — gap magnitude → State (3 pullback / 4 deep / 5 break)option-wall-analysis — max pain + walls deep-divejackal-earnings-playbook — the 5-phase intraday earnings choreographyprice-alert — set the ladder as Telegram alerts (private repo)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.