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,309 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Bubble-O-Meter: 多维度评估美国股市泡沫程度的脚本
|
|
4
|
+
|
|
5
|
+
8个指标各评0-2分,合计(0-16分)判定泡沫程度:
|
|
6
|
+
- 0-4: 正常区
|
|
7
|
+
- 5-8: 警戒区
|
|
8
|
+
- 9-12: 狂热区
|
|
9
|
+
- 13-16: 临界区
|
|
10
|
+
|
|
11
|
+
使用方法:
|
|
12
|
+
python bubble_scorer.py --ticker SPY --period 1y
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
import argparse
|
|
16
|
+
import json
|
|
17
|
+
from datetime import datetime, timedelta
|
|
18
|
+
from typing import Dict, List, Tuple
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class BubbleScorer:
|
|
22
|
+
"""泡沫评分系统"""
|
|
23
|
+
|
|
24
|
+
def __init__(self):
|
|
25
|
+
self.indicators = {
|
|
26
|
+
"mass_penetration": {
|
|
27
|
+
"name": "大众渗透度",
|
|
28
|
+
"weight": 2,
|
|
29
|
+
"description": "非投资者群体的推荐和提及"
|
|
30
|
+
},
|
|
31
|
+
"media_saturation": {
|
|
32
|
+
"name": "媒体饱和度",
|
|
33
|
+
"weight": 2,
|
|
34
|
+
"description": "搜索、社交媒体、媒体曝光的急剧上升"
|
|
35
|
+
},
|
|
36
|
+
"new_accounts": {
|
|
37
|
+
"name": "新增入场",
|
|
38
|
+
"weight": 2,
|
|
39
|
+
"description": "开户数和资金流入的加速"
|
|
40
|
+
},
|
|
41
|
+
"new_issuance": {
|
|
42
|
+
"name": "新发行泛滥",
|
|
43
|
+
"weight": 2,
|
|
44
|
+
"description": "IPO/SPAC/相关产品的泛滥"
|
|
45
|
+
},
|
|
46
|
+
"leverage": {
|
|
47
|
+
"name": "杠杆",
|
|
48
|
+
"weight": 2,
|
|
49
|
+
"description": "保证金、信用、融资利率的偏离"
|
|
50
|
+
},
|
|
51
|
+
"price_acceleration": {
|
|
52
|
+
"name": "价格加速度",
|
|
53
|
+
"weight": 2,
|
|
54
|
+
"description": "收益率达到历史分布上游"
|
|
55
|
+
},
|
|
56
|
+
"valuation_disconnect": {
|
|
57
|
+
"name": "估值脱离",
|
|
58
|
+
"weight": 2,
|
|
59
|
+
"description": "基本面解释完全依赖叙事"
|
|
60
|
+
},
|
|
61
|
+
"breadth_expansion": {
|
|
62
|
+
"name": "相关性与广度",
|
|
63
|
+
"weight": 2,
|
|
64
|
+
"description": "低质量个股也全面上涨"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
def calculate_score(self, scores: Dict[str, int]) -> Dict:
|
|
69
|
+
"""
|
|
70
|
+
从各指标分数计算综合评估
|
|
71
|
+
|
|
72
|
+
Args:
|
|
73
|
+
scores: 各指标分数字典 (0-2分)
|
|
74
|
+
|
|
75
|
+
Returns:
|
|
76
|
+
评估结果字典
|
|
77
|
+
"""
|
|
78
|
+
total_score = sum(scores.values())
|
|
79
|
+
max_score = len(self.indicators) * 2
|
|
80
|
+
|
|
81
|
+
# 泡沫阶段判定
|
|
82
|
+
if total_score <= 4:
|
|
83
|
+
phase = "正常区"
|
|
84
|
+
risk_level = "低"
|
|
85
|
+
action = "继续正常投资策略"
|
|
86
|
+
elif total_score <= 8:
|
|
87
|
+
phase = "警戒区"
|
|
88
|
+
risk_level = "中"
|
|
89
|
+
action = "开始部分止盈,缩小新仓位规模"
|
|
90
|
+
elif total_score <= 12:
|
|
91
|
+
phase = "狂热区"
|
|
92
|
+
risk_level = "高"
|
|
93
|
+
action = "加速阶梯式止盈,严格ATR追踪止损,总风险预算削减30-50%"
|
|
94
|
+
else:
|
|
95
|
+
phase = "临界区"
|
|
96
|
+
risk_level = "极高"
|
|
97
|
+
action = "大幅止盈或全额对冲,停止新入场,确认反转后考虑做空仓位"
|
|
98
|
+
|
|
99
|
+
# Minsky阶段估计
|
|
100
|
+
minsky_phase = self._estimate_minsky_phase(scores, total_score)
|
|
101
|
+
|
|
102
|
+
return {
|
|
103
|
+
"timestamp": datetime.now().isoformat(),
|
|
104
|
+
"total_score": total_score,
|
|
105
|
+
"max_score": max_score,
|
|
106
|
+
"percentage": round(total_score / max_score * 100, 1),
|
|
107
|
+
"phase": phase,
|
|
108
|
+
"risk_level": risk_level,
|
|
109
|
+
"minsky_phase": minsky_phase,
|
|
110
|
+
"recommended_action": action,
|
|
111
|
+
"indicator_scores": scores,
|
|
112
|
+
"detailed_indicators": self._format_indicator_details(scores)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
def _estimate_minsky_phase(self, scores: Dict[str, int], total: int) -> str:
|
|
116
|
+
"""Minsky/Kindleberger阶段估计"""
|
|
117
|
+
mass_pen = scores.get("mass_penetration", 0)
|
|
118
|
+
media = scores.get("media_saturation", 0)
|
|
119
|
+
price_acc = scores.get("price_acceleration", 0)
|
|
120
|
+
|
|
121
|
+
if total <= 4:
|
|
122
|
+
return "Displacement/Early Boom (触发/初期扩张)"
|
|
123
|
+
elif total <= 8:
|
|
124
|
+
if media >= 1 and price_acc >= 1:
|
|
125
|
+
return "Boom (扩张期)"
|
|
126
|
+
else:
|
|
127
|
+
return "Displacement/Early Boom (触发/初期扩张)"
|
|
128
|
+
elif total <= 12:
|
|
129
|
+
if mass_pen >= 2 and media >= 2:
|
|
130
|
+
return "Euphoria (狂热期) - FOMO已制度化"
|
|
131
|
+
else:
|
|
132
|
+
return "Late Boom/Early Euphoria (扩张后期/狂热初期)"
|
|
133
|
+
else:
|
|
134
|
+
if mass_pen >= 2:
|
|
135
|
+
return "Peak Euphoria/Profit Taking (狂热顶峰/止盈开始) - 临近反转"
|
|
136
|
+
else:
|
|
137
|
+
return "Euphoria (狂热期)"
|
|
138
|
+
|
|
139
|
+
def _format_indicator_details(self, scores: Dict[str, int]) -> List[Dict]:
|
|
140
|
+
"""格式化指标详细信息"""
|
|
141
|
+
details = []
|
|
142
|
+
for key, value in scores.items():
|
|
143
|
+
indicator = self.indicators.get(key, {})
|
|
144
|
+
status = "🔴高" if value == 2 else "🟡中" if value == 1 else "🟢低"
|
|
145
|
+
details.append({
|
|
146
|
+
"indicator": indicator.get("name", key),
|
|
147
|
+
"score": value,
|
|
148
|
+
"status": status,
|
|
149
|
+
"description": indicator.get("description", "")
|
|
150
|
+
})
|
|
151
|
+
return details
|
|
152
|
+
|
|
153
|
+
def get_scoring_guidelines(self) -> str:
|
|
154
|
+
"""返回各指标的评分指南"""
|
|
155
|
+
guidelines = """
|
|
156
|
+
## 泡沫评分指南
|
|
157
|
+
|
|
158
|
+
### 1. 大众渗透度 (Mass Penetration)
|
|
159
|
+
- 0分: 仅限专家和投资者群体讨论
|
|
160
|
+
- 1分: 普通人也有认知,但作为投资标的仍有限
|
|
161
|
+
- 2分: 非投资者(出租车司机、美容师、家人)积极推荐和提及
|
|
162
|
+
|
|
163
|
+
### 2. 媒体饱和度 (Media Saturation)
|
|
164
|
+
- 0分: 正常水平的报道和搜索趋势
|
|
165
|
+
- 1分: 搜索趋势、社交媒体提及为平时的2-3倍
|
|
166
|
+
- 2分: 电视专题、杂志封面、搜索趋势暴涨(平时的5倍以上)
|
|
167
|
+
|
|
168
|
+
### 3. 新增入场 (New Accounts & Inflows)
|
|
169
|
+
- 0分: 正常水平的开户和入金
|
|
170
|
+
- 1分: 开户数同比增长50-100%
|
|
171
|
+
- 2分: 开户数同比增长200%以上,大量"首次投资"人群涌入
|
|
172
|
+
|
|
173
|
+
### 4. 新发行泛滥 (New Issuance Flood)
|
|
174
|
+
- 0分: 正常水平的IPO/产品发行
|
|
175
|
+
- 1分: IPO/SPAC/相关ETF同比增长50%以上
|
|
176
|
+
- 2分: 低质量IPO泛滥,"XX概念"基金/ETF滥造
|
|
177
|
+
|
|
178
|
+
### 5. 杠杆 (Leverage Indicators)
|
|
179
|
+
- 0分: 保证金余额、信用损益在正常范围
|
|
180
|
+
- 1分: 保证金余额为历史均值的1.5倍,期货持仓偏离
|
|
181
|
+
- 2分: 保证金余额创历史新高,融资利率居高不下,极端持仓偏离
|
|
182
|
+
|
|
183
|
+
### 6. 价格加速度 (Price Acceleration)
|
|
184
|
+
- 0分: 年化收益率在历史分布的中位数附近
|
|
185
|
+
- 1分: 年化收益率超过历史90百分位
|
|
186
|
+
- 2分: 年化收益率达到历史95-99百分位,或加速度(二阶导数)为正且递增
|
|
187
|
+
|
|
188
|
+
### 7. 估值脱离 (Valuation Disconnect)
|
|
189
|
+
- 0分: 可用基本面合理解释
|
|
190
|
+
- 1分: 高估值但可用"成长预期"勉强解释
|
|
191
|
+
- 2分: 解释完全依赖"叙事""革命""范式转换","这次不一样"
|
|
192
|
+
|
|
193
|
+
### 8. 相关性与广度 (Breadth & Correlation)
|
|
194
|
+
- 0分: 仅部分领涨股上涨
|
|
195
|
+
- 1分: 扩散至整个板块,mid-cap也上涨
|
|
196
|
+
- 2分: 低质量/low-cap个股也全面上涨,"僵尸企业"也上涨(最后的买家入场)
|
|
197
|
+
"""
|
|
198
|
+
return guidelines
|
|
199
|
+
|
|
200
|
+
def format_output(self, result: Dict) -> str:
|
|
201
|
+
"""将结果格式化为可读输出"""
|
|
202
|
+
output = f"""
|
|
203
|
+
{'='*60}
|
|
204
|
+
🔍 美国市场泡沫度评估 - Bubble-O-Meter
|
|
205
|
+
{'='*60}
|
|
206
|
+
|
|
207
|
+
评估时间: {result['timestamp']}
|
|
208
|
+
|
|
209
|
+
【综合评分】
|
|
210
|
+
{result['total_score']}/{result['max_score']}分 ({result['percentage']}%)
|
|
211
|
+
|
|
212
|
+
【市场阶段】
|
|
213
|
+
当前: {result['phase']} (风险: {result['risk_level']})
|
|
214
|
+
Minsky阶段: {result['minsky_phase']}
|
|
215
|
+
|
|
216
|
+
【建议操作】
|
|
217
|
+
{result['recommended_action']}
|
|
218
|
+
|
|
219
|
+
{'='*60}
|
|
220
|
+
【各指标评分】
|
|
221
|
+
{'='*60}
|
|
222
|
+
"""
|
|
223
|
+
for detail in result['detailed_indicators']:
|
|
224
|
+
output += f"\n{detail['status']} {detail['indicator']}: {detail['score']}/2分\n"
|
|
225
|
+
output += f" └─ {detail['description']}\n"
|
|
226
|
+
|
|
227
|
+
output += f"\n{'='*60}\n"
|
|
228
|
+
|
|
229
|
+
return output
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
def manual_assessment() -> Dict[str, int]:
|
|
233
|
+
"""交互式手动评估"""
|
|
234
|
+
scorer = BubbleScorer()
|
|
235
|
+
print("\n" + "="*60)
|
|
236
|
+
print("🔍 美国市场泡沫度评估 - Manual Assessment")
|
|
237
|
+
print("="*60)
|
|
238
|
+
print("\n请对各指标评0-2分:")
|
|
239
|
+
print(scorer.get_scoring_guidelines())
|
|
240
|
+
|
|
241
|
+
scores = {}
|
|
242
|
+
for key, indicator in scorer.indicators.items():
|
|
243
|
+
while True:
|
|
244
|
+
try:
|
|
245
|
+
score = int(input(f"\n{indicator['name']} (0-2): "))
|
|
246
|
+
if 0 <= score <= 2:
|
|
247
|
+
scores[key] = score
|
|
248
|
+
break
|
|
249
|
+
else:
|
|
250
|
+
print("请输入0、1或2")
|
|
251
|
+
except ValueError:
|
|
252
|
+
print("请输入数字")
|
|
253
|
+
|
|
254
|
+
return scores
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
def main():
|
|
258
|
+
parser = argparse.ArgumentParser(
|
|
259
|
+
description="评估美国市场泡沫程度的Bubble-O-Meter"
|
|
260
|
+
)
|
|
261
|
+
parser.add_argument(
|
|
262
|
+
"--manual",
|
|
263
|
+
action="store_true",
|
|
264
|
+
help="交互式手动评估模式"
|
|
265
|
+
)
|
|
266
|
+
parser.add_argument(
|
|
267
|
+
"--scores",
|
|
268
|
+
type=str,
|
|
269
|
+
help="JSON格式的分数字符串 (例: '{\"mass_penetration\":2,\"media_saturation\":1,...}')"
|
|
270
|
+
)
|
|
271
|
+
parser.add_argument(
|
|
272
|
+
"--output",
|
|
273
|
+
choices=["text", "json"],
|
|
274
|
+
default="text",
|
|
275
|
+
help="输出格式"
|
|
276
|
+
)
|
|
277
|
+
|
|
278
|
+
args = parser.parse_args()
|
|
279
|
+
scorer = BubbleScorer()
|
|
280
|
+
|
|
281
|
+
# 获取分数
|
|
282
|
+
if args.manual:
|
|
283
|
+
scores = manual_assessment()
|
|
284
|
+
elif args.scores:
|
|
285
|
+
try:
|
|
286
|
+
scores = json.loads(args.scores)
|
|
287
|
+
except json.JSONDecodeError:
|
|
288
|
+
print("错误: 无效的JSON格式")
|
|
289
|
+
return 1
|
|
290
|
+
else:
|
|
291
|
+
print("错误: 请指定 --manual 或 --scores")
|
|
292
|
+
print("\n显示指南:")
|
|
293
|
+
print(scorer.get_scoring_guidelines())
|
|
294
|
+
return 1
|
|
295
|
+
|
|
296
|
+
# 执行评估
|
|
297
|
+
result = scorer.calculate_score(scores)
|
|
298
|
+
|
|
299
|
+
# 输出
|
|
300
|
+
if args.output == "json":
|
|
301
|
+
print(json.dumps(result, indent=2, ensure_ascii=False))
|
|
302
|
+
else:
|
|
303
|
+
print(scorer.format_output(result))
|
|
304
|
+
|
|
305
|
+
return 0
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
if __name__ == "__main__":
|
|
309
|
+
exit(main())
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: us-stock-analysis
|
|
3
|
+
description: Comprehensive US stock analysis including fundamental analysis (financial metrics, business quality, valuation), technical analysis (indicators, chart patterns, support/resistance), stock comparisons, and investment report generation. Use when user requests analysis of US stock tickers (e.g., "analyze AAPL", "compare TSLA vs NVDA", "give me a report on Microsoft"), evaluation of financial metrics, technical chart analysis, or investment recommendations for American stocks.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# US Stock Analysis
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Perform comprehensive analysis of US stocks covering fundamental analysis (financials, business quality, valuation), technical analysis (indicators, trends, patterns), peer comparisons, and generate detailed investment reports. Fetch real-time market data via web search tools and apply structured analytical frameworks.
|
|
11
|
+
|
|
12
|
+
## Data Sources
|
|
13
|
+
|
|
14
|
+
Always use web search tools to gather current market data:
|
|
15
|
+
|
|
16
|
+
**Primary Data to Fetch:**
|
|
17
|
+
1. **Current stock price and trading data** (price, volume, 52-week range)
|
|
18
|
+
2. **Financial statements** (income statement, balance sheet, cash flow)
|
|
19
|
+
3. **Key metrics** (P/E, EPS, revenue, margins, debt ratios)
|
|
20
|
+
4. **Analyst ratings and price targets**
|
|
21
|
+
5. **Recent news and developments**
|
|
22
|
+
6. **Peer/competitor data** (for comparisons)
|
|
23
|
+
7. **Technical data** (moving averages, RSI, MACD when available)
|
|
24
|
+
|
|
25
|
+
**Search Strategy:**
|
|
26
|
+
- Use ticker symbol + specific data needed (e.g., "AAPL financial metrics 2024")
|
|
27
|
+
- For comprehensive data: Search for earnings reports, investor presentations, or SEC filings
|
|
28
|
+
- For technical data: Search for "AAPL technical analysis" or use financial data sites
|
|
29
|
+
- Always verify data recency (prefer data from last quarter)
|
|
30
|
+
|
|
31
|
+
**Quality Sources:**
|
|
32
|
+
- Yahoo Finance, Google Finance, MarketWatch, Seeking Alpha, Bloomberg, CNBC
|
|
33
|
+
- Company investor relations pages
|
|
34
|
+
- SEC filings (10-K, 10-Q) for detailed financials
|
|
35
|
+
- TradingView, StockCharts for technical data
|
|
36
|
+
|
|
37
|
+
## Analysis Types
|
|
38
|
+
|
|
39
|
+
This skill supports four types of analysis. Determine which type(s) the user needs:
|
|
40
|
+
|
|
41
|
+
1. **Basic Stock Info** - Quick overview with key metrics
|
|
42
|
+
2. **Fundamental Analysis** - Deep dive into business, financials, valuation
|
|
43
|
+
3. **Technical Analysis** - Chart patterns, indicators, trend analysis
|
|
44
|
+
4. **Comprehensive Report** - Complete analysis combining all approaches
|
|
45
|
+
|
|
46
|
+
## Analysis Workflows
|
|
47
|
+
|
|
48
|
+
### 1. Basic Stock Information
|
|
49
|
+
|
|
50
|
+
**When to Use:** User asks for quick overview or basic info
|
|
51
|
+
|
|
52
|
+
**Steps:**
|
|
53
|
+
1. Search for current stock data (price, volume, market cap)
|
|
54
|
+
2. Gather key metrics (P/E, EPS, revenue growth, margins)
|
|
55
|
+
3. Get 52-week range and year-to-date performance
|
|
56
|
+
4. Find recent news or major developments
|
|
57
|
+
5. Present in concise summary format
|
|
58
|
+
|
|
59
|
+
**Output Format:**
|
|
60
|
+
- Company description (1-2 sentences)
|
|
61
|
+
- Current price and trading metrics
|
|
62
|
+
- Key valuation metrics (table)
|
|
63
|
+
- Recent performance
|
|
64
|
+
- Notable recent news (if any)
|
|
65
|
+
|
|
66
|
+
### 2. Fundamental Analysis
|
|
67
|
+
|
|
68
|
+
**When to Use:** User wants financial analysis, valuation assessment, or business evaluation
|
|
69
|
+
|
|
70
|
+
**Steps:**
|
|
71
|
+
1. **Gather comprehensive financial data:**
|
|
72
|
+
- Revenue, earnings, cash flow (3-5 year trends)
|
|
73
|
+
- Balance sheet metrics (debt, cash, working capital)
|
|
74
|
+
- Profitability metrics (margins, ROE, ROIC)
|
|
75
|
+
|
|
76
|
+
2. **Read references/fundamental-analysis.md** for analytical framework
|
|
77
|
+
|
|
78
|
+
3. **Read references/financial-metrics.md** for metric definitions and calculations
|
|
79
|
+
|
|
80
|
+
4. **Analyze business quality:**
|
|
81
|
+
- Competitive advantages
|
|
82
|
+
- Management track record
|
|
83
|
+
- Industry position
|
|
84
|
+
|
|
85
|
+
5. **Perform valuation analysis:**
|
|
86
|
+
- Calculate key ratios (P/E, PEG, P/B, EV/EBITDA)
|
|
87
|
+
- Compare to historical averages
|
|
88
|
+
- Compare to peer group
|
|
89
|
+
- Estimate fair value range
|
|
90
|
+
|
|
91
|
+
6. **Identify risks:**
|
|
92
|
+
- Company-specific risks
|
|
93
|
+
- Market/macro risks
|
|
94
|
+
- Red flags from financial data
|
|
95
|
+
|
|
96
|
+
7. **Generate output** following references/report-template.md structure
|
|
97
|
+
|
|
98
|
+
**Critical Analyses:**
|
|
99
|
+
- Profitability trends (improving/declining margins)
|
|
100
|
+
- Cash flow quality (FCF vs earnings)
|
|
101
|
+
- Balance sheet strength (debt levels, liquidity)
|
|
102
|
+
- Growth sustainability
|
|
103
|
+
- Valuation vs peers and historical average
|
|
104
|
+
|
|
105
|
+
### 3. Technical Analysis
|
|
106
|
+
|
|
107
|
+
**When to Use:** User asks for technical analysis, chart patterns, or trading signals
|
|
108
|
+
|
|
109
|
+
**Steps:**
|
|
110
|
+
1. **Gather technical data:**
|
|
111
|
+
- Current price and recent price action
|
|
112
|
+
- Volume trends
|
|
113
|
+
- Moving averages (20-day, 50-day, 200-day)
|
|
114
|
+
- Technical indicators (RSI, MACD, Bollinger Bands)
|
|
115
|
+
|
|
116
|
+
2. **Read references/technical-analysis.md** for indicator definitions and patterns
|
|
117
|
+
|
|
118
|
+
3. **Identify trend:**
|
|
119
|
+
- Uptrend, downtrend, or sideways
|
|
120
|
+
- Strength of trend
|
|
121
|
+
|
|
122
|
+
4. **Locate support and resistance levels:**
|
|
123
|
+
- Recent highs and lows
|
|
124
|
+
- Moving average levels
|
|
125
|
+
- Round numbers
|
|
126
|
+
|
|
127
|
+
5. **Analyze indicators:**
|
|
128
|
+
- RSI: Overbought (>70) or oversold (<30)
|
|
129
|
+
- MACD: Crossovers and divergences
|
|
130
|
+
- Volume: Confirmation or divergence
|
|
131
|
+
- Bollinger Bands: Squeeze or expansion
|
|
132
|
+
|
|
133
|
+
6. **Identify chart patterns:**
|
|
134
|
+
- Reversal patterns (head and shoulders, double top/bottom)
|
|
135
|
+
- Continuation patterns (flags, triangles)
|
|
136
|
+
|
|
137
|
+
7. **Generate technical outlook:**
|
|
138
|
+
- Current trend assessment
|
|
139
|
+
- Key levels to watch
|
|
140
|
+
- Risk/reward analysis
|
|
141
|
+
- Short and medium-term outlook
|
|
142
|
+
|
|
143
|
+
**Interpretation Guidelines:**
|
|
144
|
+
- Confirm signals with multiple indicators
|
|
145
|
+
- Consider volume for validation
|
|
146
|
+
- Note divergences between price and indicators
|
|
147
|
+
- Always identify risk levels (stop-loss)
|
|
148
|
+
|
|
149
|
+
### 4. Comprehensive Investment Report
|
|
150
|
+
|
|
151
|
+
**When to Use:** User asks for detailed report, investment recommendation, or complete analysis
|
|
152
|
+
|
|
153
|
+
**Steps:**
|
|
154
|
+
1. **Perform data gathering** (as in Basic Info)
|
|
155
|
+
|
|
156
|
+
2. **Execute fundamental analysis** (follow workflow above)
|
|
157
|
+
|
|
158
|
+
3. **Execute technical analysis** (follow workflow above)
|
|
159
|
+
|
|
160
|
+
4. **Read references/report-template.md** for complete report structure
|
|
161
|
+
|
|
162
|
+
5. **Synthesize findings:**
|
|
163
|
+
- Integrate fundamental and technical insights
|
|
164
|
+
- Develop bull and bear cases
|
|
165
|
+
- Assess risk/reward
|
|
166
|
+
|
|
167
|
+
6. **Generate recommendation:**
|
|
168
|
+
- Buy/Hold/Sell rating
|
|
169
|
+
- Target price with timeframe
|
|
170
|
+
- Conviction level
|
|
171
|
+
- Entry strategy
|
|
172
|
+
|
|
173
|
+
7. **Create formatted report** following template structure
|
|
174
|
+
|
|
175
|
+
**Report Must Include:**
|
|
176
|
+
- Executive summary with recommendation
|
|
177
|
+
- Company overview
|
|
178
|
+
- Investment thesis (bull and bear cases)
|
|
179
|
+
- Fundamental analysis section
|
|
180
|
+
- Technical analysis section
|
|
181
|
+
- Valuation analysis
|
|
182
|
+
- Risk assessment
|
|
183
|
+
- Catalysts and timeline
|
|
184
|
+
- Conclusion
|
|
185
|
+
|
|
186
|
+
## Stock Comparison Analysis
|
|
187
|
+
|
|
188
|
+
**When to Use:** User asks to compare two or more stocks (e.g., "compare AAPL vs MSFT")
|
|
189
|
+
|
|
190
|
+
**Steps:**
|
|
191
|
+
1. **Gather data for all stocks:**
|
|
192
|
+
- Follow data gathering steps for each ticker
|
|
193
|
+
- Ensure comparable timeframes
|
|
194
|
+
|
|
195
|
+
2. **Read references/fundamental-analysis.md** and references/financial-metrics.md
|
|
196
|
+
|
|
197
|
+
3. **Create side-by-side comparison:**
|
|
198
|
+
- Business models comparison
|
|
199
|
+
- Financial metrics table (all key ratios)
|
|
200
|
+
- Valuation metrics table
|
|
201
|
+
- Growth rates comparison
|
|
202
|
+
- Profitability comparison
|
|
203
|
+
- Balance sheet strength
|
|
204
|
+
|
|
205
|
+
4. **Identify relative strengths:**
|
|
206
|
+
- Where each company excels
|
|
207
|
+
- Quantified advantages
|
|
208
|
+
|
|
209
|
+
5. **Technical comparison:**
|
|
210
|
+
- Relative strength
|
|
211
|
+
- Momentum comparison
|
|
212
|
+
- Which is in better technical position
|
|
213
|
+
|
|
214
|
+
6. **Generate recommendation:**
|
|
215
|
+
- Which stock is more attractive and why
|
|
216
|
+
- Consider both fundamental and technical factors
|
|
217
|
+
- Portfolio allocation suggestion
|
|
218
|
+
- Risk-adjusted return assessment
|
|
219
|
+
|
|
220
|
+
**Output Format:** Follow "Comparison Report Structure" in references/report-template.md
|
|
221
|
+
|
|
222
|
+
## Output Guidelines
|
|
223
|
+
|
|
224
|
+
**General Principles:**
|
|
225
|
+
- Use tables for financial data and comparisons (easy to scan)
|
|
226
|
+
- Bold key metrics and findings
|
|
227
|
+
- Include data sources and dates
|
|
228
|
+
- Quantify whenever possible
|
|
229
|
+
- Present both bull and bear perspectives
|
|
230
|
+
- Be clear about assumptions and uncertainties
|
|
231
|
+
|
|
232
|
+
**Formatting:**
|
|
233
|
+
- **Headers** for clear section separation
|
|
234
|
+
- **Tables** for metrics, comparisons, historical data
|
|
235
|
+
- **Bullet points** for lists, factors, risks
|
|
236
|
+
- **Bold text** for key findings, important metrics
|
|
237
|
+
- **Percentages** for growth rates, returns, margins
|
|
238
|
+
- **Currency** formatted consistently ($B for billions, $M for millions)
|
|
239
|
+
|
|
240
|
+
**Tone:**
|
|
241
|
+
- Objective and balanced
|
|
242
|
+
- Acknowledge uncertainty
|
|
243
|
+
- Support claims with data
|
|
244
|
+
- Avoid hyperbole
|
|
245
|
+
- Present risks clearly
|
|
246
|
+
|
|
247
|
+
## Reference Files
|
|
248
|
+
|
|
249
|
+
Load these references as needed during analysis:
|
|
250
|
+
|
|
251
|
+
**references/technical-analysis.md**
|
|
252
|
+
- When: Performing technical analysis or interpreting indicators
|
|
253
|
+
- Contains: Indicator definitions, chart patterns, support/resistance concepts, analysis workflow
|
|
254
|
+
|
|
255
|
+
**references/fundamental-analysis.md**
|
|
256
|
+
- When: Performing fundamental analysis or business evaluation
|
|
257
|
+
- Contains: Business quality assessment, financial health analysis, valuation frameworks, risk assessment, red flags
|
|
258
|
+
|
|
259
|
+
**references/financial-metrics.md**
|
|
260
|
+
- When: Need definitions or calculation methods for financial ratios
|
|
261
|
+
- Contains: All key metrics with formulas (profitability, valuation, growth, liquidity, leverage, efficiency, cash flow)
|
|
262
|
+
|
|
263
|
+
**references/report-template.md**
|
|
264
|
+
- When: Creating comprehensive report or comparison
|
|
265
|
+
- Contains: Complete report structure, formatting guidelines, section templates, comparison format
|
|
266
|
+
|
|
267
|
+
## Example Queries
|
|
268
|
+
|
|
269
|
+
**Basic Info:**
|
|
270
|
+
- "What's the current price of AAPL?"
|
|
271
|
+
- "Give me key metrics for Tesla"
|
|
272
|
+
- "Quick overview of Microsoft stock"
|
|
273
|
+
|
|
274
|
+
**Fundamental:**
|
|
275
|
+
- "Analyze NVDA's financials"
|
|
276
|
+
- "Is Amazon overvalued?"
|
|
277
|
+
- "Evaluate Apple's business quality"
|
|
278
|
+
- "What's Google's debt situation?"
|
|
279
|
+
|
|
280
|
+
**Technical:**
|
|
281
|
+
- "Technical analysis of TSLA"
|
|
282
|
+
- "Is Netflix oversold?"
|
|
283
|
+
- "Show me support levels for AAPL"
|
|
284
|
+
- "What's the trend for AMD?"
|
|
285
|
+
|
|
286
|
+
**Comprehensive:**
|
|
287
|
+
- "Complete analysis of Microsoft"
|
|
288
|
+
- "Give me a full report on AAPL"
|
|
289
|
+
- "Should I invest in Tesla? Give me detailed analysis"
|
|
290
|
+
|
|
291
|
+
**Comparison:**
|
|
292
|
+
- "Compare AAPL vs MSFT"
|
|
293
|
+
- "Tesla vs Nvidia - which is better?"
|
|
294
|
+
- "Analyze Meta vs Google"
|