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,320 @@
1
+ ---
2
+ name: theme-detector
3
+ description: Detect and analyze trending market themes across sectors. Use when user asks about current market themes, trending sectors, sector rotation, thematic investing, what themes are hot or cold, or wants to identify bullish and bearish market narratives with lifecycle analysis.
4
+ ---
5
+
6
+ # Theme Detector
7
+
8
+ ## Overview
9
+
10
+ This skill detects and ranks trending market themes by analyzing cross-sector momentum, volume, and breadth signals. It identifies both bullish (upward momentum) and bearish (downward pressure) themes, assesses lifecycle maturity (early/mid/late/exhaustion), and provides a confidence score combining quantitative data with narrative analysis.
11
+
12
+ **3-Dimensional Scoring Model:**
13
+ 1. **Theme Heat** (0-100): Direction-neutral strength of the theme (momentum, volume, uptrend ratio, breadth)
14
+ 2. **Lifecycle Maturity**: Stage classification (Early / Mid / Late / Exhaustion) based on duration, extremity clustering, valuation, and ETF proliferation
15
+ 3. **Confidence** (Low / Medium / High): Reliability of the detection, combining quantitative breadth with narrative confirmation
16
+
17
+ **Key Features:**
18
+ - Cross-sector theme detection using FINVIZ industry data
19
+ - Direction-aware scoring (bullish and bearish themes)
20
+ - Lifecycle maturity assessment to identify crowded vs. emerging trades
21
+ - ETF proliferation scoring (more ETFs = more mature/crowded theme)
22
+ - Integration with uptrend-dashboard for 3-point evaluation
23
+ - Dual-mode operation: FINVIZ Elite (fast) or public scraping (slower, limited)
24
+ - WebSearch-based narrative confirmation for top themes
25
+
26
+ ---
27
+
28
+ ## When to Use This Skill
29
+
30
+ **Explicit Triggers:**
31
+ - "What market themes are trending right now?"
32
+ - "Which sectors are hot/cold?"
33
+ - "Detect current market themes"
34
+ - "What are the strongest bullish/bearish narratives?"
35
+ - "Is AI/clean energy/defense still a strong theme?"
36
+ - "Where is sector rotation heading?"
37
+ - "Show me thematic investing opportunities"
38
+
39
+ **Implicit Triggers:**
40
+ - User wants to understand broad market narrative shifts
41
+ - User is looking for thematic ETF or sector allocation ideas
42
+ - User asks about crowded trades or late-cycle themes
43
+ - User wants to know which themes are emerging vs. exhausted
44
+
45
+ **When NOT to Use:**
46
+ - Individual stock analysis (use us-stock-analysis instead)
47
+ - Specific sector deep-dive with chart reading (use sector-analyst instead)
48
+ - Portfolio rebalancing (use portfolio-manager instead)
49
+ - Dividend/income investing (use value-dividend-screener instead)
50
+
51
+ ---
52
+
53
+ ## Workflow
54
+
55
+ ### Step 1: Verify Requirements
56
+
57
+ Check for required API keys and dependencies:
58
+
59
+ ```bash
60
+ # Check for FINVIZ Elite API key (optional but recommended)
61
+ echo $FINVIZ_API_KEY
62
+
63
+ # Check for FMP API key (optional, used for valuation metrics)
64
+ echo $FMP_API_KEY
65
+ ```
66
+
67
+ **Requirements:**
68
+ - **Python 3.7+** with `requests`, `beautifulsoup4`, `lxml`
69
+ - **FINVIZ Elite API key** (recommended for full industry coverage and speed)
70
+ - **FMP API key** (optional, for P/E ratio valuation data)
71
+ - Without FINVIZ Elite, the skill uses public FINVIZ scraping (limited to ~20 stocks per industry, slower rate limits)
72
+
73
+ **Installation:**
74
+ ```bash
75
+ pip install requests beautifulsoup4 lxml
76
+ ```
77
+
78
+ ### Step 2: Execute Theme Detection Script
79
+
80
+ Run the main detection script:
81
+
82
+ ```bash
83
+ python3 skills/theme-detector/scripts/theme_detector.py \
84
+ --output-dir reports/
85
+ ```
86
+
87
+ **Script Options:**
88
+ ```bash
89
+ # Full run (public FINVIZ mode, no API key required)
90
+ python3 skills/theme-detector/scripts/theme_detector.py \
91
+ --output-dir reports/
92
+
93
+ # With FINVIZ Elite API key
94
+ python3 skills/theme-detector/scripts/theme_detector.py \
95
+ --finviz-api-key $FINVIZ_API_KEY \
96
+ --output-dir reports/
97
+
98
+ # With FMP API key for enhanced stock data
99
+ python3 skills/theme-detector/scripts/theme_detector.py \
100
+ --fmp-api-key $FMP_API_KEY \
101
+ --output-dir reports/
102
+
103
+ # Custom limits
104
+ python3 skills/theme-detector/scripts/theme_detector.py \
105
+ --max-themes 5 \
106
+ --max-stocks-per-theme 5 \
107
+ --output-dir reports/
108
+
109
+ # Explicit FINVIZ mode
110
+ python3 skills/theme-detector/scripts/theme_detector.py \
111
+ --finviz-mode public \
112
+ --output-dir reports/
113
+ ```
114
+
115
+ **Expected Execution Time:**
116
+ - FINVIZ Elite mode: ~2-3 minutes (14+ themes)
117
+ - Public FINVIZ mode: ~5-8 minutes (rate-limited scraping)
118
+
119
+ ### Step 3: Read and Parse Detection Results
120
+
121
+ The script generates two output files:
122
+ - `theme_detector_YYYY-MM-DD_HHMMSS.json` - Structured data for programmatic use
123
+ - `theme_detector_YYYY-MM-DD_HHMMSS.md` - Human-readable report
124
+
125
+ Read the JSON output to understand quantitative results:
126
+
127
+ ```bash
128
+ # Find the latest report
129
+ ls -lt reports/theme_detector_*.json | head -1
130
+
131
+ # Read the JSON output
132
+ cat reports/theme_detector_YYYY-MM-DD_HHMMSS.json
133
+ ```
134
+
135
+ ### Step 4: Perform Narrative Confirmation via WebSearch
136
+
137
+ For the top 5 themes (by Theme Heat score), execute WebSearch queries to confirm narrative strength:
138
+
139
+ **Search Pattern:**
140
+ ```
141
+ "[theme name] stocks market [current month] [current year]"
142
+ "[theme name] sector momentum [current month] [current year]"
143
+ ```
144
+
145
+ **Evaluate narrative signals:**
146
+ - **Strong narrative**: Multiple major outlets covering the theme, analyst upgrades, policy catalysts
147
+ - **Moderate narrative**: Some coverage, mixed sentiment, no clear catalyst
148
+ - **Weak narrative**: Little coverage, or predominantly contrarian/skeptical tone
149
+
150
+ Update Confidence levels based on findings:
151
+ - Quantitative High + Narrative Strong = **High** confidence
152
+ - Quantitative High + Narrative Weak = **Medium** confidence (possible momentum divergence)
153
+ - Quantitative Low + Narrative Strong = **Medium** confidence (narrative may lead price)
154
+ - Quantitative Low + Narrative Weak = **Low** confidence
155
+
156
+ ### Step 5: Analyze Results and Provide Recommendations
157
+
158
+ Cross-reference detection results with knowledge bases:
159
+
160
+ **Reference Documents to Consult:**
161
+ 1. `references/cross_sector_themes.md` - Theme definitions and constituent industries
162
+ 2. `references/thematic_etf_catalog.md` - ETF exposure options by theme
163
+ 3. `references/theme_detection_methodology.md` - Scoring model details
164
+ 4. `references/finviz_industry_codes.md` - Industry classification reference
165
+
166
+ **Analysis Framework:**
167
+
168
+ For **Hot Bullish Themes** (Heat >= 70, Direction = Bullish):
169
+ - Identify lifecycle stage (Early = opportunity, Late/Exhaustion = caution)
170
+ - List top-performing industries within the theme
171
+ - Recommend proxy ETFs for exposure
172
+ - Flag if ETF proliferation is high (crowded trade warning)
173
+
174
+ For **Hot Bearish Themes** (Heat >= 70, Direction = Bearish):
175
+ - Identify industries under pressure
176
+ - Assess if bearish momentum is accelerating or decelerating
177
+ - Recommend hedging strategies or sectors to avoid
178
+ - Note potential mean-reversion opportunities if lifecycle is Late/Exhaustion
179
+
180
+ For **Emerging Themes** (Heat 40-69, Lifecycle = Early):
181
+ - These may represent early rotation signals
182
+ - Recommend monitoring with watchlist
183
+ - Identify catalyst events that could accelerate the theme
184
+
185
+ For **Exhausted Themes** (Heat >= 60, Lifecycle = Exhaustion):
186
+ - Warn about crowded trade risk
187
+ - High ETF count confirms excessive retail participation
188
+ - Consider contrarian positioning or reducing exposure
189
+
190
+ ### Step 6: Generate Final Report
191
+
192
+ Present the final report to the user using the report template structure:
193
+
194
+ ```markdown
195
+ # Theme Detection Report
196
+ **Date:** YYYY-MM-DD
197
+ **Mode:** FINVIZ Elite / Public
198
+ **Themes Analyzed:** N
199
+ **Data Quality:** [note any limitations]
200
+
201
+ ## Theme Dashboard
202
+ [Top themes table with Heat, Direction, Lifecycle, Confidence]
203
+
204
+ ## Bullish Themes Detail
205
+ [Detailed analysis of bullish themes sorted by Heat]
206
+
207
+ ## Bearish Themes Detail
208
+ [Detailed analysis of bearish themes sorted by Heat]
209
+
210
+ ## All Themes Summary
211
+ [Complete theme ranking table]
212
+
213
+ ## Industry Rankings
214
+ [Top performing and worst performing industries]
215
+
216
+ ## Sector Uptrend Ratios
217
+ [Sector-level aggregation if uptrend data available]
218
+
219
+ ## Methodology Notes
220
+ [Brief explanation of scoring model]
221
+ ```
222
+
223
+ Save the report to `reports/` directory.
224
+
225
+ ---
226
+
227
+ ## Resources
228
+
229
+ ### Scripts Directory (`scripts/`)
230
+
231
+ **Main Scripts:**
232
+ - `theme_detector.py` - Main orchestrator script
233
+ - Coordinates industry data collection, theme classification, and scoring
234
+ - Generates JSON + Markdown output
235
+ - Usage: `python3 theme_detector.py [options]`
236
+
237
+ - `theme_classifier.py` - Maps industries to cross-sector themes
238
+ - Reads theme definitions from `cross_sector_themes.md`
239
+ - Calculates theme-level aggregated scores
240
+ - Determines direction (bullish/bearish) from constituent industries
241
+
242
+ - `finviz_industry_scanner.py` - FINVIZ industry data collection
243
+ - Elite mode: CSV export with full stock data per industry
244
+ - Public mode: Web scraping with rate limiting
245
+ - Extracts: performance, volume, change%, avg volume, market cap
246
+
247
+ - `lifecycle_analyzer.py` - Lifecycle maturity assessment
248
+ - Duration scoring, extremity clustering, valuation analysis
249
+ - ETF proliferation scoring from thematic_etf_catalog.md
250
+ - Stage classification: Early / Mid / Late / Exhaustion
251
+
252
+ - `report_generator.py` - Report output generation
253
+ - Markdown report from template
254
+ - JSON structured output
255
+ - Theme dashboard formatting
256
+
257
+ ### References Directory (`references/`)
258
+
259
+ **Knowledge Bases:**
260
+ - `cross_sector_themes.md` - Theme definitions with industries, ETFs, stocks, and matching criteria
261
+ - `thematic_etf_catalog.md` - Comprehensive thematic ETF catalog with counts per theme
262
+ - `finviz_industry_codes.md` - Complete FINVIZ industry-to-filter-code mapping
263
+ - `theme_detection_methodology.md` - Technical documentation of the 3D scoring model
264
+
265
+ ### Assets Directory (`assets/`)
266
+
267
+ - `report_template.md` - Markdown template for report generation with placeholder format
268
+
269
+ ---
270
+
271
+ ## Important Notes
272
+
273
+ ### FINVIZ Mode Differences
274
+
275
+ | Feature | Elite Mode | Public Mode |
276
+ |---------|-----------|-------------|
277
+ | Industry coverage | All ~145 industries | All ~145 industries |
278
+ | Stocks per industry | Full universe | ~20 stocks (page 1) |
279
+ | Rate limiting | 0.5s between requests | 2.0s between requests |
280
+ | Data freshness | Real-time | 15-min delayed |
281
+ | API key required | Yes ($39.99/mo) | No |
282
+ | Execution time | ~2-3 minutes | ~5-8 minutes |
283
+
284
+ ### Direction Detection Logic
285
+
286
+ Theme direction (bullish vs. bearish) is determined by:
287
+ 1. **Weighted industry performance**: Average change% across constituent industries, weighted by market cap
288
+ 2. **Uptrend ratio**: Percentage of stocks in each industry that are in technical uptrends (if uptrend data available)
289
+ 3. **Volume confirmation**: Whether volume supports the price direction (accumulation vs. distribution)
290
+
291
+ A theme is classified as:
292
+ - **Bullish**: Weighted performance > 0 AND (uptrend ratio > 50% OR volume accumulation confirmed)
293
+ - **Bearish**: Weighted performance < 0 AND (uptrend ratio < 50% OR volume distribution confirmed)
294
+ - **Neutral**: Mixed signals or insufficient data
295
+
296
+ ### Known Limitations
297
+
298
+ 1. **Survivorship bias**: Only analyzes currently listed stocks and ETFs
299
+ 2. **Lag**: FINVIZ data may lag intraday moves by 15 minutes (public mode)
300
+ 3. **Theme boundaries**: Some stocks fit multiple themes; classification uses primary industry
301
+ 4. **ETF proliferation**: Catalog is static and may not capture very new ETFs
302
+ 5. **Narrative scoring**: WebSearch-based and inherently subjective
303
+ 6. **Public mode limitation**: ~20 stocks per industry may miss small-cap signals
304
+
305
+ ### Disclaimer
306
+
307
+ **This analysis is for educational and informational purposes only.**
308
+ - Not investment advice
309
+ - Past thematic trends do not guarantee future performance
310
+ - Theme detection identifies momentum, not fundamental value
311
+ - Conduct your own research before making investment decisions
312
+
313
+ ---
314
+
315
+ **Version:** 1.0
316
+ **Last Updated:** 2026-02-16
317
+ **API Requirements:** FINVIZ Elite (recommended) or public mode (free); FMP API optional
318
+ **Execution Time:** ~2-8 minutes depending on mode
319
+ **Output Formats:** JSON + Markdown
320
+ **Themes Covered:** 14+ cross-sector themes
@@ -0,0 +1,155 @@
1
+ # Theme Detection Report
2
+
3
+ **Date:** {{date}}
4
+ **Mode:** {{mode}}
5
+ **Themes Analyzed:** {{themes_analyzed}}
6
+ **Industries Scanned:** {{industries_scanned}}
7
+ **Total Stocks:** {{total_stocks}}
8
+ **Uptrend Data:** {{uptrend_data_status}}
9
+ **Execution Time:** {{execution_time}}
10
+
11
+ ---
12
+
13
+ ## 1. Theme Dashboard
14
+
15
+ | Rank | Theme | Direction | Heat | Lifecycle | Confidence |
16
+ |------|-------|-----------|------|-----------|------------|
17
+ {{#each top_themes}}
18
+ | {{rank}} | {{name}} | {{direction_emoji}} {{direction}} | {{heat}}/100 | {{lifecycle}} | {{confidence}} |
19
+ {{/each}}
20
+
21
+ **Legend:** Direction: UP = Bullish, DOWN = Bearish | Heat: 0-100 scale | Lifecycle: Early/Mid/Late/Exhaustion
22
+
23
+ ---
24
+
25
+ ## 2. Bullish Themes Detail
26
+
27
+ {{#each bullish_themes}}
28
+ ### {{name}} - Heat: {{heat}}/100
29
+
30
+ **Direction:** Bullish ({{direction_strength}}) | **Lifecycle:** {{lifecycle}} | **Confidence:** {{confidence}}
31
+
32
+ **Heat Components:**
33
+ - Momentum: {{momentum}}/100
34
+ - Volume: {{volume}}/100
35
+ - Uptrend: {{uptrend}}/100
36
+ - Breadth: {{breadth}}/100
37
+
38
+ **Lifecycle Factors:**
39
+ - Duration: {{duration_weeks}} weeks
40
+ - Extremity clustering: {{extremity_pct}}%
41
+ - Relative P/E: {{relative_pe}}x
42
+ - ETF proliferation: {{etf_count}} ETFs (score: {{etf_score}}/100)
43
+ - Narrative: {{narrative_assessment}}
44
+
45
+ **Top Industries:**
46
+ {{#each industries}}
47
+ - {{name}}: {{change_pct}}% ({{stock_count}} stocks, uptrend {{uptrend_ratio}}%)
48
+ {{/each}}
49
+
50
+ **Top Movers:**
51
+ {{#each top_stocks}}
52
+ - {{ticker}}: {{change_pct}}% | Vol: {{relative_volume}}x
53
+ {{/each}}
54
+
55
+ **Proxy ETFs:** {{proxy_etfs}}
56
+
57
+ **Assessment:** {{assessment}}
58
+
59
+ ---
60
+ {{/each}}
61
+
62
+ ## 3. Bearish Themes Detail
63
+
64
+ {{#each bearish_themes}}
65
+ ### {{name}} - Heat: {{heat}}/100
66
+
67
+ **Direction:** Bearish ({{direction_strength}}) | **Lifecycle:** {{lifecycle}} | **Confidence:** {{confidence}}
68
+
69
+ **Heat Components:**
70
+ - Momentum: {{momentum}}/100
71
+ - Volume: {{volume}}/100
72
+ - Downtrend: {{downtrend}}/100
73
+ - Breadth: {{breadth}}/100
74
+
75
+ **Top Declining Industries:**
76
+ {{#each industries}}
77
+ - {{name}}: {{change_pct}}% ({{stock_count}} stocks, downtrend {{downtrend_ratio}}%)
78
+ {{/each}}
79
+
80
+ **Worst Performers:**
81
+ {{#each bottom_stocks}}
82
+ - {{ticker}}: {{change_pct}}% | Vol: {{relative_volume}}x
83
+ {{/each}}
84
+
85
+ **Assessment:** {{assessment}}
86
+
87
+ ---
88
+ {{/each}}
89
+
90
+ ## 4. All Themes Summary
91
+
92
+ | Theme | Direction | Heat | Momentum | Volume | Uptrend | Breadth | Lifecycle | Confidence |
93
+ |-------|-----------|------|----------|--------|---------|---------|-----------|------------|
94
+ {{#each all_themes}}
95
+ | {{name}} | {{direction}} | {{heat}} | {{momentum}} | {{volume}} | {{uptrend}} | {{breadth}} | {{lifecycle}} | {{confidence}} |
96
+ {{/each}}
97
+
98
+ ---
99
+
100
+ ## 5. Industry Rankings
101
+
102
+ ### Top 10 Industries (by performance)
103
+
104
+ | Rank | Industry | Sector | Change % | Rel. Volume | Uptrend Ratio | Theme |
105
+ |------|----------|--------|----------|-------------|---------------|-------|
106
+ {{#each top_industries}}
107
+ | {{rank}} | {{name}} | {{sector}} | {{change_pct}}% | {{rel_volume}}x | {{uptrend_ratio}}% | {{theme}} |
108
+ {{/each}}
109
+
110
+ ### Bottom 10 Industries (by performance)
111
+
112
+ | Rank | Industry | Sector | Change % | Rel. Volume | Downtrend Ratio | Theme |
113
+ |------|----------|--------|----------|-------------|-----------------|-------|
114
+ {{#each bottom_industries}}
115
+ | {{rank}} | {{name}} | {{sector}} | {{change_pct}}% | {{rel_volume}}x | {{downtrend_ratio}}% | {{theme}} |
116
+ {{/each}}
117
+
118
+ ---
119
+
120
+ ## 6. Sector Uptrend Ratios
121
+
122
+ | Sector | Uptrend Ratio | Avg Change % | Dominant Theme | Direction |
123
+ |--------|---------------|-------------|----------------|-----------|
124
+ {{#each sectors}}
125
+ | {{name}} | {{uptrend_ratio}}% | {{avg_change_pct}}% | {{dominant_theme}} | {{direction}} |
126
+ {{/each}}
127
+
128
+ ---
129
+
130
+ ## 7. Methodology Notes
131
+
132
+ **Scoring Model:** 3-Dimensional (Heat x Lifecycle x Confidence)
133
+ - **Theme Heat** (0-100): Momentum (30%) + Volume (25%) + Uptrend (25%) + Breadth (20%)
134
+ - **Lifecycle**: Duration + Extremity clustering + Valuation + ETF proliferation + Narrative saturation
135
+ - **Confidence**: Quantitative breadth + Cross-sector confirmation + Narrative verification
136
+
137
+ **Data Sources:**
138
+ - FINVIZ {{mode}} (industry performance, volume, 52-week data)
139
+ {{#if uptrend_data}}
140
+ - uptrend-dashboard (3-point technical evaluation)
141
+ {{/if}}
142
+ {{#if fmp_data}}
143
+ - FMP API (P/E ratios for valuation analysis)
144
+ {{/if}}
145
+ - WebSearch (narrative confirmation for top themes)
146
+
147
+ **Limitations:**
148
+ - Theme definitions are static (predefined in cross_sector_themes.md)
149
+ - {{mode_limitation}}
150
+ - Duration tracking requires historical baseline data
151
+ - Narrative assessment is subjective
152
+
153
+ ---
154
+
155
+ *Generated by Theme Detector v1.0 | {{date}} {{time}}*