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.
Files changed (362) hide show
  1. package/.claude/skills/README.md +80 -0
  2. package/.claude/skills/backtest-expert/SKILL.md +206 -0
  3. package/.claude/skills/backtest-expert/references/failed_tests.md +236 -0
  4. package/.claude/skills/backtest-expert/references/methodology.md +227 -0
  5. package/.claude/skills/breadth-chart-analyst/SKILL.md +583 -0
  6. package/.claude/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
  7. package/.claude/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
  8. package/.claude/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
  9. package/.claude/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
  10. package/.claude/skills/canslim-screener/SKILL.md +599 -0
  11. package/.claude/skills/canslim-screener/references/canslim_methodology.md +606 -0
  12. package/.claude/skills/canslim-screener/references/fmp_api_endpoints.md +707 -0
  13. package/.claude/skills/canslim-screener/references/interpretation_guide.md +516 -0
  14. package/.claude/skills/canslim-screener/references/scoring_system.md +597 -0
  15. package/.claude/skills/canslim-screener/scripts/calculators/earnings_calculator.py +343 -0
  16. package/.claude/skills/canslim-screener/scripts/calculators/growth_calculator.py +334 -0
  17. package/.claude/skills/canslim-screener/scripts/calculators/institutional_calculator.py +347 -0
  18. package/.claude/skills/canslim-screener/scripts/calculators/leadership_calculator.py +380 -0
  19. package/.claude/skills/canslim-screener/scripts/calculators/market_calculator.py +244 -0
  20. package/.claude/skills/canslim-screener/scripts/calculators/new_highs_calculator.py +194 -0
  21. package/.claude/skills/canslim-screener/scripts/calculators/supply_demand_calculator.py +221 -0
  22. package/.claude/skills/canslim-screener/scripts/finviz_stock_client.py +227 -0
  23. package/.claude/skills/canslim-screener/scripts/fmp_client.py +393 -0
  24. package/.claude/skills/canslim-screener/scripts/report_generator.py +405 -0
  25. package/.claude/skills/canslim-screener/scripts/scorer.py +625 -0
  26. package/.claude/skills/canslim-screener/scripts/screen_canslim.py +361 -0
  27. package/.claude/skills/canslim-screener/scripts/test_institutional_endpoint.py +109 -0
  28. package/.claude/skills/chart/SKILL.md +20 -0
  29. package/.claude/skills/dividend-growth-pullback-screener/SKILL.md +322 -0
  30. package/.claude/skills/dividend-growth-pullback-screener/references/dividend_growth_compounding.md +400 -0
  31. package/.claude/skills/dividend-growth-pullback-screener/references/fmp_api_guide.md +642 -0
  32. package/.claude/skills/dividend-growth-pullback-screener/references/rsi_oversold_strategy.md +333 -0
  33. package/.claude/skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py +1155 -0
  34. package/.claude/skills/earnings-calendar/SKILL.md +721 -0
  35. package/.claude/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
  36. package/.claude/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
  37. package/.claude/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
  38. package/.claude/skills/earnings-calendar/scripts/generate_report.py +366 -0
  39. package/.claude/skills/economic-calendar-fetcher/SKILL.md +365 -0
  40. package/.claude/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
  41. package/.claude/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
  42. package/.claude/skills/ftd-detector/SKILL.md +147 -0
  43. package/.claude/skills/ftd-detector/references/ftd_methodology.md +188 -0
  44. package/.claude/skills/ftd-detector/references/post_ftd_guide.md +185 -0
  45. package/.claude/skills/ftd-detector/scripts/fmp_client.py +158 -0
  46. package/.claude/skills/ftd-detector/scripts/ftd_detector.py +280 -0
  47. package/.claude/skills/ftd-detector/scripts/post_ftd_monitor.py +404 -0
  48. package/.claude/skills/ftd-detector/scripts/rally_tracker.py +508 -0
  49. package/.claude/skills/ftd-detector/scripts/report_generator.py +341 -0
  50. package/.claude/skills/ftd-detector/scripts/tests/conftest.py +9 -0
  51. package/.claude/skills/ftd-detector/scripts/tests/helpers.py +107 -0
  52. package/.claude/skills/ftd-detector/scripts/tests/test_post_ftd_monitor.py +311 -0
  53. package/.claude/skills/ftd-detector/scripts/tests/test_rally_tracker.py +302 -0
  54. package/.claude/skills/institutional-flow-tracker/README.md +362 -0
  55. package/.claude/skills/institutional-flow-tracker/SKILL.md +357 -0
  56. package/.claude/skills/institutional-flow-tracker/references/13f_filings_guide.md +383 -0
  57. package/.claude/skills/institutional-flow-tracker/references/institutional_investor_types.md +580 -0
  58. package/.claude/skills/institutional-flow-tracker/references/interpretation_framework.md +573 -0
  59. package/.claude/skills/institutional-flow-tracker/scripts/analyze_single_stock.py +457 -0
  60. package/.claude/skills/institutional-flow-tracker/scripts/track_institution_portfolio.py +108 -0
  61. package/.claude/skills/institutional-flow-tracker/scripts/track_institutional_flow.py +450 -0
  62. package/.claude/skills/macro-regime-detector/SKILL.md +86 -0
  63. package/.claude/skills/macro-regime-detector/references/historical_regimes.md +124 -0
  64. package/.claude/skills/macro-regime-detector/references/indicator_interpretation_guide.md +144 -0
  65. package/.claude/skills/macro-regime-detector/references/regime_detection_methodology.md +138 -0
  66. package/.claude/skills/macro-regime-detector/scripts/calculators/__init__.py +1 -0
  67. package/.claude/skills/macro-regime-detector/scripts/calculators/concentration_calculator.py +165 -0
  68. package/.claude/skills/macro-regime-detector/scripts/calculators/credit_conditions_calculator.py +124 -0
  69. package/.claude/skills/macro-regime-detector/scripts/calculators/equity_bond_calculator.py +198 -0
  70. package/.claude/skills/macro-regime-detector/scripts/calculators/sector_rotation_calculator.py +123 -0
  71. package/.claude/skills/macro-regime-detector/scripts/calculators/size_factor_calculator.py +131 -0
  72. package/.claude/skills/macro-regime-detector/scripts/calculators/utils.py +347 -0
  73. package/.claude/skills/macro-regime-detector/scripts/calculators/yield_curve_calculator.py +279 -0
  74. package/.claude/skills/macro-regime-detector/scripts/fmp_client.py +134 -0
  75. package/.claude/skills/macro-regime-detector/scripts/macro_regime_detector.py +278 -0
  76. package/.claude/skills/macro-regime-detector/scripts/report_generator.py +327 -0
  77. package/.claude/skills/macro-regime-detector/scripts/scorer.py +574 -0
  78. package/.claude/skills/macro-regime-detector/scripts/tests/conftest.py +9 -0
  79. package/.claude/skills/macro-regime-detector/scripts/tests/test_concentration.py +78 -0
  80. package/.claude/skills/macro-regime-detector/scripts/tests/test_credit_conditions.py +59 -0
  81. package/.claude/skills/macro-regime-detector/scripts/tests/test_equity_bond.py +74 -0
  82. package/.claude/skills/macro-regime-detector/scripts/tests/test_helpers.py +90 -0
  83. package/.claude/skills/macro-regime-detector/scripts/tests/test_scorer.py +439 -0
  84. package/.claude/skills/macro-regime-detector/scripts/tests/test_sector_rotation.py +78 -0
  85. package/.claude/skills/macro-regime-detector/scripts/tests/test_size_factor.py +59 -0
  86. package/.claude/skills/macro-regime-detector/scripts/tests/test_utils.py +126 -0
  87. package/.claude/skills/macro-regime-detector/scripts/tests/test_yield_curve.py +64 -0
  88. package/.claude/skills/market-breadth-analyzer/SKILL.md +121 -0
  89. package/.claude/skills/market-breadth-analyzer/references/breadth_analysis_methodology.md +168 -0
  90. package/.claude/skills/market-breadth-analyzer/scripts/calculators/__init__.py +1 -0
  91. package/.claude/skills/market-breadth-analyzer/scripts/calculators/bearish_signal_calculator.py +150 -0
  92. package/.claude/skills/market-breadth-analyzer/scripts/calculators/cycle_calculator.py +168 -0
  93. package/.claude/skills/market-breadth-analyzer/scripts/calculators/divergence_calculator.py +119 -0
  94. package/.claude/skills/market-breadth-analyzer/scripts/calculators/historical_context_calculator.py +120 -0
  95. package/.claude/skills/market-breadth-analyzer/scripts/calculators/ma_crossover_calculator.py +115 -0
  96. package/.claude/skills/market-breadth-analyzer/scripts/calculators/trend_level_calculator.py +103 -0
  97. package/.claude/skills/market-breadth-analyzer/scripts/csv_client.py +225 -0
  98. package/.claude/skills/market-breadth-analyzer/scripts/market_breadth_analyzer.py +307 -0
  99. package/.claude/skills/market-breadth-analyzer/scripts/report_generator.py +330 -0
  100. package/.claude/skills/market-breadth-analyzer/scripts/scorer.py +271 -0
  101. package/.claude/skills/market-environment-analysis/SKILL.md +139 -0
  102. package/.claude/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
  103. package/.claude/skills/market-environment-analysis/references/indicators.md +99 -0
  104. package/.claude/skills/market-environment-analysis/scripts/market_utils.py +127 -0
  105. package/.claude/skills/market-news-analyst/SKILL.md +714 -0
  106. package/.claude/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
  107. package/.claude/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
  108. package/.claude/skills/market-news-analyst/references/market_event_patterns.md +393 -0
  109. package/.claude/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
  110. package/.claude/skills/market-top-detector/SKILL.md +159 -0
  111. package/.claude/skills/market-top-detector/references/distribution_day_guide.md +100 -0
  112. package/.claude/skills/market-top-detector/references/historical_tops.md +142 -0
  113. package/.claude/skills/market-top-detector/references/market_top_methodology.md +167 -0
  114. package/.claude/skills/market-top-detector/scripts/calculators/__init__.py +17 -0
  115. package/.claude/skills/market-top-detector/scripts/calculators/breadth_calculator.py +116 -0
  116. package/.claude/skills/market-top-detector/scripts/calculators/defensive_rotation_calculator.py +127 -0
  117. package/.claude/skills/market-top-detector/scripts/calculators/distribution_day_calculator.py +161 -0
  118. package/.claude/skills/market-top-detector/scripts/calculators/index_technical_calculator.py +254 -0
  119. package/.claude/skills/market-top-detector/scripts/calculators/leading_stock_calculator.py +198 -0
  120. package/.claude/skills/market-top-detector/scripts/calculators/sentiment_calculator.py +213 -0
  121. package/.claude/skills/market-top-detector/scripts/fmp_client.py +158 -0
  122. package/.claude/skills/market-top-detector/scripts/market_top_detector.py +349 -0
  123. package/.claude/skills/market-top-detector/scripts/report_generator.py +314 -0
  124. package/.claude/skills/market-top-detector/scripts/scorer.py +473 -0
  125. package/.claude/skills/market-top-detector/scripts/tests/conftest.py +9 -0
  126. package/.claude/skills/market-top-detector/scripts/tests/helpers.py +49 -0
  127. package/.claude/skills/market-top-detector/scripts/tests/test_breadth.py +62 -0
  128. package/.claude/skills/market-top-detector/scripts/tests/test_defensive_rotation.py +56 -0
  129. package/.claude/skills/market-top-detector/scripts/tests/test_distribution_day.py +92 -0
  130. package/.claude/skills/market-top-detector/scripts/tests/test_index_technical.py +73 -0
  131. package/.claude/skills/market-top-detector/scripts/tests/test_leading_stock.py +57 -0
  132. package/.claude/skills/market-top-detector/scripts/tests/test_scorer.py +180 -0
  133. package/.claude/skills/market-top-detector/scripts/tests/test_sentiment.py +64 -0
  134. package/.claude/skills/options-strategy-advisor/README.md +469 -0
  135. package/.claude/skills/options-strategy-advisor/SKILL.md +959 -0
  136. package/.claude/skills/options-strategy-advisor/scripts/black_scholes.py +495 -0
  137. package/.claude/skills/pair-trade-screener/README.md +389 -0
  138. package/.claude/skills/pair-trade-screener/SKILL.md +622 -0
  139. package/.claude/skills/pair-trade-screener/references/cointegration_guide.md +745 -0
  140. package/.claude/skills/pair-trade-screener/references/methodology.md +853 -0
  141. package/.claude/skills/pair-trade-screener/scripts/analyze_spread.py +394 -0
  142. package/.claude/skills/pair-trade-screener/scripts/find_pairs.py +535 -0
  143. package/.claude/skills/portfolio-manager/README.md +394 -0
  144. package/.claude/skills/portfolio-manager/SKILL.md +750 -0
  145. package/.claude/skills/portfolio-manager/references/alpaca-mcp-setup.md +367 -0
  146. package/.claude/skills/portfolio-manager/references/asset-allocation.md +502 -0
  147. package/.claude/skills/portfolio-manager/references/diversification-principles.md +553 -0
  148. package/.claude/skills/portfolio-manager/references/portfolio-risk-metrics.md +603 -0
  149. package/.claude/skills/portfolio-manager/references/position-evaluation.md +477 -0
  150. package/.claude/skills/portfolio-manager/references/rebalancing-strategies.md +715 -0
  151. package/.claude/skills/portfolio-manager/references/risk-profile-questionnaire.md +608 -0
  152. package/.claude/skills/portfolio-manager/references/target-allocations.md +558 -0
  153. package/.claude/skills/portfolio-manager/scripts/test_alpaca_connection.py +286 -0
  154. package/.claude/skills/scenario-analyzer/SKILL.md +317 -0
  155. package/.claude/skills/scenario-analyzer/references/headline_event_patterns.md +264 -0
  156. package/.claude/skills/scenario-analyzer/references/scenario_playbooks.md +320 -0
  157. package/.claude/skills/scenario-analyzer/references/sector_sensitivity_matrix.md +217 -0
  158. package/.claude/skills/sector-analyst/SKILL.md +206 -0
  159. package/.claude/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
  160. package/.claude/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
  161. package/.claude/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
  162. package/.claude/skills/sector-analyst/references/sector_rotation.md +170 -0
  163. package/.claude/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
  164. package/.claude/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
  165. package/.claude/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
  166. package/.claude/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
  167. package/.claude/skills/stock/NOTION_SETUP.md +33 -0
  168. package/.claude/skills/stock/SKILL.md +38 -0
  169. package/.claude/skills/technical-analyst/SKILL.md +238 -0
  170. package/.claude/skills/technical-analyst/assets/analysis_template.md +183 -0
  171. package/.claude/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
  172. package/.claude/skills/theme-detector/SKILL.md +320 -0
  173. package/.claude/skills/theme-detector/assets/report_template.md +155 -0
  174. package/.claude/skills/theme-detector/references/cross_sector_themes.md +252 -0
  175. package/.claude/skills/theme-detector/references/finviz_industry_codes.md +403 -0
  176. package/.claude/skills/theme-detector/references/thematic_etf_catalog.md +333 -0
  177. package/.claude/skills/theme-detector/references/theme_detection_methodology.md +430 -0
  178. package/.claude/skills/theme-detector/scripts/calculators/__init__.py +1 -0
  179. package/.claude/skills/theme-detector/scripts/calculators/heat_calculator.py +123 -0
  180. package/.claude/skills/theme-detector/scripts/calculators/industry_ranker.py +98 -0
  181. package/.claude/skills/theme-detector/scripts/calculators/lifecycle_calculator.py +172 -0
  182. package/.claude/skills/theme-detector/scripts/calculators/theme_classifier.py +195 -0
  183. package/.claude/skills/theme-detector/scripts/calculators/theme_discoverer.py +280 -0
  184. package/.claude/skills/theme-detector/scripts/config_loader.py +142 -0
  185. package/.claude/skills/theme-detector/scripts/default_theme_config.py +254 -0
  186. package/.claude/skills/theme-detector/scripts/etf_scanner.py +609 -0
  187. package/.claude/skills/theme-detector/scripts/finviz_performance_client.py +131 -0
  188. package/.claude/skills/theme-detector/scripts/report_generator.py +490 -0
  189. package/.claude/skills/theme-detector/scripts/representative_stock_selector.py +673 -0
  190. package/.claude/skills/theme-detector/scripts/scorer.py +87 -0
  191. package/.claude/skills/theme-detector/scripts/tests/README.md +21 -0
  192. package/.claude/skills/theme-detector/scripts/tests/conftest.py +9 -0
  193. package/.claude/skills/theme-detector/scripts/tests/test_config_loader.py +239 -0
  194. package/.claude/skills/theme-detector/scripts/tests/test_etf_scanner.py +810 -0
  195. package/.claude/skills/theme-detector/scripts/tests/test_heat_calculator.py +245 -0
  196. package/.claude/skills/theme-detector/scripts/tests/test_industry_ranker.py +256 -0
  197. package/.claude/skills/theme-detector/scripts/tests/test_lifecycle_calculator.py +301 -0
  198. package/.claude/skills/theme-detector/scripts/tests/test_report_generator.py +624 -0
  199. package/.claude/skills/theme-detector/scripts/tests/test_representative_stock_selector.py +898 -0
  200. package/.claude/skills/theme-detector/scripts/tests/test_scorer.py +185 -0
  201. package/.claude/skills/theme-detector/scripts/tests/test_theme_classifier.py +534 -0
  202. package/.claude/skills/theme-detector/scripts/tests/test_theme_detector_e2e.py +467 -0
  203. package/.claude/skills/theme-detector/scripts/tests/test_theme_discoverer.py +458 -0
  204. package/.claude/skills/theme-detector/scripts/tests/test_uptrend_client.py +76 -0
  205. package/.claude/skills/theme-detector/scripts/theme_detector.py +815 -0
  206. package/.claude/skills/theme-detector/scripts/themes.yaml +168 -0
  207. package/.claude/skills/theme-detector/scripts/uptrend_client.py +241 -0
  208. package/.claude/skills/uptrend-analyzer/SKILL.md +108 -0
  209. package/.claude/skills/uptrend-analyzer/references/uptrend_methodology.md +215 -0
  210. package/.claude/skills/uptrend-analyzer/scripts/calculators/__init__.py +1 -0
  211. package/.claude/skills/uptrend-analyzer/scripts/calculators/historical_context_calculator.py +122 -0
  212. package/.claude/skills/uptrend-analyzer/scripts/calculators/market_breadth_calculator.py +145 -0
  213. package/.claude/skills/uptrend-analyzer/scripts/calculators/momentum_calculator.py +183 -0
  214. package/.claude/skills/uptrend-analyzer/scripts/calculators/sector_participation_calculator.py +204 -0
  215. package/.claude/skills/uptrend-analyzer/scripts/calculators/sector_rotation_calculator.py +218 -0
  216. package/.claude/skills/uptrend-analyzer/scripts/data_fetcher.py +236 -0
  217. package/.claude/skills/uptrend-analyzer/scripts/report_generator.py +329 -0
  218. package/.claude/skills/uptrend-analyzer/scripts/scorer.py +276 -0
  219. package/.claude/skills/uptrend-analyzer/scripts/uptrend_analyzer.py +219 -0
  220. package/.claude/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
  221. package/.claude/skills/us-market-bubble-detector/SKILL.md +545 -0
  222. package/.claude/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
  223. package/.claude/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
  224. package/.claude/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
  225. package/.claude/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
  226. package/.claude/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
  227. package/.claude/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
  228. package/.claude/skills/us-stock-analysis/SKILL.md +294 -0
  229. package/.claude/skills/us-stock-analysis/references/financial-metrics.md +172 -0
  230. package/.claude/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
  231. package/.claude/skills/us-stock-analysis/references/report-template.md +207 -0
  232. package/.claude/skills/us-stock-analysis/references/technical-analysis.md +93 -0
  233. package/.claude/skills/value-dividend-screener/SKILL.md +562 -0
  234. package/.claude/skills/value-dividend-screener/references/fmp_api_guide.md +348 -0
  235. package/.claude/skills/value-dividend-screener/references/screening_methodology.md +315 -0
  236. package/.claude/skills/value-dividend-screener/scripts/screen_dividend_stocks.py +1138 -0
  237. package/.claude/skills/vcp-screener/SKILL.md +79 -0
  238. package/.claude/skills/vcp-screener/references/fmp_api_endpoints.md +45 -0
  239. package/.claude/skills/vcp-screener/references/scoring_system.md +154 -0
  240. package/.claude/skills/vcp-screener/references/vcp_methodology.md +124 -0
  241. package/.claude/skills/vcp-screener/scripts/calculators/__init__.py +1 -0
  242. package/.claude/skills/vcp-screener/scripts/calculators/pivot_proximity_calculator.py +139 -0
  243. package/.claude/skills/vcp-screener/scripts/calculators/relative_strength_calculator.py +161 -0
  244. package/.claude/skills/vcp-screener/scripts/calculators/trend_template_calculator.py +228 -0
  245. package/.claude/skills/vcp-screener/scripts/calculators/vcp_pattern_calculator.py +322 -0
  246. package/.claude/skills/vcp-screener/scripts/calculators/volume_pattern_calculator.py +121 -0
  247. package/.claude/skills/vcp-screener/scripts/fmp_client.py +162 -0
  248. package/.claude/skills/vcp-screener/scripts/report_generator.py +317 -0
  249. package/.claude/skills/vcp-screener/scripts/scorer.py +155 -0
  250. package/.claude/skills/vcp-screener/scripts/screen_vcp.py +536 -0
  251. package/.claude/skills/vcp-screener/scripts/tests/__init__.py +0 -0
  252. package/.claude/skills/vcp-screener/scripts/tests/conftest.py +9 -0
  253. package/.claude/skills/vcp-screener/scripts/tests/test_vcp_screener.py +834 -0
  254. package/.claude/skills/weekly-trade-strategy/.claude/agents/druckenmiller-strategy-planner.md +300 -0
  255. package/.claude/skills/weekly-trade-strategy/.claude/agents/market-news-analyzer.md +239 -0
  256. package/.claude/skills/weekly-trade-strategy/.claude/agents/technical-market-analyst.md +187 -0
  257. package/.claude/skills/weekly-trade-strategy/.claude/agents/us-market-analyst.md +218 -0
  258. package/.claude/skills/weekly-trade-strategy/.claude/agents/weekly-trade-blog-writer.md +318 -0
  259. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/SKILL.md +662 -0
  260. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
  261. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
  262. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
  263. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
  264. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/SKILL.md +721 -0
  265. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
  266. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/earnings_calendar_2025-11-02.md +447 -0
  267. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
  268. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
  269. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/scripts/generate_report.py +366 -0
  270. package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/SKILL.md +365 -0
  271. package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
  272. package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
  273. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/SKILL.md +139 -0
  274. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
  275. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/references/indicators.md +99 -0
  276. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/scripts/market_utils.py +127 -0
  277. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/SKILL.md +714 -0
  278. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
  279. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
  280. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/market_event_patterns.md +393 -0
  281. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
  282. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/SKILL.md +206 -0
  283. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
  284. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
  285. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
  286. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/references/sector_rotation.md +170 -0
  287. package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
  288. package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
  289. package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
  290. package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
  291. package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/SKILL.md +238 -0
  292. package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/assets/analysis_template.md +183 -0
  293. package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
  294. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
  295. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/SKILL.md +545 -0
  296. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
  297. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
  298. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
  299. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
  300. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
  301. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
  302. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/SKILL.md +294 -0
  303. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/financial-metrics.md +172 -0
  304. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
  305. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/report-template.md +207 -0
  306. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/technical-analysis.md +93 -0
  307. package/.claude/skills/weekly-trade-strategy/CLAUDE.md +454 -0
  308. package/.claude/skills/weekly-trade-strategy/README.md +287 -0
  309. package/.claude/skills/weekly-trade-strategy/blogs/.gitkeep +0 -0
  310. package/.claude/skills/weekly-trade-strategy/charts/.gitkeep +0 -0
  311. package/.claude/skills/weekly-trade-strategy/earnings_data.json +10054 -0
  312. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/SKILL.md +662 -0
  313. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
  314. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
  315. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
  316. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
  317. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/SKILL.md +721 -0
  318. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
  319. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/earnings_calendar_2025-11-02.md +447 -0
  320. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
  321. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
  322. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/scripts/generate_report.py +366 -0
  323. package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/SKILL.md +365 -0
  324. package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
  325. package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
  326. package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/SKILL.md +139 -0
  327. package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
  328. package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/references/indicators.md +99 -0
  329. package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/scripts/market_utils.py +127 -0
  330. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/SKILL.md +714 -0
  331. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
  332. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
  333. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/market_event_patterns.md +393 -0
  334. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
  335. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/SKILL.md +206 -0
  336. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
  337. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
  338. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
  339. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/references/sector_rotation.md +170 -0
  340. package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
  341. package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
  342. package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
  343. package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
  344. package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/SKILL.md +238 -0
  345. package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/assets/analysis_template.md +183 -0
  346. package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
  347. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
  348. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/SKILL.md +545 -0
  349. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
  350. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
  351. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
  352. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
  353. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
  354. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
  355. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/SKILL.md +294 -0
  356. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/financial-metrics.md +172 -0
  357. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
  358. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/report-template.md +207 -0
  359. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/technical-analysis.md +93 -0
  360. package/.mcp.json +3 -0
  361. package/cli.mjs +16 -16
  362. package/package.json +4 -2
@@ -0,0 +1,553 @@
1
+ # Diversification Principles
2
+
3
+ This document explains the theory and practice of portfolio diversification, providing frameworks for assessing diversification quality and identifying concentration risks.
4
+
5
+ ## Core Concepts
6
+
7
+ ### What is Diversification?
8
+
9
+ Diversification is the practice of spreading investments across various assets, sectors, and geographies to reduce portfolio risk without proportionally reducing expected returns.
10
+
11
+ **Harry Markowitz's Key Insight (1952):**
12
+ > "Diversification is the only free lunch in finance."
13
+
14
+ By combining assets with imperfect correlation, investors can achieve better risk-adjusted returns than holding individual securities.
15
+
16
+ ### The Math Behind Diversification
17
+
18
+ **Portfolio Risk Formula:**
19
+
20
+ For a two-asset portfolio:
21
+ ```
22
+ σ_p = √(w₁²σ₁² + w₂²σ₂² + 2w₁w₂σ₁σ₂ρ₁₂)
23
+
24
+ Where:
25
+ σ_p = Portfolio standard deviation (risk)
26
+ w₁, w₂ = Weights of assets 1 and 2
27
+ σ₁, σ₂ = Standard deviations of assets 1 and 2
28
+ ρ₁₂ = Correlation between assets 1 and 2
29
+ ```
30
+
31
+ **Key Insight:** When correlation < 1.0, portfolio risk is less than the weighted average of individual risks.
32
+
33
+ ### Types of Risk
34
+
35
+ **1. Systematic Risk (Market Risk)**
36
+ - **Definition:** Risk inherent to the entire market
37
+ - **Examples:** Recessions, interest rate changes, geopolitical events
38
+ - **Cannot be eliminated** by diversification
39
+ - **Beta** measures exposure to systematic risk
40
+
41
+ **2. Unsystematic Risk (Specific Risk)**
42
+ - **Definition:** Risk specific to individual companies or sectors
43
+ - **Examples:** Management failures, product recalls, competitive losses
44
+ - **Can be reduced** through diversification
45
+ - **Diversification benefit:** Holding 15-30 stocks eliminates ~90% of unsystematic risk
46
+
47
+ **Modern Portfolio Theory Goal:** Eliminate unsystematic risk while accepting systematic risk (compensated by market risk premium).
48
+
49
+ ## Optimal Number of Holdings
50
+
51
+ ### Individual Stocks
52
+
53
+ Research shows diminishing diversification benefits beyond a certain number of holdings:
54
+
55
+ | Number of Stocks | % of Unsystematic Risk Eliminated |
56
+ |------------------|----------------------------------|
57
+ | 1 | 0% (all risk remains) |
58
+ | 5 | ~40% |
59
+ | 10 | ~65% |
60
+ | 15 | ~75% |
61
+ | 20 | ~85% |
62
+ | 30 | ~90% |
63
+ | 50 | ~93% |
64
+ | 100 | ~95% |
65
+
66
+ **Recommended Range: 15-30 stocks**
67
+
68
+ **Why not more than 30?**
69
+ - Marginal diversification benefit very small
70
+ - Increased complexity and monitoring burden
71
+ - Higher transaction costs
72
+ - Diluted impact of high-conviction ideas
73
+ - "Closet indexing" (might as well own an ETF)
74
+
75
+ **Why not fewer than 15?**
76
+ - Insufficient elimination of unsystematic risk
77
+ - Concentration risk remains significant
78
+ - Single-stock events can severely impact portfolio
79
+ - Correlation underestimation risk
80
+
81
+ ### ETFs and Mutual Funds
82
+
83
+ **For diversified funds (broad market, sector, international):**
84
+ - **5-10 ETFs** can provide excellent diversification
85
+ - Each ETF already holds dozens to thousands of stocks
86
+ - Focus on low overlap and complementary exposures
87
+
88
+ **Example Well-Diversified 6-ETF Portfolio:**
89
+ 1. US Large Cap (S&P 500)
90
+ 2. US Small/Mid Cap
91
+ 3. International Developed Markets
92
+ 4. Emerging Markets
93
+ 5. US Bonds (Aggregate)
94
+ 6. Real Estate (REITs)
95
+
96
+ ## Correlation and Diversification
97
+
98
+ ### Understanding Correlation
99
+
100
+ **Correlation coefficient (ρ) ranges from -1.0 to +1.0:**
101
+
102
+ | Correlation | Interpretation | Diversification Benefit |
103
+ |-------------|----------------|------------------------|
104
+ | **+1.0** | Perfect positive correlation | None (redundant holdings) |
105
+ | **+0.7 to +0.9** | Very high correlation | Minimal |
106
+ | **+0.3 to +0.7** | Moderate positive correlation | Good |
107
+ | **0 to +0.3** | Low positive correlation | Excellent |
108
+ | **0** | No correlation | Maximum benefit |
109
+ | **-0.3 to 0** | Low negative correlation | Excellent (hedging) |
110
+ | **< -0.3** | Moderate to strong negative correlation | Hedging properties |
111
+
112
+ ### Typical Stock Correlations
113
+
114
+ **Within Same Sector:**
115
+ - Large tech stocks (AAPL, MSFT, GOOGL): ρ ≈ 0.6-0.8
116
+ - Banks (JPM, BAC, WFC): ρ ≈ 0.7-0.9
117
+ - Oil companies (XOM, CVX): ρ ≈ 0.8-0.9
118
+
119
+ **Across Different Sectors:**
120
+ - Tech vs Healthcare: ρ ≈ 0.3-0.5
121
+ - Utilities vs Technology: ρ ≈ 0.2-0.4
122
+ - Consumer Staples vs Energy: ρ ≈ 0.3-0.5
123
+
124
+ **Defensive vs Cyclical:**
125
+ - Utilities vs Industrials: ρ ≈ 0.2-0.4
126
+ - Consumer Staples vs Consumer Discretionary: ρ ≈ 0.4-0.6
127
+
128
+ **US vs International:**
129
+ - US stocks vs International Developed: ρ ≈ 0.7-0.9 (increasing over time)
130
+ - US stocks vs Emerging Markets: ρ ≈ 0.6-0.8
131
+
132
+ **Stocks vs Bonds:**
133
+ - US Stocks vs US Treasuries: ρ ≈ -0.2 to +0.3 (varies by regime)
134
+ - Stocks vs Corporate Bonds: ρ ≈ 0.4-0.6
135
+
136
+ ### Correlation Pitfalls
137
+
138
+ **1. Correlation Instability**
139
+ - Correlations increase during market crashes ("correlation goes to 1 in a crisis")
140
+ - Diversification benefits diminish when most needed
141
+ - Solution: Include truly uncorrelated assets (gold, volatility strategies)
142
+
143
+ **2. Hidden Correlations**
144
+ - Stocks may appear different but share common risk factors
145
+ - Example: Bank stocks + homebuilders both exposed to interest rates
146
+ - Solution: Analyze underlying risk factors, not just sector labels
147
+
148
+ **3. Globalization Effect**
149
+ - International diversification less effective than historically
150
+ - US and global markets increasingly correlated
151
+ - Solution: Still valuable, but expect lower diversification benefit than in past
152
+
153
+ ## Concentration Risk Measurement
154
+
155
+ ### Position Concentration
156
+
157
+ **Single Position Thresholds:**
158
+
159
+ | Position Size | Risk Level | Action |
160
+ |---------------|------------|--------|
161
+ | **<5%** | Low | Acceptable for all positions |
162
+ | **5-10%** | Medium | Monitor, ensure high conviction |
163
+ | **10-15%** | High | Trim recommended unless exceptional conviction |
164
+ | **15-20%** | Very High | Trim immediately (except rare cases) |
165
+ | **>20%** | Extreme | Urgent trim required |
166
+
167
+ **Top Holdings Concentration:**
168
+
169
+ | Top 5 Holdings | Risk Assessment |
170
+ |----------------|-----------------|
171
+ | **<25%** | Well-diversified |
172
+ | **25-40%** | Moderate concentration |
173
+ | **40-60%** | High concentration |
174
+ | **>60%** | Excessive concentration |
175
+
176
+ **Example:**
177
+ - If top 5 positions = 55% of portfolio → High concentration risk
178
+ - If largest single position = 18% → Immediate trim recommended
179
+
180
+ ### Sector Concentration
181
+
182
+ **Sector Allocation Thresholds:**
183
+
184
+ | Sector Weight | Risk Level | Guidance |
185
+ |---------------|------------|----------|
186
+ | **<15%** | Underweight | May be intentional or opportunity |
187
+ | **15-25%** | Normal | Typical for major sectors |
188
+ | **25-30%** | Moderate overweight | Monitor, ensure intentional |
189
+ | **30-40%** | High overweight | Trim recommended |
190
+ | **>40%** | Excessive concentration | Urgent diversification needed |
191
+
192
+ **S&P 500 Sector Benchmarks (approximate):**
193
+ - Technology: 25-30%
194
+ - Healthcare: 12-15%
195
+ - Financials: 10-13%
196
+ - Consumer Discretionary: 10-12%
197
+ - Communication Services: 8-10%
198
+ - Industrials: 8-10%
199
+ - Consumer Staples: 6-8%
200
+ - Energy: 3-5%
201
+ - Utilities: 2-3%
202
+ - Real Estate: 2-3%
203
+ - Materials: 2-3%
204
+
205
+ **Deviation Analysis:**
206
+ - **>10% above benchmark** = Significant overweight (ensure intentional)
207
+ - **>20% above benchmark** = Excessive overweight (trim recommended)
208
+
209
+ ### Herfindahl-Hirschman Index (HHI)
210
+
211
+ **Formula:**
212
+ ```
213
+ HHI = Σ(w_i × 100)²
214
+
215
+ Where w_i = weight of position i (as decimal)
216
+ ```
217
+
218
+ **Interpretation:**
219
+
220
+ | HHI Score | Concentration Level | Portfolio Characteristics |
221
+ |-----------|---------------------|--------------------------|
222
+ | **<1000** | Low concentration | Well-diversified (25+ equal positions) |
223
+ | **1000-1800** | Moderate concentration | Typical diversified portfolio (15-25 stocks) |
224
+ | **1800-2500** | High concentration | Concentrated portfolio (8-15 stocks) |
225
+ | **>2500** | Very high concentration | Very concentrated (5-8 stocks) |
226
+ | **>4000** | Extreme concentration | Poorly diversified (<5 stocks) |
227
+
228
+ **Example Calculation:**
229
+
230
+ Portfolio with 5 positions:
231
+ - Position A: 30% → (30)² = 900
232
+ - Position B: 25% → (25)² = 625
233
+ - Position C: 20% → (20)² = 400
234
+ - Position D: 15% → (15)² = 225
235
+ - Position E: 10% → (10)² = 100
236
+
237
+ HHI = 900 + 625 + 400 + 225 + 100 = **2250** (High concentration)
238
+
239
+ ## Multi-Dimensional Diversification
240
+
241
+ Effective diversification requires spreading risk across multiple dimensions:
242
+
243
+ ### 1. Number of Holdings (Quantity)
244
+ - **Target:** 15-30 individual stocks OR 5-10 diversified funds
245
+ - **Measure:** Count of positions
246
+ - **Risk:** Too few = concentration; too many = over-diversification
247
+
248
+ ### 2. Position Sizing (Weight)
249
+ - **Target:** No single position >10-15%, top 5 <40%
250
+ - **Measure:** HHI, top-N concentration
251
+ - **Risk:** Unequal weighting creates concentration despite many holdings
252
+
253
+ ### 3. Sector Allocation (Industry)
254
+ - **Target:** No sector >30-35%, diversified across 6+ sectors
255
+ - **Measure:** Sector breakdown, compare to benchmark
256
+ - **Risk:** Industry-specific shocks (e.g., tech crash 2000, financial crisis 2008)
257
+
258
+ ### 4. Market Cap (Size)
259
+ - **Target:** Mix of large-cap (60-70%), mid-cap (20-25%), small-cap (10-15%)
260
+ - **Measure:** Weighted average market cap, cap-based breakdown
261
+ - **Risk:** Small caps more volatile; large caps may underperform in recoveries
262
+
263
+ ### 5. Geography (Region)
264
+ - **Target:** US 60-75%, International Developed 15-25%, Emerging Markets 5-15%
265
+ - **Measure:** Revenue geography, listing geography
266
+ - **Risk:** Country-specific risks (politics, currency, regulation)
267
+
268
+ ### 6. Style (Growth vs Value)
269
+ - **Target:** Balanced or slight tilt based on market cycle
270
+ - **Measure:** Average P/E, P/B, growth rates of holdings
271
+ - **Risk:** Style rotation (growth outperforms in some periods, value in others)
272
+
273
+ ### 7. Correlation (Independence)
274
+ - **Target:** Average pairwise correlation <0.6
275
+ - **Measure:** Correlation matrix of holdings
276
+ - **Risk:** High correlation = false diversification
277
+
278
+ ### 8. Factor Exposures (Risk Factors)
279
+ - **Target:** Balanced exposure to momentum, quality, volatility, etc.
280
+ - **Measure:** Factor loadings (requires advanced analytics)
281
+ - **Risk:** Concentrated factor bets (e.g., all momentum stocks)
282
+
283
+ ## Practical Diversification Strategies
284
+
285
+ ### Strategy 1: Equal Weighting
286
+
287
+ **Method:** Each position gets equal allocation (e.g., 20 stocks = 5% each)
288
+
289
+ **Pros:**
290
+ - Simple to implement
291
+ - Automatic rebalancing to smaller positions
292
+ - Reduces concentration risk
293
+
294
+ **Cons:**
295
+ - Ignores conviction levels
296
+ - May overweight low-quality names
297
+ - Higher turnover (frequent rebalancing)
298
+
299
+ **Best for:** Passive investors, index-like approaches
300
+
301
+ ### Strategy 2: Conviction Weighting
302
+
303
+ **Method:** Allocate more to high-conviction ideas, less to lower conviction
304
+
305
+ **Example Tiers:**
306
+ - High conviction: 7-10% positions (5-8 stocks)
307
+ - Medium conviction: 4-6% positions (8-12 stocks)
308
+ - Low conviction / Satellite: 2-3% positions (5-10 stocks)
309
+
310
+ **Pros:**
311
+ - Reflects analytical edge
312
+ - Better risk-adjusted returns if skill exists
313
+ - Maintains diversification
314
+
315
+ **Cons:**
316
+ - Requires honest conviction assessment
317
+ - Risk of overconfidence
318
+ - Can lead to concentration
319
+
320
+ **Best for:** Active investors with research capability
321
+
322
+ ### Strategy 3: Risk Parity
323
+
324
+ **Method:** Allocate based on risk contribution, not dollar value
325
+
326
+ **Example:**
327
+ - Volatile stock (beta 1.8): 3% allocation
328
+ - Moderate stock (beta 1.0): 5% allocation
329
+ - Stable stock (beta 0.6): 8% allocation
330
+
331
+ **Pros:**
332
+ - True diversification of risk
333
+ - More stable portfolio performance
334
+ - Thoughtful risk management
335
+
336
+ **Cons:**
337
+ - Complex to implement
338
+ - Requires volatility estimates
339
+ - May overweight low-quality stable stocks
340
+
341
+ **Best for:** Sophisticated investors, risk-focused approaches
342
+
343
+ ### Strategy 4: Core-Satellite
344
+
345
+ **Method:**
346
+ - **Core (60-80%):** Diversified, low-cost index funds
347
+ - **Satellite (20-40%):** High-conviction individual stocks or sector bets
348
+
349
+ **Pros:**
350
+ - Combines passive diversification with active upside
351
+ - Reduces risk of stock-picking errors
352
+ - Cost-efficient
353
+
354
+ **Cons:**
355
+ - Performance depends on satellite selection
356
+ - Complexity in management
357
+ - Tax efficiency varies
358
+
359
+ **Best for:** Investors who want both diversification and active involvement
360
+
361
+ ## Diversification Quality Checklist
362
+
363
+ Use this checklist to assess portfolio diversification:
364
+
365
+ **Position Diversification:**
366
+ - [ ] Portfolio has 15-30 stocks (or 5-10 diversified funds)
367
+ - [ ] No single position exceeds 10% of portfolio
368
+ - [ ] No single position exceeds 15% of portfolio
369
+ - [ ] Top 5 positions represent less than 40% of portfolio
370
+ - [ ] HHI score below 1800
371
+
372
+ **Sector Diversification:**
373
+ - [ ] No single sector exceeds 30% of equity allocation
374
+ - [ ] Portfolio includes at least 6 different sectors
375
+ - [ ] Sector weights reasonably close to benchmark (within 15%)
376
+ - [ ] Balance between growth, defensive, and cyclical sectors
377
+ - [ ] No overconcentration in single industry (e.g., semiconductors within tech)
378
+
379
+ **Correlation Diversification:**
380
+ - [ ] Holdings span multiple industries with different drivers
381
+ - [ ] Average pairwise correlation estimated below 0.6
382
+ - [ ] Not all positions are high-beta growth stocks
383
+ - [ ] Includes mix of cyclical and defensive names
384
+ - [ ] Some low-correlation positions included (staples, utilities, healthcare)
385
+
386
+ **Geographic Diversification:**
387
+ - [ ] International exposure present (15-30% of equities)
388
+ - [ ] Not 100% dependent on US economic performance
389
+ - [ ] Emerging market exposure if appropriate for risk tolerance
390
+ - [ ] Consider revenue geography, not just listing location
391
+
392
+ **Market Cap Diversification:**
393
+ - [ ] Mix of large-cap, mid-cap, and potentially small-cap
394
+ - [ ] Not exclusively mega-caps (>$500B)
395
+ - [ ] Not exclusively small-caps (<$2B)
396
+ - [ ] Weighted average market cap appropriate for risk tolerance
397
+
398
+ **Asset Class Diversification:**
399
+ - [ ] Equity allocation matches risk tolerance
400
+ - [ ] Fixed income present (unless very aggressive allocation)
401
+ - [ ] Cash buffer for opportunities and liquidity
402
+ - [ ] Alternative assets if appropriate (real estate, commodities)
403
+
404
+ ## Common Diversification Mistakes
405
+
406
+ ### Mistake 1: False Diversification
407
+
408
+ **Problem:** Holding many stocks that are highly correlated
409
+
410
+ **Example:**
411
+ - Portfolio: AAPL, MSFT, GOOGL, AMZN, META, NVDA, TSLA (all large-cap tech/growth)
412
+ - **Appears** diversified (7 stocks)
413
+ - **Actually** highly concentrated (single sector, similar risk factors)
414
+
415
+ **Solution:** Diversify across sectors, not just number of names
416
+
417
+ ### Mistake 2: Over-Diversification ("Diworsification")
418
+
419
+ **Problem:** Holding too many positions, diluting returns with no additional risk reduction
420
+
421
+ **Example:**
422
+ - 100 individual stock positions
423
+ - Overlap with index funds
424
+ - Closet indexing with higher fees
425
+
426
+ **Solution:** Stick to 15-30 best ideas OR use low-cost index funds
427
+
428
+ ### Mistake 3: Home Country Bias
429
+
430
+ **Problem:** Overweighting domestic stocks, missing global opportunities
431
+
432
+ **Example:**
433
+ - US investor with 95% US stocks
434
+ - US represents ~60% of global market cap
435
+ - Missing international diversification benefit
436
+
437
+ **Solution:** Allocate 15-30% to international equities
438
+
439
+ ### Mistake 4: Employer Stock Concentration
440
+
441
+ **Problem:** Large position in employer stock creates correlated life risks
442
+
443
+ **Example:**
444
+ - 40% of portfolio in employer stock
445
+ - Job + portfolio both dependent on same company
446
+ - "Double jeopardy" if company struggles
447
+
448
+ **Solution:** Trim to <10% of portfolio, diversify proceeds
449
+
450
+ ### Mistake 5: Sector Drift
451
+
452
+ **Problem:** Letting winners run creates unintended sector concentration
453
+
454
+ **Example:**
455
+ - Tech stocks appreciate 200%, now 50% of portfolio
456
+ - Investor didn't actively overweight tech, just didn't rebalance
457
+ - Concentrated risk without conviction
458
+
459
+ **Solution:** Regular rebalancing to maintain diversification
460
+
461
+ ### Mistake 6: Forgetting About Bonds
462
+
463
+ **Problem:** 100% equities for investors who can't handle volatility
464
+
465
+ **Example:**
466
+ - Aggressive investor holds all stocks
467
+ - Market drops 30%, investor panics and sells at bottom
468
+ - Would have been better with 70/30 stock/bond mix
469
+
470
+ **Solution:** Match allocation to risk tolerance and time horizon
471
+
472
+ ### Mistake 7: Low-Quality Diversification
473
+
474
+ **Problem:** Adding poor-quality stocks just to increase position count
475
+
476
+ **Example:**
477
+ - Has 20 quality stocks, adds 10 speculative names to "diversify"
478
+ - Speculative names drag down returns without meaningfully reducing risk
479
+ - Quality dilution
480
+
481
+ **Solution:** Diversify within quality standards, don't lower bar for diversification
482
+
483
+ ## Advanced Topics
484
+
485
+ ### Factor-Based Diversification
486
+
487
+ Beyond traditional diversification, consider factor exposures:
488
+
489
+ **Common Factors:**
490
+ - **Value:** Low P/E, P/B stocks
491
+ - **Growth:** High revenue/earnings growth
492
+ - **Momentum:** Recent price performance
493
+ - **Quality:** High ROE, stable earnings
494
+ - **Low Volatility:** Low beta, stable returns
495
+ - **Size:** Small cap vs large cap
496
+
497
+ **Factor Diversification:**
498
+ - Avoid loading entirely on one factor (e.g., all momentum stocks)
499
+ - Balance factor exposures or tilt deliberately
500
+ - Recognize factor cycles (value outperforms in some periods, growth in others)
501
+
502
+ ### Tail Risk and Black Swans
503
+
504
+ **Problem:** Normal diversification fails in extreme events
505
+
506
+ **2008 Financial Crisis Example:**
507
+ - Stocks fell 50%+
508
+ - Most correlations approached 1.0
509
+ - Traditional diversification provided limited protection
510
+
511
+ **Solutions:**
512
+ - **Include uncorrelated assets:** Gold, long-volatility strategies, managed futures
513
+ - **Tail hedges:** Put options, VIX calls (expensive, insurance-like)
514
+ - **Portfolio construction:** Barbell approach (safe core + aggressive satellites)
515
+
516
+ ### Dynamic Diversification
517
+
518
+ **Concept:** Adjust diversification based on market conditions
519
+
520
+ **High Volatility Regimes:**
521
+ - Increase diversification (more positions, lower concentration)
522
+ - Add defensive positions
523
+ - Reduce correlation among holdings
524
+
525
+ **Low Volatility Regimes:**
526
+ - Can handle slightly higher concentration
527
+ - Focus on highest conviction ideas
528
+ - Accept higher correlation
529
+
530
+ **Implementation Challenge:** Requires market regime detection and discipline
531
+
532
+ ## Summary
533
+
534
+ **Key Principles:**
535
+
536
+ 1. **Diversification reduces unsystematic risk** without eliminating systematic risk
537
+ 2. **Optimal range:** 15-30 individual stocks OR 5-10 diversified funds
538
+ 3. **Multi-dimensional approach:** Number, weight, sector, geography, correlation
539
+ 4. **Avoid false diversification:** Many holdings with high correlation
540
+ 5. **Avoid over-diversification:** Too many positions dilute returns
541
+ 6. **Regular rebalancing** prevents concentration drift
542
+ 7. **Match to risk tolerance:** More diversification for lower risk tolerance
543
+
544
+ **Practical Guidelines:**
545
+
546
+ - No single stock >10-15%
547
+ - No single sector >30-35%
548
+ - Top 5 holdings <40% of portfolio
549
+ - 6+ sectors represented
550
+ - International exposure 15-30%
551
+ - Asset allocation matches time horizon and risk tolerance
552
+
553
+ **Remember:** Diversification is about risk management, not return maximization. A well-diversified portfolio sacrifices some upside potential to protect against catastrophic losses. The goal is to "stay in the game" through all market conditions.