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