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,959 @@
1
+ ---
2
+ name: options-strategy-advisor
3
+ description: Options trading strategy analysis and simulation tool. Provides theoretical pricing using Black-Scholes model, Greeks calculation, strategy P/L simulation, and risk management guidance. Use when user requests options strategy analysis, covered calls, protective puts, spreads, iron condors, earnings plays, or options risk management. Includes volatility analysis, position sizing, and earnings-based strategy recommendations. Educational focus with practical trade simulation.
4
+ ---
5
+
6
+ # Options Strategy Advisor
7
+
8
+ ## Overview
9
+
10
+ This skill provides comprehensive options strategy analysis and education using theoretical pricing models. It helps traders understand, analyze, and simulate options strategies without requiring real-time market data subscriptions.
11
+
12
+ **Core Capabilities:**
13
+ - **Black-Scholes Pricing**: Theoretical option prices and Greeks calculation
14
+ - **Strategy Simulation**: P/L analysis for major options strategies
15
+ - **Earnings Strategies**: Pre-earnings volatility plays integrated with Earnings Calendar
16
+ - **Risk Management**: Position sizing, Greeks exposure, max loss/profit analysis
17
+ - **Educational Focus**: Detailed explanations of strategies and risk metrics
18
+
19
+ **Data Sources:**
20
+ - FMP API: Stock prices, historical volatility, dividends, earnings dates
21
+ - User Input: Implied volatility (IV), risk-free rate
22
+ - Theoretical Models: Black-Scholes for pricing and Greeks
23
+
24
+ ## When to Use This Skill
25
+
26
+ Use this skill when:
27
+ - User asks about options strategies ("What's a covered call?", "How does an iron condor work?")
28
+ - User wants to simulate strategy P/L ("What's my max profit on a bull call spread?")
29
+ - User needs Greeks analysis ("What's my delta exposure?")
30
+ - User asks about earnings strategies ("Should I buy a straddle before earnings?")
31
+ - User wants to compare strategies ("Covered call vs protective put?")
32
+ - User needs position sizing guidance ("How many contracts should I trade?")
33
+ - User asks about volatility ("Is IV high right now?")
34
+
35
+ Example requests:
36
+ - "Analyze a covered call on AAPL"
37
+ - "What's the P/L on a $100/$105 bull call spread on MSFT?"
38
+ - "Should I trade a straddle before NVDA earnings?"
39
+ - "Calculate Greeks for my iron condor position"
40
+ - "Compare protective put vs covered call for downside protection"
41
+
42
+ ## Supported Strategies
43
+
44
+ ### Income Strategies
45
+ 1. **Covered Call** - Own stock, sell call (generate income, cap upside)
46
+ 2. **Cash-Secured Put** - Sell put with cash backing (collect premium, willing to buy stock)
47
+ 3. **Poor Man's Covered Call** - LEAPS call + short near-term call (capital efficient)
48
+
49
+ ### Protection Strategies
50
+ 4. **Protective Put** - Own stock, buy put (insurance, limited downside)
51
+ 5. **Collar** - Own stock, sell call + buy put (limited upside/downside)
52
+
53
+ ### Directional Strategies
54
+ 6. **Bull Call Spread** - Buy lower strike call, sell higher strike call (limited risk/reward bullish)
55
+ 7. **Bull Put Spread** - Sell higher strike put, buy lower strike put (credit spread, bullish)
56
+ 8. **Bear Call Spread** - Sell lower strike call, buy higher strike call (credit spread, bearish)
57
+ 9. **Bear Put Spread** - Buy higher strike put, sell lower strike put (limited risk/reward bearish)
58
+
59
+ ### Volatility Strategies
60
+ 10. **Long Straddle** - Buy ATM call + ATM put (profit from big move either direction)
61
+ 11. **Long Strangle** - Buy OTM call + OTM put (cheaper than straddle, bigger move needed)
62
+ 12. **Short Straddle** - Sell ATM call + ATM put (profit from no movement, unlimited risk)
63
+ 13. **Short Strangle** - Sell OTM call + OTM put (profit from no movement, wider range)
64
+
65
+ ### Range-Bound Strategies
66
+ 14. **Iron Condor** - Bull put spread + bear call spread (profit from range-bound movement)
67
+ 15. **Iron Butterfly** - Sell ATM straddle, buy OTM strangle (profit from tight range)
68
+
69
+ ### Advanced Strategies
70
+ 16. **Calendar Spread** - Sell near-term option, buy longer-term option (profit from time decay)
71
+ 17. **Diagonal Spread** - Calendar spread with different strikes (directional + time decay)
72
+ 18. **Ratio Spread** - Unbalanced spread (more contracts on one leg)
73
+
74
+ ## Analysis Workflow
75
+
76
+ ### Step 1: Gather Input Data
77
+
78
+ **Required from User:**
79
+ - Ticker symbol
80
+ - Strategy type
81
+ - Strike prices
82
+ - Expiration date(s)
83
+ - Position size (number of contracts)
84
+
85
+ **Optional from User:**
86
+ - Implied Volatility (IV) - if not provided, use Historical Volatility (HV)
87
+ - Risk-free rate - default to current 3-month T-bill rate (~5.3% as of 2025)
88
+
89
+ **Fetched from FMP API:**
90
+ - Current stock price
91
+ - Historical prices (for HV calculation)
92
+ - Dividend yield
93
+ - Upcoming earnings date (for earnings strategies)
94
+
95
+ **Example User Input:**
96
+ ```
97
+ Ticker: AAPL
98
+ Strategy: Bull Call Spread
99
+ Long Strike: $180
100
+ Short Strike: $185
101
+ Expiration: 30 days
102
+ Contracts: 10
103
+ IV: 25% (or use HV if not provided)
104
+ ```
105
+
106
+ ### Step 2: Calculate Historical Volatility (if IV not provided)
107
+
108
+ **Objective:** Estimate volatility from historical price movements.
109
+
110
+ **Method:**
111
+ ```python
112
+ # Fetch 90 days of price data
113
+ prices = get_historical_prices("AAPL", days=90)
114
+
115
+ # Calculate daily returns
116
+ returns = np.log(prices / prices.shift(1))
117
+
118
+ # Annualized volatility
119
+ HV = returns.std() * np.sqrt(252) # 252 trading days
120
+ ```
121
+
122
+ **Output:**
123
+ - Historical Volatility (annualized percentage)
124
+ - Note to user: "HV = 24.5%, consider using current market IV for more accuracy"
125
+
126
+ **User Can Override:**
127
+ - Provide IV from broker platform (ThinkorSwim, TastyTrade, etc.)
128
+ - Script accepts `--iv 28.0` parameter
129
+
130
+ ### Step 3: Price Options Using Black-Scholes
131
+
132
+ **Black-Scholes Model:**
133
+
134
+ For European-style options:
135
+ ```
136
+ Call Price = S * N(d1) - K * e^(-r*T) * N(d2)
137
+ Put Price = K * e^(-r*T) * N(-d2) - S * N(-d1)
138
+
139
+ Where:
140
+ d1 = [ln(S/K) + (r + σ²/2) * T] / (σ * √T)
141
+ d2 = d1 - σ * √T
142
+
143
+ S = Current stock price
144
+ K = Strike price
145
+ r = Risk-free rate
146
+ T = Time to expiration (years)
147
+ σ = Volatility (IV or HV)
148
+ N() = Cumulative standard normal distribution
149
+ ```
150
+
151
+ **Adjustments:**
152
+ - Subtract present value of dividends from S for calls
153
+ - American options: Use approximation or note "European pricing, may undervalue American options"
154
+
155
+ **Python Implementation:**
156
+ ```python
157
+ from scipy.stats import norm
158
+ import numpy as np
159
+
160
+ def black_scholes_call(S, K, T, r, sigma, q=0):
161
+ """
162
+ S: Stock price
163
+ K: Strike price
164
+ T: Time to expiration (years)
165
+ r: Risk-free rate
166
+ sigma: Volatility
167
+ q: Dividend yield
168
+ """
169
+ d1 = (np.log(S/K) + (r - q + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
170
+ d2 = d1 - sigma*np.sqrt(T)
171
+
172
+ call_price = S*np.exp(-q*T)*norm.cdf(d1) - K*np.exp(-r*T)*norm.cdf(d2)
173
+ return call_price
174
+
175
+ def black_scholes_put(S, K, T, r, sigma, q=0):
176
+ d1 = (np.log(S/K) + (r - q + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
177
+ d2 = d1 - sigma*np.sqrt(T)
178
+
179
+ put_price = K*np.exp(-r*T)*norm.cdf(-d2) - S*np.exp(-q*T)*norm.cdf(-d1)
180
+ return put_price
181
+ ```
182
+
183
+ **Output for Each Option Leg:**
184
+ - Theoretical price
185
+ - Note: "Market price may differ due to bid-ask spread and American vs European pricing"
186
+
187
+ ### Step 4: Calculate Greeks
188
+
189
+ **The Greeks** measure option price sensitivity to various factors:
190
+
191
+ **Delta (Δ):** Change in option price per $1 change in stock price
192
+ ```python
193
+ def delta_call(S, K, T, r, sigma, q=0):
194
+ d1 = (np.log(S/K) + (r - q + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
195
+ return np.exp(-q*T) * norm.cdf(d1)
196
+
197
+ def delta_put(S, K, T, r, sigma, q=0):
198
+ d1 = (np.log(S/K) + (r - q + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
199
+ return np.exp(-q*T) * (norm.cdf(d1) - 1)
200
+ ```
201
+
202
+ **Gamma (Γ):** Change in delta per $1 change in stock price
203
+ ```python
204
+ def gamma(S, K, T, r, sigma, q=0):
205
+ d1 = (np.log(S/K) + (r - q + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
206
+ return np.exp(-q*T) * norm.pdf(d1) / (S * sigma * np.sqrt(T))
207
+ ```
208
+
209
+ **Theta (Θ):** Change in option price per day (time decay)
210
+ ```python
211
+ def theta_call(S, K, T, r, sigma, q=0):
212
+ d1 = (np.log(S/K) + (r - q + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
213
+ d2 = d1 - sigma*np.sqrt(T)
214
+
215
+ theta = (-S*norm.pdf(d1)*sigma*np.exp(-q*T)/(2*np.sqrt(T))
216
+ - r*K*np.exp(-r*T)*norm.cdf(d2)
217
+ + q*S*norm.cdf(d1)*np.exp(-q*T))
218
+
219
+ return theta / 365 # Per day
220
+ ```
221
+
222
+ **Vega (ν):** Change in option price per 1% change in volatility
223
+ ```python
224
+ def vega(S, K, T, r, sigma, q=0):
225
+ d1 = (np.log(S/K) + (r - q + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
226
+ return S * np.exp(-q*T) * norm.pdf(d1) * np.sqrt(T) / 100 # Per 1%
227
+ ```
228
+
229
+ **Rho (ρ):** Change in option price per 1% change in interest rate
230
+ ```python
231
+ def rho_call(S, K, T, r, sigma, q=0):
232
+ d2 = (np.log(S/K) + (r - q + 0.5*sigma**2)*T) / (sigma*np.sqrt(T)) - sigma*np.sqrt(T)
233
+ return K * T * np.exp(-r*T) * norm.cdf(d2) / 100 # Per 1%
234
+ ```
235
+
236
+ **Position Greeks:**
237
+
238
+ For a strategy with multiple legs, sum Greeks across all legs:
239
+ ```python
240
+ # Example: Bull Call Spread
241
+ # Long 1x $180 call
242
+ # Short 1x $185 call
243
+
244
+ delta_position = (1 * delta_long) + (-1 * delta_short)
245
+ gamma_position = (1 * gamma_long) + (-1 * gamma_short)
246
+ theta_position = (1 * theta_long) + (-1 * theta_short)
247
+ vega_position = (1 * vega_long) + (-1 * vega_short)
248
+ ```
249
+
250
+ **Greeks Interpretation:**
251
+
252
+ | Greek | Meaning | Example |
253
+ |-------|---------|---------|
254
+ | **Delta** | Directional exposure | Δ = 0.50 → $50 profit if stock +$1 |
255
+ | **Gamma** | Delta acceleration | Γ = 0.05 → Delta increases by 0.05 if stock +$1 |
256
+ | **Theta** | Daily time decay | Θ = -$5 → Lose $5/day from time passing |
257
+ | **Vega** | Volatility sensitivity | ν = $10 → Gain $10 if IV increases 1% |
258
+ | **Rho** | Interest rate sensitivity | ρ = $2 → Gain $2 if rates increase 1% |
259
+
260
+ ### Step 5: Simulate Strategy P/L
261
+
262
+ **Objective:** Calculate profit/loss at various stock prices at expiration.
263
+
264
+ **Method:**
265
+
266
+ Generate stock price range (e.g., ±30% from current price):
267
+ ```python
268
+ current_price = 180
269
+ price_range = np.linspace(current_price * 0.7, current_price * 1.3, 100)
270
+ ```
271
+
272
+ For each price point, calculate P/L:
273
+ ```python
274
+ def calculate_pnl(strategy, stock_price_at_expiration):
275
+ pnl = 0
276
+
277
+ for leg in strategy.legs:
278
+ if leg.type == 'call':
279
+ intrinsic_value = max(0, stock_price_at_expiration - leg.strike)
280
+ else: # put
281
+ intrinsic_value = max(0, leg.strike - stock_price_at_expiration)
282
+
283
+ if leg.position == 'long':
284
+ pnl += (intrinsic_value - leg.premium_paid) * 100 # Per contract
285
+ else: # short
286
+ pnl += (leg.premium_received - intrinsic_value) * 100
287
+
288
+ return pnl * num_contracts
289
+ ```
290
+
291
+ **Key Metrics:**
292
+ - **Max Profit**: Highest possible P/L
293
+ - **Max Loss**: Worst possible P/L
294
+ - **Breakeven Point(s)**: Stock price(s) where P/L = 0
295
+ - **Profit Probability**: Percentage of price range that's profitable (simplified)
296
+
297
+ **Example Output:**
298
+ ```
299
+ Bull Call Spread: $180/$185 on AAPL (30 DTE, 10 contracts)
300
+
301
+ Current Price: $180.00
302
+ Net Debit: $2.50 per spread ($2,500 total)
303
+
304
+ Max Profit: $2,500 (at $185+)
305
+ Max Loss: -$2,500 (at $180-)
306
+ Breakeven: $182.50
307
+ Risk/Reward: 1:1
308
+
309
+ Probability Profit: ~55% (if stock stays above $182.50)
310
+ ```
311
+
312
+ ### Step 6: Generate P/L Diagram (ASCII Art)
313
+
314
+ **Visual representation of P/L across stock prices:**
315
+
316
+ ```python
317
+ def generate_pnl_diagram(price_range, pnl_values, current_price, width=60, height=15):
318
+ """Generate ASCII P/L diagram"""
319
+
320
+ # Normalize to chart dimensions
321
+ max_pnl = max(pnl_values)
322
+ min_pnl = min(pnl_values)
323
+
324
+ lines = []
325
+ lines.append(f"\nP/L Diagram: {strategy_name}")
326
+ lines.append("-" * width)
327
+
328
+ # Y-axis levels
329
+ levels = np.linspace(max_pnl, min_pnl, height)
330
+
331
+ for level in levels:
332
+ if abs(level) < (max_pnl - min_pnl) * 0.05:
333
+ label = f" 0 |" # Zero line
334
+ else:
335
+ label = f"{level:6.0f} |"
336
+
337
+ row = label
338
+ for i in range(width - len(label)):
339
+ idx = int(i / (width - len(label)) * len(price_range))
340
+ pnl = pnl_values[idx]
341
+ price = price_range[idx]
342
+
343
+ # Determine character
344
+ if abs(pnl - level) < (max_pnl - min_pnl) / height:
345
+ if pnl > 0:
346
+ char = '█' # Profit
347
+ elif pnl < 0:
348
+ char = '░' # Loss
349
+ else:
350
+ char = '─' # Breakeven
351
+ elif abs(level) < (max_pnl - min_pnl) * 0.05:
352
+ char = '─' # Zero line
353
+ elif abs(price - current_price) < (price_range[-1] - price_range[0]) * 0.02:
354
+ char = '│' # Current price line
355
+ else:
356
+ char = ' '
357
+
358
+ row += char
359
+
360
+ lines.append(row)
361
+
362
+ lines.append(" " * 6 + "|" + "-" * (width - 6))
363
+ lines.append(" " * 6 + f"${price_range[0]:.0f}" + " " * (width - 20) + f"${price_range[-1]:.0f}")
364
+ lines.append(" " * (width // 2 - 5) + "Stock Price")
365
+
366
+ return "\n".join(lines)
367
+ ```
368
+
369
+ **Example Output:**
370
+ ```
371
+ P/L Diagram: Bull Call Spread $180/$185
372
+ ------------------------------------------------------------
373
+ +2500 | ████████████████████
374
+ | ██████
375
+ | ██████
376
+ | ██████
377
+ 0 | ──────
378
+ | ░░░░░░
379
+ |░░░░░░
380
+ -2500 |░░░░░
381
+ |____________________________________________________________
382
+ $126 $180 $234
383
+ Stock Price
384
+
385
+ Legend: █ Profit ░ Loss ── Breakeven │ Current Price
386
+ ```
387
+
388
+ ### Step 7: Strategy-Specific Analysis
389
+
390
+ Provide tailored guidance based on strategy type:
391
+
392
+ **Covered Call:**
393
+ ```
394
+ Income Strategy: Generate premium while capping upside
395
+
396
+ Setup:
397
+ - Own 100 shares of AAPL @ $180
398
+ - Sell 1x $185 call (30 DTE) for $3.50
399
+
400
+ Max Profit: $850 (Stock at $185+ = $5 stock gain + $3.50 premium)
401
+ Max Loss: Unlimited downside (stock ownership)
402
+ Breakeven: $176.50 (Cost basis - premium received)
403
+
404
+ Greeks:
405
+ - Delta: -0.30 (reduces stock delta from 1.00 to 0.70)
406
+ - Theta: +$8/day (time decay benefit)
407
+
408
+ Assignment Risk: If AAPL > $185 at expiration, shares called away
409
+
410
+ When to Use:
411
+ - Neutral to slightly bullish
412
+ - Want income in sideways market
413
+ - Willing to sell stock at $185
414
+
415
+ Exit Plan:
416
+ - Buy back call if stock rallies strongly (preserve upside)
417
+ - Let expire if stock stays below $185
418
+ - Roll to next month if want to keep shares
419
+ ```
420
+
421
+ **Protective Put:**
422
+ ```
423
+ Insurance Strategy: Limit downside while keeping upside
424
+
425
+ Setup:
426
+ - Own 100 shares of AAPL @ $180
427
+ - Buy 1x $175 put (30 DTE) for $2.00
428
+
429
+ Max Profit: Unlimited (stock can rise infinitely)
430
+ Max Loss: -$7 per share = ($5 stock loss + $2 premium)
431
+ Breakeven: $182 (Cost basis + premium paid)
432
+
433
+ Greeks:
434
+ - Delta: +0.80 (stock delta 1.00 - put delta 0.20)
435
+ - Theta: -$6/day (time decay cost)
436
+
437
+ Protection: Guaranteed to sell at $175, no matter how far stock falls
438
+
439
+ When to Use:
440
+ - Own stock, worried about short-term drop
441
+ - Earnings coming up, want protection
442
+ - Alternative to stop-loss (can't be stopped out)
443
+
444
+ Cost: "Insurance premium" - typically 1-3% of stock value
445
+
446
+ Exit Plan:
447
+ - Let expire worthless if stock rises (cost of insurance)
448
+ - Exercise put if stock falls below $175
449
+ - Sell put if stock drops but want to keep shares
450
+ ```
451
+
452
+ **Iron Condor:**
453
+ ```
454
+ Range-Bound Strategy: Profit from low volatility
455
+
456
+ Setup (example on AAPL @ $180):
457
+ - Sell $175 put for $1.50
458
+ - Buy $170 put for $0.50
459
+ - Sell $185 call for $1.50
460
+ - Buy $190 call for $0.50
461
+
462
+ Net Credit: $2.00 ($200 per iron condor)
463
+
464
+ Max Profit: $200 (if stock stays between $175-$185)
465
+ Max Loss: $300 (if stock moves outside $170-$190)
466
+ Breakevens: $173 and $187
467
+ Profit Range: $175 to $185 (58% probability)
468
+
469
+ Greeks:
470
+ - Delta: ~0 (market neutral)
471
+ - Theta: +$15/day (time decay benefit)
472
+ - Vega: -$25 (short volatility)
473
+
474
+ When to Use:
475
+ - Expect low volatility, range-bound movement
476
+ - After big move, think consolidation
477
+ - High IV environment (sell expensive options)
478
+
479
+ Risk: Unlimited if one side tested
480
+ - Use stop loss at 2x credit received (exit at -$400)
481
+
482
+ Adjustments:
483
+ - If tested on one side, roll that side out in time
484
+ - Close early at 50% max profit to reduce tail risk
485
+ ```
486
+
487
+ ### Step 8: Earnings Strategy Analysis
488
+
489
+ **Integration with Earnings Calendar:**
490
+
491
+ When user asks about earnings strategies, fetch earnings date:
492
+ ```python
493
+ from earnings_calendar import get_next_earnings_date
494
+
495
+ earnings_date = get_next_earnings_date("AAPL")
496
+ days_to_earnings = (earnings_date - today).days
497
+ ```
498
+
499
+ **Pre-Earnings Strategies:**
500
+
501
+ **Long Straddle/Strangle:**
502
+ ```
503
+ Setup (AAPL @ $180, earnings in 7 days):
504
+ - Buy $180 call for $5.00
505
+ - Buy $180 put for $4.50
506
+ - Total Cost: $9.50
507
+
508
+ Thesis: Expect big move (>5%) but unsure of direction
509
+
510
+ Breakevens: $170.50 and $189.50
511
+ Profit if: Stock moves >$9.50 in either direction
512
+
513
+ Greeks:
514
+ - Delta: ~0 (neutral)
515
+ - Vega: +$50 (long volatility)
516
+ - Theta: -$25/day (time decay hurts)
517
+
518
+ IV Crush Risk: ⚠️ CRITICAL
519
+ - Pre-earnings IV: 40% (elevated)
520
+ - Post-earnings IV: 25% (typical)
521
+ - IV drop: -15 points = -$750 loss even if stock doesn't move!
522
+
523
+ Analysis:
524
+ - Implied Move: √(DTE/365) × IV × Stock Price
525
+ = √(7/365) × 0.40 × 180 = ±$10.50
526
+ - Breakeven Move Needed: ±$9.50
527
+ - Probability Profit: ~30-40% (implied move > breakeven move)
528
+
529
+ Recommendation:
530
+ ✅ Consider if you expect >10% move (larger than implied)
531
+ ❌ Avoid if expect normal ~5% earnings move (IV crush will hurt)
532
+
533
+ Alternative: Buy further OTM strikes to reduce cost
534
+ - $175/$185 strangle cost $4.00 (need >$8 move, but cheaper)
535
+ ```
536
+
537
+ **Short Iron Condor:**
538
+ ```
539
+ Setup (AAPL @ $180, earnings in 7 days):
540
+ - Sell $170/$175 put spread for $2.00
541
+ - Sell $185/$190 call spread for $2.00
542
+ - Net Credit: $4.00
543
+
544
+ Thesis: Expect stock to stay range-bound ($175-$185)
545
+
546
+ Profit Zone: $175 to $185
547
+ Max Profit: $400
548
+ Max Loss: $100
549
+
550
+ IV Crush Benefit: ✅
551
+ - Short high IV before earnings
552
+ - IV drops after earnings → profit on vega
553
+ - Even if stock moves slightly, IV drop helps
554
+
555
+ Greeks:
556
+ - Delta: ~0 (market neutral)
557
+ - Vega: -$40 (short volatility - good here!)
558
+ - Theta: +$20/day
559
+
560
+ Recommendation:
561
+ ✅ Good if expect normal earnings reaction (<8% move)
562
+ ✅ Benefit from IV crush regardless of direction
563
+ ⚠️ Risk if stock gaps outside range (>10% move)
564
+
565
+ Exit Plan:
566
+ - Close next day if IV crushed (capture profit early)
567
+ - Use stop loss if one side tested (-2x credit)
568
+ ```
569
+
570
+ ### Step 9: Risk Management Guidance
571
+
572
+ **Position Sizing:**
573
+
574
+ ```
575
+ Account Size: $50,000
576
+ Risk Tolerance: 2% per trade = $1,000 max risk
577
+
578
+ Iron Condor Example:
579
+ - Max loss per spread: $300
580
+ - Max contracts: $1,000 / $300 = 3 contracts
581
+ - Actual position: 3 iron condors
582
+
583
+ Bull Call Spread Example:
584
+ - Debit paid: $2.50 per spread
585
+ - Max contracts: $1,000 / $250 = 4 contracts
586
+ - Actual position: 4 spreads
587
+ ```
588
+
589
+ **Portfolio Greeks Management:**
590
+
591
+ ```
592
+ Portfolio Guidelines:
593
+ - Delta: -10 to +10 (mostly neutral)
594
+ - Theta: Positive preferred (seller advantage)
595
+ - Vega: Monitor if >$500 (IV risk)
596
+
597
+ Current Portfolio:
598
+ - Delta: +5 (slightly bullish)
599
+ - Theta: +$150/day (collecting $150 daily)
600
+ - Vega: -$300 (short volatility)
601
+
602
+ Interpretation:
603
+ ✅ Neutral delta (safe)
604
+ ✅ Positive theta (time working for you)
605
+ ⚠️ Short vega: If IV spikes, lose $300 per 1% IV increase
606
+ → Reduce short premium positions if VIX rising
607
+ ```
608
+
609
+ **Adjustments and Exits:**
610
+
611
+ ```
612
+ Exit Rules by Strategy:
613
+
614
+ Covered Call:
615
+ - Profit: 50-75% of max profit
616
+ - Loss: Stock drops >5%, buy back call to preserve upside
617
+ - Time: 7-10 DTE, roll to avoid assignment
618
+
619
+ Spreads:
620
+ - Profit: 50% of max profit (close early, reduce tail risk)
621
+ - Loss: 2x debit paid (cut losses early)
622
+ - Time: 21 DTE, close or roll (avoid gamma risk)
623
+
624
+ Iron Condor:
625
+ - Profit: 50% of credit (close early common)
626
+ - Loss: One side tested, 2x credit lost
627
+ - Adjustment: Roll tested side out in time
628
+
629
+ Straddle/Strangle:
630
+ - Profit: Stock moved >breakeven, close immediately
631
+ - Loss: Theta eating position, stock not moving
632
+ - Time: Day after earnings (if earnings play)
633
+ ```
634
+
635
+ ## Output Format
636
+
637
+ **Strategy Analysis Report Template:**
638
+
639
+ ```markdown
640
+ # Options Strategy Analysis: [Strategy Name]
641
+
642
+ **Symbol:** [TICKER]
643
+ **Strategy:** [Strategy Type]
644
+ **Expiration:** [Date] ([DTE] days)
645
+ **Contracts:** [Number]
646
+
647
+ ---
648
+
649
+ ## Strategy Setup
650
+
651
+ ### Leg Details
652
+ | Leg | Type | Strike | Price | Position | Quantity |
653
+ |-----|------|--------|-------|----------|----------|
654
+ | 1 | Call | $180 | $5.00 | Long | 1 |
655
+ | 2 | Call | $185 | $2.50 | Short | 1 |
656
+
657
+ **Net Debit/Credit:** $2.50 debit ($250 total for 1 spread)
658
+
659
+ ---
660
+
661
+ ## Profit/Loss Analysis
662
+
663
+ **Max Profit:** $250 (at $185+)
664
+ **Max Loss:** -$250 (at $180-)
665
+ **Breakeven:** $182.50
666
+ **Risk/Reward Ratio:** 1:1
667
+
668
+ **Probability Analysis:**
669
+ - Probability of Profit: ~55% (stock above $182.50)
670
+ - Expected Value: $25 (simplified)
671
+
672
+ ---
673
+
674
+ ## P/L Diagram
675
+
676
+ [ASCII art diagram here]
677
+
678
+ ---
679
+
680
+ ## Greeks Analysis
681
+
682
+ ### Position Greeks (1 spread)
683
+ - **Delta:** +0.20 (gains $20 if stock +$1)
684
+ - **Gamma:** +0.03 (delta increases by 0.03 if stock +$1)
685
+ - **Theta:** -$5/day (loses $5 per day from time decay)
686
+ - **Vega:** +$8 (gains $8 if IV increases 1%)
687
+
688
+ ### Interpretation
689
+ - **Directional Bias:** Slightly bullish (positive delta)
690
+ - **Time Decay:** Working against you (negative theta)
691
+ - **Volatility:** Benefits from IV increase (positive vega)
692
+
693
+ ---
694
+
695
+ ## Risk Assessment
696
+
697
+ ### Maximum Risk
698
+ **Scenario:** Stock falls below $180
699
+ **Max Loss:** -$250 (100% of premium paid)
700
+ **% of Account:** 0.5% (if $50k account)
701
+
702
+ ### Assignment Risk
703
+ **Early Assignment:** Low (calls have time value)
704
+ **At Expiration:** Manage positions if in-the-money
705
+
706
+ ---
707
+
708
+ ## Trade Management
709
+
710
+ ### Entry
711
+ ✅ Enter if: [Conditions]
712
+ - Stock price $178-$182
713
+ - IV below 30%
714
+ - >21 DTE
715
+
716
+ ### Profit Taking
717
+ - **Target 1:** 50% profit ($125) - Close half
718
+ - **Target 2:** 75% profit ($187.50) - Close all
719
+
720
+ ### Stop Loss
721
+ - **Trigger:** Stock falls below $177 (-$150 loss)
722
+ - **Action:** Close position immediately
723
+
724
+ ### Adjustments
725
+ - If stock rallies to $184, consider rolling short call higher
726
+ - If stock drops to $179, add second spread at $175/$180
727
+
728
+ ---
729
+
730
+ ## Suitability
731
+
732
+ ### When to Use This Strategy
733
+ ✅ Moderately bullish on AAPL
734
+ ✅ Expect upside to $185-$190
735
+ ✅ Want defined risk
736
+ ✅ 21-45 DTE timeframe
737
+
738
+ ### When to Avoid
739
+ ❌ Very bullish (buy stock or long call instead)
740
+ ❌ High IV environment (wait for IV to drop)
741
+ ❌ Earnings in <7 days (IV crush risk)
742
+
743
+ ---
744
+
745
+ ## Alternatives Comparison
746
+
747
+ | Strategy | Max Profit | Max Loss | Complexity | When Better |
748
+ |----------|-----------|----------|------------|-------------|
749
+ | Bull Call Spread | $250 | -$250 | Medium | Moderately bullish |
750
+ | Long Call | Unlimited | -$500 | Low | Very bullish |
751
+ | Covered Call | $850 | Unlimited | Medium | Own stock already |
752
+ | Bull Put Spread | $300 | -$200 | Medium | Want credit spread |
753
+
754
+ **Recommendation:** Bull call spread is good balance of risk/reward for moderate bullish thesis.
755
+
756
+ ---
757
+
758
+ *Disclaimer: This is theoretical analysis using Black-Scholes pricing. Actual market prices may differ. Trade at your own risk. Options are complex instruments with significant loss potential.*
759
+ ```
760
+
761
+ **File Naming Convention:**
762
+ ```
763
+ options_analysis_[TICKER]_[STRATEGY]_[DATE].md
764
+ ```
765
+
766
+ Example: `options_analysis_AAPL_BullCallSpread_2025-11-08.md`
767
+
768
+ ## Key Principles
769
+
770
+ ### Theoretical Pricing Limitations
771
+
772
+ **What Users Should Know:**
773
+ 1. **Black-Scholes Assumptions:**
774
+ - European-style options (can't exercise early)
775
+ - Constant volatility (IV changes in reality)
776
+ - No transaction costs
777
+ - Continuous trading
778
+
779
+ 2. **Real vs Theoretical:**
780
+ - Bid-ask spread: Actual cost higher than theoretical
781
+ - American options: Can be exercised early (especially ITM puts)
782
+ - Liquidity: Wide markets on illiquid options
783
+ - Dividends: Ex-dividend dates affect pricing
784
+
785
+ 3. **Best Practices:**
786
+ - Use as educational tool and comparative analysis
787
+ - Get real quotes from broker before trading
788
+ - Understand theoretical price ≈ mid-market price
789
+ - Account for commissions and slippage
790
+
791
+ ### Volatility Guidance
792
+
793
+ **Historical vs Implied Volatility:**
794
+
795
+ ```
796
+ Historical Volatility (HV): What happened
797
+ - Calculated from past price movements
798
+ - Objective, based on data
799
+ - Available for free (FMP API)
800
+
801
+ Implied Volatility (IV): What market expects
802
+ - Derived from option prices
803
+ - Subjective, based on supply/demand
804
+ - Requires live options data (user provides)
805
+
806
+ Comparison:
807
+ - IV > HV: Options expensive (consider selling)
808
+ - IV < HV: Options cheap (consider buying)
809
+ - IV = HV: Fairly priced
810
+ ```
811
+
812
+ **IV Percentile:**
813
+
814
+ User provides current IV, we calculate percentile:
815
+ ```python
816
+ # Fetch 1-year HV data
817
+ historical_hvs = calculate_hv_series(prices_1yr, window=30)
818
+
819
+ # Calculate IV percentile
820
+ iv_percentile = percentileofscore(historical_hvs, current_iv)
821
+
822
+ if iv_percentile > 75:
823
+ guidance = "High IV - consider selling premium (credit spreads, iron condors)"
824
+ elif iv_percentile < 25:
825
+ guidance = "Low IV - consider buying options (long calls/puts, debit spreads)"
826
+ else:
827
+ guidance = "Normal IV - any strategy appropriate"
828
+ ```
829
+
830
+ ## Integration with Other Skills
831
+
832
+ **Earnings Calendar:**
833
+ - Fetch earnings dates automatically
834
+ - Suggest earnings-specific strategies
835
+ - Calculate days to earnings (DTE critical for IV)
836
+ - Warn about IV crush risk
837
+
838
+ **Technical Analyst:**
839
+ - Use support/resistance for strike selection
840
+ - Trend analysis for directional strategies
841
+ - Breakout potential for straddle/strangle timing
842
+
843
+ **US Stock Analysis:**
844
+ - Fundamental analysis for longer-term strategies (LEAPS)
845
+ - Dividend yield for covered call/put analysis
846
+ - Earnings quality for earnings plays
847
+
848
+ **Bubble Detector:**
849
+ - High bubble risk → focus on protective puts
850
+ - Low risk → bullish strategies
851
+ - Critical risk → avoid long premium (theta hurts)
852
+
853
+ **Portfolio Manager:**
854
+ - Track options positions alongside stock positions
855
+ - Aggregate Greeks across portfolio
856
+ - Options as hedging tool for stock positions
857
+
858
+ ## Important Notes
859
+
860
+ - **All analysis in English**
861
+ - **Educational focus**: Strategies explained clearly
862
+ - **Theoretical pricing**: Black-Scholes approximation
863
+ - **User IV input**: Optional, defaults to HV
864
+ - **No real-time data required**: FMP Free tier sufficient
865
+ - **Dependencies**: Python 3.8+, numpy, scipy, pandas
866
+
867
+ ## Common Use Cases
868
+
869
+ **Use Case 1: Learn Strategy**
870
+ ```
871
+ User: "Explain a covered call"
872
+
873
+ Workflow:
874
+ 1. Load strategy reference (references/strategies_guide.md)
875
+ 2. Explain concept, risk/reward, when to use
876
+ 3. Simulate example on AAPL
877
+ 4. Show P/L diagram
878
+ 5. Compare to alternatives
879
+ ```
880
+
881
+ **Use Case 2: Analyze Specific Trade**
882
+ ```
883
+ User: "Analyze $180/$185 bull call spread on AAPL, 30 days"
884
+
885
+ Workflow:
886
+ 1. Fetch AAPL price from FMP
887
+ 2. Calculate HV or ask user for IV
888
+ 3. Price both options (Black-Scholes)
889
+ 4. Calculate Greeks
890
+ 5. Simulate P/L
891
+ 6. Generate analysis report
892
+ ```
893
+
894
+ **Use Case 3: Earnings Strategy**
895
+ ```
896
+ User: "Should I trade options before NVDA earnings?"
897
+
898
+ Workflow:
899
+ 1. Fetch NVDA earnings date (Earnings Calendar)
900
+ 2. Calculate days to earnings
901
+ 3. Estimate IV percentile (if user provides IV)
902
+ 4. Suggest straddle/strangle vs iron condor
903
+ 5. Warn about IV crush
904
+ 6. Simulate both strategies
905
+ ```
906
+
907
+ **Use Case 4: Portfolio Greeks Check**
908
+ ```
909
+ User: "What are my total portfolio Greeks?"
910
+
911
+ Workflow:
912
+ 1. User provides current positions
913
+ 2. Calculate Greeks for each position
914
+ 3. Sum Greeks across portfolio
915
+ 4. Assess overall exposure
916
+ 5. Suggest adjustments if needed
917
+ ```
918
+
919
+ ## Troubleshooting
920
+
921
+ **Problem: IV not available**
922
+ - Solution: Use HV as proxy, note to user
923
+ - Ask user to provide IV from broker platform
924
+
925
+ **Problem: Negative option price**
926
+ - Solution: Check inputs (strike vs stock price)
927
+ - Deep ITM options may have numerical issues
928
+
929
+ **Problem: Greeks seem wrong**
930
+ - Solution: Verify inputs (T, sigma, r)
931
+ - Check if using annual vs daily values
932
+
933
+ **Problem: Strategy too complex**
934
+ - Solution: Break into legs, analyze separately
935
+ - Refer to references for strategy details
936
+
937
+ ## Resources
938
+
939
+ **References:**
940
+ - `references/strategies_guide.md` - All 17+ strategies explained
941
+ - `references/greeks_explained.md` - Greeks deep dive
942
+ - `references/volatility_guide.md` - HV vs IV, when to trade
943
+
944
+ **Scripts:**
945
+ - `scripts/black_scholes.py` - Pricing engine and Greeks
946
+ - `scripts/strategy_analyzer.py` - Strategy simulation
947
+ - `scripts/earnings_strategy.py` - Earnings-specific analysis
948
+
949
+ **External Resources:**
950
+ - Options Playbook: https://www.optionsplaybook.com/
951
+ - CBOE Education: https://www.cboe.com/education/
952
+ - Black-Scholes Calculator: Various online tools for verification
953
+
954
+ ---
955
+
956
+ **Version**: 1.0
957
+ **Last Updated**: 2025-11-08
958
+ **Dependencies**: Python 3.8+, numpy, scipy, pandas, requests
959
+ **API**: FMP API (Free tier sufficient)