
Us Market Bubble Detector
- 931 installs
- 2.5k repo stars
- Updated July 26, 2026
- tradermonty/claude-trading-skills
us-market-bubble-detector is a rules-based trading analysis skill that scores US equity bubble risk on a 16-point framework for developers building trading tools or sizing capital before market entry.
About
us-market-bubble-detector is a Claude trading skill from tradermonty/claude-trading-skills that runs objective, rules-based scans to detect when US equity markets are entering bubble territory. Version 2.1 removed subjective qualitative narrative adjustments that inflated scores in v2.0, restoring data-driven scoring where a quantitative Phase 2 score feeds a 16-point scale mapping to phases like Euphoria and corresponding risk-budget guidance. Developers reach for us-market-bubble-detector before committing capital, calibrating algo risk limits, or embedding macro regime checks into trading dashboards and alert pipelines. The skill emphasizes measurable inputs over media narrative impressions, reducing confirmation-bias drift in bubble assessments.
- Stricter qualitative criteria in v2.1 limits narrative-driven adjustments to a maximum of +3 points
- Social Penetration scoring now requires direct user reports, dated examples, and minimum 3 independent sources
- Media/Search Trends demands both Google Trends 5x+ YoY and confirmed mainstream coverage with dates
- Prevents double-counting of valuation metrics and confirmation bias in risk scoring
- Outputs clear phase classification (Euphoria, Complacency, etc.) with risk-budget recommendations
Us Market Bubble Detector by the numbers
- 931 all-time installs (skills.sh)
- +49 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #508 of 3,301 Productivity & Planning skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/tradermonty/claude-trading-skills --skill us-market-bubble-detectorAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 931 |
|---|---|
| repo stars | ★ 2.5k |
| Security audit | 2 / 3 scanners passed |
| Last updated | July 26, 2026 |
| Repository | tradermonty/claude-trading-skills ↗ |
How do you detect US stock market bubble risk objectively?
Run objective, rules-based scans that detect when US equity markets are entering bubble territory before committing capital or building trading products.
Who is it for?
Developers building trading systems or sizing portfolios who need rules-based US equity bubble regime checks before capital deployment.
Skip if: Developers seeking intraday trade signals, crypto-only analysis, or discretionary narrative market commentary without quantitative scoring.
When should I use this skill?
US equity exposure is being sized, a trading product needs macro regime guardrails, or bubble risk must be scored before capital commitment.
What you get
Quantitative bubble risk score, market phase label, and recommended risk-budget percentage for position sizing.
- bubble risk score
- phase classification
- risk-budget recommendation
By the numbers
- Uses a 16-point quantitative scoring framework
- Version 2.1 released November 3, 2025
Files
US Market Bubble Detection Skill (Revised v2.1)
Key Revisions in v2.1
Critical Changes from v2.0: 1. ✅ Mandatory Quantitative Data Collection - Use measured values, not impressions or speculation 2. ✅ Clear Threshold Settings - Specific numerical criteria for each indicator 3. ✅ Two-Phase Evaluation Process - Quantitative evaluation → Qualitative adjustment (strict order) 4. ✅ Stricter Qualitative Criteria - Max +3 points (reduced from +5), requires measurable evidence 5. ✅ Confirmation Bias Prevention - Explicit checklist to avoid over-scoring 6. ✅ Granular Risk Phases - Added "Elevated Risk" phase (8-9 points) for nuanced risk management
---
When to Use This Skill
Use this skill when:
English:
- User asks "Is the market in a bubble?" or "Are we in a bubble?"
- User seeks advice on profit-taking, new entry timing, or short-selling decisions
- User reports social phenomena (non-investors entering, media frenzy, IPO flood)
- User mentions narratives like "this time is different" or "revolutionary technology" becoming mainstream
- User consults about risk management for existing positions
Japanese:
- ユーザーが「今の相場はバブルか?」と尋ねる
- 投資の利確・新規参入・空売りのタイミング判断を求める
- 社会現象(非投資家の参入、メディア過熱、IPO氾濫)を観察し懸念を表明
- 「今回は違う」「革命的技術」などの物語が主流化している状況を報告
- 保有ポジションのリスク管理方法を相談
---
Evaluation Process (Strict Order)
Phase 1: Mandatory Quantitative Data Collection
CRITICAL: Always collect the following data before starting evaluation
1.1 Market Structure Data (Highest Priority)
□ Put/Call Ratio (CBOE Equity P/C)
- Source: CBOE DataShop or web_search "CBOE put call ratio"
- Collect: 5-day moving average
□ VIX (Fear Index)
- Source: Yahoo Finance ^VIX or web_search "VIX current"
- Collect: Current value + percentile over past 3 months
□ Volatility Indicators
- 21-day realized volatility
- Historical position of VIX (determine if in bottom 10th percentile)1.2 Leverage & Positioning Data
□ FINRA Margin Debt Balance
- Source: web_search "FINRA margin debt latest"
- Collect: Latest month + Year-over-Year % change
□ Breadth (Market Participation)
- % of S&P 500 stocks above 50-day MA
- Source: web_search "S&P 500 breadth 50 day moving average"1.3 IPO & New Issuance Data
□ IPO Count & First-Day Performance
- Source: Renaissance Capital IPO or web_search "IPO market 2025"
- Collect: Quarterly count + median first-day return⚠️ CRITICAL: Do NOT proceed with evaluation without Phase 1 data collection
---
Phase 2: Quantitative Evaluation (Quantitative Scoring)
Score mechanically based on collected data using the following criteria:
Indicator 1: Put/Call Ratio (Market Sentiment)
Scoring Criteria:
- 2 points: P/C < 0.70 (excessive optimism, call-heavy)
- 1 point: P/C 0.70-0.85 (slightly optimistic)
- 0 points: P/C > 0.85 (healthy caution)
Rationale: P/C < 0.7 is historically characteristic of bubble periodsIndicator 2: Volatility Suppression + New Highs
Scoring Criteria:
- 2 points: VIX < 12 AND major index within 5% of 52-week high
- 1 point: VIX 12-15 AND near highs
- 0 points: VIX > 15 OR more than 10% from highs
Rationale: Extreme low volatility + highs indicates excessive complacencyIndicator 3: Leverage (Margin Debt Balance)
Scoring Criteria:
- 2 points: YoY +20% or more AND all-time high
- 1 point: YoY +10-20%
- 0 points: YoY +10% or less OR negative
Rationale: Rapid leverage increase is a bubble precursorIndicator 4: IPO Market Overheating
Scoring Criteria:
- 2 points: Quarterly IPO count > 2x 5-year average AND median first-day return +20%+
- 1 point: Quarterly IPO count > 1.5x 5-year average
- 0 points: Normal levels
Rationale: Poor-quality IPO flood is characteristic of late-stage bubblesIndicator 5: Breadth Anomaly (Narrow Leadership)
Scoring Criteria:
- 2 points: New high AND < 45% of stocks above 50DMA (narrow leadership)
- 1 point: 45-60% above 50DMA (somewhat narrow)
- 0 points: > 60% above 50DMA (healthy breadth)
Rationale: Rally driven by few stocks is fragileIndicator 6: Price Acceleration
Scoring Criteria:
- 2 points: Past 3-month return exceeds 95th percentile of past 10 years
- 1 point: Past 3-month return in 85-95th percentile of past 10 years
- 0 points: Below 85th percentile
Rationale: Rapid price acceleration is unsustainable---
Phase 3: Qualitative Adjustment (REVISED v2.1)
Limit: +3 points maximum (REDUCED from +5 in v2.0)
⚠️ CONFIRMATION BIAS PREVENTION CHECKLIST:
Before adding ANY qualitative points:
□ Do I have concrete, measurable data? (not impressions)
□ Would an independent observer reach the same conclusion?
□ Am I avoiding double-counting with Phase 2 scores?
□ Have I documented specific evidence with sources?Adjustment A: Social Penetration (0-1 points, STRICT CRITERIA)
+1 point: ALL THREE criteria must be met:
✓ Direct user report of non-investor recommendations
✓ Specific examples with names/dates/conversations
✓ Multiple independent sources (minimum 3)
+0 points: Any criteria missing
⚠️ INVALID EXAMPLES:
- "AI narrative is prevalent" (unmeasurable)
- "I saw articles about retail investors" (not direct report)
- "Everyone is talking about stocks" (vague, unverified)
✅ VALID EXAMPLE:
"My barber asked about NVDA (Nov 1), dentist mentioned AI stocks (Nov 2),
Uber driver discussed crypto (Nov 3)"Adjustment B: Media/Search Trends (0-1 points, REQUIRES MEASUREMENT)
+1 point: BOTH criteria must be met:
✓ Google Trends showing 5x+ YoY increase (measured)
✓ Mainstream coverage confirmed (Time covers, TV specials with dates)
+0 points: Search trends <5x OR no mainstream coverage
⚠️ CRITICAL: "Elevated narrative" without data = +0 points
HOW TO VERIFY:
1. Search "[topic] Google Trends 2025" and document numbers
2. Search "[topic] Time magazine cover" for specific dates
3. Search "[topic] CNBC special" for episode confirmation
✅ VALID EXAMPLE:
"Google Trends: 'AI stocks' at 780 (baseline 150 = 5.2x).
Time cover 'AI Revolution' (Oct 15, 2025).
CNBC 'AI Investment Special' (3 episodes Oct 2025)."
⚠️ INVALID EXAMPLE:
"AI/technology narrative seems elevated" (unmeasurable)Adjustment C: Valuation Disconnect (0-1 points, AVOID DOUBLE-COUNTING)
+1 point: ALL criteria must be met:
✓ P/E >25 (if NOT already counted in Phase 2 quantitative)
✓ Fundamentals explicitly ignored in mainstream discourse
✓ "This time is different" documented in major media
+0 points: P/E <25 OR fundamentals support valuations
⚠️ SELF-CHECK QUESTIONS (if ANY is YES, score = 0):
- Is P/E already in Phase 2 quantitative scoring?
- Do companies have real earnings supporting valuations?
- Is the narrative backed by fundamental improvements?
✅ VALID EXAMPLE for +1:
"S&P P/E = 35x (vs historical 18x).
CNBC article: 'Earnings don't matter in AI era' (Oct 2025).
Bloomberg: 'Traditional metrics obsolete' (Nov 2025)."
⚠️ INVALID EXAMPLE:
"P/E 30.8 but companies have real earnings and AI has fundamental backing"
(fundamentals support = +0 points)Phase 3 Total: Maximum +3 points
---
Phase 4: Final Judgment (REVISED v2.1)
Final Score = Phase 2 Total (0-12 points) + Phase 3 Adjustment (0 to +3 points)
Range: 0 to 15 points
Judgment Criteria (with Risk Budget):
- 0-4 points: Normal (Risk Budget: 100%)
- 5-7 points: Caution (Risk Budget: 70-80%)
- 8-9 points: Elevated Risk (Risk Budget: 50-70%) ⚠️ NEW in v2.1
- 10-12 points: Euphoria (Risk Budget: 40-50%)
- 13-15 points: Critical (Risk Budget: 20-30%)Key Change in v2.1:
- Added "Elevated Risk" phase (8-9 points) for more nuanced positioning
- 9 points is no longer extreme defensive zone (was 40% risk budget)
- Now allows 50-70% risk budget at 8-9 point level
- More gradual transition from Caution to Euphoria phases
---
Data Sources (Required)
US Market
- Put/Call: https://www.cboe.com/tradable_products/vix/
- VIX: Yahoo Finance (^VIX) or https://www.cboe.com/
- Margin Debt: https://www.finra.org/investors/learn-to-invest/advanced-investing/margin-statistics
- Breadth: https://www.barchart.com/stocks/indices/sp/sp500?viewName=advanced
- IPO: https://www.renaissancecapital.com/IPO-Center/Stats
Japanese Market
- Nikkei Futures P/C: https://www.barchart.com/futures/quotes/NO*0/options
- JNIVE: https://www.investing.com/indices/nikkei-volatility-historical-data
- Margin Debt: JSF (Japan Securities Finance) Monthly Report
- Breadth: https://en.macromicro.me/series/31841/japan-topix-index-200ma-breadth
- IPO: https://www.pwc.co.uk/services/audit/insights/global-ipo-watch.html
---
Implementation Checklist
Verify the following when using:
□ Have you collected all Phase 1 data?
□ Did you apply each indicator's threshold mechanically?
□ Did you keep qualitative evaluation within +5 point limit?
□ Are you NOT assigning points based on news article impressions?
□ Does your final score align with other quantitative frameworks?---
Important Principles (Revised)
1. Data > Impressions
Ignore "many news reports" or "experts are cautious" without quantitative data.
2. Strict Order: Quantitative → Qualitative
Always evaluate in this order: Phase 1 (Data Collection) → Phase 2 (Quantitative) → Phase 3 (Qualitative Adjustment).
3. Upper Limit on Subjective Indicators
Qualitative adjustment has a total limit of +5 points. It cannot override quantitative evaluation.
4. "Taxi Driver" is Symbolic
Do not readily acknowledge mass penetration without direct recommendations from non-investors.
---
Common Failures and Solutions (Revised)
Failure 1: Evaluating Based on News Articles
❌ "Many reports on Takaichi Trade" → Media saturation 2 points ✅ Verify Google Trends numbers → Evaluate with measured values
Failure 2: Overreaction to Expert Comments
❌ "Warning of overheating" → Euphoria zone ✅ Judge with measured values of Put/Call, VIX, margin debt
Failure 3: Emotional Reaction to Price Rise
❌ 4.5% rise in 1 day → Price acceleration 2 points ✅ Verify position in 10-year distribution → Objective evaluation
Failure 4: Judgment Based on Valuation Alone
❌ P/E 17 → Valuation disconnect 2 points ✅ P/E + narrative dependence + other quantitative indicators for comprehensive judgment
---
Recommended Actions by Bubble Stage (REVISED v2.1)
Normal (0-4 points)
Risk Budget: 100%
- Continue normal investment strategy
- Set ATR 2.0× trailing stop
- Apply stair-step profit-taking rule (+20% take 25%)
Short-Selling: Not Allowed
- Composite conditions not met (0/7 items)
Caution (5-7 points)
Risk Budget: 70-80%
- Begin partial profit-taking (20-30% reduction)
- Tighten ATR to 1.8×
- Reduce new position sizing by 50%
Short-Selling: Not Recommended
- Wait for clearer reversal signals
Elevated Risk (8-9 points) ⚠️ NEW in v2.1
Risk Budget: 50-70%
- Increase profit-taking (30-50% reduction)
- Tighten ATR to 1.6×
- New positions: highly selective, quality only
- Begin building cash reserves for future opportunities
Short-Selling: Consider Cautiously
- Only after confirming at least 2/7 composite conditions
- Small exploratory positions (10-15% of normal size)
- Strict stop-loss (ATR 2.0×)
Rationale for NEW phase: This zone represents heightened caution without extreme defensiveness. Market shows warning signs but not imminent collapse. Maintain exposure to quality positions while building flexibility.
Euphoria (10-12 points)
Risk Budget: 40-50%
- Accelerate stair-step profit-taking (50-60% reduction)
- Tighten ATR to 1.5×
- No new long positions except on major pullbacks
Short-Selling: Active Consideration
- After confirming at least 3/7 composite conditions
- Small positions (20-25% of normal size)
- Defined risk only (options, tight stops)
Critical (13-15 points)
Risk Budget: 20-30%
- Major profit-taking or full hedge implementation
- ATR 1.2× or fixed stop-loss
- Cash preservation mode - prepare for major dislocation
Short-Selling: Recommended
- After confirming at least 5/7 composite conditions
- Scale in with small positions, pyramid on confirmation
- Tight stop-loss (ATR 1.5× or higher)
- Consider put options for defined risk
---
Composite Conditions for Short-Selling (7 Items)
Only consider shorts after confirming at least 3 of the following:
1. Weekly chart shows lower highs
2. Volume peaks out
3. Leverage indicators drop sharply (margin debt decline)
4. Media/search trends peak out
5. Weak stocks start to break down first
6. VIX surges (spike above 20)
7. Fed/policy shift signals---
Output Format
Evaluation Report Structure (v2.1)
# [Market Name] Bubble Evaluation Report (Revised v2.1)
## Overall Assessment
- Final Score: X/15 points (v2.1: max reduced from 16)
- Phase: [Normal/Caution/Elevated Risk/Euphoria/Critical]
- Risk Level: [Low/Medium/Medium-High/High/Extremely High]
- Evaluation Date: YYYY-MM-DD
## Quantitative Evaluation (Phase 2)
| Indicator | Measured Value | Score | Rationale |
|-----------|----------------|-------|-----------|
| Put/Call | [value] | [0-2] | [reason] |
| VIX + Highs | [value] | [0-2] | [reason] |
| Margin YoY | [value] | [0-2] | [reason] |
| IPO Heat | [value] | [0-2] | [reason] |
| Breadth | [value] | [0-2] | [reason] |
| Price Accel | [value] | [0-2] | [reason] |
**Phase 2 Total: X/12 points**
## Qualitative Adjustment (Phase 3) - STRICT CRITERIA
**⚠️ Confirmation Bias Check:**
- [ ] All qualitative points have measurable evidence
- [ ] No double-counting with Phase 2
- [ ] Independent observer would agree
### A. Social Penetration (0-1 points)
- Evidence: [REQUIRED: Direct user reports with dates/names]
- Score: [+0 or +1]
- Justification: [Must meet ALL three criteria]
### B. Media/Search Trends (0-1 points)
- Google Trends Data: [REQUIRED: Measured numbers, YoY multiplier]
- Mainstream Coverage: [REQUIRED: Specific Time covers, TV specials with dates]
- Score: [+0 or +1]
- Justification: [Must have 5x+ search AND mainstream confirmation]
### C. Valuation Disconnect (0-1 points)
- P/E Ratio: [Current value]
- Fundamental Backing: [Yes/No - if Yes, score = 0]
- Narrative Analysis: [REQUIRED: Specific media quotes ignoring fundamentals]
- Score: [+0 or +1]
- Justification: [Must show fundamentals actively ignored]
**Phase 3 Total: +X/3 points (max reduced from +5 in v2.0)**
## Recommended Actions
**Risk Budget: X%** (Phase: [Normal/Caution/Elevated Risk/Euphoria/Critical])
- [Specific action 1]
- [Specific action 2]
- [Specific action 3]
**Short-Selling: [Not Allowed/Consider Cautiously/Active/Recommended]**
- Composite conditions: X/7 met
- Minimum required: [0/2/3/5] for current phase
## Key Changes in v2.1
- Stricter qualitative criteria (max +3, down from +5)
- Added "Elevated Risk" phase for 8-9 points
- Confirmation bias prevention checklist
- All qualitative points require measurable evidence---
Reference Documents
references/implementation_guide.md (English) - RECOMMENDED FOR FIRST USE
- Step-by-step evaluation process with mandatory data collection
- NG examples vs OK examples
- Self-check quality criteria (4 levels)
- Red flags during review
- Best practices for objective evaluation
references/bubble_framework.md (Japanese)
- Detailed theoretical framework
- Explanation of Minsky/Kindleberger model
- Behavioral psychology elements
references/historical_cases.md (Japanese)
- Analysis of past bubble cases
- Dotcom, Crypto, Pandemic bubbles
- Common pattern extraction
references/quick_reference.md (Japanese)
references/quick_reference_en.md (English)
- Daily checklist
- Emergency 3-question assessment
- Quick scoring guide
- Key data sources
When to Load References
- First use or need detailed guidance: Load
implementation_guide.md - Need theoretical background: Load
bubble_framework.md - Need historical context: Load
historical_cases.md - Daily operations: Load
quick_reference.md(Japanese) orquick_reference_en.md(English)
---
Summary: Essence of v2.1 Revision
v2.0 Problem (Identified Nov 2025):
- Qualitative adjustment too loose (+5 max)
- "AI narrative elevated" → +1 point (no data)
- "P/E 30.8" → +1 point (double-counting with quantitative)
- Result: 11/16 points - overly bearish without evidence
v2.1 Solution:
- Qualitative adjustment stricter (+3 max)
- "AI narrative elevated" → 0 points (unmeasured)
- "P/E 30.8 but AI has fundamental backing" → 0 points (fundamentals support)
- Result: 9/15 points - balanced, data-driven assessment
Key Improvements: 1. Confirmation Bias Prevention: Explicit checklist before adding qualitative points 2. Measurable Evidence Required: No points without concrete data (Google Trends, media coverage) 3. Double-Counting Prevention: Valuation must not duplicate Phase 2 quantitative 4. Granular Risk Phases: Added "Elevated Risk" (8-9 points) for nuanced positioning 5. Balanced Risk Budgets: 9 points = 50-70% (not 40% extreme defensive)
Core Principle:
"In God we trust; all others must bring data." - W. Edwards Deming
2025 Lesson: Even data-driven frameworks can be undermined by subjective qualitative adjustments. v2.1 requires MEASURABLE evidence for ALL qualitative points. Independent observers must be able to verify each adjustment.
---
Version History:
- v2.0 (Oct 27, 2025): Mandatory quantitative data collection
- v2.1 (Nov 3, 2025): Stricter qualitative criteria, confirmation bias prevention, granular risk phases
Reason for v2.1 Revision: Prevent over-scoring through unmeasured "narrative" assessments and double-counting. Ensure all bubble risk evaluations are independently verifiable and free from confirmation bias.
US Market Bubble Detector - Changelog
Version 2.1 (November 3, 2025)
Critical Issue Fixed
Problem Identified: v2.0 allowed excessive qualitative adjustments based on unmeasured "narratives" and subjective impressions, leading to inflated bubble risk scores.
Example Case (Nov 3, 2025):
- Quantitative Score (Phase 2): 9 points (objective, data-driven)
- Qualitative Adjustment (v2.0): +2 points
- Media Narrative: +1 (based on "elevated AI narrative" - NO DATA)
- Valuation: +1 (P/E 30.8 - DOUBLE COUNTED, ignored fundamental backing)
- Result: 11/16 points → Euphoria phase → 40% risk budget (overly defensive)
Root Cause: Confirmation bias - analyst had bearish conclusion first, then adjusted qualitative points to match expectation.
Changes in v2.1
1. Stricter Qualitative Criteria (MAX +3, down from +5)
A. Social Penetration (0-1 points)
- v2.0: Loose criteria, "general awareness" acceptable
- v2.1: ALL three required:
- Direct user report of non-investor recommendations
- Specific examples with dates/names
- Multiple independent sources (minimum 3)
B. Media/Search Trends (0-1 points)
- v2.0: Subjective "many reports" acceptable
- v2.1: BOTH required:
- Google Trends 5x+ YoY (measured data)
- Mainstream coverage confirmed (Time covers, TV specials with dates)
- Critical: "Elevated narrative" without data = 0 points
C. Valuation Disconnect (0-1 points)
- v2.0: P/E >25 alone sufficient
- v2.1: ALL required AND avoid double-counting:
- P/E >25 (if NOT in Phase 2)
- Fundamentals explicitly ignored in discourse
- "This time is different" documented in major media
- Self-check: If companies have real earnings supporting valuations → 0 points
2. Confirmation Bias Prevention
New mandatory checklist before adding ANY qualitative points:
□ Do I have concrete, measurable data? (not impressions)
□ Would an independent observer reach the same conclusion?
□ Am I avoiding double-counting with Phase 2 scores?
□ Have I documented specific evidence with sources?3. Granular Risk Phases
New "Elevated Risk" Phase (8-9 points)
- v2.0: 9 points = Euphoria = 40% risk budget (extreme defensive)
- v2.1: 9 points = Elevated Risk = 50-70% risk budget (balanced caution)
Updated Risk Budget Matrix:
| Score | Phase | v2.0 Risk Budget | v2.1 Risk Budget | Change |
|---|---|---|---|---|
| 0-4 | Normal | 100% | 100% | - |
| 5-7 | Caution | 70% | 70-80% | More flexible |
| 8-9 | Elevated Risk | 40% (Euphoria) | 50-70% | NEW PHASE |
| 10-12 | Euphoria | 40% | 40-50% | More balanced |
| 13-15 | Critical | 20% | 20-30% | Reduced max |
4. Maximum Score Reduction
- v2.0: 0-16 points (Phase 2: 12, Phase 3: -1 to +5)
- v2.1: 0-15 points (Phase 2: 12, Phase 3: 0 to +3)
Impact on Nov 3, 2025 Analysis
Under v2.0:
- Score: 11/16 → Euphoria phase
- Risk Budget: 40%
- Positioning: Extreme defensive
Under v2.1 (corrected):
- Quantitative: 9/12 (unchanged, data-driven)
- Qualitative:
- Media Narrative: 0 points (no Google Trends data)
- Valuation: 0 points (AI has fundamental backing, double-counting)
- Score: 9/15 → Elevated Risk phase
- Risk Budget: 50-70%
- Positioning: Cautious but not extreme
Key Learnings
1. Data > Impressions: "Elevated narrative" is not measurable evidence 2. Avoid Double-Counting: Valuation in Phase 2 quantitative ≠ add again in Phase 3 3. Check Internal Consistency: If report admits "AI has fundamental backing," then valuation disconnect score must be 0 4. Independent Verification: All qualitative points must be verifiable by independent observers
Documentation Updates
SKILL.md: Updated to v2.1 with strict criteriareferences/implementation_guide.md: Enhanced Phase 3 with bias prevention checklistreferences/quick_reference.md: Updated action matrix with new Elevated Risk phasereferences/bubble_framework.md: Updated risk budget table
---
Version 2.0 (October 27, 2025)
Initial Major Revision
- Introduced mandatory quantitative data collection
- Eliminated reliance on impressions and speculation
- Established clear threshold settings for each indicator
- Two-phase evaluation process: Quantitative → Qualitative
---
Version Control:
- v1.x: Original framework (deprecated)
- v2.0: Data-driven quantitative focus
- v2.1: Strict qualitative criteria + confirmation bias prevention
Detailed Bubble Theory Framework
Table of Contents
1. Core Concept 2. Minsky/Kindleberger Model 3. Behavioral Psychology Elements 4. Quantitative Indicators for Detection 5. Practical Response Strategies
---
Core Concept
The Essence of Bubbles: Social Norm Inversion Through Social Contagion
True bubbles are determined not by price levels but by the phase of crowd psychology.
Core Characteristics
1. Critical Information Cascade
- Spread to all layers (including non-investors) is complete
- FOMO (Fear of Missing Out) becomes social norm
- Social cost of being skeptical is maximized
2. Social Calculation Inversion
Normal state: Conformity pressure < Value of independent judgment
Bubble state: Conformity pressure > Value of independent judgmentCompletion is near when "pain of not conforming < pain of holding contrarian views"
3. Institutionalized Confirmation Bias
- Media, experts, and laypeople repeat the same narrative
- Counterevidence is ignored or excluded
- "This time is different" becomes the mantra
Signal Example: Taxi Driver Investment Talk
Modern version of Joe Kennedy selling before the 1929 crash after hearing a shoeshine boy talk stocks.
Why this is a decisive signal:
- Information reaches the final tier = cascade complete
- "Last buyer" cohort enters = demand exhaustion near
- "Sure to profit" perception without expertise = peak risk ignorance
---
Minsky/Kindleberger Model
5-stage bubble progression model (Hyman Minsky / Charles Kindleberger)
1. Displacement (Trigger)
Characteristics:
- Structural changes like new technology, institutional reform, monetary easing
- Legitimate investment opportunities emerge
- Rational price rises
Real Examples:
- 1990s: Internet revolution
- 2010s: Mobile/cloud
- 2020-21: Pandemic-response ultra-easing + remote work technology
2. Boom (Expansion)
Characteristics:
- Self-reinforcing loop: price rise → media exposure → new participants → liquidity expansion
- Positive expert views increase
- Valuations high but "explainable by growth expectations"
Psychology:
- Availability bias: Success stories dominate
- Herding: Even institutional investors feel pressure to join
Detection Indicators:
- Sustained trading volume increase
- Accelerating new account openings
- Annual returns in 75-90th percentile
3. Euphoria (Exuberance)
Characteristics:
- Narrative becomes "common sense," dissent labeled "outdated"
- Leverage increases (margin trading, futures, derivatives)
- New issuances proliferate (IPO/ICO/SPAC)
- Even low-quality stocks rally
Psychology:
- Overconfidence: "I'm special"
- Confirmation bias: Accept only favorable information
- Regret aversion: Overly fear "missing gains after selling"
Detection Indicators:
- VIX falls (risk dismissal)
- Extreme Put/Call ratio bias
- Margin balances at all-time highs
- Proliferation of "XX-related" products
4. Profit Taking (Exit Begins)
Characteristics:
- Early participants (smart money) begin taking profits
- But crowd continues chasing with FOMO
- Volatility (price fluctuation) increases
Psychological Divergence:
- Smart money: Loss aversion (prioritize securing gains)
- Crowd: FOMO peaks ("don't miss out")
Detection Indicators:
- Volume surges + increased price swings
- Insider selling increases
- Short interest rises (sophisticated skepticism)
5. Panic (Reversal)
Characteristics:
- Objective confirmation of trend breakdown (failure to make new highs, MA breaks)
- Forced liquidations → liquidation cascade
- Liquidity evaporates
Psychology:
- Loss aversion reverses: "don't want to realize loss" → "must avoid further loss by panic selling"
- Herding reverses: buying crowd → selling crowd
Detection Indicators:
- Circuit breakers triggered
- Chain of margin calls
- Mark-to-market losses at all-time worst levels
---
Behavioral Psychology Elements
1. FOMO (Fear of Missing Out)
Mechanism:
- Social proof: "Everyone's buying → must be right"
- Regret aversion: "regret of missing out" > "regret of losing money"
Bubble Condition: FOMO elevates from individual psychology to social norm → non-conformity becomes professional/social risk
2. Confirmation Bias
Bubble-Period Amplification:
- Media echo chambers
- Social media algorithm filter bubbles
- Expert conformity pressure (contrarianism = career risk)
3. Overconfidence
Bubble-Period Characteristics:
- "Only I can sell at the top"
- "This time is different"
- Risk management neglect
4. Dangerous Combination: Loss Aversion × Regret Aversion
Most Dangerous Phase: Investors who experienced "rapid rise after early profit-taking"
1. Take profit → price rises further → regret 2. Re-enter → buy high → can't cut loss due to loss aversion 3. Further rise → illusion of being "right" reinforces 4. Miss exit when reversal comes
---
Quantitative Indicators for Detection
Category 1: Social Penetration
| Indicator | Data Source | Alert Threshold |
|---|---|---|
| Google Search Trends | Google Trends API | 5x+ normal |
| Social Media Mentions | Twitter/Reddit API | z-score > +3 |
| New Account Openings | Brokerage data | 200%+ YoY |
| Media Coverage | News APIs | Weekly article count 10x normal |
Category 2: Price Dynamics
| Indicator | Calculation | Alert Threshold |
|---|---|---|
| Annualized Return | Annualize 90-day return | Exceeds 95th percentile |
| Price Acceleration | 2nd derivative sign and magnitude | Positive and increasing |
| Volatility Skew | Put/Call ratio | < 0.5 (extreme optimism) |
| Distance from 52W High | (Current - 52W High) / 52W High | Within -5%, clustering |
Category 3: Leverage & Positioning
| Indicator | Data Source | Alert Threshold |
|---|---|---|
| Margin Balance | FINRA | All-time high |
| Mark-to-Market P&L | Exchange data | Extreme unrealized gains (reversal risk) |
| Futures Positioning | CFTC COT | Speculators extremely long |
| Funding Rate | Crypto exchanges | 50%+ annual sustained |
Category 4: New Issuance & Entry
| Indicator | Data Source | Alert Threshold |
|---|---|---|
| IPO Count | Renaissance IPO Index | 100%+ YoY |
| SPAC Formation | SPAC statistics | 100+ per quarter |
| Theme ETF Launches | ETF.com | 5+ "XX-related" per month |
Category 5: Valuation
| Indicator | Calculation | Alert Threshold |
|---|---|---|
| Shiller CAPE | P/E using 10-year real earnings average | >30 (historically high) |
| Buffett Indicator | Market cap / GDP | >150% (overheating) |
| Sector Divergence | Top sector vs bottom sector P/E difference | 3x+ gap |
---
Practical Response Strategies
Offense: Profit-Taking Strategy
1. Mechanical Stair-Step Profit-Taking
Target Return Profit % Remaining Position
+20% 25% 75%
+40% 25% 50%
+60% 25% 25%
+80% 25% 0%Benefits:
- Eliminates psychological pressure
- Mitigates "post-sale rise" regret
- Guarantees partial profit capture
2. Time-Diversified Exit
NG Pattern: Concentrate profit-taking on specific events (earnings, product launch, index inclusion)
Recommended:
- Sell 10% daily over 2 weeks
- Distribute before/during/after events
3. Trailing Stop (Volatility-Adjusted)
stop_price = current_price - (ATR × coefficient)
# ATR: Average True Range (20-day average fluctuation)
# Coefficient: 2.0 (normal), 1.5 (bubble zone, tightened)Defense: Risk Management
1. Pre-Determined Drawdown Tolerance
Expected Max DD Position Size
-10% 100% (full position)
-20% 50%
-30% 33%
-40% 25%2. Risk Budget by Bubble Stage (REVISED v2.1)
| Bubble Stage | Score | Total Risk Budget | New Entry | Stop Coefficient |
|---|---|---|---|---|
| Normal | 0-4 | 100% | Normal | 2.0 ATR |
| Caution | 5-7 | 70-80% | 50% reduced | 1.8 ATR |
| Elevated Risk | 8-9 | 50-70% | Selective | 1.6 ATR |
| Euphoria | 10-12 | 40-50% | Stop | 1.5 ATR |
| Critical | 13-15 | 20-30% | Stop | 1.2 ATR |
Key Changes in v2.1:
- Added "Elevated Risk" phase (8-9 points) for more granular risk management
- Adjusted risk budgets to be less extreme at 9-point level
- Maximum score reduced to 15 (Phase 2: 12 max, Phase 3: 3 max with strict criteria)
3. Short-Selling Timing (Critical)
NG Pattern:
- Early shorts based on subjective "too high"
- Bubbles "last longer than expected" ("Markets can remain irrational longer than you can remain solvent")
Recommended Conditions (Composite): 1. Weekly chart shows clear lower highs 2. Volume peaks out (enters declining trend) 3. Funding rate drops sharply (crypto) / margin balance declines (stocks) 4. Media/search trends peak out 5. Weak stocks within sector start breaking down first
Consider starting when minimum 3 conditions met.
4. Separate Cash Accounts
- Long-term investment account: Buy & hold, dividend reinvestment, rebalancing only
- Trading account: Short-term trading, bubble profit-taking, reversal shorts
Purpose: Prevent decision confusion, maintain psychological stability
Practical Daily Checklist
Check every morning before market open:
- [ ] Update Bubble-O-Meter (score 8 indicators)
- [ ] Update ATR trailing stops for held positions
- [ ] Verify planned new entries are appropriate given bubble stage
- [ ] Check for sudden media/social media trend changes
- [ ] Confirm major indices' distance from 52-week highs
- [ ] Check leverage indicators (margin balance, funding rate)
- [ ] Check VIX level and Put/Call ratio
- [ ] Check sector breadth (broad rally or selective)
---
Summary: Golden Rules for Practice
1. "See process, not price" Evaluate bubbles not by levels but by crowd psychology phase transitions
2. "When taxi drivers talk stocks, exit" Last buyer cohort entry = demand exhaustion near
3. "'This time is different' is always the same" When "This time is different" becomes the mantra, be very cautious
4. "Mechanical rules protect psychology" When conformity pressure peaks, strict adherence to pre-determined rules is lifeline
5. "Short after confirmation, take profits early" Bubble collapses come late but suddenly. Contrarian shorts dangerous. Profits mechanically.
6. "When skepticism hurts, the end begins" The moment social cost exceeds independent judgment is the critical point
Historical Bubble Cases and Pattern Analysis
Table of Contents
1. Late 1990s: Dotcom Bubble 2. Late 2017: Crypto Bubble 3. 2020-21: Pandemic Bubble Complex 4. Common Patterns and Lessons
---
Dotcom Bubble (1995-2000)
Timeline
1995-1997: Displacement (Trigger)
- Netscape IPO (August 1995): More than doubled on first day
- Internet penetration: US 5% → 20%
- Legitimate technological innovation and investment opportunities
1998-Early 1999: Boom (Expansion)
- NASDAQ 100: Sustained +40% annual growth
- Adding ".com" to name alone drove stock prices up ("the .com effect")
- IPO first-day returns averaged +70%
Late 1999-March 2000: Euphoria (Exuberance)
- "Old Economy vs New Economy" binary opposition
- "Clicks vs Bricks" (online is invincible)
- Valuation metrics ignored: "P/E is outdated"
March 10, 2000: Peak (NASDAQ 5,048.62)
March 2000-October 2002: Panic & Crash
- NASDAQ: -78% (5,048 → 1,114)
- Many bankruptcies: Pets.com, Webvan, eToys, etc.
Bubble-O-Meter Score Estimate (March 2000)
| Indicator | Score | Rationale |
|---|---|---|
| Mass Penetration | 2 | Family/friends entering "day trading" |
| Media Saturation | 2 | Time magazine cover "Amazon.com", CNBC ratings surge |
| New Entrants | 2 | Online brokerage accounts +300% YoY |
| Issuance Flood | 2 | 457 IPOs (1999), many low-quality |
| Leverage | 1 | Margin trading increased, but not to mortgage levels |
| Price Acceleration | 2 | NASDAQ +85% annual (1999) |
| Valuation Disconnect | 2 | "Profits unnecessary, only revenue growth matters" |
| Correlation & Breadth | 2 | Even unprofitable companies rallying, no quality selection |
Total: 15/16 points (Critical Zone)
Lessons
1. The Magic of the ".com" Suffix Name change alone drove +50%+ stock price gains (e.g., Zapata → Zap.com)
2. IPO Mania Danger First-day returns of +100%+ becoming normal = abnormal demand overheating
3. "Growth Without Profits" Limits Many "Get Big Fast" strategies failed, ignoring cash flow consequences
4. Fed Rate Hikes as Trigger Consecutive rate hikes 1999-2000 → funding cost rise → valuation justification impossible
---
Crypto Bubble (2017)
Timeline
2016-Early 2017: Displacement & Boom
- Bitcoin: $1,000 → $3,000 (June 2017)
- Emergence of ICO (Initial Coin Offering)
- Rise of altcoins like Ethereum, Ripple
August-November 2017: Accelerating Boom
- Bitcoin: $3,000 → $10,000
- Coinbase app #1 on US App Store
- "Blockchain revolution" narrative spreads
December 2017: Euphoria Peak
- Bitcoin: $10,000 → $19,783 (December 17 peak)
- Taxi drivers preaching crypto (iconic episode from text)
- University lectures producing "instant experts"
- Family gatherings dominated by investment talk
December 18, 2017-December 2018: Crash
- Bitcoin: $19,783 → $3,200 (-84%)
- ICO scams exposed, regulatory crackdown
Bubble-O-Meter Score Estimate (Mid-December 2017)
| Indicator | Score | Rationale |
|---|---|---|
| Mass Penetration | 2 | Taxi drivers, grandparents asserting "must buy" |
| Media Saturation | 2 | Google searches for "Bitcoin" at all-time high, daily CNBC specials |
| New Entrants | 2 | Coinbase new accounts exceeding 300k/day |
| Issuance Flood | 2 | 966 ICOs (2017), majority fraudulent |
| Leverage | 2 | 100x leverage trading on BitMEX etc. surging |
| Price Acceleration | 2 | Doubled in one month ($10k→$20k), acceleration positive and increasing |
| Valuation Disconnect | 2 | "Digital gold," "end of fiat currency" narratives dominant |
| Correlation & Breadth | 2 | Even obscure altcoins +1000%+ |
Total: 16/16 points (Critical Zone - Perfect Score)
Lessons
1. "Most Dangerous Phase: Rapid Rise After Selling" Example from text: Took profit at $8k→$13k → 10 days later approaching $20k → regret and re-entry impulse
2. Leverage Destructive Power 100x leverage = total loss on 5% adverse move, liquidation cascade accelerates crash
3. ICO Scam Proliferation Raised billions with only whitepapers → many absconded
4. Regulatory Risk Underestimation "Impossible to regulate" narrative → collapse when China/Korea closed exchanges
---
Pandemic Bubble (2020-2021)
Timeline
March-June 2020: Displacement
- COVID-19 panic → historic monetary easing
- Fed asset purchases, zero rates, fiscal support
- "TINA" (There Is No Alternative): No investment alternative to stocks
July 2020-Early 2021: Boom
- NASDAQ 100: +50% (2020 full year)
- Work-from-home/DX stocks lead (Zoom, Peloton, Shopify)
- Robinhood account openings surge, "Stonks" meme culture
Early 2021: Euphoria
- Meme stocks (GME, AMC) wild swings
- SPAC boom (Q1 2021: 298 formations)
- NFT mania (Beeple artwork $69M, "Bored Ape" etc.)
- Crypto resurgence (BTC $64k, "DeFi Summer")
November 2021: Peak (NASDAQ 16,057)
2022: Reversal
- Fed hawkish pivot (inflation response)
- Interest rate rises → growth stock plunge
- NASDAQ: -33% (2022 full year)
- Crypto bubble collapse (Luna, FTX failures)
Bubble-O-Meter Score Estimate (November 2021)
| Indicator | Score | Rationale |
|---|---|---|
| Mass Penetration | 2 | WallStreetBets, TikTok investment influencers proliferating |
| Media Saturation | 2 | CNBC ratings surge, housewife investment specials |
| New Entrants | 2 | Young demographic accounts 3x on Robinhood etc. |
| Issuance Flood | 2 | 613 SPACs (2021 full year), many low-quality |
| Leverage | 1 | Individual options trading surged, but not excessive mortgage levels |
| Price Acceleration | 2 | Numerous growth stocks +100%+ annual |
| Valuation Disconnect | 2 | Extreme DCF assuming "zero discount rate," profit ignored |
| Correlation & Breadth | 1 | Concentrated in FAANG etc., not broad rally |
Total: 14/16 points (Critical Zone)
Special Factors
1. Composite Bubble Stocks, crypto, NFTs, SPACs simultaneously erupting, capital swirling
2. Memeification Investment decisions shift from "fundamentals" to "memes" and "community" (GME, DOGE)
3. Zero-Rate Side Effects "Risk-free rate = 0" → illusion that theoretical price of all assets approaches ∞
Lessons
1. End of Monetary Easing = Bubble Collapse Trigger Reversal moment Fed turned hawkish (November 2021)
2. Multi-Asset Simultaneous Bubbles Amplify Danger Correlation approaches 1.0 → diversification benefit vanishes
3. Meme Investment Limits Short-term crowd frenzy unsustainable, fundamental reversion inevitable
---
Common Patterns
Pattern 1: Trigger Always "Monetary Policy Shift"
| Bubble | Peak Timing | Policy Shift | Time Lag |
|---|---|---|---|
| Dotcom | March 2000 | Fed rate hikes (1999-2000) | Immediate |
| Crypto 2017 | December 2017 | China regulatory crackdown | 1 month |
| Pandemic | November 2021 | Fed hawkish signal | Immediate |
Pattern 2: Bubble Stage Time Allocation
Typical Bubble Cycle (total 18-36 months):
Displacement: 20% of duration (tech innovation, policy change)
Boom: 40% of duration (rational expansion)
Euphoria: 30% of duration (exuberance)
Profit Taking: 5% of duration (caution period)
Panic: 5% of duration (crash)Important: Euphoria occupies 1/3 of total = source of "lasts too long" impression
Pattern 3: Staged Social Penetration Expansion
Phase 1: Experts, early adopters (institutional investors, tech enthusiasts)
↓ 1-2 years
Phase 2: Educated class, white-collar workers (doctors, lawyers, salarymen)
↓ 6-12 months
Phase 3: General public (taxi drivers, housewives, students)
↓ 1-3 months
Peak reachedLesson: When Phase 3 detected, 1-3 months remaining
Pattern 4: Media Role
Boom Period:
- Cautiously optimistic "expert views"
- Risks also mentioned
Euphoria Period:
- FOMO incitement: "Don't miss out"
- Over-exposure of success stories
- Risk warners labeled "outdated"
Panic Period:
- Flip to pessimism
- "Who's to blame" witch hunt
Pattern 5: Price Patterns
Uptrend:
Stage 1: Gradual rise (+15-25% annual)
Stage 2: Acceleration (+40-60% annual)
Stage 3: Parabolic (100%+ in months)
↑ Public entry hereDowntrend:
Stage 1: Correction (-10-15%) → "buying opportunity" perception
Stage 2: Failed bounce, double top forms
Stage 3: Collapse (-50%+) → PanicPattern 6: "This Time Is Different" Excuse Patterns
| Bubble | "This Time Is Different" Reason | Reality |
|---|---|---|
| Dotcom | Internet revolution, Old Economy over | Growth without profits unsustainable |
| Housing 2008 | Housing prices never fall, securitization spreads risk | Subprime collapse |
| Crypto 2017 | End of fiat, governments can't regulate | Regulatory crackdown causes crash |
| Pandemic | Infinite QE, perpetual zero rates, no inflation | Inflation surge → tightening |
Lesson: When "this time is different" becomes the mantra, historical repetition is near
---
Application to Practice
Case Study: Ideal Response During 2017 Crypto Bubble
Premise: Purchased Bitcoin in January 2017 at $1k with $1,000
Actual Price Progression:
- June: $3k (+200%)
- August: $5k (+400%)
- November: $10k (+900%)
- December 17: $19.8k (+1,880%, peak)
- December 2018: $3.2k (-84% from peak)
Scenario A: "Perfect Timing" Illusion (Impossible to Execute)
Sell everything at $19.8k = $19,800 profit
Problem: Cannot predict peak in advance, pure luck
Scenario B: Stair-Step Profit-Taking (Executable)
$3k → Sell 25% = $750 (remaining $2,250 invested)
$5k → Sell 25% = $1,250 (remaining $1,500 invested)
$10k → Sell 25% = $2,500 (remaining $750 invested)
$15k → Sell 25% = $3,750 (position fully closed)Total Profit: $8,250 vs Peak: 42% (less than half of perfect) But: Reliably executable, psychologically stable
Scenario C: ATR Trailing Stop (Executable + Upside Capture)
- Early December 2017, ATR (20-day) ≈ $1,500
- Using coefficient 1.5: Stop = $10,000 - ($1,500 × 1.5) = $7,750
- December 17 peak $19,800 → Stop updated: $19,800 - $2,250 = $17,550
- Decline starts → Sell all at $17,550
Total Profit: $16,550 (-11% from peak exit) Benefits: Maximum upside capture, early decline exit
Integrated Lessons
1. Abandon "Perfection" Peak selling impossible. Aim for "satisfaction" with stair-step profit-taking
2. Mechanical Rule Superiority ATR trailing eliminates emotion, exits early in bubble collapse
3. Flexibility by Bubble Stage
- Boom period: Stair-step profit-taking (conservative)
- Euphoria period: ATR trailing (aggressive)
- Panic signs: Immediate exit (defensive)
4. Managing Post-Hoc Regret Evaluation criterion: "secure profit capture" not "could have made more"
Bubble Detector Implementation Guide (Revised v2.0)
Required Checklist Before Use
Pre-verification
□ User is asking "Is it a bubble?"
□ Objective evaluation is requested (not impressions)
□ You have time to collect measured data---
Step-by-Step Evaluation Process
Step 1: Identify Market and Verify Data Sources
For US Market:
Required Data Sources:
1. CBOE - Put/Call ratio, VIX
2. FINRA - Margin debt balance
3. Renaissance Capital - IPO statistics
4. Barchart/TradingView - Breadth indicatorsFor Japanese Market:
Required Data Sources:
1. Barchart - Nikkei Futures Options P/C
2. Investing.com - JNIVE (Nikkei VI)
3. JSF - Margin debt balance
4. MacroMicro - TOPIX Breadth
5. PwC - Global IPO WatchStep 2: Quantitative Data Collection (MANDATORY)
Use web_search to collect the following in order:
# US Market Example
queries = [
"CBOE put call ratio current", # P/C ratio
"VIX index current level", # VIX
"FINRA margin debt latest", # Margin debt
"S&P 500 breadth 50 day MA", # Breadth
"Renaissance IPO market 2025", # IPO statistics
]
# Japanese Market Example
queries_japan = [
"Nikkei 225 futures options put call ratio",
"Nikkei Volatility Index JNIVE current",
"JSF margin trading balance latest",
"TOPIX constituent stocks 200 day moving average",
"Japan IPO market 2025 statistics",
]Important: Collect specific numerical values for each search
- ❌ "VIX is at low levels" → Insufficient
- ✅ "VIX is 15.3" → OK
Step 3: Organize and Verify Data
Organize collected data in table format:
| Indicator | Collected Value | Source | Collection Date |
|-----------|----------------|---------|----------------|
| Put/Call | 0.95 | CBOE | 2025-10-27 |
| VIX | 15.3 | Yahoo Finance | 2025-10-27 |
| Margin YoY | +8% | FINRA | 2025-09 |
| Breadth (50DMA) | 68% | Barchart | 2025-10-27 |
| IPO Count | 45/Q3 | Renaissance | 2025 Q3 |Verification Points:
- □ All indicators have specific numerical values
- □ Sources are reliable
- □ Data is recent (within 1 week)
Step 4: Mechanical Scoring
Score mechanically by referring to threshold tables:
Indicator 1: Put/Call = 0.95
→ 0.95 > 0.85 → 0 points
Indicator 2: VIX = 15.3 + near highs
→ VIX > 15 → 0 points
Indicator 3: Margin YoY = +8%
→ +8% < +10% → 0 points
Indicator 4: IPO = 45 count (5-year average 35)
→ 45/35 = 1.29x < 1.5x → 0 points
Indicator 5: Breadth = 68%
→ 68% > 60% → 0 points
Indicator 6: Price Acceleration (requires calculation)
→ Past 3 months +12%, 75th percentile in 10-year distribution → 0 points
Phase 2 Total: 0 pointsStep 5: Qualitative Adjustment (Upper limit +3 points, STRICT CRITERIA)
⚠️ CRITICAL: Qualitative adjustments require MEASURABLE evidence. Subjective impressions are NOT allowed.
Confirmation Bias Prevention Checklist:
Before adding any qualitative points, verify:
□ Do you have concrete, measurable data? (not impressions)
□ Would an independent observer reach the same conclusion?
□ Are you avoiding double-counting with Phase 2 quantitative scores?
□ Have you documented the specific evidence?A. Social Penetration (0-1 points):
REQUIRED EVIDENCE (all three must be present for +1 point):
✓ Direct user report: "Non-investor asked me about [asset]"
✓ Specific examples: Names, dates, conversations
✓ Multiple independent sources (minimum 3)
Scoring:
+1 point: All three criteria met (taxi driver/barber investment advice)
+0 points: Any criteria missing
Example of VALID evidence:
"User reported: 'My barber asked me about NVDA stock on Nov 1.
My dentist mentioned AI stocks on Nov 2.
My Uber driver discussed crypto on Nov 3.'"
Example of INVALID evidence:
"AI narrative is prevalent" (too vague, unmeasurable)B. Media/Search Trends (0-1 points):
REQUIRED EVIDENCE (measurable data only):
✓ Google Trends data showing 5x+ increase YoY
✓ Mainstream media coverage count (Time/Newsweek covers, TV specials)
✓ Web search data from multiple sources confirming saturation
Scoring:
+1 point: Search trends 5x+ baseline AND mainstream coverage confirmed
+0 points: Search trends <5x OR no mainstream coverage confirmation
⚠️ CRITICAL: "Elevated narrative" without data = +0 points
How to verify:
1. Use Google Trends API or web search for "[topic] search volume 2025"
2. Search for "[topic] Time magazine cover" or "[topic] CNBC special"
3. Document specific numbers and dates
Example of VALID evidence:
"Google Trends shows 'AI stocks' at 780 (baseline 150 = 5.2x).
Time Magazine cover 'The AI Revolution' (Oct 15, 2025).
CNBC aired 'AI Investment Special' (3 episodes in Oct 2025)."
Example of INVALID evidence:
"AI/technology narrative seems elevated" (unmeasurable)C. Valuation Disconnect (0-1 points):
⚠️ WARNING: Avoid double-counting with Phase 2 quantitative scores
REQUIRED EVIDENCE:
✓ P/E ratio >25 (if not already counted in Phase 2)
✓ Narrative explicitly ignores fundamentals
✓ "This time is different" reasoning documented in mainstream media
Scoring:
+1 point: P/E >25 AND fundamentals actively ignored in public discourse
+0 points: High P/E but fundamentals support valuation
Self-check questions:
- Is this already captured in Phase 2 quantitative scoring? If yes, +0 points
- Do companies have real earnings supporting valuations? If yes, +0 points
- Is the narrative backed by fundamental improvements? If yes, +0 points
Example of VALID evidence for +1 point:
"S&P 500 P/E = 35x (vs. historical 18x).
Mainstream articles: 'Earnings don't matter in AI era' (CNBC, Oct 2025).
'Traditional valuation metrics obsolete' (Bloomberg, Nov 2025)."
Example of INVALID evidence:
"P/E 30.8 but AI has fundamental backing" (fundamentals support valuation = +0)Phase 3 Adjustment Calculation:
Maximum possible: +3 points (1+1+1)
Common mistakes to avoid:
❌ Adding points based on "feeling" or "sense"
❌ Double-counting valuation already in Phase 2
❌ Accepting narrative claims without measuring data
✅ Require concrete, independently verifiable evidence
✅ Document specific sources and dates
✅ Apply strict interpretation standardsStep 6: Final Judgment and Report
# [Market Name] Bubble Evaluation Report (Revised v2.0)
## Overall Assessment
- Final Score: 0/16 points
- Phase: Normal
- Risk Level: Low
- Evaluation Date: 2025-10-27
## Quantitative Data (Phase 2)
| Indicator | Measured Value | Score | Rationale |
|-----------|----------------|-------|-----------|
| Put/Call | 0.95 | 0 pts | > 0.85 healthy |
| VIX + Highs | 15.3 | 0 pts | > 15 normal |
| Margin YoY | +8% | 0 pts | < +10% normal |
| IPO Heat | 1.29x | 0 pts | < 1.5x |
| Breadth | 68% | 0 pts | > 60% healthy |
| Price Accel | 75th %ile | 0 pts | < 85th %ile |
**Phase 2 Total: 0 points**
## Qualitative Adjustment (Phase 3)
- Social Penetration: No user reports (+0 pts)
- Media: Google Trends 1.8x (+0 pts)
- Valuation: P/E 21x (+0 pts)
**Phase 3 Adjustment: +0 points**
## Recommended Actions
**Risk Budget: 100%**
- Continue normal investment strategy
- Set ATR 2.0× trailing stop
- Apply stair-step profit-taking rule (+20% take 25%)
**Short-Selling: Not Allowed**
- Composite conditions: 0/7 met---
NG Examples vs OK Examples
NG Example 1: No Data Collection
❌ Bad Evaluation:
"Many Takaichi Trade reports"
"Experts warn of overheating"
→ Media saturation 2 points
✅ Good Evaluation:
[web_search: "Google Trends Japan stocks Takaichi"]
Result: 1.8x year-over-year
→ Google Trends adjustment +0 points (below 3x)NG Example 2: Scoring Based on Impressions
❌ Bad Evaluation:
"VIX seems to be at low levels"
→ Volatility suppression 2 points
✅ Good Evaluation:
[web_search: "VIX current level"]
Result: VIX 15.8
→ VIX > 15 = 0 pointsNG Example 3: Emotional Reaction to Price Rise
❌ Bad Evaluation:
"2,100 yen rise in one day is abnormal"
→ Price acceleration 2 points
✅ Good Evaluation:
[Verify daily return distribution over past 10 years]
4.5% rise = 80th percentile over past 10 years (rare but not extreme)
→ Price acceleration 0 points---
Self-Check: Quality of Evaluation
After completing evaluation, verify the following:
□ Did you collect data for all indicators in Phase 1?
- Put/Call: [ ]
- VIX: [ ]
- Margin: [ ]
- Breadth: [ ]
- IPO: [ ]
- Price Distribution: [ ]
□ Does each score have measured value basis?
- Have you excluded impressions like "many reports"?
□ Did you keep qualitative adjustment within +5 point limit?
- Adjustment A: [ ] points
- Adjustment B: [ ] points
- Adjustment C: [ ] points
- Total ≤ 5 points?
□ Is the final score reasonable?
- Compare with other quantitative frameworks
- Re-verify if there is a difference of 10+ points---
Evaluation Quality Judgment Criteria
Level 1: Failed (Insufficient Data)
- Quantitative data collection for 3 or fewer of 6 indicators
- Scoring based on impressions
- No source documentationLevel 2: Pass Minimum (Needs Improvement)
- Quantitative data collection for 4-5 of 6 indicators
- Some impression-based evaluation mixed in
- Source documentation present but incompleteLevel 3: Good (Recommended Level)
- Quantitative data collection for all 6 indicators
- Mechanical scoring implemented
- Source and date for all data
- Qualitative adjustment is conservative (+2 points or less)Level 4: Excellent (Best Practice)
- Perfect quantitative data collection
- Comparative analysis with historical data
- Cross-check with multiple sources
- Consistency check with quantitative frameworks
- Explicit statement of uncertainties---
Evaluation Report Template
# [Market Name] Bubble Evaluation Report v2.0
**Evaluation Date:** YYYY-MM-DD
**Evaluator Confidence:** [0-100]
**Data Completeness:** [0-100]%
---
## Executive Summary
**Conclusion:** [One-sentence conclusion]
**Score:** X/16 points ([Normal/Caution/Euphoria/Critical])
**Recommendation:** [Concise action]
---
## Quantitative Evaluation (Phase 2)
[Table of 6 indicators]
**Phase 2 Total:** X points
---
## Qualitative Adjustment (Phase 3)
[3 adjustment items]
**Phase 3 Adjustment:** +Y points
---
## Final Judgment
**Final Score:** X + Y = Z points
**Risk Budget:** [0-100]%
**Recommended Actions:**
1. [Specific action 1]
2. [Specific action 2]
3. [Specific action 3]
---
## Data Quality Notes
**Collected Data:**
- [Indicator name]: [value] ([source], [date])
- ...
**Limitations:**
- [Document if there are data constraints]
**Confidence Level:**
- Confidence in this evaluation: [reason]---
Red Flags During Review
If any of the following are observed, redo the evaluation:
🚩 "Many reports" → No numbers
🚩 "Experts are cautious" → No quantitative data
🚩 "Obviously too high" → Subjective judgment
🚩 Score 10+ points but Put/Call > 1.0
🚩 Score 10+ points but VIX > 20
🚩 Score 10+ points but Margin YoY < +15%
🚩 No data source documentation
🚩 No collection date documentation---
Reference Materials
Data Analysis Principles
- "In God we trust; all others must bring data." - W. Edwards Deming
- "Without data, you're just another person with an opinion." - W. Edwards Deming
Guarding Against Biases
- Confirmation bias: Collecting only information that supports your hypothesis
- Availability bias: Overweighting recently seen information
- Narrative fallacy: Oversimplifying causal relationships with stories
---
Final Check
Before submitting evaluation:
□ All quantitative data have numerical values
□ All data have sources and dates
□ Excluded impressions and emotional expressions
□ Scored mechanically
□ Qualitative adjustment is conservative (+2 points or less recommended)
□ Consistency verified with other quantitative frameworks
□ Uncertainties explicitly statedIf all of these are ✓, you are ready to report.
---
Last Updated: 2025-10-27 Next Review: Reflect feedback after actual evaluation implementation
Bubble Detection Quick Reference (English)
Daily Checklist (5 minutes)
Morning Routine (Before Market Open)
□ Step 1: Update Bubble-O-Meter (2 min)
- Score 8 indicators (0-2 points each)
- Check risk budget based on total score
□ Step 2: Position Management (2 min)
- Update ATR trailing stops
- Check stair-step profit targets
- Evaluate new entry eligibility
□ Step 3: Signal Check (1 min)
- Media/Social trends (Google Trends, Twitter)
- Major indices distance from 52-week highs
- VIX & Put/Call ratio---
Emergency Assessment: 3 Questions
When uncertain about an investment decision, answer these 3 questions:
Q1: "Are non-investors recommending it?"
- YES → Mass penetration complete, likely late stage
- NO → Still early to mid stage
Q2: "Has the narrative become 'common sense'?"
- YES → Euphoria stage, contrarian views socially unacceptable
- NO → Healthy skepticism still functions
Q3: "Is 'this time is different' the catchphrase?"
- YES → Classic historical bubble signal
- NO → Healthy caution still present
All 3 YES → Critical zone, prioritize profit-taking/exit
---
Action Matrix by Bubble Phase
| Phase | Score | Risk Budget | Entry | Profit-Taking | Stop | Short |
|---|---|---|---|---|---|---|
| Normal | 0-4 | 100% | Normal | At target | 2.0 ATR | No |
| Caution | 5-8 | 70% | 50% reduced | 25% at +20% | 1.8 ATR | No |
| Euphoria | 9-12 | 40% | Stopped | 50% at +20% | 1.5 ATR | After confirm |
| Critical | 13-16 | 20% | Stopped | 75-100% now | 1.2 ATR | Recommended |
---
8 Indicators Quick Scoring
1. Mass Penetration
0 pts: Investors only
1 pt: General awareness but investment limited
2 pts: Taxi drivers/family recommending2. Media Saturation
0 pts: Normal coverage
1 pt: Search trends 2-3x normal
2 pts: TV specials/magazine covers, 5x+ search spike3. New Accounts & Inflows
0 pts: Normal account openings
1 pt: 50-100% YoY increase
2 pts: 200%+ YoY, first-time investor flood4. New Issuance Flood
0 pts: Normal IPO volume
1 pt: IPO/SPAC/ETFs up 50%+
2 pts: Low-quality IPO flood, "theme" fund proliferation5. Leverage Indicators
0 pts: Margin debt in normal range
1 pt: Margin debt 1.5x average
2 pts: All-time high margin, funding rates elevated, extreme positioning6. Price Acceleration
0 pts: Annualized returns near historical median
1 pt: Returns exceed 90th percentile
2 pts: Returns at 95-99th percentile, or positive second derivative7. Valuation Disconnect
0 pts: Fundamentally explainable
1 pt: High valuation but "growth expectations" provide cover
2 pts: Pure "narrative" dependent, fundamentals ignored8. Breadth & Correlation
0 pts: Only leader stocks rising
1 pt: Sector-wide participation
2 pts: Low-quality/zombie companies rising (last buyers in)---
Profit-Taking Strategy Templates
Template 1: Stair-Step (Conservative)
Position: $10,000 initial investment
Targets: +20%, +40%, +60%, +80%
+20% ($12,000) → Sell 25% = $3,000 secured
+40% ($14,000) → Sell 25% = $3,500 secured
+60% ($16,000) → Sell 25% = $4,000 secured
+80% ($18,000) → Sell 25% = $4,500 secured
Total profit secured: $15,000 (+50% equivalent)Template 2: ATR Trailing (Aggressive)
def calculate_trailing_stop(current_price, atr_20d, bubble_phase):
"""
Calculate trailing stop based on bubble phase
bubble_phase: 'normal', 'caution', 'euphoria', 'critical'
"""
multipliers = {
'normal': 2.0,
'caution': 1.8,
'euphoria': 1.5,
'critical': 1.2
}
multiplier = multipliers.get(bubble_phase, 2.0)
stop_price = current_price - (atr_20d * multiplier)
return stop_priceTemplate 3: Hybrid (Recommended)
Stage 1 (Boom):
→ Stair-step reduces 50% of position
Stage 2 (Euphoria):
→ Apply ATR trailing to remaining 50%, ride upside
Stage 3 (Panic signals):
→ Exit immediately when ATR stop hit---
Short-Selling Timing Decision (Critical)
❌ Absolutely Avoid: Early Contrarian
Reason: Often 2-3x further rise after "obviously too high"
Risk: "Markets can remain irrational longer than you can remain solvent"✅ Recommended: After Composite Conditions Met
Need at least 3 of 7 conditions before considering:
1. □ Weekly chart shows clear lower highs 2. □ Volume peaked out (3 weeks declining) 3. □ Leverage metrics drop sharply (margin debt -20%+) 4. □ Media/search trends peaked out 5. □ Weak stocks in sector breaking down first 6. □ VIX spike (+30%+) 7. □ Fed or policy reversal signals
Execution example:
Conditions check:
[✓] 1. Weekly lower highs
[✓] 2. Volume declining 3 weeks
[×] 3. Margin debt still elevated
[✓] 4. Google trends -40%
[×] 5. Still broad rally
[✓] 6. VIX +35% spike
[×] 7. No policy change
→ 4/7 met, short consideration OK
→ Small size (25% of normal) test entry---
Common Failure Patterns & Solutions
Failure 1: "Too late" mentality, perpetual waiting
Psychology: Regret aversion (FOMO about missing out) Solution:
- Run Bubble-O-Meter when feeling too late
- If score ≤8, small entry OK
- If score ≥9, correct to wait
Failure 2: Re-entry after taking profits (buying high)
Psychology: Hindsight bias ("I knew it would go up") Solution:
- 72-hour re-entry ban after profit-taking
- Re-entry only after Bubble-O-Meter check
Failure 3: "Still going up" paralysis on profit-taking
Psychology: Greed + Overconfidence Solution:
- Automate stair-step (preset limit orders)
- Target "satisfaction" not "perfection"
Failure 4: Premature short selling
Psychology: Subjective "obviously too high" Solution:
- Mechanically check composite conditions
- Wait for minimum 3 conditions
---
Emergency Response Flowchart
Market shock detected
↓
Q: Have positions?
↓YES
Q: Down -5%+ ?
↓YES
Q: ATR stop hit?
↓YES
→ Sell immediately (no debate)
↓NO (stop not hit)
Q: Bubble-O-Meter 13+?
↓YES
→ Consider 75%+ profit-taking
↓NO (score ≤12)
Q: VIX spike +30%+?
↓YES
→ Take 50% profits, tighten stops on rest
↓NO
→ Normal monitoring, stay calm---
Golden Rules (Post on Your Wall)
1. Watch the process, not the price
2. When taxi drivers talk stocks, exit
3. "This time is different" is the same every time
4. Mechanical rules protect your psychology
5. Short after confirmation, take profits early
6. When skepticism hurts socially, the end begins
7. Aim for satisfaction, abandon perfection
8. Bubbles last longer than expected, crashes faster
9. Leverage is an express ticket to ruin
10. "Markets can remain irrational longer than you can remain solvent"
---
Key Data Sources
Instantly Accessible Indicators
| Indicator | Source | URL Example |
|---|---|---|
| Google Search Trends | Google Trends | trends.google.com |
| VIX (Fear Index) | CBOE | cboe.com/vix |
| Put/Call Ratio | CBOE | cboe.com/data |
| Margin Debt | FINRA | finra.org/data |
| Futures Positioning | CFTC COT | cftc.gov/reports |
| IPO Statistics | Renaissance IPO | renaissancecapital.com |
API-Accessible for Automation
# Example: Google Trends (pytrends)
from pytrends.request import TrendReq
pytrends = TrendReq()
pytrends.build_payload(['SPY', 'stock market'])
data = pytrends.interest_over_time()
# Example: VIX (yfinance)
import yfinance as yf
vix = yf.Ticker('^VIX')
current_vix = vix.history(period='1d')['Close'].iloc[-1]---
Further Learning
Books
- "Manias, Panics, and Crashes" - Charles Kindleberger
- "Irrational Exuberance" - Robert Shiller
- "The Alchemy of Finance" - George Soros
Research
- Hyman Minsky's Financial Instability Hypothesis
- Behavioral Finance classics
Data & Tools
- TradingView: Charts & technical indicators
- FRED (Federal Reserve): Economic time series
- Finviz: Screening & heatmaps
- Google Trends: Social trends
---
Last Updated: 2025 Edition License: Educational/personal use only
Bubble Detection Quick Reference
Daily Checklist (Complete in 5 Minutes)
Morning Routine (Before Market Open)
□ Step 1: Update Bubble-O-Meter (2 minutes)
- Score 8 indicators on 0-2 scale
- Confirm risk budget based on total score
□ Step 2: Position Management (2 minutes)
- Update ATR trailing stops
- Check if stair-step profit-taking targets reached
- Determine new entry eligibility
□ Step 3: Signal Confirmation (1 minute)
- Media/social media trends (Google Trends, Twitter)
- Major indices' distance from 52-week highs
- VIX & Put/Call ratio---
Emergency Assessment: 3 Questions
When uncertain about investment decisions, answer these 3 questions:
Q1: "Are non-investors recommending?"
- YES → Mass penetration complete, likely late stage
- NO → Still early-to-mid stage
Q2: "Has the narrative become 'common sense'?"
- YES → Euphoria stage, dissent socially unacceptable
- NO → Skeptical views still tolerated, healthy state
Q3: "Is 'this time is different' the mantra?"
- YES → Historically typical bubble sign
- NO → Healthy caution still functioning
All 3 YES → Critical zone, prioritize profit-taking/exit
---
Action Matrix by Bubble Stage (REVISED v2.1)
| Phase | Score | Risk Budget | Entry | Profit-Taking | Stop | Shorts |
|---|---|---|---|---|---|---|
| Normal | 0-4 | 100% | Normal | At target | 2.0 ATR | No |
| Caution | 5-7 | 70-80% | 50% reduced | 25% at +20% | 1.8 ATR | No |
| Elevated Risk | 8-9 | 50-70% | Selective | 40% at +20% | 1.6 ATR | Consider |
| Euphoria | 10-12 | 40-50% | Stop | 50% at +20% | 1.5 ATR | After conditions |
| Critical | 13-15 | 20-30% | Stop | 75-100% immediate | 1.2 ATR | Recommended |
Note: Maximum score reduced from 16 to 15 points (Phase 2: max 12, Phase 3: max 3)
---
Quick Scoring for 8 Indicators
1. Mass Penetration
0 points: Investors only
1 point: General awareness but investment still limited
2 points: Taxi drivers/family recommending2. Media Saturation
0 points: Normal coverage level
1 point: Search trends 2-3x
2 points: TV specials/magazine covers, searches 5x+3. New Entrants
0 points: Normal account opening pace
1 point: 50-100% YoY increase
2 points: 200%+ YoY, beginner flood4. Issuance Flood
0 points: Normal IPO count
1 point: 50% increase in IPOs/related products
2 points: Low-quality IPOs, theme ETF proliferation5. Leverage
0 points: Normal range
1 point: Margin balance 1.5x
2 points: All-time high, funding rates elevated6. Price Acceleration
0 points: Near historical median
1 point: Exceeds 90th percentile
2 points: 95-99th percentile or accelerating7. Valuation Disconnect
0 points: Explainable by fundamentals
1 point: High valuation but explained by growth expectations
2 points: Completely "narrative"-dependent, fundamentals ignored8. Correlation & Breadth
0 points: Only some leaders rising
1 point: Sector-wide spread
2 points: Even low-quality/zombie companies rallying---
Key Data Sources
Instantly Checkable Indicators
| Indicator | Source | Example URL |
|---|---|---|
| Google Search Trends | Google Trends | trends.google.com |
| VIX (Fear Index) | CBOE | cboe.com/vix |
| Put/Call Ratio | CBOE | cboe.com/data |
| Margin Balance | FINRA | finra.org/data |
| Futures Positions | CFTC COT | cftc.gov/reports |
| IPO Statistics | Renaissance IPO | renaissancecapital.com |
API-Accessible Auto-Retrieval
# Example: Google Trends (pytrends)
from pytrends.request import TrendReq
pytrends = TrendReq()
pytrends.build_payload(['SPY', 'stock market'])
data = pytrends.interest_over_time()
# Example: VIX (yfinance)
import yfinance as yf
vix = yf.Ticker('^VIX')
current_vix = vix.history(period='1d')['Close'].iloc[-1]---
Profit-Taking Strategy Templates
Template 1: Stair-Step Profit-Taking (Conservative)
Position: $10,000 initial investment
Targets: +20%, +40%, +60%, +80%
+20% ($12,000) → Sell 25% = $3,000 secured
+40% ($14,000) → Sell 25% = $3,500 secured
+60% ($16,000) → Sell 25% = $4,000 secured
+80% ($18,000) → Sell 25% = $4,500 secured
Total profits: $15,000 (+50% equivalent)Template 2: ATR Trailing (Aggressive)
def calculate_trailing_stop(current_price, atr_20d, bubble_phase):
"""
Calculate trailing stop based on bubble stage
bubble_phase: 'normal', 'caution', 'euphoria', 'critical'
"""
multipliers = {
'normal': 2.0,
'caution': 1.8,
'euphoria': 1.5,
'critical': 1.2
}
multiplier = multipliers.get(bubble_phase, 2.0)
stop_price = current_price - (atr_20d * multiplier)
return stop_price
# Usage example
current_price = 450.0
atr_20d = 10.0 # Average True Range over 20 days
bubble_phase = 'euphoria'
stop = calculate_trailing_stop(current_price, atr_20d, bubble_phase)
print(f"Trailing Stop: ${stop:.2f}")
# Output: Trailing Stop: $435.00Template 3: Hybrid (Recommended)
Stage 1 (Boom period):
→ Reduce 50% of position via stair-step profit-taking
Stage 2 (Euphoria period):
→ Apply ATR trailing to remaining 50%, follow upside
Stage 3 (Panic signs):
→ Exit immediately when ATR stop hit---
Short-Selling Timing Assessment (Critical)
❌ Absolutely NG: Early Contrarian
Reason: Normal for prices to rise 2-3x more after feeling "too high"
Risk: "Markets can remain irrational longer than you can remain solvent"✅ Recommended: After Composite Conditions Clear
Consider starting when at least 3 apply:
1. □ Weekly chart shows clear lower highs 2. □ Volume peaks out (3 consecutive weeks declining) 3. □ Sharp drop in leverage indicators (margin balance -20%+) 4. □ Media/search trends peak out 5. □ Weak stocks within sector start breaking down first 6. □ VIX surges (+30%+) 7. □ Fed/policy shift signals
Execution Example:
Condition Check:
[✓] 1. Weekly lower highs forming
[✓] 2. Volume declining 3 weeks straight
[×] 3. Margin balance still elevated
[✓] 4. Google search trends -40%
[×] 5. Still broad rally continuing
[✓] 6. VIX +35% surge
[×] 7. No policy changes
→ 4/7 met, shorts consideration OK
→ Small position (25% of normal) for test entry---
Common Failure Patterns & Solutions
Failure 1: "Too late" paralysis, missing opportunities
Psychology: Regret aversion (fear of being late) Solution:
- Conduct Bubble-O-Meter when feeling "too late"
- Score ≤8: Small position entry OK
- Score ≥9: Correct to stay out
Failure 2: Re-entry after profit-taking (buying high)
Psychology: Hindsight bias ("knew it would go higher") Solution:
- 72-hour no re-entry rule after profit-taking
- Re-entry decisions only after Bubble-O-Meter check
Failure 3: Can't take profits due to "still rising"
Psychology: Greed + Overconfidence Solution:
- Automate stair-step profit-taking (pre-set limit orders)
- Aim for "satisfaction," abandon "perfection"
Failure 4: Too-early shorts
Psychology: Subjective "obviously too high" judgment Solution:
- Mechanically verify composite conditions
- Wait for minimum 3 conditions to clear
---
Emergency Response Flowchart
Detect market volatility
↓
Q: Have positions?
↓YES
Q: Down -5% or more?
↓YES
Q: ATR stop reached?
↓YES
→ Sell immediately (no debate)
↓NO (Stop not reached)
Q: Bubble-O-Meter score 13+?
↓YES
→ Consider 75%+ profit-taking
↓NO (Score ≤12)
Q: VIX surge +30%+?
↓YES
→ 50% profit-taking, tighten remaining stops
↓NO
→ Business as usual, continue calm observation---
Golden Rules (10 Commandments to Post on Wall)
1. See process, not price
2. When taxi drivers talk stocks, exit
3. "This time is different" is always the same
4. Mechanical rules protect psychology
5. Short after confirmation, take profits early
6. When skepticism hurts, the end begins
7. Aim for satisfaction, abandon perfection
8. Bubbles last longer than expected, collapses are faster
9. Leverage is an express ticket to ruin
10. "Markets can remain irrational longer than you can remain solvent"
---
Resources for Further Learning
Books
- "Manias, Panics, and Crashes" - Charles Kindleberger
- "Irrational Exuberance" - Robert Shiller
- "The Alchemy of Finance" - George Soros
Research
- Hyman Minsky's Financial Instability Hypothesis
- Classic papers in Behavioral Finance
Data & Tools
- TradingView: Charts and technical indicators
- FRED (Federal Reserve): Economic indicator time series
- Finviz: Screening and heatmaps
- Google Trends: Social trends
---
Last Updated: 2025 Edition License: Educational and personal use only, redistribution prohibited
#!/usr/bin/env python3
"""
Bubble-O-Meter: 米国株式市場のバブル度を多面的に評価するスクリプト
8つの指標を0-2点で評価し、合計スコア(0-16点)でバブル度を判定:
- 0-4: 正常域
- 5-8: 警戒域
- 9-12: 熱狂域
- 13-16: 臨界域
使用方法:
python bubble_scorer.py --ticker SPY --period 1y
"""
import argparse
import json
from datetime import datetime
class BubbleScorer:
"""バブルスコアリングシステム"""
def __init__(self):
self.indicators = {
"mass_penetration": {
"name": "大衆浸透度",
"weight": 2,
"description": "非投資家層からの推奨・言及",
},
"media_saturation": {
"name": "メディア飽和",
"weight": 2,
"description": "検索・SNS・メディア露出の急騰",
},
"new_accounts": {
"name": "新規参入",
"weight": 2,
"description": "口座開設・資金流入の加速",
},
"new_issuance": {
"name": "新規発行氾濫",
"weight": 2,
"description": "IPO/SPAC/関連商品の乱立",
},
"leverage": {
"name": "レバレッジ",
"weight": 2,
"description": "証拠金・信用・資金調達レートの偏り",
},
"price_acceleration": {
"name": "価格加速度",
"weight": 2,
"description": "リターンが歴史分布上位に到達",
},
"valuation_disconnect": {
"name": "バリュエーション逸脱",
"weight": 2,
"description": "ファンダ説明が物語一辺倒に",
},
"breadth_expansion": {
"name": "相関と幅",
"weight": 2,
"description": "低質銘柄まで全面高",
},
}
def calculate_score(self, scores: dict[str, int]) -> dict:
"""
各指標のスコアから総合評価を計算
Args:
scores: 各指標のスコア辞書 (0-2点)
Returns:
評価結果の辞書
"""
total_score = sum(scores.values())
max_score = len(self.indicators) * 2
# バブル段階の判定
if total_score <= 4:
phase = "正常域"
risk_level = "低"
action = "通常通りの投資戦略を継続"
elif total_score <= 8:
phase = "警戒域"
risk_level = "中"
action = "部分利確の開始、新規ポジションのサイズ縮小"
elif total_score <= 12:
phase = "熱狂域"
risk_level = "高"
action = "階段状利確の加速、ATRトレーリングストップ厳格化、総リスク予算30-50%削減"
else:
phase = "臨界域"
risk_level = "極めて高"
action = "大幅な利確またはフルヘッジ、新規参入停止、反転確認後のショートポジション検討"
# Minskyフェーズの推定
minsky_phase = self._estimate_minsky_phase(scores, total_score)
return {
"timestamp": datetime.now().isoformat(),
"total_score": total_score,
"max_score": max_score,
"percentage": round(total_score / max_score * 100, 1),
"phase": phase,
"risk_level": risk_level,
"minsky_phase": minsky_phase,
"recommended_action": action,
"indicator_scores": scores,
"detailed_indicators": self._format_indicator_details(scores),
}
def _estimate_minsky_phase(self, scores: dict[str, int], total: int) -> str:
"""Minsky/Kindlebergerフェーズの推定"""
mass_pen = scores.get("mass_penetration", 0)
media = scores.get("media_saturation", 0)
price_acc = scores.get("price_acceleration", 0)
if total <= 4:
return "Displacement/Early Boom (きっかけ・初期拡張)"
elif total <= 8:
if media >= 1 and price_acc >= 1:
return "Boom (拡張期)"
else:
return "Displacement/Early Boom (きっかけ・初期拡張)"
elif total <= 12:
if mass_pen >= 2 and media >= 2:
return "Euphoria (熱狂期) - FOMOが制度化"
else:
return "Late Boom/Early Euphoria (拡張後期・熱狂初期)"
else:
if mass_pen >= 2:
return "Peak Euphoria/Profit Taking (熱狂ピーク・利確開始) - 反転間近"
else:
return "Euphoria (熱狂期)"
def _format_indicator_details(self, scores: dict[str, int]) -> list[dict]:
"""指標の詳細情報をフォーマット"""
details = []
for key, value in scores.items():
indicator = self.indicators.get(key, {})
status = "🔴高" if value == 2 else "🟡中" if value == 1 else "🟢低"
details.append(
{
"indicator": indicator.get("name", key),
"score": value,
"status": status,
"description": indicator.get("description", ""),
}
)
return details
def get_scoring_guidelines(self) -> str:
"""各指標のスコアリングガイドラインを返す"""
guidelines = """
## バブルスコアリング・ガイドライン
### 1. 大衆浸透度 (Mass Penetration)
- 0点: 専門家・投資家層のみの議論
- 1点: 一般層にも認知されるが、まだ投資対象としては限定的
- 2点: 非投資家(タクシー運転手、美容師、家族)が積極的に推奨・言及
### 2. メディア飽和 (Media Saturation)
- 0点: 通常レベルの報道・検索トレンド
- 1点: 検索トレンド、SNS言及が平常の2-3倍
- 2点: テレビ特集、雑誌表紙、検索トレンド急騰(平常の5倍以上)
### 3. 新規参入 (New Accounts & Inflows)
- 0点: 通常レベルの口座開設・入金
- 1点: 口座開設が前年比50-100%増
- 2点: 口座開設が前年比200%以上、「初めての投資」層の大量流入
### 4. 新規発行氾濫 (New Issuance Flood)
- 0点: 通常レベルのIPO/商品組成
- 1点: IPO/SPAC/関連ETFが前年比50%以上増加
- 2点: 低質なIPO乱立、「○○関連」ファンド・ETFの濫造
### 5. レバレッジ (Leverage Indicators)
- 0点: 証拠金残高・信用評価損益が正常範囲
- 1点: 証拠金残高が過去平均の1.5倍、先物ポジション偏り
- 2点: 証拠金残高が過去最高更新、資金調達レート高止まり、極端なポジション偏り
### 6. 価格加速度 (Price Acceleration)
- 0点: 年率リターンが歴史分布の中央値付近
- 1点: 年率リターンが過去90パーセンタイル超
- 2点: 年率リターンが過去95-99パーセンタイル、または加速度(2階微分)が正で増加
### 7. バリュエーション逸脱 (Valuation Disconnect)
- 0点: ファンダメンタルで合理的に説明可能
- 1点: 高バリュエーションだが「成長期待」で一応説明可能
- 2点: 説明が完全に「物語」「革命」「パラダイムシフト」に依存、「今回は違う」
### 8. 相関と幅 (Breadth & Correlation)
- 0点: 一部のリーダー銘柄のみ上昇
- 1点: セクター全体に波及、mid-capまで上昇
- 2点: 低質・low-cap銘柄まで全面高、「ゾンビ企業」も上昇(最後の買い手参入)
"""
return guidelines
def format_output(self, result: dict) -> str:
"""結果を読みやすくフォーマット"""
output = f"""
{"=" * 60}
🔍 米国市場バブル度評価 - Bubble-O-Meter
{"=" * 60}
評価日時: {result["timestamp"]}
【総合スコア】
{result["total_score"]}/{result["max_score"]}点 ({result["percentage"]}%)
【市場フェーズ】
現在: {result["phase"]} (リスク: {result["risk_level"]})
Minskyフェーズ: {result["minsky_phase"]}
【推奨アクション】
{result["recommended_action"]}
{"=" * 60}
【指標別スコア】
{"=" * 60}
"""
for detail in result["detailed_indicators"]:
output += f"\n{detail['status']} {detail['indicator']}: {detail['score']}/2点\n"
output += f" └─ {detail['description']}\n"
output += f"\n{'=' * 60}\n"
return output
def manual_assessment() -> dict[str, int]:
"""対話型の手動評価"""
scorer = BubbleScorer()
print("\n" + "=" * 60)
print("🔍 米国市場バブル度評価 - Manual Assessment")
print("=" * 60)
print("\n各指標を0-2点で評価してください:")
print(scorer.get_scoring_guidelines())
scores = {}
for key, indicator in scorer.indicators.items():
while True:
try:
score = int(input(f"\n{indicator['name']} (0-2): "))
if 0 <= score <= 2:
scores[key] = score
break
else:
print("0, 1, 2 のいずれかを入力してください")
except ValueError:
print("数値を入力してください")
return scores
def main():
parser = argparse.ArgumentParser(description="米国市場のバブル度を評価するBubble-O-Meter")
parser.add_argument("--manual", action="store_true", help="対話型の手動評価モード")
parser.add_argument(
"--scores",
type=str,
help='JSON形式のスコア文字列 (例: \'{"mass_penetration":2,"media_saturation":1,...}\')',
)
parser.add_argument("--output", choices=["text", "json"], default="text", help="出力形式")
args = parser.parse_args()
scorer = BubbleScorer()
# スコアの取得
if args.manual:
scores = manual_assessment()
elif args.scores:
try:
scores = json.loads(args.scores)
except json.JSONDecodeError:
print("エラー: 無効なJSON形式です")
return 1
else:
print("エラー: --manual または --scores を指定してください")
print("\nガイドラインを表示:")
print(scorer.get_scoring_guidelines())
return 1
# 評価の実行
result = scorer.calculate_score(scores)
# 出力
if args.output == "json":
print(json.dumps(result, indent=2, ensure_ascii=False))
else:
print(scorer.format_output(result))
return 0
if __name__ == "__main__":
exit(main())
Related skills
How it compares
Use us-market-bubble-detector for rules-based macro bubble scoring rather than discretionary sentiment reads or single-indicator valuation checks.
FAQ
What changed in us-market-bubble-detector v2.1?
us-market-bubble-detector v2.1 fixed v2.0's subjective qualitative adjustments—such as unmeasured media narrative boosts—that inflated bubble scores; scoring now relies on objective Phase 2 quantitative inputs on a 16-point scale.
What output does us-market-bubble-detector produce?
us-market-bubble-detector returns a quantitative bubble risk score on a 16-point framework, a market phase label such as Euphoria, and a recommended risk-budget percentage to guide defensive position sizing.
Is Us Market Bubble Detector safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.