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,608 @@
|
|
|
1
|
+
# Risk Profile Questionnaire
|
|
2
|
+
|
|
3
|
+
This document provides a framework for assessing investor risk tolerance and determining appropriate target asset allocation.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Risk profile assessment helps answer:
|
|
8
|
+
1. How much volatility can the investor handle emotionally?
|
|
9
|
+
2. How much loss can they afford financially?
|
|
10
|
+
3. What allocation matches their risk capacity and tolerance?
|
|
11
|
+
4. What expected return do they need to meet goals?
|
|
12
|
+
|
|
13
|
+
**Three Components of Risk Assessment:**
|
|
14
|
+
|
|
15
|
+
1. **Risk Capacity** - Financial ability to withstand losses (objective)
|
|
16
|
+
2. **Risk Tolerance** - Emotional willingness to accept volatility (subjective)
|
|
17
|
+
3. **Risk Requirement** - Return needed to achieve goals (objective)
|
|
18
|
+
|
|
19
|
+
Optimal allocation balances all three components.
|
|
20
|
+
|
|
21
|
+
## Risk Capacity Assessment (Financial)
|
|
22
|
+
|
|
23
|
+
Risk capacity is determined by objective financial factors:
|
|
24
|
+
|
|
25
|
+
### 1. Time Horizon
|
|
26
|
+
|
|
27
|
+
**Question:** When will you need to withdraw a significant portion of this portfolio?
|
|
28
|
+
|
|
29
|
+
| Answer | Years | Risk Capacity | Typical Allocation |
|
|
30
|
+
|--------|-------|---------------|-------------------|
|
|
31
|
+
| **A.** Retired, currently withdrawing | 0-3 | Very Low | 20-30% stocks |
|
|
32
|
+
| **B.** Retiring soon | 3-5 | Low | 30-40% stocks |
|
|
33
|
+
| **C.** Mid-career, 10-15 years | 10-15 | Medium | 50-70% stocks |
|
|
34
|
+
| **D.** Early career, 20+ years | 20-30 | High | 70-85% stocks |
|
|
35
|
+
| **E.** Very young, 30+ years | 30+ | Very High | 85-100% stocks |
|
|
36
|
+
|
|
37
|
+
**Scoring:**
|
|
38
|
+
- A = 1 point
|
|
39
|
+
- B = 2 points
|
|
40
|
+
- C = 3 points
|
|
41
|
+
- D = 4 points
|
|
42
|
+
- E = 5 points
|
|
43
|
+
|
|
44
|
+
**Rationale:** Longer time horizons allow recovery from market downturns, supporting higher equity allocation.
|
|
45
|
+
|
|
46
|
+
### 2. Income Stability
|
|
47
|
+
|
|
48
|
+
**Question:** How stable and predictable is your income?
|
|
49
|
+
|
|
50
|
+
| Answer | Risk Capacity Impact |
|
|
51
|
+
|--------|---------------------|
|
|
52
|
+
| **A.** Fixed pension or annuity (very stable) | Very High (can handle portfolio volatility) |
|
|
53
|
+
| **B.** Stable salary, secure job | High |
|
|
54
|
+
| **C.** Salary with some variability | Medium |
|
|
55
|
+
| **D.** Commission or bonus-heavy | Low |
|
|
56
|
+
| **E.** Entrepreneur/self-employed | Low (income correlates with markets) |
|
|
57
|
+
|
|
58
|
+
**Scoring:**
|
|
59
|
+
- A = 5 points
|
|
60
|
+
- B = 4 points
|
|
61
|
+
- C = 3 points
|
|
62
|
+
- D = 2 points
|
|
63
|
+
- E = 2 points (or 1 if business is cyclical)
|
|
64
|
+
|
|
65
|
+
**Rationale:** Stable income allows taking more risk in portfolio; variable income requires conservative portfolio as ballast.
|
|
66
|
+
|
|
67
|
+
### 3. Net Worth and Liquidity
|
|
68
|
+
|
|
69
|
+
**Question:** What percentage of your total net worth is this investment portfolio? (Exclude home equity and retirement accounts you can't access)
|
|
70
|
+
|
|
71
|
+
| Answer | Risk Capacity Impact |
|
|
72
|
+
|--------|---------------------|
|
|
73
|
+
| **A.** Less than 25% (most wealth elsewhere) | Very High |
|
|
74
|
+
| **B.** 25-50% | High |
|
|
75
|
+
| **C.** 50-75% | Medium |
|
|
76
|
+
| **D.** 75-90% | Low |
|
|
77
|
+
| **E.** Over 90% (nearly all wealth) | Very Low |
|
|
78
|
+
|
|
79
|
+
**Scoring:**
|
|
80
|
+
- A = 5 points
|
|
81
|
+
- B = 4 points
|
|
82
|
+
- C = 3 points
|
|
83
|
+
- D = 2 points
|
|
84
|
+
- E = 1 point
|
|
85
|
+
|
|
86
|
+
**Rationale:** If portfolio represents most of your wealth, you can't afford large losses. Diversified wealth allows higher risk in this account.
|
|
87
|
+
|
|
88
|
+
### 4. Emergency Fund Status
|
|
89
|
+
|
|
90
|
+
**Question:** Do you have a separate emergency fund (3-6 months expenses) outside this portfolio?
|
|
91
|
+
|
|
92
|
+
| Answer | Risk Capacity Impact |
|
|
93
|
+
|--------|---------------------|
|
|
94
|
+
| **A.** Yes, fully funded (6+ months) | High (no need to tap portfolio) |
|
|
95
|
+
| **B.** Partially funded (3-4 months) | Medium |
|
|
96
|
+
| **C.** No, this portfolio is my emergency fund | Low (need liquidity) |
|
|
97
|
+
|
|
98
|
+
**Scoring:**
|
|
99
|
+
- A = 5 points
|
|
100
|
+
- B = 3 points
|
|
101
|
+
- C = 1 point
|
|
102
|
+
|
|
103
|
+
**Rationale:** Emergency fund prevents forced liquidation at market lows; its absence requires higher cash allocation.
|
|
104
|
+
|
|
105
|
+
### 5. Debt Level
|
|
106
|
+
|
|
107
|
+
**Question:** What is your debt situation?
|
|
108
|
+
|
|
109
|
+
| Answer | Risk Capacity Impact |
|
|
110
|
+
|--------|---------------------|
|
|
111
|
+
| **A.** No debt (or only mortgage) | High |
|
|
112
|
+
| **B.** Moderate debt, manageable payments | Medium |
|
|
113
|
+
| **C.** High debt, significant payments | Low |
|
|
114
|
+
| **D.** High-interest debt (credit cards) | Very Low |
|
|
115
|
+
|
|
116
|
+
**Scoring:**
|
|
117
|
+
- A = 5 points
|
|
118
|
+
- B = 3 points
|
|
119
|
+
- C = 2 points
|
|
120
|
+
- D = 1 point
|
|
121
|
+
|
|
122
|
+
**Rationale:** High debt reduces capacity to handle portfolio losses; paying down debt may be better use of funds than risky investments.
|
|
123
|
+
|
|
124
|
+
**Risk Capacity Score (Financial):**
|
|
125
|
+
```
|
|
126
|
+
Total Points: ___ / 25
|
|
127
|
+
|
|
128
|
+
20-25 points: Very High Capacity (can handle 80-100% stocks)
|
|
129
|
+
15-19 points: High Capacity (60-80% stocks)
|
|
130
|
+
10-14 points: Medium Capacity (40-60% stocks)
|
|
131
|
+
5-9 points: Low Capacity (20-40% stocks)
|
|
132
|
+
0-4 points: Very Low Capacity (0-20% stocks)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Risk Tolerance Assessment (Emotional/Behavioral)
|
|
136
|
+
|
|
137
|
+
Risk tolerance is subjective - how much volatility can you handle emotionally?
|
|
138
|
+
|
|
139
|
+
### 1. Loss Reaction
|
|
140
|
+
|
|
141
|
+
**Question:** If your $100,000 portfolio dropped to $80,000 (-20%) in a market crash, how would you react?
|
|
142
|
+
|
|
143
|
+
| Answer | Risk Tolerance |
|
|
144
|
+
|--------|----------------|
|
|
145
|
+
| **A.** Panic, sell everything, can't sleep at night | Very Low |
|
|
146
|
+
| **B.** Very concerned, consider selling | Low |
|
|
147
|
+
| **C.** Uncomfortable but hold steady | Medium |
|
|
148
|
+
| **D.** Stay calm, stick to plan | High |
|
|
149
|
+
| **E.** Excited, buy more at lower prices | Very High |
|
|
150
|
+
|
|
151
|
+
**Scoring:**
|
|
152
|
+
- A = 1 point
|
|
153
|
+
- B = 2 points
|
|
154
|
+
- C = 3 points
|
|
155
|
+
- D = 4 points
|
|
156
|
+
- E = 5 points
|
|
157
|
+
|
|
158
|
+
### 2. Historical Behavior
|
|
159
|
+
|
|
160
|
+
**Question:** Have you experienced a major market downturn (2008, 2020)? How did you react?
|
|
161
|
+
|
|
162
|
+
| Answer | Risk Tolerance |
|
|
163
|
+
|--------|----------------|
|
|
164
|
+
| **A.** Sold stocks near the bottom, locked in losses | Very Low |
|
|
165
|
+
| **B.** Reduced equity exposure significantly | Low |
|
|
166
|
+
| **C.** Held steady, didn't trade | Medium |
|
|
167
|
+
| **D.** Held steady and added to stocks | High |
|
|
168
|
+
| **E.** Increased equity exposure significantly | Very High |
|
|
169
|
+
| **F.** Haven't experienced a major downturn yet | Unknown (rate yourself hypothetically) |
|
|
170
|
+
|
|
171
|
+
**Scoring:**
|
|
172
|
+
- A = 1 point
|
|
173
|
+
- B = 2 points
|
|
174
|
+
- C = 3 points
|
|
175
|
+
- D = 4 points
|
|
176
|
+
- E = 5 points
|
|
177
|
+
- F = Use answer to Question 1
|
|
178
|
+
|
|
179
|
+
**Insight:** Past behavior is the best predictor of future behavior. If you sold in prior crashes, you likely will again.
|
|
180
|
+
|
|
181
|
+
### 3. Sleep Test
|
|
182
|
+
|
|
183
|
+
**Question:** What is the largest portfolio decline you could tolerate without losing sleep?
|
|
184
|
+
|
|
185
|
+
| Answer | Drawdown Tolerance | Risk Tolerance | Suitable Allocation |
|
|
186
|
+
|--------|-------------------|----------------|---------------------|
|
|
187
|
+
| **A.** -5% | Very Low | Very Low | 20% stocks |
|
|
188
|
+
| **B.** -10% | Low | Low | 30-40% stocks |
|
|
189
|
+
| **C.** -15% | Medium-Low | Medium-Low | 40-50% stocks |
|
|
190
|
+
| **D.** -20% | Medium | Medium | 50-60% stocks |
|
|
191
|
+
| **E.** -25% | Medium-High | Medium-High | 60-70% stocks |
|
|
192
|
+
| **F.** -30% | High | High | 70-80% stocks |
|
|
193
|
+
| **G.** -40% or more | Very High | Very High | 80-100% stocks |
|
|
194
|
+
|
|
195
|
+
**Scoring:**
|
|
196
|
+
- A = 1 point
|
|
197
|
+
- B = 2 points
|
|
198
|
+
- C = 2.5 points
|
|
199
|
+
- D = 3 points
|
|
200
|
+
- E = 3.5 points
|
|
201
|
+
- F = 4 points
|
|
202
|
+
- G = 5 points
|
|
203
|
+
|
|
204
|
+
**Key Insight:** This is the most important question. Be honest - what loss would cause you to sell in panic?
|
|
205
|
+
|
|
206
|
+
### 4. Investment Timeframe and Patience
|
|
207
|
+
|
|
208
|
+
**Question:** If your portfolio underperformed the market for 3 years straight, would you:
|
|
209
|
+
|
|
210
|
+
| Answer | Risk Tolerance |
|
|
211
|
+
|--------|----------------|
|
|
212
|
+
| **A.** Immediately switch to index funds | Very Low |
|
|
213
|
+
| **B.** Re-evaluate and likely make changes within 6 months | Low |
|
|
214
|
+
| **C.** Review carefully, make changes if thesis broken | Medium |
|
|
215
|
+
| **D.** Stay patient, 3 years is short-term | High |
|
|
216
|
+
| **E.** Add more, contrarian opportunity | Very High |
|
|
217
|
+
|
|
218
|
+
**Scoring:**
|
|
219
|
+
- A = 1 point
|
|
220
|
+
- B = 2 points
|
|
221
|
+
- C = 3 points
|
|
222
|
+
- D = 4 points
|
|
223
|
+
- E = 5 points
|
|
224
|
+
|
|
225
|
+
### 5. Volatility Preference
|
|
226
|
+
|
|
227
|
+
**Question:** Which investment would you prefer?
|
|
228
|
+
|
|
229
|
+
| Option | Expected Return | Possible Outcomes | Risk Level |
|
|
230
|
+
|--------|----------------|-------------------|------------|
|
|
231
|
+
| **A.** Conservative | 4% per year | Range: 2% to 6% | Very Low |
|
|
232
|
+
| **B.** Moderate | 6% per year | Range: -5% to 15% | Low |
|
|
233
|
+
| **C.** Balanced | 8% per year | Range: -10% to 25% | Medium |
|
|
234
|
+
| **D.** Growth | 10% per year | Range: -20% to 40% | High |
|
|
235
|
+
| **E.** Aggressive | 12% per year | Range: -35% to 60% | Very High |
|
|
236
|
+
|
|
237
|
+
**Scoring:**
|
|
238
|
+
- A = 1 point
|
|
239
|
+
- B = 2 points
|
|
240
|
+
- C = 3 points
|
|
241
|
+
- D = 4 points
|
|
242
|
+
- E = 5 points
|
|
243
|
+
|
|
244
|
+
**Risk Tolerance Score (Emotional):**
|
|
245
|
+
```
|
|
246
|
+
Total Points: ___ / 25
|
|
247
|
+
|
|
248
|
+
20-25 points: Very High Tolerance (comfortable with 80-100% stocks)
|
|
249
|
+
15-19 points: High Tolerance (comfortable with 60-80% stocks)
|
|
250
|
+
10-14 points: Medium Tolerance (comfortable with 40-60% stocks)
|
|
251
|
+
5-9 points: Low Tolerance (comfortable with 20-40% stocks)
|
|
252
|
+
0-4 points: Very Low Tolerance (comfortable with 0-20% stocks)
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## Risk Requirement Assessment (Goals)
|
|
256
|
+
|
|
257
|
+
Risk requirement is determined by what return you need to achieve financial goals.
|
|
258
|
+
|
|
259
|
+
### 1. Return Needed
|
|
260
|
+
|
|
261
|
+
**Question:** What annual return do you need to meet your financial goals?
|
|
262
|
+
|
|
263
|
+
Calculate: Required Return = (Future Goal - Current Savings) / (Years × Current Savings)
|
|
264
|
+
|
|
265
|
+
Simplified Self-Assessment:
|
|
266
|
+
|
|
267
|
+
| Required Return | Risk Requirement | Suitable Allocation |
|
|
268
|
+
|----------------|-----------------|---------------------|
|
|
269
|
+
| **< 4%** | Low (bonds/cash sufficient) | 20-40% stocks |
|
|
270
|
+
| **4-6%** | Medium-Low (conservative stocks work) | 40-60% stocks |
|
|
271
|
+
| **6-8%** | Medium (balanced portfolio) | 60-70% stocks |
|
|
272
|
+
| **8-10%** | Medium-High (equity-heavy) | 70-85% stocks |
|
|
273
|
+
| **> 10%** | High (aggressive growth) | 85-100% stocks |
|
|
274
|
+
|
|
275
|
+
**Scoring:**
|
|
276
|
+
- <4% = 1 point
|
|
277
|
+
- 4-6% = 2 points
|
|
278
|
+
- 6-8% = 3 points
|
|
279
|
+
- 8-10% = 4 points
|
|
280
|
+
- >10% = 5 points
|
|
281
|
+
|
|
282
|
+
### 2. Savings Rate
|
|
283
|
+
|
|
284
|
+
**Question:** Are you contributing regularly to this portfolio?
|
|
285
|
+
|
|
286
|
+
| Answer | Risk Requirement Impact |
|
|
287
|
+
|--------|------------------------|
|
|
288
|
+
| **A.** High savings rate (>20% of income) | Low (can achieve goals with lower returns) |
|
|
289
|
+
| **B.** Moderate savings rate (10-20%) | Medium |
|
|
290
|
+
| **C.** Low savings rate (<10%) | High (need higher returns) |
|
|
291
|
+
| **D.** No contributions, portfolio must grow itself | Very High |
|
|
292
|
+
| **E.** Net withdrawing from portfolio | N/A (preservation focus) |
|
|
293
|
+
|
|
294
|
+
**Scoring:**
|
|
295
|
+
- A = 1 point (don't need high risk)
|
|
296
|
+
- B = 2 points
|
|
297
|
+
- C = 4 points (need higher returns)
|
|
298
|
+
- D = 5 points
|
|
299
|
+
- E = 1 point (focus shifts to preservation)
|
|
300
|
+
|
|
301
|
+
**Rationale:** High savings rate means goals can be met with lower investment returns; low savings requires taking more risk.
|
|
302
|
+
|
|
303
|
+
### 3. Goal Flexibility
|
|
304
|
+
|
|
305
|
+
**Question:** How flexible are your financial goals?
|
|
306
|
+
|
|
307
|
+
| Answer | Risk Requirement Impact |
|
|
308
|
+
|--------|------------------------|
|
|
309
|
+
| **A.** Very flexible (can delay retirement, reduce spending) | Low (can afford conservative approach) |
|
|
310
|
+
| **B.** Somewhat flexible | Medium |
|
|
311
|
+
| **C.** Not flexible (specific retirement date, fixed expenses) | High (must meet return target) |
|
|
312
|
+
|
|
313
|
+
**Scoring:**
|
|
314
|
+
- A = 1 point
|
|
315
|
+
- B = 3 points
|
|
316
|
+
- C = 5 points
|
|
317
|
+
|
|
318
|
+
**Risk Requirement Score:**
|
|
319
|
+
```
|
|
320
|
+
Total Points: ___ / 15
|
|
321
|
+
|
|
322
|
+
12-15 points: High Requirement (need 70-100% stocks)
|
|
323
|
+
9-11 points: Medium-High Requirement (need 60-80% stocks)
|
|
324
|
+
6-8 points: Medium Requirement (need 40-60% stocks)
|
|
325
|
+
3-5 points: Low Requirement (need 20-40% stocks)
|
|
326
|
+
0-2 points: Very Low Requirement (can use conservative allocation)
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
## Synthesizing the Three Assessments
|
|
330
|
+
|
|
331
|
+
### Step 1: Calculate Component Scores
|
|
332
|
+
|
|
333
|
+
```
|
|
334
|
+
Risk Capacity Score: ___ / 25 → Convert to 1-5 scale = ___
|
|
335
|
+
Risk Tolerance Score: ___ / 25 → Convert to 1-5 scale = ___
|
|
336
|
+
Risk Requirement Score: ___ / 15 → Convert to 1-5 scale = ___
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
**Conversion Table:**
|
|
340
|
+
|
|
341
|
+
| Raw Score (out of max) | Converted Score (1-5) |
|
|
342
|
+
|------------------------|----------------------|
|
|
343
|
+
| 0-20% | 1 |
|
|
344
|
+
| 21-40% | 2 |
|
|
345
|
+
| 41-60% | 3 |
|
|
346
|
+
| 61-80% | 4 |
|
|
347
|
+
| 81-100% | 5 |
|
|
348
|
+
|
|
349
|
+
### Step 2: Determine Overall Risk Profile
|
|
350
|
+
|
|
351
|
+
**Method 1: Conservative (Recommended for Most Investors)**
|
|
352
|
+
|
|
353
|
+
Use the **lowest** of the three scores. This ensures you don't take more risk than you can handle.
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
Risk Capacity: 4
|
|
357
|
+
Risk Tolerance: 2 ← Lowest
|
|
358
|
+
Risk Requirement: 4
|
|
359
|
+
|
|
360
|
+
Overall Risk Profile: 2 (Low)
|
|
361
|
+
Recommended Allocation: 30-40% stocks
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
**Rationale:** If emotional tolerance is low (2), it doesn't matter that capacity and requirement are higher - investor will sell in panic during crash.
|
|
365
|
+
|
|
366
|
+
**Method 2: Balanced**
|
|
367
|
+
|
|
368
|
+
Use the **average** of the three scores.
|
|
369
|
+
|
|
370
|
+
```
|
|
371
|
+
Risk Capacity: 4
|
|
372
|
+
Risk Tolerance: 2
|
|
373
|
+
Risk Requirement: 4
|
|
374
|
+
|
|
375
|
+
Average: (4 + 2 + 4) / 3 = 3.33 → 3 (Medium)
|
|
376
|
+
Recommended Allocation: 50-60% stocks
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
**Rationale:** Balances all factors, may take slightly more risk than emotional tolerance suggests.
|
|
380
|
+
|
|
381
|
+
**Method 3: Adaptive**
|
|
382
|
+
|
|
383
|
+
Weight the scores based on individual circumstances:
|
|
384
|
+
|
|
385
|
+
```
|
|
386
|
+
Typical weighting:
|
|
387
|
+
Risk Tolerance: 50% (most important - behavioral)
|
|
388
|
+
Risk Capacity: 30% (financial constraints)
|
|
389
|
+
Risk Requirement: 20% (goals)
|
|
390
|
+
|
|
391
|
+
Example:
|
|
392
|
+
Capacity: 4 × 0.30 = 1.2
|
|
393
|
+
Tolerance: 2 × 0.50 = 1.0
|
|
394
|
+
Requirement: 4 × 0.20 = 0.8
|
|
395
|
+
|
|
396
|
+
Weighted Score: 1.2 + 1.0 + 0.8 = 3.0 (Medium)
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
### Step 3: Map to Asset Allocation
|
|
400
|
+
|
|
401
|
+
| Overall Risk Score | Risk Profile | Recommended Stocks % | Recommended Bonds % |
|
|
402
|
+
|-------------------|--------------|---------------------|---------------------|
|
|
403
|
+
| **1.0 - 1.5** | Very Low (Conservative) | 20-30% | 60-70% |
|
|
404
|
+
| **1.6 - 2.5** | Low (Conservative) | 30-40% | 50-60% |
|
|
405
|
+
| **2.6 - 3.5** | Medium (Moderate) | 50-60% | 35-45% |
|
|
406
|
+
| **3.6 - 4.5** | High (Growth) | 70-80% | 15-25% |
|
|
407
|
+
| **4.6 - 5.0** | Very High (Aggressive) | 85-100% | 0-10% |
|
|
408
|
+
|
|
409
|
+
### Step 4: Resolve Conflicts
|
|
410
|
+
|
|
411
|
+
**Conflict Example:**
|
|
412
|
+
|
|
413
|
+
```
|
|
414
|
+
Risk Capacity: 5 (Very High - young, stable income, long horizon)
|
|
415
|
+
Risk Tolerance: 2 (Low - can't handle volatility emotionally)
|
|
416
|
+
Risk Requirement: 4 (High - need high returns to meet goals)
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
**Resolution:**
|
|
420
|
+
|
|
421
|
+
This investor **needs** to take risk (requirement), **can** take risk (capacity), but **can't handle** risk emotionally (tolerance).
|
|
422
|
+
|
|
423
|
+
**Options:**
|
|
424
|
+
|
|
425
|
+
1. **Conservative approach (Recommended):**
|
|
426
|
+
- Use risk tolerance as limit (30-40% stocks)
|
|
427
|
+
- Accept that goals may not be met with investment returns alone
|
|
428
|
+
- Increase savings rate to compensate for lower returns
|
|
429
|
+
- Work longer or reduce spending goals
|
|
430
|
+
|
|
431
|
+
2. **Education approach:**
|
|
432
|
+
- Work on improving risk tolerance through education
|
|
433
|
+
- Start with moderate allocation (50% stocks)
|
|
434
|
+
- Gradually increase equity exposure as comfort grows
|
|
435
|
+
- Build tolerance through experience
|
|
436
|
+
|
|
437
|
+
3. **Mismatch acceptance (Not Recommended):**
|
|
438
|
+
- Use higher allocation (70%+ stocks) despite low tolerance
|
|
439
|
+
- **Risk:** Will likely panic-sell in crash, locking in losses
|
|
440
|
+
- **Outcome:** Worst of both worlds - volatility AND poor returns
|
|
441
|
+
|
|
442
|
+
**Best Practice:** Never exceed emotional risk tolerance. If goals can't be met with acceptable risk level, adjust goals or increase savings.
|
|
443
|
+
|
|
444
|
+
## Risk Profile Classification
|
|
445
|
+
|
|
446
|
+
### Conservative Profile (Risk Score: 1-2)
|
|
447
|
+
|
|
448
|
+
**Characteristics:**
|
|
449
|
+
- Low risk tolerance (can't handle >10-15% loss)
|
|
450
|
+
- Near retirement or retired
|
|
451
|
+
- Portfolio represents most of wealth
|
|
452
|
+
- Needs capital preservation and income
|
|
453
|
+
|
|
454
|
+
**Recommended Allocation:** 20-40% stocks, 60-80% bonds
|
|
455
|
+
|
|
456
|
+
**Behavioral Tendencies:**
|
|
457
|
+
- May sell stocks during corrections (>10% drop)
|
|
458
|
+
- Prefers stability over growth
|
|
459
|
+
- Anxious about volatility
|
|
460
|
+
- Needs reassurance during downturns
|
|
461
|
+
|
|
462
|
+
**Management Approach:**
|
|
463
|
+
- Conservative allocation with high bond allocation
|
|
464
|
+
- Focus on dividend income and bond interest
|
|
465
|
+
- Avoid volatile stocks (high-beta tech)
|
|
466
|
+
- Regular communication during volatility
|
|
467
|
+
- Emphasis on stability and capital preservation
|
|
468
|
+
|
|
469
|
+
### Moderate Profile (Risk Score: 2.6-3.5)
|
|
470
|
+
|
|
471
|
+
**Characteristics:**
|
|
472
|
+
- Medium risk tolerance (can handle 15-25% loss)
|
|
473
|
+
- Mid-career, 10-20 year horizon
|
|
474
|
+
- Balanced income and growth needs
|
|
475
|
+
- Some anxiety about volatility but can stay the course
|
|
476
|
+
|
|
477
|
+
**Recommended Allocation:** 50-60% stocks, 35-45% bonds
|
|
478
|
+
|
|
479
|
+
**Behavioral Tendencies:**
|
|
480
|
+
- May consider selling in bear markets but likely holds
|
|
481
|
+
- Wants growth but also wants to sleep at night
|
|
482
|
+
- Seeks balanced approach
|
|
483
|
+
- Needs data and reassurance during volatility
|
|
484
|
+
|
|
485
|
+
**Management Approach:**
|
|
486
|
+
- Balanced portfolio with stock and bond components
|
|
487
|
+
- Diversified across sectors and asset classes
|
|
488
|
+
- Regular rebalancing to maintain targets
|
|
489
|
+
- Education on long-term perspective
|
|
490
|
+
- Quarterly reviews with clear communication
|
|
491
|
+
|
|
492
|
+
### Growth Profile (Risk Score: 3.6-4.5)
|
|
493
|
+
|
|
494
|
+
**Characteristics:**
|
|
495
|
+
- High risk tolerance (can handle 25-35% loss)
|
|
496
|
+
- Long time horizon (15-30 years)
|
|
497
|
+
- Focus on capital appreciation
|
|
498
|
+
- Emotionally stable during volatility
|
|
499
|
+
|
|
500
|
+
**Recommended Allocation:** 70-80% stocks, 15-25% bonds
|
|
501
|
+
|
|
502
|
+
**Behavioral Tendencies:**
|
|
503
|
+
- Stays invested during downturns
|
|
504
|
+
- May add to stocks during corrections
|
|
505
|
+
- Comfortable with volatility
|
|
506
|
+
- Understands risk/reward tradeoffs
|
|
507
|
+
|
|
508
|
+
**Management Approach:**
|
|
509
|
+
- Equity-heavy portfolio with growth focus
|
|
510
|
+
- Diversified across sectors and geographies
|
|
511
|
+
- Limited bond allocation (volatility dampening only)
|
|
512
|
+
- Emphasis on long-term performance
|
|
513
|
+
- Semi-annual or annual reviews
|
|
514
|
+
|
|
515
|
+
### Aggressive Profile (Risk Score: 4.6-5.0)
|
|
516
|
+
|
|
517
|
+
**Characteristics:**
|
|
518
|
+
- Very high risk tolerance (can handle >35% loss)
|
|
519
|
+
- Very long time horizon (25+ years)
|
|
520
|
+
- Seeks maximum growth
|
|
521
|
+
- Views volatility as opportunity
|
|
522
|
+
|
|
523
|
+
**Recommended Allocation:** 85-100% stocks, 0-10% bonds
|
|
524
|
+
|
|
525
|
+
**Behavioral Tendencies:**
|
|
526
|
+
- Buys during crashes
|
|
527
|
+
- Comfortable with extreme volatility
|
|
528
|
+
- Focuses on long-term compounding
|
|
529
|
+
- Rational decision-making during panic
|
|
530
|
+
|
|
531
|
+
**Management Approach:**
|
|
532
|
+
- Equity-focused or 100% equity portfolio
|
|
533
|
+
- Growth-oriented stock selection
|
|
534
|
+
- International and emerging market exposure
|
|
535
|
+
- Minimal to no bonds
|
|
536
|
+
- Annual reviews with emphasis on strategy
|
|
537
|
+
|
|
538
|
+
## Questionnaire Summary
|
|
539
|
+
|
|
540
|
+
Use this simplified questionnaire for quick assessment:
|
|
541
|
+
|
|
542
|
+
```
|
|
543
|
+
INVESTOR RISK PROFILE QUESTIONNAIRE
|
|
544
|
+
|
|
545
|
+
Name: _______________ Date: _______________
|
|
546
|
+
|
|
547
|
+
1. Age: ___ → Time horizon: ___ years
|
|
548
|
+
|
|
549
|
+
2. Investment time horizon before major withdrawal:
|
|
550
|
+
[ ] 0-5 years [ ] 5-10 years [ ] 10-20 years [ ] 20+ years
|
|
551
|
+
|
|
552
|
+
3. What is the maximum portfolio decline you could tolerate?
|
|
553
|
+
[ ] -5% [ ] -10% [ ] -15% [ ] -20% [ ] -30% [ ] -40%+
|
|
554
|
+
|
|
555
|
+
4. Income stability:
|
|
556
|
+
[ ] Very stable (pension) [ ] Stable (salary) [ ] Variable (commission/business)
|
|
557
|
+
|
|
558
|
+
5. This portfolio represents what % of your net worth?
|
|
559
|
+
[ ] <25% [ ] 25-50% [ ] 50-75% [ ] >75%
|
|
560
|
+
|
|
561
|
+
6. Emergency fund status:
|
|
562
|
+
[ ] Fully funded (6+ months) [ ] Partial (3 months) [ ] None
|
|
563
|
+
|
|
564
|
+
7. If market crashed 25%, would you:
|
|
565
|
+
[ ] Panic sell [ ] Sell some [ ] Hold steady [ ] Buy more
|
|
566
|
+
|
|
567
|
+
8. Investment experience with bear markets:
|
|
568
|
+
[ ] Never experienced [ ] Experienced, sold stocks [ ] Experienced, held [ ] Experienced, bought more
|
|
569
|
+
|
|
570
|
+
9. Return needed to meet goals:
|
|
571
|
+
[ ] <4% [ ] 4-6% [ ] 6-8% [ ] 8-10% [ ] >10%
|
|
572
|
+
|
|
573
|
+
10. Primary investment objective:
|
|
574
|
+
[ ] Capital preservation [ ] Income [ ] Balanced growth & income [ ] Growth [ ] Aggressive growth
|
|
575
|
+
|
|
576
|
+
SCORING & RECOMMENDATION:
|
|
577
|
+
|
|
578
|
+
Risk Capacity Score: ___ / 25
|
|
579
|
+
Risk Tolerance Score: ___ / 25
|
|
580
|
+
Risk Requirement Score: ___ / 15
|
|
581
|
+
|
|
582
|
+
Overall Risk Profile: [ ] Conservative [ ] Moderate [ ] Growth [ ] Aggressive
|
|
583
|
+
|
|
584
|
+
Recommended Allocation:
|
|
585
|
+
Stocks: ___%
|
|
586
|
+
Bonds: ___%
|
|
587
|
+
Cash: ___%
|
|
588
|
+
|
|
589
|
+
Notes:
|
|
590
|
+
________________________________________________________________
|
|
591
|
+
________________________________________________________________
|
|
592
|
+
________________________________________________________________
|
|
593
|
+
|
|
594
|
+
Advisor Signature: _______________ Client Signature: _______________
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
## Summary
|
|
598
|
+
|
|
599
|
+
**Key Principles:**
|
|
600
|
+
|
|
601
|
+
1. **Three-dimensional assessment:** Capacity, Tolerance, Requirement
|
|
602
|
+
2. **Tolerance is the constraint:** Never exceed emotional tolerance
|
|
603
|
+
3. **Honest self-assessment:** Past behavior predicts future behavior
|
|
604
|
+
4. **Resolve conflicts conservatively:** When scores conflict, use lowest
|
|
605
|
+
5. **Periodic reassessment:** Risk profile changes with age and circumstances
|
|
606
|
+
6. **Allocation must match profile:** Mismatch leads to behavioral errors
|
|
607
|
+
|
|
608
|
+
**Remember:** The best allocation is one you can stick with through market cycles. It's better to have a moderate allocation you can maintain than an aggressive allocation you'll abandon in a crash. Behavioral discipline matters more than optimal allocation.
|