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,365 @@
1
+ ---
2
+ name: economic-calendar-fetcher
3
+ description: Fetch upcoming economic events and data releases using FMP API. Retrieve scheduled central bank decisions, employment reports, inflation data, GDP releases, and other market-moving economic indicators for specified date ranges (default: next 7 days). Output chronological markdown reports with impact assessment.
4
+ ---
5
+
6
+ # Economic Calendar Fetcher
7
+
8
+ ## Overview
9
+
10
+ Retrieve upcoming economic events and data releases from the Financial Modeling Prep (FMP) Economic Calendar API. This skill fetches scheduled economic indicators including central bank monetary policy decisions, employment reports, inflation data (CPI/PPI), GDP releases, retail sales, manufacturing data, and other market-moving events that impact financial markets.
11
+
12
+ The skill uses a Python script to query the FMP API and generates chronological markdown reports with impact assessment for each scheduled event.
13
+
14
+ **Key Capabilities:**
15
+ - Fetch economic events for specified date ranges (max 90 days)
16
+ - Support flexible API key provision (environment variable or user input)
17
+ - Filter by impact level, country, or event type
18
+ - Generate structured markdown reports with impact analysis
19
+ - Default to next 7 days for quick market outlook
20
+
21
+ **Data Source:**
22
+ - FMP Economic Calendar API: `https://financialmodelingprep.com/api/v3/economic_calendar`
23
+ - Covers major economies: US, EU, UK, Japan, China, Canada, Australia
24
+ - Event types: Central bank decisions, employment, inflation, GDP, trade, housing, surveys
25
+
26
+ ## When to Use This Skill
27
+
28
+ Use this skill when the user requests:
29
+
30
+ 1. **Economic Calendar Queries:**
31
+ - "What economic events are coming up this week?"
32
+ - "Show me the economic calendar for the next two weeks"
33
+ - "When is the next FOMC meeting?"
34
+ - "What major economic data is being released next month?"
35
+
36
+ 2. **Market Event Planning:**
37
+ - "What should I watch for in the markets this week?"
38
+ - "Are there any high-impact economic releases coming?"
39
+ - "When is the next jobs report / CPI release / GDP report?"
40
+
41
+ 3. **Specific Date Range Requests:**
42
+ - "Get economic events from January 1 to January 31"
43
+ - "What's on the economic calendar for Q1 2025?"
44
+
45
+ 4. **Country-Specific Queries:**
46
+ - "Show me US economic data releases next week"
47
+ - "What ECB events are scheduled?"
48
+ - "When is Japan releasing their inflation data?"
49
+
50
+ **DO NOT use this skill for:**
51
+ - Past economic events (use market-news-analyst for historical analysis)
52
+ - Corporate earnings calendars (this skill excludes earnings)
53
+ - Real-time market data or live quotes
54
+ - Technical analysis or chart interpretation
55
+
56
+ ## Workflow
57
+
58
+ Follow these steps to fetch and analyze the economic calendar:
59
+
60
+ ### Step 1: Obtain FMP API Key
61
+
62
+ **Check for API key availability:**
63
+
64
+ 1. First check if FMP_API_KEY environment variable is set
65
+ 2. If not available, ask user to provide API key via chat
66
+ 3. If user doesn't have API key, provide instructions:
67
+ - Visit https://financialmodelingprep.com
68
+ - Sign up for free account (250 requests/day limit)
69
+ - Navigate to API dashboard to obtain key
70
+
71
+ **Example user interaction:**
72
+ ```
73
+ User: "Show me economic events for next week"
74
+ Assistant: "I'll fetch the economic calendar. Do you have an FMP API key? I can use the FMP_API_KEY environment variable, or you can provide your API key now."
75
+ ```
76
+
77
+ ### Step 2: Determine Date Range
78
+
79
+ **Set appropriate date range based on user request:**
80
+
81
+ **Default (no specific dates):** Today + 7 days
82
+ **User specifies period:** Use exact dates (validate format: YYYY-MM-DD)
83
+ **Maximum range:** 90 days (FMP API limitation)
84
+
85
+ **Examples:**
86
+ - "Next week" → Today to +7 days
87
+ - "Next two weeks" → Today to +14 days
88
+ - "January 2025" → 2025-01-01 to 2025-01-31
89
+ - "Q1 2025" → 2025-01-01 to 2025-03-31
90
+
91
+ **Validate date range:**
92
+ - Ensure start date ≤ end date
93
+ - Ensure range ≤ 90 days
94
+ - Warn if querying past dates
95
+
96
+ ### Step 3: Execute API Fetch Script
97
+
98
+ **Run the get_economic_calendar.py script with appropriate parameters:**
99
+
100
+ **Basic usage (default 7 days):**
101
+ ```bash
102
+ python3 /path/to/economic-calendar-fetcher/scripts/get_economic_calendar.py --api-key YOUR_KEY
103
+ ```
104
+
105
+ **With specific date range:**
106
+ ```bash
107
+ python3 /path/to/economic-calendar-fetcher/scripts/get_economic_calendar.py \
108
+ --from 2025-01-01 \
109
+ --to 2025-01-31 \
110
+ --api-key YOUR_KEY \
111
+ --format json
112
+ ```
113
+
114
+ **Using environment variable (no --api-key needed):**
115
+ ```bash
116
+ export FMP_API_KEY=your_key_here
117
+ python3 /path/to/economic-calendar-fetcher/scripts/get_economic_calendar.py \
118
+ --from 2025-01-01 \
119
+ --to 2025-01-07
120
+ ```
121
+
122
+ **Script parameters:**
123
+ - `--from`: Start date (YYYY-MM-DD) - default: today
124
+ - `--to`: End date (YYYY-MM-DD) - default: today + 7 days
125
+ - `--api-key`: FMP API key (optional if FMP_API_KEY env var set)
126
+ - `--format`: Output format (json or text) - default: json
127
+ - `--output`: Output file path (optional, default: stdout)
128
+
129
+ **Handle errors:**
130
+ - Invalid API key → Ask user to verify key
131
+ - Rate limit exceeded (429) → Suggest waiting or upgrading FMP tier
132
+ - Network errors → Retry with exponential backoff
133
+ - Invalid date format → Provide correct format example
134
+
135
+ ### Step 4: Parse and Filter Events
136
+
137
+ **Process the JSON response from the script:**
138
+
139
+ 1. **Parse event data:** Extract all events from API response
140
+ 2. **Apply user filters if specified:**
141
+ - Impact level: "High", "Medium", "Low"
142
+ - Country: "US", "EU", "JP", "CN", etc.
143
+ - Event type: FOMC, CPI, Employment, GDP, etc.
144
+ - Currency: USD, EUR, JPY, etc.
145
+
146
+ **Filter examples:**
147
+ - "Show only high-impact events" → Filter impact == "High"
148
+ - "US events only" → Filter country == "US"
149
+ - "Central bank decisions" → Search event name for "Rate", "Policy", "FOMC", "ECB", "BOJ"
150
+
151
+ **Event data structure:**
152
+ ```json
153
+ {
154
+ "date": "2025-01-15 14:30:00",
155
+ "country": "US",
156
+ "event": "Consumer Price Index (CPI) YoY",
157
+ "currency": "USD",
158
+ "previous": 2.6,
159
+ "estimate": 2.7,
160
+ "actual": null,
161
+ "change": null,
162
+ "impact": "High",
163
+ "changePercentage": null
164
+ }
165
+ ```
166
+
167
+ ### Step 5: Assess Market Impact
168
+
169
+ **Evaluate the market significance of each event:**
170
+
171
+ **Impact Level Classification (from FMP):**
172
+ - **High Impact:** Major market-moving events
173
+ - FOMC rate decisions, ECB/BOJ policy meetings
174
+ - Non-Farm Payrolls (NFP), CPI, GDP
175
+ - Market typically shows 0.5-2%+ intraday volatility
176
+
177
+ - **Medium Impact:** Significant but less volatile
178
+ - Retail Sales, Industrial Production
179
+ - PMI surveys, Consumer Confidence
180
+ - Housing data, Durable Goods Orders
181
+
182
+ - **Low Impact:** Minor indicators
183
+ - Weekly jobless claims (unless extreme)
184
+ - Regional manufacturing surveys
185
+ - Minor auction results
186
+
187
+ **Additional Context Factors:**
188
+
189
+ 1. **Current Market Sensitivity:**
190
+ - High inflation environment → CPI/PPI elevated importance
191
+ - Recession fears → Employment data more critical
192
+ - Rate cut speculation → Central bank meetings crucial
193
+
194
+ 2. **Surprise Potential:**
195
+ - Compare estimate vs. previous reading
196
+ - Large expected changes = higher attention
197
+ - Consensus uncertainty = higher impact potential
198
+
199
+ 3. **Event Clustering:**
200
+ - Multiple related events same day = amplified impact
201
+ - Example: CPI + Retail Sales + Fed speech = Very High impact day
202
+
203
+ 4. **Forward Significance:**
204
+ - Does this event influence upcoming central bank decisions?
205
+ - Is this a preliminary or final reading?
206
+ - Will this data be revised?
207
+
208
+ ### Step 6: Generate Output Report
209
+
210
+ **Create structured markdown report with the following sections:**
211
+
212
+ **Report Header:**
213
+ ```markdown
214
+ # Economic Calendar
215
+ **Period:** [Start Date] to [End Date]
216
+ **Report Generated:** [Timestamp]
217
+ **Total Events:** [Count]
218
+ **High Impact Events:** [Count]
219
+ ```
220
+
221
+ **Event Listing (Chronological):**
222
+
223
+ For each event, provide:
224
+
225
+ ```markdown
226
+ ## [Date] - [Day of Week]
227
+
228
+ ### [Event Name] ([Impact Level])
229
+ - **Country:** [Country Code] ([Currency])
230
+ - **Time:** [HH:MM UTC]
231
+ - **Previous:** [Value]
232
+ - **Estimate:** [Consensus Forecast]
233
+ - **Impact Assessment:** [Your analysis]
234
+
235
+ **Market Implications:**
236
+ [2-3 sentences on why this matters, what markets watch for, typical reaction patterns]
237
+
238
+ ---
239
+ ```
240
+
241
+ **Example Event Entry:**
242
+
243
+ ```markdown
244
+ ## 2025-01-15 - Wednesday
245
+
246
+ ### Consumer Price Index (CPI) YoY (High Impact)
247
+ - **Country:** US (USD)
248
+ - **Time:** 14:30 UTC (8:30 AM ET)
249
+ - **Previous:** 2.6%
250
+ - **Estimate:** 2.7%
251
+ - **Impact Assessment:** Very High - Core inflation metric for Fed policy decisions
252
+
253
+ **Market Implications:**
254
+ CPI reading above estimate (>2.7%) likely strengthens hawkish Fed expectations, potentially pressuring equities and supporting USD. Reading at or below 2.7% could reinforce disinflation narrative and support risk assets. Options market pricing 1.2% S&P 500 move on release day.
255
+
256
+ ---
257
+ ```
258
+
259
+ **Summary Section:**
260
+
261
+ Add analytical summary at the end:
262
+
263
+ ```markdown
264
+ ## Key Takeaways
265
+
266
+ **Highest Impact Days:**
267
+ - [Date]: [Events] - [Combined impact rationale]
268
+ - [Date]: [Events] - [Combined impact rationale]
269
+
270
+ **Central Bank Activity:**
271
+ - [Summary of any scheduled Fed/ECB/BOJ meetings or speeches]
272
+
273
+ **Major Data Releases:**
274
+ - Employment: [NFP, Unemployment Rate dates]
275
+ - Inflation: [CPI, PPI dates]
276
+ - Growth: [GDP, Retail Sales dates]
277
+
278
+ **Market Positioning Considerations:**
279
+ [2-3 bullets on how traders might position around these events]
280
+
281
+ **Risk Events:**
282
+ [Highlight any particularly high-uncertainty or surprise-potential events]
283
+ ```
284
+
285
+ **Filtering Notes:**
286
+
287
+ If user requested specific filters, note at top:
288
+ ```markdown
289
+ **Filters Applied:**
290
+ - Impact Level: High only
291
+ - Country: US
292
+ - Events shown: [X] of [Y] total events in date range
293
+ ```
294
+
295
+ **Output Format:**
296
+ - Primary: Markdown file saved to disk
297
+ - Filename format: `economic_calendar_[START]_to_[END].md`
298
+ - Also display summary to user in chat
299
+
300
+ ## Output Format Specifications
301
+
302
+ **File naming convention:**
303
+ ```
304
+ economic_calendar_2025-01-01_to_2025-01-31.md
305
+ economic_calendar_2025-01-15_to_2025-01-21.md (weekly)
306
+ economic_calendar_high_impact_2025-01.md (with filters)
307
+ ```
308
+
309
+ **Markdown structure requirements:**
310
+
311
+ 1. **Chronological ordering:** Events sorted by date and time (earliest first)
312
+ 2. **Impact level indicators:** Use (High Impact), (Medium Impact), (Low Impact) labels
313
+ 3. **Time zone clarity:** Always specify UTC and provide ET/PT conversions for US events
314
+ 4. **Data completeness:** Include all available fields (previous, estimate, actual if past)
315
+ 5. **Null handling:** Display "N/A" or "No estimate" for null values
316
+ 6. **Impact assessment:** Every high/medium impact event must have market implications analysis
317
+
318
+ **Table format option (for dense listings):**
319
+
320
+ ```markdown
321
+ | Date/Time (UTC) | Event | Country | Impact | Previous | Estimate | Assessment |
322
+ |-----------------|-------|---------|--------|----------|----------|------------|
323
+ | 01-15 14:30 | CPI YoY | US | High | 2.6% | 2.7% | Core inflation metric |
324
+ ```
325
+
326
+ **Language:** All reports in English
327
+
328
+ ## Resources
329
+
330
+ **Python Script:**
331
+ - `scripts/get_economic_calendar.py`: Main API fetch script with CLI interface
332
+
333
+ **Reference Documentation:**
334
+ - `references/fmp_api_documentation.md`: Complete FMP Economic Calendar API reference
335
+ - Authentication and API key management
336
+ - Request parameters and date formats
337
+ - Response field definitions
338
+ - Rate limits and error handling
339
+ - Best practices for caching and efficiency
340
+
341
+ **API Details:**
342
+ - Endpoint: `https://financialmodelingprep.com/api/v3/economic_calendar`
343
+ - Authentication: API key required (free tier: 250 requests/day)
344
+ - Max date range: 90 days per request
345
+ - Response format: JSON array of event objects
346
+ - Rate limits: 5 requests/second (free tier)
347
+
348
+ **Event Coverage:**
349
+ - Major economies: US, EU, UK, Japan, China, Canada, Australia, Switzerland
350
+ - Event categories: Monetary policy, Employment, Inflation, GDP, Trade, Housing, Surveys
351
+ - Update frequency: Real-time (events added/updated as scheduled)
352
+ - Historical data: Available for past events with actual values
353
+
354
+ **Usage Tips:**
355
+ 1. Cache results to minimize API calls (events rarely change once scheduled)
356
+ 2. Query 7-30 day ranges for optimal request efficiency
357
+ 3. Don't query >6 months in future (sparse data, speculative dates)
358
+ 4. Refresh cache daily for upcoming week to catch time changes
359
+ 5. Use smaller ranges (1-7 days) for real-time event monitoring
360
+
361
+ **Error Handling:**
362
+ - API key errors: Clear user guidance for obtaining free key
363
+ - Rate limits: Exponential backoff retry logic
364
+ - Network failures: Graceful degradation with cached data if available
365
+ - Invalid dates: Validation with helpful error messages
@@ -0,0 +1,345 @@
1
+ # FMP Economic Calendar API Documentation
2
+
3
+ ## Overview
4
+
5
+ The Financial Modeling Prep (FMP) Economic Calendar API provides access to upcoming and historical economic data releases, central bank decisions, and other market-moving events. This API enables traders and investors to stay informed about scheduled economic events that may impact financial markets.
6
+
7
+ ## API Endpoint
8
+
9
+ ```
10
+ https://financialmodelingprep.com/api/v3/economic_calendar
11
+ ```
12
+
13
+ ## Authentication
14
+
15
+ API access requires a valid FMP API key, which must be included as a query parameter in all requests.
16
+
17
+ **Parameter:** `apikey`
18
+ **Format:** String
19
+ **Required:** Yes
20
+
21
+ ### Obtaining an API Key
22
+
23
+ 1. Visit https://financialmodelingprep.com
24
+ 2. Sign up for an account (free and paid tiers available)
25
+ 3. Navigate to the API dashboard to view your API key
26
+ 4. Free tier allows limited requests per day (~250-300 requests)
27
+ 5. Paid tiers offer higher rate limits and additional features
28
+
29
+ ## Request Parameters
30
+
31
+ ### Required Parameters
32
+
33
+ | Parameter | Type | Description | Example |
34
+ |-----------|------|-------------|---------|
35
+ | `from` | date | Start date for calendar period | `2025-01-01` |
36
+ | `to` | date | End date for calendar period | `2025-01-31` |
37
+ | `apikey` | string | Your FMP API key | `YOUR_API_KEY` |
38
+
39
+ ### Date Format
40
+
41
+ - **Format:** `YYYY-MM-DD` (ISO 8601 date format)
42
+ - **Example:** `2025-07-20`
43
+ - **Maximum Range:** 90 days between `from` and `to` dates
44
+ - **Timezone:** All dates are in UTC
45
+
46
+ ### Date Range Limitations
47
+
48
+ - Minimum range: 1 day
49
+ - Maximum range: 90 days
50
+ - Past dates: API returns historical events with actual values
51
+ - Future dates: API returns scheduled events with estimates (actual values will be null)
52
+
53
+ ## Response Format
54
+
55
+ The API returns a JSON array of economic event objects.
56
+
57
+ ### Response Structure
58
+
59
+ ```json
60
+ [
61
+ {
62
+ "date": "2024-03-01 03:35:00",
63
+ "country": "JP",
64
+ "event": "3-Month Bill Auction",
65
+ "currency": "JPY",
66
+ "previous": -0.112,
67
+ "estimate": null,
68
+ "actual": -0.096,
69
+ "change": 0.016,
70
+ "impact": "Low",
71
+ "changePercentage": 14.286
72
+ }
73
+ ]
74
+ ```
75
+
76
+ ### Response Fields
77
+
78
+ | Field | Type | Description | Nullable |
79
+ |-------|------|-------------|----------|
80
+ | `date` | string | Event date and time in UTC (format: `YYYY-MM-DD HH:MM:SS`) | No |
81
+ | `country` | string | ISO 2-letter country code (e.g., `US`, `JP`, `GB`, `EU`) | No |
82
+ | `event` | string | Name/description of the economic event | No |
83
+ | `currency` | string | ISO 3-letter currency code (e.g., `USD`, `EUR`, `JPY`) | No |
84
+ | `previous` | number | Previous reading/value for this indicator | Yes |
85
+ | `estimate` | number | Market consensus estimate/forecast | Yes |
86
+ | `actual` | number | Actual released value (null for future events) | Yes |
87
+ | `change` | number | Absolute change from previous reading | Yes |
88
+ | `impact` | string | Market impact level: `"High"`, `"Medium"`, `"Low"` | No |
89
+ | `changePercentage` | number | Percentage change from previous reading | Yes |
90
+
91
+ ### Field Details
92
+
93
+ **`date`:**
94
+ - Format: `YYYY-MM-DD HH:MM:SS` in UTC timezone
95
+ - Represents the scheduled release time for the economic data
96
+ - For future events, this is the expected release time
97
+ - Times may be adjusted if releases are delayed
98
+
99
+ **`country`:**
100
+ - ISO 3166-1 alpha-2 country codes
101
+ - Special codes:
102
+ - `EU`: European Union (ECB-related events)
103
+ - `G7`: G7 summit/collaborative events
104
+ - International organizations may use special codes
105
+
106
+ **`event`:**
107
+ - Descriptive name of the economic indicator or event
108
+ - Examples:
109
+ - `"Non-Farm Payrolls"`
110
+ - `"Consumer Price Index (CPI)"`
111
+ - `"Federal Funds Rate Decision"`
112
+ - `"GDP Growth Rate QoQ"`
113
+ - `"Unemployment Rate"`
114
+
115
+ **`currency`:**
116
+ - ISO 4217 currency codes
117
+ - Indicates which currency's economy the event affects
118
+ - May differ from country (e.g., EU events affect EUR across multiple countries)
119
+
120
+ **`previous`:**
121
+ - The last reported value for this indicator
122
+ - Used as baseline for comparing current release
123
+ - May be revised from originally reported value
124
+ - `null` if no prior data available (new indicator)
125
+
126
+ **`estimate`:**
127
+ - Market consensus forecast compiled from analyst surveys
128
+ - Typically from Bloomberg, Reuters, or other consensus services
129
+ - `null` if no consensus exists or for less-watched indicators
130
+ - Comparing `actual` to `estimate` shows "surprise" factor
131
+
132
+ **`actual`:**
133
+ - The officially released value when data is published
134
+ - `null` for future events (not yet released)
135
+ - This is the critical field that moves markets when released
136
+ - May be revised in subsequent releases (preliminary → final revisions)
137
+
138
+ **`change`:**
139
+ - Calculated as: `actual - previous` (for past events)
140
+ - `null` if either `actual` or `previous` is null
141
+ - Sign indicates direction: positive = increase, negative = decrease
142
+ - Absolute value, not percentage
143
+
144
+ **`impact`:**
145
+ - Qualitative assessment of market-moving potential
146
+ - Three levels:
147
+ - `"High"`: Major market-moving events (NFP, FOMC, CPI)
148
+ - `"Medium"`: Significant but less volatile (Retail Sales, PMI)
149
+ - `"Low"`: Minor indicators, routine data releases
150
+ - Determined by FMP based on historical volatility impact
151
+
152
+ **`changePercentage`:**
153
+ - Calculated as: `((actual - previous) / previous) * 100`
154
+ - `null` if either value is null or if `previous` is zero
155
+ - Percentage representation of the change
156
+ - Useful for comparing relative magnitude across different indicators
157
+
158
+ ## Example Requests
159
+
160
+ ### Fetch Events for Next 7 Days
161
+
162
+ ```bash
163
+ curl "https://financialmodelingprep.com/api/v3/economic_calendar?from=2025-01-01&to=2025-01-07&apikey=YOUR_API_KEY"
164
+ ```
165
+
166
+ ### Fetch High-Impact Events Only (Post-Processing)
167
+
168
+ Note: API does not have an `impact` filter parameter, so filtering must be done after retrieval.
169
+
170
+ ```python
171
+ import requests
172
+
173
+ response = requests.get(
174
+ "https://financialmodelingprep.com/api/v3/economic_calendar",
175
+ params={
176
+ "from": "2025-01-01",
177
+ "to": "2025-01-31",
178
+ "apikey": "YOUR_API_KEY"
179
+ }
180
+ )
181
+
182
+ events = response.json()
183
+ high_impact_events = [e for e in events if e["impact"] == "High"]
184
+ ```
185
+
186
+ ### Fetch Events for Specific Country (Post-Processing)
187
+
188
+ ```python
189
+ us_events = [e for e in events if e["country"] == "US"]
190
+ eu_events = [e for e in events if e["country"] == "EU"]
191
+ ```
192
+
193
+ ## Rate Limits
194
+
195
+ Rate limits depend on your FMP subscription tier:
196
+
197
+ | Tier | Requests/Day | Requests/Second |
198
+ |------|--------------|-----------------|
199
+ | Free | 250 | 5 |
200
+ | Starter | 500 | 10 |
201
+ | Professional | 1,000+ | 20+ |
202
+
203
+ If you exceed rate limits, the API returns HTTP 429 (Too Many Requests).
204
+
205
+ ## Error Handling
206
+
207
+ ### HTTP Status Codes
208
+
209
+ | Code | Meaning | Description |
210
+ |------|---------|-------------|
211
+ | 200 | Success | Request successful, data returned |
212
+ | 400 | Bad Request | Invalid parameters (malformed dates, missing required params) |
213
+ | 401 | Unauthorized | Invalid or missing API key |
214
+ | 403 | Forbidden | API key valid but lacks permission (expired subscription) |
215
+ | 429 | Too Many Requests | Rate limit exceeded |
216
+ | 500 | Internal Server Error | FMP server error (retry after delay) |
217
+
218
+ ### Error Response Format
219
+
220
+ ```json
221
+ {
222
+ "Error Message": "Invalid API KEY. Please retry or visit our documentation to create one FREE https://financialmodelingprep.com/developer/docs"
223
+ }
224
+ ```
225
+
226
+ ### Common Errors
227
+
228
+ **Invalid API Key:**
229
+ ```json
230
+ {"Error Message": "Invalid API KEY..."}
231
+ ```
232
+ **Solution:** Verify API key is correct, active subscription
233
+
234
+ **Date Range Too Large:**
235
+ ```json
236
+ {"Error Message": "Maximum date range is 90 days"}
237
+ ```
238
+ **Solution:** Reduce date range to 90 days or less
239
+
240
+ **Rate Limit Exceeded:**
241
+ - HTTP 429 response
242
+ **Solution:** Wait before next request, upgrade subscription tier
243
+
244
+ ## Best Practices
245
+
246
+ ### 1. Respect Rate Limits
247
+
248
+ Implement exponential backoff for retries:
249
+ ```python
250
+ import time
251
+
252
+ def fetch_with_retry(url, params, max_retries=3):
253
+ for attempt in range(max_retries):
254
+ response = requests.get(url, params=params)
255
+ if response.status_code == 429:
256
+ wait_time = 2 ** attempt # Exponential backoff
257
+ time.sleep(wait_time)
258
+ continue
259
+ return response
260
+ raise Exception("Max retries exceeded")
261
+ ```
262
+
263
+ ### 2. Cache Results
264
+
265
+ Economic calendar data doesn't change frequently once released:
266
+ - Cache past events indefinitely (actual values don't change)
267
+ - Cache future events for 1-24 hours (estimates rarely change)
268
+ - Refresh cache after event release time passes
269
+
270
+ ### 3. Efficient Date Ranges
271
+
272
+ - Query 7-30 day ranges to minimize API calls
273
+ - Don't query dates more than 3-6 months in future (sparse data)
274
+ - Use smaller ranges (1-7 days) for real-time monitoring
275
+
276
+ ### 4. Handle Null Values
277
+
278
+ Many fields can be `null`, especially for future events:
279
+ ```python
280
+ event_value = event.get("actual") or event.get("estimate") or event.get("previous")
281
+ if event_value is None:
282
+ print("No value available for this event")
283
+ ```
284
+
285
+ ### 5. Time Zone Awareness
286
+
287
+ All API times are UTC:
288
+ ```python
289
+ from datetime import datetime, timezone
290
+
291
+ utc_time = datetime.strptime(event["date"], "%Y-%m-%d %H:%M:%S")
292
+ utc_time = utc_time.replace(tzinfo=timezone.utc)
293
+
294
+ # Convert to local timezone
295
+ local_time = utc_time.astimezone()
296
+ ```
297
+
298
+ ## Data Accuracy and Timeliness
299
+
300
+ ### Release Time Accuracy
301
+
302
+ - Most release times accurate within ±1 minute
303
+ - Delayed releases possible (technical issues, holidays)
304
+ - Times may shift due to daylight saving time changes
305
+
306
+ ### Data Revisions
307
+
308
+ Economic data is often revised:
309
+ - **Preliminary:** First release (most market impact)
310
+ - **Revised:** 1-2 months later
311
+ - **Final:** 2-3 months later
312
+
313
+ The API `previous` field reflects the latest revised value, not necessarily the original preliminary release.
314
+
315
+ ### Coverage
316
+
317
+ FMP Economic Calendar covers:
318
+ - **Major Economies:** US, EU, UK, Japan, China, Canada, Australia
319
+ - **Event Types:**
320
+ - Employment data (NFP, unemployment rate)
321
+ - Inflation (CPI, PPI, PCE)
322
+ - Growth (GDP, retail sales, industrial production)
323
+ - Central bank decisions (FOMC, ECB, BOJ, BOE)
324
+ - Surveys (PMI, consumer confidence, sentiment indices)
325
+ - Trade data (trade balance, exports/imports)
326
+ - Housing data (starts, permits, sales)
327
+
328
+ ## Comparison with Other Sources
329
+
330
+ | Feature | FMP API | Forex Factory | Investing.com |
331
+ |---------|---------|---------------|---------------|
332
+ | API Access | Yes | No (scraping only) | No (scraping only) |
333
+ | Historical Data | Yes | Limited | Yes (web only) |
334
+ | Free Tier | Yes (250/day) | N/A | N/A |
335
+ | Data Format | JSON | HTML | HTML |
336
+ | Reliability | High | Medium (changes) | Medium (changes) |
337
+
338
+ FMP is a reliable, legitimate API source compared to scraping financial calendar websites (which violates ToS and is fragile).
339
+
340
+ ## Support and Documentation
341
+
342
+ - **Official Docs:** https://financialmodelingprep.com/developer/docs/economic-calendar-api
343
+ - **API Status:** https://status.financialmodelingprep.com
344
+ - **Support:** support@financialmodelingprep.com
345
+ - **Community:** Active Discord and forum for FMP users