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,516 @@
|
|
|
1
|
+
# CANSLIM Score Interpretation Guide - Phase 1 MVP
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This guide helps users interpret CANSLIM screening results and translate composite scores into actionable investment decisions. Phase 1 MVP scores (C, A, N, M components only) are presented on a 0-100 scale.
|
|
6
|
+
|
|
7
|
+
**Important**: Phase 1 scores are **not directly comparable** to full 7-component CANSLIM scores. See comparison table below.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Composite Score Interpretation
|
|
12
|
+
|
|
13
|
+
### Score Bands and Meanings
|
|
14
|
+
|
|
15
|
+
| Score Range | Rating | Meaning | Action | Position Size |
|
|
16
|
+
|-------------|--------|---------|--------|---------------|
|
|
17
|
+
| **90-100** | **Exceptional+** | Rare multi-bagger setup - all 4 components near-perfect | Immediate buy | 15-20% of portfolio |
|
|
18
|
+
| **80-89** | **Exceptional** | Outstanding fundamentals + strong momentum | Strong buy | 10-15% of portfolio |
|
|
19
|
+
| **70-79** | **Strong** | Solid across all components, minor weaknesses | Buy | 8-12% of portfolio |
|
|
20
|
+
| **60-69** | **Above Average** | Meets thresholds, one component weak | Buy on pullback | 5-8% of portfolio |
|
|
21
|
+
| **50-59** | **Average** | Marginal CANSLIM candidate | Watchlist only | Consider 3-5% if conviction high |
|
|
22
|
+
| **40-49** | **Below Average** | Fails one or more key thresholds | Monitor, do not buy | 0% |
|
|
23
|
+
| **<40** | **Weak** | Does not meet CANSLIM criteria | Avoid | 0% |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Phase 1 vs Full CANSLIM Score Comparison
|
|
28
|
+
|
|
29
|
+
Since Phase 1 implements only 4 of 7 components (55% of methodology), scores will be compressed:
|
|
30
|
+
|
|
31
|
+
| Phase 1 Score | Equivalent Full CANSLIM Score | Rating |
|
|
32
|
+
|---------------|------------------------------|--------|
|
|
33
|
+
| 95-100 | 160-200 | Exceptional - Multi-bagger candidate |
|
|
34
|
+
| 85-94 | 140-159 | Strong - High-quality growth stock |
|
|
35
|
+
| 75-84 | 120-139 | Above Average - Solid candidate |
|
|
36
|
+
| 65-74 | 105-119 | Average - Meets minimums |
|
|
37
|
+
| 55-64 | 90-104 | Below Average - One or more weak components |
|
|
38
|
+
| <55 | <90 | Weak - Fails CANSLIM criteria |
|
|
39
|
+
|
|
40
|
+
**Key Insight**: A stock scoring 85+ in Phase 1 MVP is likely to score 140-160+ with full CANSLIM (Phase 3). This represents top-tier growth stock quality.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Component-Level Analysis
|
|
45
|
+
|
|
46
|
+
### How to Read Individual Component Scores
|
|
47
|
+
|
|
48
|
+
Each component contributes to the composite score with different weights:
|
|
49
|
+
- **C (Current Earnings)**: 27% weight - Quarterly EPS acceleration
|
|
50
|
+
- **A (Annual Growth)**: 36% weight - Multi-year consistency (highest weight!)
|
|
51
|
+
- **N (Newness)**: 27% weight - Momentum and price action
|
|
52
|
+
- **M (Market Direction)**: 10% weight - Macro environment filter
|
|
53
|
+
|
|
54
|
+
**Minimum Thresholds** (all must be met for "buy" rating):
|
|
55
|
+
- C >= 60 (18%+ quarterly EPS growth)
|
|
56
|
+
- A >= 50 (25%+ annual EPS CAGR)
|
|
57
|
+
- N >= 40 (within 25% of 52-week high)
|
|
58
|
+
- M >= 40 (market not in downtrend)
|
|
59
|
+
|
|
60
|
+
### Component Score Interpretation
|
|
61
|
+
|
|
62
|
+
| Score | C (Earnings) | A (Growth) | N (Newness) | M (Market) |
|
|
63
|
+
|-------|-------------|-----------|------------|-----------|
|
|
64
|
+
| **100** | EPS +50%+, explosive | CAGR 40%+, stable | At new high + catalyst | Strong bull, VIX <15 |
|
|
65
|
+
| **80** | EPS +30-49%, strong | CAGR 30-39% | Within 10% of high | Bull market, VIX <20 |
|
|
66
|
+
| **60** | EPS +18-29%, meets min | CAGR 25-29% | Within 15% of high | Early uptrend |
|
|
67
|
+
| **40** | EPS +10-17%, below | CAGR 15-24% | Within 25% of high | Choppy/neutral |
|
|
68
|
+
| **20** | EPS <10%, weak | CAGR <15%, erratic | >25% from high | Downtrend forming |
|
|
69
|
+
| **0** | Negative growth | No growth/volatile | Far from highs | Bear market - DO NOT BUY |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Action Recommendations by Score
|
|
74
|
+
|
|
75
|
+
### 90-100 Points (Exceptional+)
|
|
76
|
+
|
|
77
|
+
**Characteristics**:
|
|
78
|
+
- All 4 components aligned (C, A, N, M all 80+)
|
|
79
|
+
- Explosive earnings growth (C: 90-100)
|
|
80
|
+
- Multi-year growth validation (A: 90-100)
|
|
81
|
+
- At or near new highs with catalyst (N: 90-100)
|
|
82
|
+
- Strong bull market environment (M: 90-100)
|
|
83
|
+
|
|
84
|
+
**Historical Examples**:
|
|
85
|
+
- NVDA (2023 Q2): Score ~97 (AI chip explosion)
|
|
86
|
+
- AAPL (2009 Q3): Score ~95 (iPhone 3GS launch)
|
|
87
|
+
- TSLA (2020 Q3): Score ~92 (Model 3 profitability)
|
|
88
|
+
|
|
89
|
+
**Investment Action**:
|
|
90
|
+
- **Immediate buy** - Do not wait for pullback (may never come)
|
|
91
|
+
- **Position size**: 15-20% of portfolio (high conviction)
|
|
92
|
+
- **Entry timing**: Buy now or on minor 2-3% dip
|
|
93
|
+
- **Stop loss**: 7-8% below entry (O'Neil's rule)
|
|
94
|
+
- **Profit target**: Let winners run; these can become 200-500% gainers
|
|
95
|
+
|
|
96
|
+
**Risk Management**:
|
|
97
|
+
- Even exceptional setups can fail - honor stop loss
|
|
98
|
+
- If market deteriorates (M drops to 0-20), sell regardless of stock quality
|
|
99
|
+
- Take partial profits (20-25% of position) at 20-25% gain
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### 80-89 Points (Exceptional)
|
|
104
|
+
|
|
105
|
+
**Characteristics**:
|
|
106
|
+
- Most components strong, one may be slightly lower
|
|
107
|
+
- Strong earnings and growth (C + A both 70+)
|
|
108
|
+
- Good momentum (N 70+)
|
|
109
|
+
- Favorable market (M 60+)
|
|
110
|
+
|
|
111
|
+
**Typical Weakest Component**:
|
|
112
|
+
- Often A component (recovering from prior downturn, 3-year CAGR improving but not yet 40%+)
|
|
113
|
+
- Sometimes N component (8-12% from high, not quite breakout)
|
|
114
|
+
|
|
115
|
+
**Investment Action**:
|
|
116
|
+
- **Strong buy**
|
|
117
|
+
- **Position size**: 10-15% of portfolio (standard sizing)
|
|
118
|
+
- **Entry timing**: Ideal entry on pullback to 10-week moving average; can buy now if urgent
|
|
119
|
+
- **Stop loss**: 7-8% below entry
|
|
120
|
+
- **Profit target**: Sell 20-25% at 20-25% gain, hold remainder for 50-100%+ move
|
|
121
|
+
|
|
122
|
+
**Example**:
|
|
123
|
+
- Stock scoring 85: C=90, A=78, N=88, M=80
|
|
124
|
+
- Weakest = A (78): Growth is strong but not yet exceptional
|
|
125
|
+
- Action: Buy, expect 50-150% upside over 12-18 months if fundamentals hold
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
### 70-79 Points (Strong)
|
|
130
|
+
|
|
131
|
+
**Characteristics**:
|
|
132
|
+
- All components meet CANSLIM minimums
|
|
133
|
+
- One component may be outstanding, others solid
|
|
134
|
+
- No major red flags
|
|
135
|
+
|
|
136
|
+
**Typical Profile**:
|
|
137
|
+
- C: 70-80 (strong earnings, not explosive)
|
|
138
|
+
- A: 60-75 (meets 25% CAGR, could be more consistent)
|
|
139
|
+
- N: 65-80 (10-15% from high, good but not perfect momentum)
|
|
140
|
+
- M: 60-80 (bull market confirmed, not extended)
|
|
141
|
+
|
|
142
|
+
**Investment Action**:
|
|
143
|
+
- **Buy** (standard recommendation)
|
|
144
|
+
- **Position size**: 8-12% of portfolio
|
|
145
|
+
- **Entry timing**: Wait for pullback to 10-week MA or minor consolidation
|
|
146
|
+
- **Stop loss**: 7-8% below entry
|
|
147
|
+
- **Profit target**: 30-80% upside typical over 6-12 months
|
|
148
|
+
|
|
149
|
+
**Risk Consideration**:
|
|
150
|
+
- Monitor weakest component for deterioration
|
|
151
|
+
- If weakest drops below 50, consider reducing position
|
|
152
|
+
- These are quality candidates but not "home run" setups
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### 60-69 Points (Above Average)
|
|
157
|
+
|
|
158
|
+
**Characteristics**:
|
|
159
|
+
- Meets CANSLIM minimums but lacks conviction
|
|
160
|
+
- Typically one component weak (40-50 range)
|
|
161
|
+
- Remaining components solid (60-70 range)
|
|
162
|
+
|
|
163
|
+
**Common Weak Points**:
|
|
164
|
+
- **N weak** (40-50): Stock 20-25% from 52-week high → Lacks momentum
|
|
165
|
+
- **A weak** (50-60): 3-year CAGR only 25-28% → Marginal growth rate
|
|
166
|
+
- **C weak** (50-60): Quarterly EPS growth 18-22% → Just meets minimum
|
|
167
|
+
|
|
168
|
+
**Investment Action**:
|
|
169
|
+
- **Buy on pullback** or **Watchlist**
|
|
170
|
+
- **Position size**: 5-8% of portfolio (conservative)
|
|
171
|
+
- **Entry timing**: Wait for confirmation (improvement in weak component, or pullback to support)
|
|
172
|
+
- **Stop loss**: 7-8% below entry
|
|
173
|
+
- **Profit target**: 20-40% upside typical
|
|
174
|
+
|
|
175
|
+
**Monitoring Strategy**:
|
|
176
|
+
- Set alerts for earnings reports (watch if C/A component improves)
|
|
177
|
+
- Check weekly if price approaches 52-week high (N component improving)
|
|
178
|
+
- If composite score rises to 70+, increase position
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
### 50-59 Points (Average)
|
|
183
|
+
|
|
184
|
+
**Characteristics**:
|
|
185
|
+
- Barely meets CANSLIM criteria
|
|
186
|
+
- Multiple components in 50-60 range (marginal)
|
|
187
|
+
- May have one strong component (70-80) but others drag down composite
|
|
188
|
+
|
|
189
|
+
**Investment Action**:
|
|
190
|
+
- **Watchlist only** - Do not buy yet
|
|
191
|
+
- **Position size**: 0% (not ready)
|
|
192
|
+
- **Monitoring**: Track for improvement in weak components
|
|
193
|
+
- **Potential catalyst**: Upcoming earnings report could boost C score
|
|
194
|
+
|
|
195
|
+
**When to Reconsider**:
|
|
196
|
+
- If next quarter shows earnings acceleration (C rises to 70+)
|
|
197
|
+
- If stock breaks to new 52-week high (N rises to 70+)
|
|
198
|
+
- If market strengthens significantly (M rises to 80+)
|
|
199
|
+
- Goal: Wait for composite to reach 65-70+ before buying
|
|
200
|
+
|
|
201
|
+
**Common Scenario**:
|
|
202
|
+
- Stock recovering from pullback
|
|
203
|
+
- Fundamentals improving but not yet exceptional
|
|
204
|
+
- Price consolidating, building base for next move
|
|
205
|
+
- **Patient approach**: Wait 1-2 quarters for confirmation
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
### 40-49 Points (Below Average)
|
|
210
|
+
|
|
211
|
+
**Characteristics**:
|
|
212
|
+
- Fails one or more key CANSLIM thresholds
|
|
213
|
+
- Typically C or A component below 50 (earnings/growth insufficient)
|
|
214
|
+
- Or N component very weak (stock far from highs, no momentum)
|
|
215
|
+
|
|
216
|
+
**Investment Action**:
|
|
217
|
+
- **Do not buy**
|
|
218
|
+
- **Position size**: 0%
|
|
219
|
+
- **Action**: Remove from watchlist unless fundamental catalyst expected
|
|
220
|
+
|
|
221
|
+
**Why Avoid**:
|
|
222
|
+
- Stocks scoring <50 rarely lead market advances
|
|
223
|
+
- Even if they rally, gains are typically modest (10-20%)
|
|
224
|
+
- Better opportunities exist in 70+ scorers
|
|
225
|
+
- "You don't get paid to be right about mediocre stocks"
|
|
226
|
+
|
|
227
|
+
**Exception**:
|
|
228
|
+
- If M (Market) component is weak (0-20) but C, A, N are all 70+
|
|
229
|
+
- This indicates bear market is suppressing good stocks
|
|
230
|
+
- Add to watchlist, wait for M to recover (next bull market)
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
### <40 Points (Weak)
|
|
235
|
+
|
|
236
|
+
**Characteristics**:
|
|
237
|
+
- Multiple components fail CANSLIM thresholds
|
|
238
|
+
- Earnings decelerating (C < 40)
|
|
239
|
+
- Or inconsistent growth history (A < 40)
|
|
240
|
+
- Or price action weak (N < 40)
|
|
241
|
+
|
|
242
|
+
**Investment Action**:
|
|
243
|
+
- **Avoid entirely**
|
|
244
|
+
- These stocks are not CANSLIM candidates
|
|
245
|
+
- Focus efforts on higher-scoring opportunities
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Weakest Component Analysis
|
|
250
|
+
|
|
251
|
+
Every stock report identifies the **weakest component** (lowest individual score). This guides risk assessment:
|
|
252
|
+
|
|
253
|
+
### If Weakest = C (Current Earnings)
|
|
254
|
+
|
|
255
|
+
**Risk**: Earnings deceleration or miss
|
|
256
|
+
**Monitor**: Upcoming quarterly earnings reports
|
|
257
|
+
**Warning signs**:
|
|
258
|
+
- Revenue growth slowing
|
|
259
|
+
- Margin compression
|
|
260
|
+
- Guidance lowered
|
|
261
|
+
|
|
262
|
+
**Action**:
|
|
263
|
+
- If C drops to <40 post-earnings → Sell immediately
|
|
264
|
+
- Set tighter stop loss (5-6% vs. standard 7-8%)
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
### If Weakest = A (Annual Growth)
|
|
269
|
+
|
|
270
|
+
**Risk**: Inconsistent multi-year history, or recovering from prior downturn
|
|
271
|
+
**Monitor**: Multi-quarter trends (is growth accelerating consistently?)
|
|
272
|
+
**Warning signs**:
|
|
273
|
+
- Next quarter shows deceleration (C component weakens)
|
|
274
|
+
- Revenue growth lags EPS growth significantly
|
|
275
|
+
|
|
276
|
+
**Action**:
|
|
277
|
+
- Acceptable if A >= 50 and trending up
|
|
278
|
+
- If A drops below 50 or C also weakens → Sell
|
|
279
|
+
- This is often a "prove it" situation - stock must deliver for 2-3 more quarters
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
### If Weakest = N (Newness)
|
|
284
|
+
|
|
285
|
+
**Risk**: Lacks price momentum, overhead resistance
|
|
286
|
+
**Monitor**: Weekly chart for breakout to new highs
|
|
287
|
+
**Warning signs**:
|
|
288
|
+
- Stock fails to participate in sector rallies
|
|
289
|
+
- Continues drifting further from 52-week high
|
|
290
|
+
- Volume declining (waning interest)
|
|
291
|
+
|
|
292
|
+
**Action**:
|
|
293
|
+
- Wait for N to improve (breakout confirmation) before buying
|
|
294
|
+
- If N drops to <30 → Remove from watchlist
|
|
295
|
+
- Stocks far from highs rarely lead; don't fight the tape
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
### If Weakest = M (Market Direction)
|
|
300
|
+
|
|
301
|
+
**Risk**: Macro headwinds, bear market
|
|
302
|
+
**Monitor**: S&P 500 vs. 50-day EMA, VIX level
|
|
303
|
+
**Warning signs**:
|
|
304
|
+
- S&P breaks below 50-day and 200-day MAs
|
|
305
|
+
- VIX spikes above 25-30
|
|
306
|
+
- Breadth deteriorates (more declining than advancing stocks)
|
|
307
|
+
|
|
308
|
+
**Action**:
|
|
309
|
+
- If M = 0-20 → Raise cash immediately to 80-100%
|
|
310
|
+
- Do not buy any stocks, even with perfect C, A, N
|
|
311
|
+
- Wait for follow-through day (FTD) signaling market bottom before re-entering
|
|
312
|
+
|
|
313
|
+
**O'Neil's Wisdom**: "The best offense in a bear market is cash. You can't lose money sitting on the sidelines."
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## Market Direction Override
|
|
318
|
+
|
|
319
|
+
**Critical Rule**: If M component score = 0-20 (bear market), **do not buy any stocks** regardless of composite score.
|
|
320
|
+
|
|
321
|
+
### Why This Matters
|
|
322
|
+
|
|
323
|
+
Historical data shows:
|
|
324
|
+
- **Bull markets**: 75% of stocks move with market direction
|
|
325
|
+
- **Bear markets**: Even best growth stocks decline 20-50%
|
|
326
|
+
- **Poor timing**: Buying great stocks in bear markets = losses
|
|
327
|
+
|
|
328
|
+
### Example Scenario
|
|
329
|
+
|
|
330
|
+
**Stock XYZ**:
|
|
331
|
+
- C Score: 100 (exceptional earnings)
|
|
332
|
+
- A Score: 95 (exceptional growth)
|
|
333
|
+
- N Score: 98 (new highs)
|
|
334
|
+
- M Score: 0 (bear market)
|
|
335
|
+
- **Composite**: 85.3 (Exceptional by fundamentals)
|
|
336
|
+
|
|
337
|
+
**What happens**:
|
|
338
|
+
1. Initial purchase at $100
|
|
339
|
+
2. Bear market persists (M remains 0-20)
|
|
340
|
+
3. Stock declines to $70-80 despite strong fundamentals (-20-30%)
|
|
341
|
+
4. Stop loss triggered at $92-93 (-7-8% loss)
|
|
342
|
+
|
|
343
|
+
**Lesson**: Even 85-point stocks fail in bear markets. Wait for M > 40 (market recovery) before buying.
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## Portfolio Construction Guidelines
|
|
348
|
+
|
|
349
|
+
### Position Sizing by Score
|
|
350
|
+
|
|
351
|
+
| Composite Score | Max Position Size | Rationale |
|
|
352
|
+
|----------------|------------------|-----------|
|
|
353
|
+
| 90-100 | 15-20% | High conviction, rare setups |
|
|
354
|
+
| 80-89 | 10-15% | Standard sizing for strong stocks |
|
|
355
|
+
| 70-79 | 8-12% | Solid candidates, slight caution |
|
|
356
|
+
| 60-69 | 5-8% | Smaller positions, higher uncertainty |
|
|
357
|
+
| <60 | 0% | Do not buy |
|
|
358
|
+
|
|
359
|
+
### Diversification Rules
|
|
360
|
+
|
|
361
|
+
**Total Portfolio**:
|
|
362
|
+
- 5-10 positions maximum (concentrated portfolio, O'Neil style)
|
|
363
|
+
- 10-20% cash reserve (for new opportunities)
|
|
364
|
+
- Rebalance when any position exceeds 25% due to gains
|
|
365
|
+
|
|
366
|
+
**Sector Limits**:
|
|
367
|
+
- Maximum 2 stocks per sector (avoid concentration risk)
|
|
368
|
+
- Exception: If sector is clearly leading (e.g., Technology in AI boom), can have 3
|
|
369
|
+
|
|
370
|
+
**Score Distribution**:
|
|
371
|
+
- 60-70% of portfolio: Stocks scoring 80+ (high conviction)
|
|
372
|
+
- 30-40% of portfolio: Stocks scoring 70-79 (solid candidates)
|
|
373
|
+
- 0% of portfolio: Stocks scoring <70 (only if very high conviction and specific catalyst)
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## Entry and Exit Rules
|
|
378
|
+
|
|
379
|
+
### Entry Timing
|
|
380
|
+
|
|
381
|
+
**Best Entry Points** (O'Neil's research):
|
|
382
|
+
1. **Breakout from base** (7-8 week consolidation minimum)
|
|
383
|
+
- Stock makes new high on volume 40-50%+ above average
|
|
384
|
+
- Buy within 5% of breakout price ("buy point")
|
|
385
|
+
|
|
386
|
+
2. **Pullback to 10-week moving average**
|
|
387
|
+
- Stock in uptrend pulls back 8-12%
|
|
388
|
+
- Finds support at 10-week MA
|
|
389
|
+
- Buy when bounces off MA with volume
|
|
390
|
+
|
|
391
|
+
3. **Early-stage base** (Stages 1-2 of Weinstein cycle)
|
|
392
|
+
- Stock just emerging from consolidation
|
|
393
|
+
- Beginning Stage 2 uptrend
|
|
394
|
+
- Low-risk entry before major advance
|
|
395
|
+
|
|
396
|
+
### Stop Loss Discipline
|
|
397
|
+
|
|
398
|
+
**Initial Stop**: 7-8% below entry price (non-negotiable)
|
|
399
|
+
|
|
400
|
+
**Why 7-8%**:
|
|
401
|
+
- O'Neil's 50-year research: Cutting losses at 7-8% prevents small losses from becoming disasters
|
|
402
|
+
- Average successful trade: +20-25% gain
|
|
403
|
+
- Risk/reward: Lose 7%, make 20% = 3:1 favorable
|
|
404
|
+
|
|
405
|
+
**Stop Loss Adjustments**:
|
|
406
|
+
- Once stock up 15%: Move stop to breakeven (protect capital)
|
|
407
|
+
- Once stock up 25%: Trail stop 10-15% below peak
|
|
408
|
+
- In strong uptrend: Use 10-week MA as trailing stop
|
|
409
|
+
|
|
410
|
+
### Profit Taking
|
|
411
|
+
|
|
412
|
+
**Partial Profit Strategy**:
|
|
413
|
+
1. **First 20-25% gain**: Sell 20-25% of position (lock in profit)
|
|
414
|
+
2. **50% gain**: Sell another 20-25%
|
|
415
|
+
3. **Remainder**: Hold for potential multi-bagger (100-500%)
|
|
416
|
+
|
|
417
|
+
**Full Sell Signals**:
|
|
418
|
+
1. **Stop loss hit**: 7-8% loss → Sell immediately
|
|
419
|
+
2. **Climax top**: Parabolic move on extreme volume, then reversal → Sell 50-100%
|
|
420
|
+
3. **Distribution**: Heavy selling volume (stock down on high volume 4-5 days in week) → Sell
|
|
421
|
+
4. **Fundamental deterioration**: C or A component drops below 40 → Sell
|
|
422
|
+
5. **Market enters correction**: M score drops to 0-20 → Sell all stocks
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## Common Interpretation Mistakes
|
|
427
|
+
|
|
428
|
+
### Mistake 1: Ignoring M Component
|
|
429
|
+
|
|
430
|
+
**Error**: "This stock has a 95 composite score, I must buy it!"
|
|
431
|
+
|
|
432
|
+
**Reality**: If M = 0, composite score is misleading. Stock will likely decline in bear market.
|
|
433
|
+
|
|
434
|
+
**Correct Approach**:
|
|
435
|
+
- Always check M component FIRST
|
|
436
|
+
- If M < 40, question whether to buy
|
|
437
|
+
- If M = 0, do NOT buy regardless of C, A, N scores
|
|
438
|
+
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
### Mistake 2: Chasing Low-Scoring Stocks
|
|
442
|
+
|
|
443
|
+
**Error**: "This 55-point stock is cheap, it could bounce!"
|
|
444
|
+
|
|
445
|
+
**Reality**: Stocks scoring <60 rarely lead market advances. Even if they rally, gains are modest.
|
|
446
|
+
|
|
447
|
+
**Correct Approach**:
|
|
448
|
+
- Focus on 70+ scorers
|
|
449
|
+
- "It's not about being right, it's about making money"
|
|
450
|
+
- Better to buy fewer high-quality stocks than many mediocre ones
|
|
451
|
+
|
|
452
|
+
---
|
|
453
|
+
|
|
454
|
+
### Mistake 3: Overweighting N Component
|
|
455
|
+
|
|
456
|
+
**Error**: "This stock is 40% below its high, so it's a bargain!"
|
|
457
|
+
|
|
458
|
+
**Reality**: Stocks far from highs lack institutional sponsorship and face overhead resistance.
|
|
459
|
+
|
|
460
|
+
**Correct Approach**:
|
|
461
|
+
- N >= 60 (within 15% of high) is minimum
|
|
462
|
+
- N >= 80 (within 10% of high) is ideal
|
|
463
|
+
- "Leaders make new highs; laggards don't"
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
### Mistake 4: Ignoring Weakest Component
|
|
468
|
+
|
|
469
|
+
**Error**: "Composite score is 75, that's strong enough to buy"
|
|
470
|
+
|
|
471
|
+
**Reality**: If weakest component is C = 40 (earnings decelerating), stock is at risk of sharp decline on next earnings miss.
|
|
472
|
+
|
|
473
|
+
**Correct Approach**:
|
|
474
|
+
- Identify weakest component
|
|
475
|
+
- Understand the specific risk it represents
|
|
476
|
+
- Monitor that component closely
|
|
477
|
+
- Set appropriate stop loss based on risk
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
### Mistake 5: Not Cutting Losses
|
|
482
|
+
|
|
483
|
+
**Error**: "I'll hold this losing position; it will come back eventually"
|
|
484
|
+
|
|
485
|
+
**Reality**: Small losses turn into large disasters. O'Neil's data shows 90% of losses come from not selling losers early.
|
|
486
|
+
|
|
487
|
+
**Correct Approach**:
|
|
488
|
+
- Set stop loss at entry (7-8% below)
|
|
489
|
+
- Execute stop loss without hesitation
|
|
490
|
+
- "Your first loss is your smallest loss"
|
|
491
|
+
- Free up capital for better opportunities
|
|
492
|
+
|
|
493
|
+
---
|
|
494
|
+
|
|
495
|
+
## Summary Checklist
|
|
496
|
+
|
|
497
|
+
Before buying any stock, verify:
|
|
498
|
+
|
|
499
|
+
- [ ] **Composite score >= 70** (Strong or higher)
|
|
500
|
+
- [ ] **M component >= 40** (Market not in downtrend)
|
|
501
|
+
- [ ] **C component >= 60** (Meets earnings minimum)
|
|
502
|
+
- [ ] **A component >= 50** (Meets growth minimum)
|
|
503
|
+
- [ ] **N component >= 40** (Not too far from highs)
|
|
504
|
+
- [ ] **Weakest component identified** and understood
|
|
505
|
+
- [ ] **Stop loss set at 7-8% below entry**
|
|
506
|
+
- [ ] **Position size appropriate** (based on score tier)
|
|
507
|
+
- [ ] **Sector exposure acceptable** (max 2-3 stocks per sector)
|
|
508
|
+
- [ ] **Cash reserve maintained** (10-20% of portfolio)
|
|
509
|
+
|
|
510
|
+
If all boxes checked → **Execute purchase**
|
|
511
|
+
|
|
512
|
+
If any box unchecked → **Do not buy** (or wait for condition to be met)
|
|
513
|
+
|
|
514
|
+
---
|
|
515
|
+
|
|
516
|
+
This interpretation guide provides a systematic framework for translating CANSLIM scores into disciplined investment decisions. By following these guidelines, you implement O'Neil's research-backed methodology for identifying growth stock leaders while managing risk effectively.
|