quantwise 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/README.md +80 -0
- package/.claude/skills/backtest-expert/SKILL.md +206 -0
- package/.claude/skills/backtest-expert/references/failed_tests.md +236 -0
- package/.claude/skills/backtest-expert/references/methodology.md +227 -0
- package/.claude/skills/breadth-chart-analyst/SKILL.md +583 -0
- package/.claude/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
- package/.claude/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
- package/.claude/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
- package/.claude/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
- package/.claude/skills/canslim-screener/SKILL.md +599 -0
- package/.claude/skills/canslim-screener/references/canslim_methodology.md +606 -0
- package/.claude/skills/canslim-screener/references/fmp_api_endpoints.md +707 -0
- package/.claude/skills/canslim-screener/references/interpretation_guide.md +516 -0
- package/.claude/skills/canslim-screener/references/scoring_system.md +597 -0
- package/.claude/skills/canslim-screener/scripts/calculators/earnings_calculator.py +343 -0
- package/.claude/skills/canslim-screener/scripts/calculators/growth_calculator.py +334 -0
- package/.claude/skills/canslim-screener/scripts/calculators/institutional_calculator.py +347 -0
- package/.claude/skills/canslim-screener/scripts/calculators/leadership_calculator.py +380 -0
- package/.claude/skills/canslim-screener/scripts/calculators/market_calculator.py +244 -0
- package/.claude/skills/canslim-screener/scripts/calculators/new_highs_calculator.py +194 -0
- package/.claude/skills/canslim-screener/scripts/calculators/supply_demand_calculator.py +221 -0
- package/.claude/skills/canslim-screener/scripts/finviz_stock_client.py +227 -0
- package/.claude/skills/canslim-screener/scripts/fmp_client.py +393 -0
- package/.claude/skills/canslim-screener/scripts/report_generator.py +405 -0
- package/.claude/skills/canslim-screener/scripts/scorer.py +625 -0
- package/.claude/skills/canslim-screener/scripts/screen_canslim.py +361 -0
- package/.claude/skills/canslim-screener/scripts/test_institutional_endpoint.py +109 -0
- package/.claude/skills/chart/SKILL.md +20 -0
- package/.claude/skills/dividend-growth-pullback-screener/SKILL.md +322 -0
- package/.claude/skills/dividend-growth-pullback-screener/references/dividend_growth_compounding.md +400 -0
- package/.claude/skills/dividend-growth-pullback-screener/references/fmp_api_guide.md +642 -0
- package/.claude/skills/dividend-growth-pullback-screener/references/rsi_oversold_strategy.md +333 -0
- package/.claude/skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py +1155 -0
- package/.claude/skills/earnings-calendar/SKILL.md +721 -0
- package/.claude/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
- package/.claude/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
- package/.claude/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
- package/.claude/skills/earnings-calendar/scripts/generate_report.py +366 -0
- package/.claude/skills/economic-calendar-fetcher/SKILL.md +365 -0
- package/.claude/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
- package/.claude/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
- package/.claude/skills/ftd-detector/SKILL.md +147 -0
- package/.claude/skills/ftd-detector/references/ftd_methodology.md +188 -0
- package/.claude/skills/ftd-detector/references/post_ftd_guide.md +185 -0
- package/.claude/skills/ftd-detector/scripts/fmp_client.py +158 -0
- package/.claude/skills/ftd-detector/scripts/ftd_detector.py +280 -0
- package/.claude/skills/ftd-detector/scripts/post_ftd_monitor.py +404 -0
- package/.claude/skills/ftd-detector/scripts/rally_tracker.py +508 -0
- package/.claude/skills/ftd-detector/scripts/report_generator.py +341 -0
- package/.claude/skills/ftd-detector/scripts/tests/conftest.py +9 -0
- package/.claude/skills/ftd-detector/scripts/tests/helpers.py +107 -0
- package/.claude/skills/ftd-detector/scripts/tests/test_post_ftd_monitor.py +311 -0
- package/.claude/skills/ftd-detector/scripts/tests/test_rally_tracker.py +302 -0
- package/.claude/skills/institutional-flow-tracker/README.md +362 -0
- package/.claude/skills/institutional-flow-tracker/SKILL.md +357 -0
- package/.claude/skills/institutional-flow-tracker/references/13f_filings_guide.md +383 -0
- package/.claude/skills/institutional-flow-tracker/references/institutional_investor_types.md +580 -0
- package/.claude/skills/institutional-flow-tracker/references/interpretation_framework.md +573 -0
- package/.claude/skills/institutional-flow-tracker/scripts/analyze_single_stock.py +457 -0
- package/.claude/skills/institutional-flow-tracker/scripts/track_institution_portfolio.py +108 -0
- package/.claude/skills/institutional-flow-tracker/scripts/track_institutional_flow.py +450 -0
- package/.claude/skills/macro-regime-detector/SKILL.md +86 -0
- package/.claude/skills/macro-regime-detector/references/historical_regimes.md +124 -0
- package/.claude/skills/macro-regime-detector/references/indicator_interpretation_guide.md +144 -0
- package/.claude/skills/macro-regime-detector/references/regime_detection_methodology.md +138 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/concentration_calculator.py +165 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/credit_conditions_calculator.py +124 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/equity_bond_calculator.py +198 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/sector_rotation_calculator.py +123 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/size_factor_calculator.py +131 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/utils.py +347 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/yield_curve_calculator.py +279 -0
- package/.claude/skills/macro-regime-detector/scripts/fmp_client.py +134 -0
- package/.claude/skills/macro-regime-detector/scripts/macro_regime_detector.py +278 -0
- package/.claude/skills/macro-regime-detector/scripts/report_generator.py +327 -0
- package/.claude/skills/macro-regime-detector/scripts/scorer.py +574 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/conftest.py +9 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_concentration.py +78 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_credit_conditions.py +59 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_equity_bond.py +74 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_helpers.py +90 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_scorer.py +439 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_sector_rotation.py +78 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_size_factor.py +59 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_utils.py +126 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_yield_curve.py +64 -0
- package/.claude/skills/market-breadth-analyzer/SKILL.md +121 -0
- package/.claude/skills/market-breadth-analyzer/references/breadth_analysis_methodology.md +168 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/bearish_signal_calculator.py +150 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/cycle_calculator.py +168 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/divergence_calculator.py +119 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/historical_context_calculator.py +120 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/ma_crossover_calculator.py +115 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/trend_level_calculator.py +103 -0
- package/.claude/skills/market-breadth-analyzer/scripts/csv_client.py +225 -0
- package/.claude/skills/market-breadth-analyzer/scripts/market_breadth_analyzer.py +307 -0
- package/.claude/skills/market-breadth-analyzer/scripts/report_generator.py +330 -0
- package/.claude/skills/market-breadth-analyzer/scripts/scorer.py +271 -0
- package/.claude/skills/market-environment-analysis/SKILL.md +139 -0
- package/.claude/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
- package/.claude/skills/market-environment-analysis/references/indicators.md +99 -0
- package/.claude/skills/market-environment-analysis/scripts/market_utils.py +127 -0
- package/.claude/skills/market-news-analyst/SKILL.md +714 -0
- package/.claude/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
- package/.claude/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
- package/.claude/skills/market-news-analyst/references/market_event_patterns.md +393 -0
- package/.claude/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
- package/.claude/skills/market-top-detector/SKILL.md +159 -0
- package/.claude/skills/market-top-detector/references/distribution_day_guide.md +100 -0
- package/.claude/skills/market-top-detector/references/historical_tops.md +142 -0
- package/.claude/skills/market-top-detector/references/market_top_methodology.md +167 -0
- package/.claude/skills/market-top-detector/scripts/calculators/__init__.py +17 -0
- package/.claude/skills/market-top-detector/scripts/calculators/breadth_calculator.py +116 -0
- package/.claude/skills/market-top-detector/scripts/calculators/defensive_rotation_calculator.py +127 -0
- package/.claude/skills/market-top-detector/scripts/calculators/distribution_day_calculator.py +161 -0
- package/.claude/skills/market-top-detector/scripts/calculators/index_technical_calculator.py +254 -0
- package/.claude/skills/market-top-detector/scripts/calculators/leading_stock_calculator.py +198 -0
- package/.claude/skills/market-top-detector/scripts/calculators/sentiment_calculator.py +213 -0
- package/.claude/skills/market-top-detector/scripts/fmp_client.py +158 -0
- package/.claude/skills/market-top-detector/scripts/market_top_detector.py +349 -0
- package/.claude/skills/market-top-detector/scripts/report_generator.py +314 -0
- package/.claude/skills/market-top-detector/scripts/scorer.py +473 -0
- package/.claude/skills/market-top-detector/scripts/tests/conftest.py +9 -0
- package/.claude/skills/market-top-detector/scripts/tests/helpers.py +49 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_breadth.py +62 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_defensive_rotation.py +56 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_distribution_day.py +92 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_index_technical.py +73 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_leading_stock.py +57 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_scorer.py +180 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_sentiment.py +64 -0
- package/.claude/skills/options-strategy-advisor/README.md +469 -0
- package/.claude/skills/options-strategy-advisor/SKILL.md +959 -0
- package/.claude/skills/options-strategy-advisor/scripts/black_scholes.py +495 -0
- package/.claude/skills/pair-trade-screener/README.md +389 -0
- package/.claude/skills/pair-trade-screener/SKILL.md +622 -0
- package/.claude/skills/pair-trade-screener/references/cointegration_guide.md +745 -0
- package/.claude/skills/pair-trade-screener/references/methodology.md +853 -0
- package/.claude/skills/pair-trade-screener/scripts/analyze_spread.py +394 -0
- package/.claude/skills/pair-trade-screener/scripts/find_pairs.py +535 -0
- package/.claude/skills/portfolio-manager/README.md +394 -0
- package/.claude/skills/portfolio-manager/SKILL.md +750 -0
- package/.claude/skills/portfolio-manager/references/alpaca-mcp-setup.md +367 -0
- package/.claude/skills/portfolio-manager/references/asset-allocation.md +502 -0
- package/.claude/skills/portfolio-manager/references/diversification-principles.md +553 -0
- package/.claude/skills/portfolio-manager/references/portfolio-risk-metrics.md +603 -0
- package/.claude/skills/portfolio-manager/references/position-evaluation.md +477 -0
- package/.claude/skills/portfolio-manager/references/rebalancing-strategies.md +715 -0
- package/.claude/skills/portfolio-manager/references/risk-profile-questionnaire.md +608 -0
- package/.claude/skills/portfolio-manager/references/target-allocations.md +558 -0
- package/.claude/skills/portfolio-manager/scripts/test_alpaca_connection.py +286 -0
- package/.claude/skills/scenario-analyzer/SKILL.md +317 -0
- package/.claude/skills/scenario-analyzer/references/headline_event_patterns.md +264 -0
- package/.claude/skills/scenario-analyzer/references/scenario_playbooks.md +320 -0
- package/.claude/skills/scenario-analyzer/references/sector_sensitivity_matrix.md +217 -0
- package/.claude/skills/sector-analyst/SKILL.md +206 -0
- package/.claude/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
- package/.claude/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
- package/.claude/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
- package/.claude/skills/sector-analyst/references/sector_rotation.md +170 -0
- package/.claude/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
- package/.claude/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
- package/.claude/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
- package/.claude/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
- package/.claude/skills/stock/NOTION_SETUP.md +33 -0
- package/.claude/skills/stock/SKILL.md +38 -0
- package/.claude/skills/technical-analyst/SKILL.md +238 -0
- package/.claude/skills/technical-analyst/assets/analysis_template.md +183 -0
- package/.claude/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
- package/.claude/skills/theme-detector/SKILL.md +320 -0
- package/.claude/skills/theme-detector/assets/report_template.md +155 -0
- package/.claude/skills/theme-detector/references/cross_sector_themes.md +252 -0
- package/.claude/skills/theme-detector/references/finviz_industry_codes.md +403 -0
- package/.claude/skills/theme-detector/references/thematic_etf_catalog.md +333 -0
- package/.claude/skills/theme-detector/references/theme_detection_methodology.md +430 -0
- package/.claude/skills/theme-detector/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/theme-detector/scripts/calculators/heat_calculator.py +123 -0
- package/.claude/skills/theme-detector/scripts/calculators/industry_ranker.py +98 -0
- package/.claude/skills/theme-detector/scripts/calculators/lifecycle_calculator.py +172 -0
- package/.claude/skills/theme-detector/scripts/calculators/theme_classifier.py +195 -0
- package/.claude/skills/theme-detector/scripts/calculators/theme_discoverer.py +280 -0
- package/.claude/skills/theme-detector/scripts/config_loader.py +142 -0
- package/.claude/skills/theme-detector/scripts/default_theme_config.py +254 -0
- package/.claude/skills/theme-detector/scripts/etf_scanner.py +609 -0
- package/.claude/skills/theme-detector/scripts/finviz_performance_client.py +131 -0
- package/.claude/skills/theme-detector/scripts/report_generator.py +490 -0
- package/.claude/skills/theme-detector/scripts/representative_stock_selector.py +673 -0
- package/.claude/skills/theme-detector/scripts/scorer.py +87 -0
- package/.claude/skills/theme-detector/scripts/tests/README.md +21 -0
- package/.claude/skills/theme-detector/scripts/tests/conftest.py +9 -0
- package/.claude/skills/theme-detector/scripts/tests/test_config_loader.py +239 -0
- package/.claude/skills/theme-detector/scripts/tests/test_etf_scanner.py +810 -0
- package/.claude/skills/theme-detector/scripts/tests/test_heat_calculator.py +245 -0
- package/.claude/skills/theme-detector/scripts/tests/test_industry_ranker.py +256 -0
- package/.claude/skills/theme-detector/scripts/tests/test_lifecycle_calculator.py +301 -0
- package/.claude/skills/theme-detector/scripts/tests/test_report_generator.py +624 -0
- package/.claude/skills/theme-detector/scripts/tests/test_representative_stock_selector.py +898 -0
- package/.claude/skills/theme-detector/scripts/tests/test_scorer.py +185 -0
- package/.claude/skills/theme-detector/scripts/tests/test_theme_classifier.py +534 -0
- package/.claude/skills/theme-detector/scripts/tests/test_theme_detector_e2e.py +467 -0
- package/.claude/skills/theme-detector/scripts/tests/test_theme_discoverer.py +458 -0
- package/.claude/skills/theme-detector/scripts/tests/test_uptrend_client.py +76 -0
- package/.claude/skills/theme-detector/scripts/theme_detector.py +815 -0
- package/.claude/skills/theme-detector/scripts/themes.yaml +168 -0
- package/.claude/skills/theme-detector/scripts/uptrend_client.py +241 -0
- package/.claude/skills/uptrend-analyzer/SKILL.md +108 -0
- package/.claude/skills/uptrend-analyzer/references/uptrend_methodology.md +215 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/historical_context_calculator.py +122 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/market_breadth_calculator.py +145 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/momentum_calculator.py +183 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/sector_participation_calculator.py +204 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/sector_rotation_calculator.py +218 -0
- package/.claude/skills/uptrend-analyzer/scripts/data_fetcher.py +236 -0
- package/.claude/skills/uptrend-analyzer/scripts/report_generator.py +329 -0
- package/.claude/skills/uptrend-analyzer/scripts/scorer.py +276 -0
- package/.claude/skills/uptrend-analyzer/scripts/uptrend_analyzer.py +219 -0
- package/.claude/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
- package/.claude/skills/us-market-bubble-detector/SKILL.md +545 -0
- package/.claude/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
- package/.claude/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
- package/.claude/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
- package/.claude/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
- package/.claude/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
- package/.claude/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
- package/.claude/skills/us-stock-analysis/SKILL.md +294 -0
- package/.claude/skills/us-stock-analysis/references/financial-metrics.md +172 -0
- package/.claude/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
- package/.claude/skills/us-stock-analysis/references/report-template.md +207 -0
- package/.claude/skills/us-stock-analysis/references/technical-analysis.md +93 -0
- package/.claude/skills/value-dividend-screener/SKILL.md +562 -0
- package/.claude/skills/value-dividend-screener/references/fmp_api_guide.md +348 -0
- package/.claude/skills/value-dividend-screener/references/screening_methodology.md +315 -0
- package/.claude/skills/value-dividend-screener/scripts/screen_dividend_stocks.py +1138 -0
- package/.claude/skills/vcp-screener/SKILL.md +79 -0
- package/.claude/skills/vcp-screener/references/fmp_api_endpoints.md +45 -0
- package/.claude/skills/vcp-screener/references/scoring_system.md +154 -0
- package/.claude/skills/vcp-screener/references/vcp_methodology.md +124 -0
- package/.claude/skills/vcp-screener/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/vcp-screener/scripts/calculators/pivot_proximity_calculator.py +139 -0
- package/.claude/skills/vcp-screener/scripts/calculators/relative_strength_calculator.py +161 -0
- package/.claude/skills/vcp-screener/scripts/calculators/trend_template_calculator.py +228 -0
- package/.claude/skills/vcp-screener/scripts/calculators/vcp_pattern_calculator.py +322 -0
- package/.claude/skills/vcp-screener/scripts/calculators/volume_pattern_calculator.py +121 -0
- package/.claude/skills/vcp-screener/scripts/fmp_client.py +162 -0
- package/.claude/skills/vcp-screener/scripts/report_generator.py +317 -0
- package/.claude/skills/vcp-screener/scripts/scorer.py +155 -0
- package/.claude/skills/vcp-screener/scripts/screen_vcp.py +536 -0
- package/.claude/skills/vcp-screener/scripts/tests/__init__.py +0 -0
- package/.claude/skills/vcp-screener/scripts/tests/conftest.py +9 -0
- package/.claude/skills/vcp-screener/scripts/tests/test_vcp_screener.py +834 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/druckenmiller-strategy-planner.md +300 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/market-news-analyzer.md +239 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/technical-market-analyst.md +187 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/us-market-analyst.md +218 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/weekly-trade-blog-writer.md +318 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/SKILL.md +662 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/SKILL.md +721 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/earnings_calendar_2025-11-02.md +447 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/scripts/generate_report.py +366 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/SKILL.md +365 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/SKILL.md +139 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/references/indicators.md +99 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/scripts/market_utils.py +127 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/SKILL.md +714 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/market_event_patterns.md +393 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/SKILL.md +206 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/references/sector_rotation.md +170 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/SKILL.md +238 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/assets/analysis_template.md +183 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/SKILL.md +545 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/SKILL.md +294 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/financial-metrics.md +172 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/report-template.md +207 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/technical-analysis.md +93 -0
- package/.claude/skills/weekly-trade-strategy/CLAUDE.md +454 -0
- package/.claude/skills/weekly-trade-strategy/README.md +287 -0
- package/.claude/skills/weekly-trade-strategy/blogs/.gitkeep +0 -0
- package/.claude/skills/weekly-trade-strategy/charts/.gitkeep +0 -0
- package/.claude/skills/weekly-trade-strategy/earnings_data.json +10054 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/SKILL.md +662 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/SKILL.md +721 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/earnings_calendar_2025-11-02.md +447 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/scripts/generate_report.py +366 -0
- package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/SKILL.md +365 -0
- package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
- package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/SKILL.md +139 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/references/indicators.md +99 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/scripts/market_utils.py +127 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/SKILL.md +714 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/market_event_patterns.md +393 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/SKILL.md +206 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/references/sector_rotation.md +170 -0
- package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
- package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
- package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
- package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
- package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/SKILL.md +238 -0
- package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/assets/analysis_template.md +183 -0
- package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/SKILL.md +545 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/SKILL.md +294 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/financial-metrics.md +172 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/report-template.md +207 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/technical-analysis.md +93 -0
- package/.mcp.json +3 -0
- package/cli.mjs +16 -16
- package/package.json +4 -2
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
# Bubble Detection Quick Reference
|
|
2
|
+
|
|
3
|
+
## Daily Checklist (Complete in 5 Minutes)
|
|
4
|
+
|
|
5
|
+
### Morning Routine (Before Market Open)
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
□ Step 1: Update Bubble-O-Meter (2 minutes)
|
|
9
|
+
- Score 8 indicators on 0-2 scale
|
|
10
|
+
- Confirm risk budget based on total score
|
|
11
|
+
|
|
12
|
+
□ Step 2: Position Management (2 minutes)
|
|
13
|
+
- Update ATR trailing stops
|
|
14
|
+
- Check if stair-step profit-taking targets reached
|
|
15
|
+
- Determine new entry eligibility
|
|
16
|
+
|
|
17
|
+
□ Step 3: Signal Confirmation (1 minute)
|
|
18
|
+
- Media/social media trends (Google Trends, Twitter)
|
|
19
|
+
- Major indices' distance from 52-week highs
|
|
20
|
+
- VIX & Put/Call ratio
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Emergency Assessment: 3 Questions
|
|
26
|
+
|
|
27
|
+
When uncertain about investment decisions, answer these 3 questions:
|
|
28
|
+
|
|
29
|
+
### Q1: "Are non-investors recommending?"
|
|
30
|
+
- YES → Mass penetration complete, likely late stage
|
|
31
|
+
- NO → Still early-to-mid stage
|
|
32
|
+
|
|
33
|
+
### Q2: "Has the narrative become 'common sense'?"
|
|
34
|
+
- YES → Euphoria stage, dissent socially unacceptable
|
|
35
|
+
- NO → Skeptical views still tolerated, healthy state
|
|
36
|
+
|
|
37
|
+
### Q3: "Is 'this time is different' the mantra?"
|
|
38
|
+
- YES → Historically typical bubble sign
|
|
39
|
+
- NO → Healthy caution still functioning
|
|
40
|
+
|
|
41
|
+
**All 3 YES → Critical zone, prioritize profit-taking/exit**
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Action Matrix by Bubble Stage (REVISED v2.1)
|
|
46
|
+
|
|
47
|
+
| Phase | Score | Risk Budget | Entry | Profit-Taking | Stop | Shorts |
|
|
48
|
+
|-------|-------|------------|-------|--------------|------|--------|
|
|
49
|
+
| **Normal** | 0-4 | 100% | Normal | At target | 2.0 ATR | No |
|
|
50
|
+
| **Caution** | 5-7 | 70-80% | 50% reduced | 25% at +20% | 1.8 ATR | No |
|
|
51
|
+
| **Elevated Risk** | 8-9 | 50-70% | Selective | 40% at +20% | 1.6 ATR | Consider |
|
|
52
|
+
| **Euphoria** | 10-12 | 40-50% | Stop | 50% at +20% | 1.5 ATR | After conditions |
|
|
53
|
+
| **Critical** | 13-15 | 20-30% | Stop | 75-100% immediate | 1.2 ATR | Recommended |
|
|
54
|
+
|
|
55
|
+
**Note**: Maximum score reduced from 16 to 15 points (Phase 2: max 12, Phase 3: max 3)
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Quick Scoring for 8 Indicators
|
|
60
|
+
|
|
61
|
+
### 1. Mass Penetration
|
|
62
|
+
```
|
|
63
|
+
0 points: Investors only
|
|
64
|
+
1 point: General awareness but investment still limited
|
|
65
|
+
2 points: Taxi drivers/family recommending
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 2. Media Saturation
|
|
69
|
+
```
|
|
70
|
+
0 points: Normal coverage level
|
|
71
|
+
1 point: Search trends 2-3x
|
|
72
|
+
2 points: TV specials/magazine covers, searches 5x+
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 3. New Entrants
|
|
76
|
+
```
|
|
77
|
+
0 points: Normal account opening pace
|
|
78
|
+
1 point: 50-100% YoY increase
|
|
79
|
+
2 points: 200%+ YoY, beginner flood
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 4. Issuance Flood
|
|
83
|
+
```
|
|
84
|
+
0 points: Normal IPO count
|
|
85
|
+
1 point: 50% increase in IPOs/related products
|
|
86
|
+
2 points: Low-quality IPOs, theme ETF proliferation
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 5. Leverage
|
|
90
|
+
```
|
|
91
|
+
0 points: Normal range
|
|
92
|
+
1 point: Margin balance 1.5x
|
|
93
|
+
2 points: All-time high, funding rates elevated
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 6. Price Acceleration
|
|
97
|
+
```
|
|
98
|
+
0 points: Near historical median
|
|
99
|
+
1 point: Exceeds 90th percentile
|
|
100
|
+
2 points: 95-99th percentile or accelerating
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 7. Valuation Disconnect
|
|
104
|
+
```
|
|
105
|
+
0 points: Explainable by fundamentals
|
|
106
|
+
1 point: High valuation but explained by growth expectations
|
|
107
|
+
2 points: Completely "narrative"-dependent, fundamentals ignored
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 8. Correlation & Breadth
|
|
111
|
+
```
|
|
112
|
+
0 points: Only some leaders rising
|
|
113
|
+
1 point: Sector-wide spread
|
|
114
|
+
2 points: Even low-quality/zombie companies rallying
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Key Data Sources
|
|
120
|
+
|
|
121
|
+
### Instantly Checkable Indicators
|
|
122
|
+
|
|
123
|
+
| Indicator | Source | Example URL |
|
|
124
|
+
|-----------|--------|------------|
|
|
125
|
+
| Google Search Trends | Google Trends | trends.google.com |
|
|
126
|
+
| VIX (Fear Index) | CBOE | cboe.com/vix |
|
|
127
|
+
| Put/Call Ratio | CBOE | cboe.com/data |
|
|
128
|
+
| Margin Balance | FINRA | finra.org/data |
|
|
129
|
+
| Futures Positions | CFTC COT | cftc.gov/reports |
|
|
130
|
+
| IPO Statistics | Renaissance IPO | renaissancecapital.com |
|
|
131
|
+
|
|
132
|
+
### API-Accessible Auto-Retrieval
|
|
133
|
+
|
|
134
|
+
```python
|
|
135
|
+
# Example: Google Trends (pytrends)
|
|
136
|
+
from pytrends.request import TrendReq
|
|
137
|
+
pytrends = TrendReq()
|
|
138
|
+
pytrends.build_payload(['SPY', 'stock market'])
|
|
139
|
+
data = pytrends.interest_over_time()
|
|
140
|
+
|
|
141
|
+
# Example: VIX (yfinance)
|
|
142
|
+
import yfinance as yf
|
|
143
|
+
vix = yf.Ticker('^VIX')
|
|
144
|
+
current_vix = vix.history(period='1d')['Close'].iloc[-1]
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Profit-Taking Strategy Templates
|
|
150
|
+
|
|
151
|
+
### Template 1: Stair-Step Profit-Taking (Conservative)
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
Position: $10,000 initial investment
|
|
155
|
+
Targets: +20%, +40%, +60%, +80%
|
|
156
|
+
|
|
157
|
+
+20% ($12,000) → Sell 25% = $3,000 secured
|
|
158
|
+
+40% ($14,000) → Sell 25% = $3,500 secured
|
|
159
|
+
+60% ($16,000) → Sell 25% = $4,000 secured
|
|
160
|
+
+80% ($18,000) → Sell 25% = $4,500 secured
|
|
161
|
+
|
|
162
|
+
Total profits: $15,000 (+50% equivalent)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Template 2: ATR Trailing (Aggressive)
|
|
166
|
+
|
|
167
|
+
```python
|
|
168
|
+
def calculate_trailing_stop(current_price, atr_20d, bubble_phase):
|
|
169
|
+
"""
|
|
170
|
+
Calculate trailing stop based on bubble stage
|
|
171
|
+
|
|
172
|
+
bubble_phase: 'normal', 'caution', 'euphoria', 'critical'
|
|
173
|
+
"""
|
|
174
|
+
multipliers = {
|
|
175
|
+
'normal': 2.0,
|
|
176
|
+
'caution': 1.8,
|
|
177
|
+
'euphoria': 1.5,
|
|
178
|
+
'critical': 1.2
|
|
179
|
+
}
|
|
180
|
+
multiplier = multipliers.get(bubble_phase, 2.0)
|
|
181
|
+
stop_price = current_price - (atr_20d * multiplier)
|
|
182
|
+
return stop_price
|
|
183
|
+
|
|
184
|
+
# Usage example
|
|
185
|
+
current_price = 450.0
|
|
186
|
+
atr_20d = 10.0 # Average True Range over 20 days
|
|
187
|
+
bubble_phase = 'euphoria'
|
|
188
|
+
|
|
189
|
+
stop = calculate_trailing_stop(current_price, atr_20d, bubble_phase)
|
|
190
|
+
print(f"Trailing Stop: ${stop:.2f}")
|
|
191
|
+
# Output: Trailing Stop: $435.00
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Template 3: Hybrid (Recommended)
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
Stage 1 (Boom period):
|
|
198
|
+
→ Reduce 50% of position via stair-step profit-taking
|
|
199
|
+
|
|
200
|
+
Stage 2 (Euphoria period):
|
|
201
|
+
→ Apply ATR trailing to remaining 50%, follow upside
|
|
202
|
+
|
|
203
|
+
Stage 3 (Panic signs):
|
|
204
|
+
→ Exit immediately when ATR stop hit
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Short-Selling Timing Assessment (Critical)
|
|
210
|
+
|
|
211
|
+
### ❌ Absolutely NG: Early Contrarian
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
Reason: Normal for prices to rise 2-3x more after feeling "too high"
|
|
215
|
+
Risk: "Markets can remain irrational longer than you can remain solvent"
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### ✅ Recommended: After Composite Conditions Clear
|
|
219
|
+
|
|
220
|
+
**Consider starting when at least 3 apply:**
|
|
221
|
+
|
|
222
|
+
1. □ Weekly chart shows clear lower highs
|
|
223
|
+
2. □ Volume peaks out (3 consecutive weeks declining)
|
|
224
|
+
3. □ Sharp drop in leverage indicators (margin balance -20%+)
|
|
225
|
+
4. □ Media/search trends peak out
|
|
226
|
+
5. □ Weak stocks within sector start breaking down first
|
|
227
|
+
6. □ VIX surges (+30%+)
|
|
228
|
+
7. □ Fed/policy shift signals
|
|
229
|
+
|
|
230
|
+
**Execution Example:**
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
Condition Check:
|
|
234
|
+
[✓] 1. Weekly lower highs forming
|
|
235
|
+
[✓] 2. Volume declining 3 weeks straight
|
|
236
|
+
[×] 3. Margin balance still elevated
|
|
237
|
+
[✓] 4. Google search trends -40%
|
|
238
|
+
[×] 5. Still broad rally continuing
|
|
239
|
+
[✓] 6. VIX +35% surge
|
|
240
|
+
[×] 7. No policy changes
|
|
241
|
+
|
|
242
|
+
→ 4/7 met, shorts consideration OK
|
|
243
|
+
→ Small position (25% of normal) for test entry
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## Common Failure Patterns & Solutions
|
|
249
|
+
|
|
250
|
+
### Failure 1: "Too late" paralysis, missing opportunities
|
|
251
|
+
|
|
252
|
+
**Psychology:** Regret aversion (fear of being late)
|
|
253
|
+
**Solution:**
|
|
254
|
+
- Conduct Bubble-O-Meter when feeling "too late"
|
|
255
|
+
- Score ≤8: Small position entry OK
|
|
256
|
+
- Score ≥9: Correct to stay out
|
|
257
|
+
|
|
258
|
+
### Failure 2: Re-entry after profit-taking (buying high)
|
|
259
|
+
|
|
260
|
+
**Psychology:** Hindsight bias ("knew it would go higher")
|
|
261
|
+
**Solution:**
|
|
262
|
+
- 72-hour no re-entry rule after profit-taking
|
|
263
|
+
- Re-entry decisions only after Bubble-O-Meter check
|
|
264
|
+
|
|
265
|
+
### Failure 3: Can't take profits due to "still rising"
|
|
266
|
+
|
|
267
|
+
**Psychology:** Greed + Overconfidence
|
|
268
|
+
**Solution:**
|
|
269
|
+
- Automate stair-step profit-taking (pre-set limit orders)
|
|
270
|
+
- Aim for "satisfaction," abandon "perfection"
|
|
271
|
+
|
|
272
|
+
### Failure 4: Too-early shorts
|
|
273
|
+
|
|
274
|
+
**Psychology:** Subjective "obviously too high" judgment
|
|
275
|
+
**Solution:**
|
|
276
|
+
- Mechanically verify composite conditions
|
|
277
|
+
- Wait for minimum 3 conditions to clear
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Emergency Response Flowchart
|
|
282
|
+
|
|
283
|
+
```
|
|
284
|
+
Detect market volatility
|
|
285
|
+
↓
|
|
286
|
+
Q: Have positions?
|
|
287
|
+
↓YES
|
|
288
|
+
Q: Down -5% or more?
|
|
289
|
+
↓YES
|
|
290
|
+
Q: ATR stop reached?
|
|
291
|
+
↓YES
|
|
292
|
+
→ Sell immediately (no debate)
|
|
293
|
+
|
|
294
|
+
↓NO (Stop not reached)
|
|
295
|
+
Q: Bubble-O-Meter score 13+?
|
|
296
|
+
↓YES
|
|
297
|
+
→ Consider 75%+ profit-taking
|
|
298
|
+
|
|
299
|
+
↓NO (Score ≤12)
|
|
300
|
+
Q: VIX surge +30%+?
|
|
301
|
+
↓YES
|
|
302
|
+
→ 50% profit-taking, tighten remaining stops
|
|
303
|
+
|
|
304
|
+
↓NO
|
|
305
|
+
→ Business as usual, continue calm observation
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Golden Rules (10 Commandments to Post on Wall)
|
|
311
|
+
|
|
312
|
+
1. **See process, not price**
|
|
313
|
+
|
|
314
|
+
2. **When taxi drivers talk stocks, exit**
|
|
315
|
+
|
|
316
|
+
3. **"This time is different" is always the same**
|
|
317
|
+
|
|
318
|
+
4. **Mechanical rules protect psychology**
|
|
319
|
+
|
|
320
|
+
5. **Short after confirmation, take profits early**
|
|
321
|
+
|
|
322
|
+
6. **When skepticism hurts, the end begins**
|
|
323
|
+
|
|
324
|
+
7. **Aim for satisfaction, abandon perfection**
|
|
325
|
+
|
|
326
|
+
8. **Bubbles last longer than expected, collapses are faster**
|
|
327
|
+
|
|
328
|
+
9. **Leverage is an express ticket to ruin**
|
|
329
|
+
|
|
330
|
+
10. **"Markets can remain irrational longer than you can remain solvent"**
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## Resources for Further Learning
|
|
335
|
+
|
|
336
|
+
### Books
|
|
337
|
+
- **"Manias, Panics, and Crashes"** - Charles Kindleberger
|
|
338
|
+
- **"Irrational Exuberance"** - Robert Shiller
|
|
339
|
+
- **"The Alchemy of Finance"** - George Soros
|
|
340
|
+
|
|
341
|
+
### Research
|
|
342
|
+
- Hyman Minsky's Financial Instability Hypothesis
|
|
343
|
+
- Classic papers in Behavioral Finance
|
|
344
|
+
|
|
345
|
+
### Data & Tools
|
|
346
|
+
- **TradingView**: Charts and technical indicators
|
|
347
|
+
- **FRED (Federal Reserve)**: Economic indicator time series
|
|
348
|
+
- **Finviz**: Screening and heatmaps
|
|
349
|
+
- **Google Trends**: Social trends
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
**Last Updated:** 2025 Edition
|
|
354
|
+
**License:** Educational and personal use only, redistribution prohibited
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
# Bubble Detection Quick Reference (English)
|
|
2
|
+
|
|
3
|
+
## Daily Checklist (5 minutes)
|
|
4
|
+
|
|
5
|
+
### Morning Routine (Before Market Open)
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
□ Step 1: Update Bubble-O-Meter (2 min)
|
|
9
|
+
- Score 8 indicators (0-2 points each)
|
|
10
|
+
- Check risk budget based on total score
|
|
11
|
+
|
|
12
|
+
□ Step 2: Position Management (2 min)
|
|
13
|
+
- Update ATR trailing stops
|
|
14
|
+
- Check stair-step profit targets
|
|
15
|
+
- Evaluate new entry eligibility
|
|
16
|
+
|
|
17
|
+
□ Step 3: Signal Check (1 min)
|
|
18
|
+
- Media/Social trends (Google Trends, Twitter)
|
|
19
|
+
- Major indices distance from 52-week highs
|
|
20
|
+
- VIX & Put/Call ratio
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Emergency Assessment: 3 Questions
|
|
26
|
+
|
|
27
|
+
When uncertain about an investment decision, answer these 3 questions:
|
|
28
|
+
|
|
29
|
+
### Q1: "Are non-investors recommending it?"
|
|
30
|
+
- YES → Mass penetration complete, likely late stage
|
|
31
|
+
- NO → Still early to mid stage
|
|
32
|
+
|
|
33
|
+
### Q2: "Has the narrative become 'common sense'?"
|
|
34
|
+
- YES → Euphoria stage, contrarian views socially unacceptable
|
|
35
|
+
- NO → Healthy skepticism still functions
|
|
36
|
+
|
|
37
|
+
### Q3: "Is 'this time is different' the catchphrase?"
|
|
38
|
+
- YES → Classic historical bubble signal
|
|
39
|
+
- NO → Healthy caution still present
|
|
40
|
+
|
|
41
|
+
**All 3 YES → Critical zone, prioritize profit-taking/exit**
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Action Matrix by Bubble Phase
|
|
46
|
+
|
|
47
|
+
| Phase | Score | Risk Budget | Entry | Profit-Taking | Stop | Short |
|
|
48
|
+
|-------|-------|------------|-------|---------------|------|-------|
|
|
49
|
+
| **Normal** | 0-4 | 100% | Normal | At target | 2.0 ATR | No |
|
|
50
|
+
| **Caution** | 5-8 | 70% | 50% reduced | 25% at +20% | 1.8 ATR | No |
|
|
51
|
+
| **Euphoria** | 9-12 | 40% | Stopped | 50% at +20% | 1.5 ATR | After confirm |
|
|
52
|
+
| **Critical** | 13-16 | 20% | Stopped | 75-100% now | 1.2 ATR | Recommended |
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 8 Indicators Quick Scoring
|
|
57
|
+
|
|
58
|
+
### 1. Mass Penetration
|
|
59
|
+
```
|
|
60
|
+
0 pts: Investors only
|
|
61
|
+
1 pt: General awareness but investment limited
|
|
62
|
+
2 pts: Taxi drivers/family recommending
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 2. Media Saturation
|
|
66
|
+
```
|
|
67
|
+
0 pts: Normal coverage
|
|
68
|
+
1 pt: Search trends 2-3x normal
|
|
69
|
+
2 pts: TV specials/magazine covers, 5x+ search spike
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 3. New Accounts & Inflows
|
|
73
|
+
```
|
|
74
|
+
0 pts: Normal account openings
|
|
75
|
+
1 pt: 50-100% YoY increase
|
|
76
|
+
2 pts: 200%+ YoY, first-time investor flood
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 4. New Issuance Flood
|
|
80
|
+
```
|
|
81
|
+
0 pts: Normal IPO volume
|
|
82
|
+
1 pt: IPO/SPAC/ETFs up 50%+
|
|
83
|
+
2 pts: Low-quality IPO flood, "theme" fund proliferation
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 5. Leverage Indicators
|
|
87
|
+
```
|
|
88
|
+
0 pts: Margin debt in normal range
|
|
89
|
+
1 pt: Margin debt 1.5x average
|
|
90
|
+
2 pts: All-time high margin, funding rates elevated, extreme positioning
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 6. Price Acceleration
|
|
94
|
+
```
|
|
95
|
+
0 pts: Annualized returns near historical median
|
|
96
|
+
1 pt: Returns exceed 90th percentile
|
|
97
|
+
2 pts: Returns at 95-99th percentile, or positive second derivative
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 7. Valuation Disconnect
|
|
101
|
+
```
|
|
102
|
+
0 pts: Fundamentally explainable
|
|
103
|
+
1 pt: High valuation but "growth expectations" provide cover
|
|
104
|
+
2 pts: Pure "narrative" dependent, fundamentals ignored
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 8. Breadth & Correlation
|
|
108
|
+
```
|
|
109
|
+
0 pts: Only leader stocks rising
|
|
110
|
+
1 pt: Sector-wide participation
|
|
111
|
+
2 pts: Low-quality/zombie companies rising (last buyers in)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Profit-Taking Strategy Templates
|
|
117
|
+
|
|
118
|
+
### Template 1: Stair-Step (Conservative)
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
Position: $10,000 initial investment
|
|
122
|
+
Targets: +20%, +40%, +60%, +80%
|
|
123
|
+
|
|
124
|
+
+20% ($12,000) → Sell 25% = $3,000 secured
|
|
125
|
+
+40% ($14,000) → Sell 25% = $3,500 secured
|
|
126
|
+
+60% ($16,000) → Sell 25% = $4,000 secured
|
|
127
|
+
+80% ($18,000) → Sell 25% = $4,500 secured
|
|
128
|
+
|
|
129
|
+
Total profit secured: $15,000 (+50% equivalent)
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Template 2: ATR Trailing (Aggressive)
|
|
133
|
+
|
|
134
|
+
```python
|
|
135
|
+
def calculate_trailing_stop(current_price, atr_20d, bubble_phase):
|
|
136
|
+
"""
|
|
137
|
+
Calculate trailing stop based on bubble phase
|
|
138
|
+
|
|
139
|
+
bubble_phase: 'normal', 'caution', 'euphoria', 'critical'
|
|
140
|
+
"""
|
|
141
|
+
multipliers = {
|
|
142
|
+
'normal': 2.0,
|
|
143
|
+
'caution': 1.8,
|
|
144
|
+
'euphoria': 1.5,
|
|
145
|
+
'critical': 1.2
|
|
146
|
+
}
|
|
147
|
+
multiplier = multipliers.get(bubble_phase, 2.0)
|
|
148
|
+
stop_price = current_price - (atr_20d * multiplier)
|
|
149
|
+
return stop_price
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Template 3: Hybrid (Recommended)
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
Stage 1 (Boom):
|
|
156
|
+
→ Stair-step reduces 50% of position
|
|
157
|
+
|
|
158
|
+
Stage 2 (Euphoria):
|
|
159
|
+
→ Apply ATR trailing to remaining 50%, ride upside
|
|
160
|
+
|
|
161
|
+
Stage 3 (Panic signals):
|
|
162
|
+
→ Exit immediately when ATR stop hit
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Short-Selling Timing Decision (Critical)
|
|
168
|
+
|
|
169
|
+
### ❌ Absolutely Avoid: Early Contrarian
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
Reason: Often 2-3x further rise after "obviously too high"
|
|
173
|
+
Risk: "Markets can remain irrational longer than you can remain solvent"
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### ✅ Recommended: After Composite Conditions Met
|
|
177
|
+
|
|
178
|
+
**Need at least 3 of 7 conditions before considering:**
|
|
179
|
+
|
|
180
|
+
1. □ Weekly chart shows clear lower highs
|
|
181
|
+
2. □ Volume peaked out (3 weeks declining)
|
|
182
|
+
3. □ Leverage metrics drop sharply (margin debt -20%+)
|
|
183
|
+
4. □ Media/search trends peaked out
|
|
184
|
+
5. □ Weak stocks in sector breaking down first
|
|
185
|
+
6. □ VIX spike (+30%+)
|
|
186
|
+
7. □ Fed or policy reversal signals
|
|
187
|
+
|
|
188
|
+
**Execution example:**
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
Conditions check:
|
|
192
|
+
[✓] 1. Weekly lower highs
|
|
193
|
+
[✓] 2. Volume declining 3 weeks
|
|
194
|
+
[×] 3. Margin debt still elevated
|
|
195
|
+
[✓] 4. Google trends -40%
|
|
196
|
+
[×] 5. Still broad rally
|
|
197
|
+
[✓] 6. VIX +35% spike
|
|
198
|
+
[×] 7. No policy change
|
|
199
|
+
|
|
200
|
+
→ 4/7 met, short consideration OK
|
|
201
|
+
→ Small size (25% of normal) test entry
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Common Failure Patterns & Solutions
|
|
207
|
+
|
|
208
|
+
### Failure 1: "Too late" mentality, perpetual waiting
|
|
209
|
+
|
|
210
|
+
**Psychology:** Regret aversion (FOMO about missing out)
|
|
211
|
+
**Solution:**
|
|
212
|
+
- Run Bubble-O-Meter when feeling too late
|
|
213
|
+
- If score ≤8, small entry OK
|
|
214
|
+
- If score ≥9, correct to wait
|
|
215
|
+
|
|
216
|
+
### Failure 2: Re-entry after taking profits (buying high)
|
|
217
|
+
|
|
218
|
+
**Psychology:** Hindsight bias ("I knew it would go up")
|
|
219
|
+
**Solution:**
|
|
220
|
+
- 72-hour re-entry ban after profit-taking
|
|
221
|
+
- Re-entry only after Bubble-O-Meter check
|
|
222
|
+
|
|
223
|
+
### Failure 3: "Still going up" paralysis on profit-taking
|
|
224
|
+
|
|
225
|
+
**Psychology:** Greed + Overconfidence
|
|
226
|
+
**Solution:**
|
|
227
|
+
- Automate stair-step (preset limit orders)
|
|
228
|
+
- Target "satisfaction" not "perfection"
|
|
229
|
+
|
|
230
|
+
### Failure 4: Premature short selling
|
|
231
|
+
|
|
232
|
+
**Psychology:** Subjective "obviously too high"
|
|
233
|
+
**Solution:**
|
|
234
|
+
- Mechanically check composite conditions
|
|
235
|
+
- Wait for minimum 3 conditions
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Emergency Response Flowchart
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
Market shock detected
|
|
243
|
+
↓
|
|
244
|
+
Q: Have positions?
|
|
245
|
+
↓YES
|
|
246
|
+
Q: Down -5%+ ?
|
|
247
|
+
↓YES
|
|
248
|
+
Q: ATR stop hit?
|
|
249
|
+
↓YES
|
|
250
|
+
→ Sell immediately (no debate)
|
|
251
|
+
|
|
252
|
+
↓NO (stop not hit)
|
|
253
|
+
Q: Bubble-O-Meter 13+?
|
|
254
|
+
↓YES
|
|
255
|
+
→ Consider 75%+ profit-taking
|
|
256
|
+
|
|
257
|
+
↓NO (score ≤12)
|
|
258
|
+
Q: VIX spike +30%+?
|
|
259
|
+
↓YES
|
|
260
|
+
→ Take 50% profits, tighten stops on rest
|
|
261
|
+
|
|
262
|
+
↓NO
|
|
263
|
+
→ Normal monitoring, stay calm
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Golden Rules (Post on Your Wall)
|
|
269
|
+
|
|
270
|
+
1. **Watch the process, not the price**
|
|
271
|
+
|
|
272
|
+
2. **When taxi drivers talk stocks, exit**
|
|
273
|
+
|
|
274
|
+
3. **"This time is different" is the same every time**
|
|
275
|
+
|
|
276
|
+
4. **Mechanical rules protect your psychology**
|
|
277
|
+
|
|
278
|
+
5. **Short after confirmation, take profits early**
|
|
279
|
+
|
|
280
|
+
6. **When skepticism hurts socially, the end begins**
|
|
281
|
+
|
|
282
|
+
7. **Aim for satisfaction, abandon perfection**
|
|
283
|
+
|
|
284
|
+
8. **Bubbles last longer than expected, crashes faster**
|
|
285
|
+
|
|
286
|
+
9. **Leverage is an express ticket to ruin**
|
|
287
|
+
|
|
288
|
+
10. **"Markets can remain irrational longer than you can remain solvent"**
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Key Data Sources
|
|
293
|
+
|
|
294
|
+
### Instantly Accessible Indicators
|
|
295
|
+
|
|
296
|
+
| Indicator | Source | URL Example |
|
|
297
|
+
|-----------|--------|-------------|
|
|
298
|
+
| Google Search Trends | Google Trends | trends.google.com |
|
|
299
|
+
| VIX (Fear Index) | CBOE | cboe.com/vix |
|
|
300
|
+
| Put/Call Ratio | CBOE | cboe.com/data |
|
|
301
|
+
| Margin Debt | FINRA | finra.org/data |
|
|
302
|
+
| Futures Positioning | CFTC COT | cftc.gov/reports |
|
|
303
|
+
| IPO Statistics | Renaissance IPO | renaissancecapital.com |
|
|
304
|
+
|
|
305
|
+
### API-Accessible for Automation
|
|
306
|
+
|
|
307
|
+
```python
|
|
308
|
+
# Example: Google Trends (pytrends)
|
|
309
|
+
from pytrends.request import TrendReq
|
|
310
|
+
pytrends = TrendReq()
|
|
311
|
+
pytrends.build_payload(['SPY', 'stock market'])
|
|
312
|
+
data = pytrends.interest_over_time()
|
|
313
|
+
|
|
314
|
+
# Example: VIX (yfinance)
|
|
315
|
+
import yfinance as yf
|
|
316
|
+
vix = yf.Ticker('^VIX')
|
|
317
|
+
current_vix = vix.history(period='1d')['Close'].iloc[-1]
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Further Learning
|
|
323
|
+
|
|
324
|
+
### Books
|
|
325
|
+
- "Manias, Panics, and Crashes" - Charles Kindleberger
|
|
326
|
+
- "Irrational Exuberance" - Robert Shiller
|
|
327
|
+
- "The Alchemy of Finance" - George Soros
|
|
328
|
+
|
|
329
|
+
### Research
|
|
330
|
+
- Hyman Minsky's Financial Instability Hypothesis
|
|
331
|
+
- Behavioral Finance classics
|
|
332
|
+
|
|
333
|
+
### Data & Tools
|
|
334
|
+
- TradingView: Charts & technical indicators
|
|
335
|
+
- FRED (Federal Reserve): Economic time series
|
|
336
|
+
- Finviz: Screening & heatmaps
|
|
337
|
+
- Google Trends: Social trends
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
**Last Updated:** 2025 Edition
|
|
342
|
+
**License:** Educational/personal use only
|