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.
- package/.claude/skills/README.md +80 -0
- package/.claude/skills/backtest-expert/SKILL.md +206 -0
- package/.claude/skills/backtest-expert/references/failed_tests.md +236 -0
- package/.claude/skills/backtest-expert/references/methodology.md +227 -0
- package/.claude/skills/breadth-chart-analyst/SKILL.md +583 -0
- package/.claude/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
- package/.claude/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
- package/.claude/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
- package/.claude/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
- package/.claude/skills/canslim-screener/SKILL.md +599 -0
- package/.claude/skills/canslim-screener/references/canslim_methodology.md +606 -0
- package/.claude/skills/canslim-screener/references/fmp_api_endpoints.md +707 -0
- package/.claude/skills/canslim-screener/references/interpretation_guide.md +516 -0
- package/.claude/skills/canslim-screener/references/scoring_system.md +597 -0
- package/.claude/skills/canslim-screener/scripts/calculators/earnings_calculator.py +343 -0
- package/.claude/skills/canslim-screener/scripts/calculators/growth_calculator.py +334 -0
- package/.claude/skills/canslim-screener/scripts/calculators/institutional_calculator.py +347 -0
- package/.claude/skills/canslim-screener/scripts/calculators/leadership_calculator.py +380 -0
- package/.claude/skills/canslim-screener/scripts/calculators/market_calculator.py +244 -0
- package/.claude/skills/canslim-screener/scripts/calculators/new_highs_calculator.py +194 -0
- package/.claude/skills/canslim-screener/scripts/calculators/supply_demand_calculator.py +221 -0
- package/.claude/skills/canslim-screener/scripts/finviz_stock_client.py +227 -0
- package/.claude/skills/canslim-screener/scripts/fmp_client.py +393 -0
- package/.claude/skills/canslim-screener/scripts/report_generator.py +405 -0
- package/.claude/skills/canslim-screener/scripts/scorer.py +625 -0
- package/.claude/skills/canslim-screener/scripts/screen_canslim.py +361 -0
- package/.claude/skills/canslim-screener/scripts/test_institutional_endpoint.py +109 -0
- package/.claude/skills/chart/SKILL.md +20 -0
- package/.claude/skills/dividend-growth-pullback-screener/SKILL.md +322 -0
- package/.claude/skills/dividend-growth-pullback-screener/references/dividend_growth_compounding.md +400 -0
- package/.claude/skills/dividend-growth-pullback-screener/references/fmp_api_guide.md +642 -0
- package/.claude/skills/dividend-growth-pullback-screener/references/rsi_oversold_strategy.md +333 -0
- package/.claude/skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py +1155 -0
- package/.claude/skills/earnings-calendar/SKILL.md +721 -0
- package/.claude/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
- package/.claude/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
- package/.claude/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
- package/.claude/skills/earnings-calendar/scripts/generate_report.py +366 -0
- package/.claude/skills/economic-calendar-fetcher/SKILL.md +365 -0
- package/.claude/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
- package/.claude/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
- package/.claude/skills/ftd-detector/SKILL.md +147 -0
- package/.claude/skills/ftd-detector/references/ftd_methodology.md +188 -0
- package/.claude/skills/ftd-detector/references/post_ftd_guide.md +185 -0
- package/.claude/skills/ftd-detector/scripts/fmp_client.py +158 -0
- package/.claude/skills/ftd-detector/scripts/ftd_detector.py +280 -0
- package/.claude/skills/ftd-detector/scripts/post_ftd_monitor.py +404 -0
- package/.claude/skills/ftd-detector/scripts/rally_tracker.py +508 -0
- package/.claude/skills/ftd-detector/scripts/report_generator.py +341 -0
- package/.claude/skills/ftd-detector/scripts/tests/conftest.py +9 -0
- package/.claude/skills/ftd-detector/scripts/tests/helpers.py +107 -0
- package/.claude/skills/ftd-detector/scripts/tests/test_post_ftd_monitor.py +311 -0
- package/.claude/skills/ftd-detector/scripts/tests/test_rally_tracker.py +302 -0
- package/.claude/skills/institutional-flow-tracker/README.md +362 -0
- package/.claude/skills/institutional-flow-tracker/SKILL.md +357 -0
- package/.claude/skills/institutional-flow-tracker/references/13f_filings_guide.md +383 -0
- package/.claude/skills/institutional-flow-tracker/references/institutional_investor_types.md +580 -0
- package/.claude/skills/institutional-flow-tracker/references/interpretation_framework.md +573 -0
- package/.claude/skills/institutional-flow-tracker/scripts/analyze_single_stock.py +457 -0
- package/.claude/skills/institutional-flow-tracker/scripts/track_institution_portfolio.py +108 -0
- package/.claude/skills/institutional-flow-tracker/scripts/track_institutional_flow.py +450 -0
- package/.claude/skills/macro-regime-detector/SKILL.md +86 -0
- package/.claude/skills/macro-regime-detector/references/historical_regimes.md +124 -0
- package/.claude/skills/macro-regime-detector/references/indicator_interpretation_guide.md +144 -0
- package/.claude/skills/macro-regime-detector/references/regime_detection_methodology.md +138 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/concentration_calculator.py +165 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/credit_conditions_calculator.py +124 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/equity_bond_calculator.py +198 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/sector_rotation_calculator.py +123 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/size_factor_calculator.py +131 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/utils.py +347 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/yield_curve_calculator.py +279 -0
- package/.claude/skills/macro-regime-detector/scripts/fmp_client.py +134 -0
- package/.claude/skills/macro-regime-detector/scripts/macro_regime_detector.py +278 -0
- package/.claude/skills/macro-regime-detector/scripts/report_generator.py +327 -0
- package/.claude/skills/macro-regime-detector/scripts/scorer.py +574 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/conftest.py +9 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_concentration.py +78 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_credit_conditions.py +59 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_equity_bond.py +74 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_helpers.py +90 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_scorer.py +439 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_sector_rotation.py +78 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_size_factor.py +59 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_utils.py +126 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_yield_curve.py +64 -0
- package/.claude/skills/market-breadth-analyzer/SKILL.md +121 -0
- package/.claude/skills/market-breadth-analyzer/references/breadth_analysis_methodology.md +168 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/bearish_signal_calculator.py +150 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/cycle_calculator.py +168 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/divergence_calculator.py +119 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/historical_context_calculator.py +120 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/ma_crossover_calculator.py +115 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/trend_level_calculator.py +103 -0
- package/.claude/skills/market-breadth-analyzer/scripts/csv_client.py +225 -0
- package/.claude/skills/market-breadth-analyzer/scripts/market_breadth_analyzer.py +307 -0
- package/.claude/skills/market-breadth-analyzer/scripts/report_generator.py +330 -0
- package/.claude/skills/market-breadth-analyzer/scripts/scorer.py +271 -0
- package/.claude/skills/market-environment-analysis/SKILL.md +139 -0
- package/.claude/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
- package/.claude/skills/market-environment-analysis/references/indicators.md +99 -0
- package/.claude/skills/market-environment-analysis/scripts/market_utils.py +127 -0
- package/.claude/skills/market-news-analyst/SKILL.md +714 -0
- package/.claude/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
- package/.claude/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
- package/.claude/skills/market-news-analyst/references/market_event_patterns.md +393 -0
- package/.claude/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
- package/.claude/skills/market-top-detector/SKILL.md +159 -0
- package/.claude/skills/market-top-detector/references/distribution_day_guide.md +100 -0
- package/.claude/skills/market-top-detector/references/historical_tops.md +142 -0
- package/.claude/skills/market-top-detector/references/market_top_methodology.md +167 -0
- package/.claude/skills/market-top-detector/scripts/calculators/__init__.py +17 -0
- package/.claude/skills/market-top-detector/scripts/calculators/breadth_calculator.py +116 -0
- package/.claude/skills/market-top-detector/scripts/calculators/defensive_rotation_calculator.py +127 -0
- package/.claude/skills/market-top-detector/scripts/calculators/distribution_day_calculator.py +161 -0
- package/.claude/skills/market-top-detector/scripts/calculators/index_technical_calculator.py +254 -0
- package/.claude/skills/market-top-detector/scripts/calculators/leading_stock_calculator.py +198 -0
- package/.claude/skills/market-top-detector/scripts/calculators/sentiment_calculator.py +213 -0
- package/.claude/skills/market-top-detector/scripts/fmp_client.py +158 -0
- package/.claude/skills/market-top-detector/scripts/market_top_detector.py +349 -0
- package/.claude/skills/market-top-detector/scripts/report_generator.py +314 -0
- package/.claude/skills/market-top-detector/scripts/scorer.py +473 -0
- package/.claude/skills/market-top-detector/scripts/tests/conftest.py +9 -0
- package/.claude/skills/market-top-detector/scripts/tests/helpers.py +49 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_breadth.py +62 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_defensive_rotation.py +56 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_distribution_day.py +92 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_index_technical.py +73 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_leading_stock.py +57 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_scorer.py +180 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_sentiment.py +64 -0
- package/.claude/skills/options-strategy-advisor/README.md +469 -0
- package/.claude/skills/options-strategy-advisor/SKILL.md +959 -0
- package/.claude/skills/options-strategy-advisor/scripts/black_scholes.py +495 -0
- package/.claude/skills/pair-trade-screener/README.md +389 -0
- package/.claude/skills/pair-trade-screener/SKILL.md +622 -0
- package/.claude/skills/pair-trade-screener/references/cointegration_guide.md +745 -0
- package/.claude/skills/pair-trade-screener/references/methodology.md +853 -0
- package/.claude/skills/pair-trade-screener/scripts/analyze_spread.py +394 -0
- package/.claude/skills/pair-trade-screener/scripts/find_pairs.py +535 -0
- package/.claude/skills/portfolio-manager/README.md +394 -0
- package/.claude/skills/portfolio-manager/SKILL.md +750 -0
- package/.claude/skills/portfolio-manager/references/alpaca-mcp-setup.md +367 -0
- package/.claude/skills/portfolio-manager/references/asset-allocation.md +502 -0
- package/.claude/skills/portfolio-manager/references/diversification-principles.md +553 -0
- package/.claude/skills/portfolio-manager/references/portfolio-risk-metrics.md +603 -0
- package/.claude/skills/portfolio-manager/references/position-evaluation.md +477 -0
- package/.claude/skills/portfolio-manager/references/rebalancing-strategies.md +715 -0
- package/.claude/skills/portfolio-manager/references/risk-profile-questionnaire.md +608 -0
- package/.claude/skills/portfolio-manager/references/target-allocations.md +558 -0
- package/.claude/skills/portfolio-manager/scripts/test_alpaca_connection.py +286 -0
- package/.claude/skills/scenario-analyzer/SKILL.md +317 -0
- package/.claude/skills/scenario-analyzer/references/headline_event_patterns.md +264 -0
- package/.claude/skills/scenario-analyzer/references/scenario_playbooks.md +320 -0
- package/.claude/skills/scenario-analyzer/references/sector_sensitivity_matrix.md +217 -0
- package/.claude/skills/sector-analyst/SKILL.md +206 -0
- package/.claude/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
- package/.claude/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
- package/.claude/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
- package/.claude/skills/sector-analyst/references/sector_rotation.md +170 -0
- package/.claude/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
- package/.claude/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
- package/.claude/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
- package/.claude/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
- package/.claude/skills/stock/NOTION_SETUP.md +33 -0
- package/.claude/skills/stock/SKILL.md +38 -0
- package/.claude/skills/technical-analyst/SKILL.md +238 -0
- package/.claude/skills/technical-analyst/assets/analysis_template.md +183 -0
- package/.claude/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
- package/.claude/skills/theme-detector/SKILL.md +320 -0
- package/.claude/skills/theme-detector/assets/report_template.md +155 -0
- package/.claude/skills/theme-detector/references/cross_sector_themes.md +252 -0
- package/.claude/skills/theme-detector/references/finviz_industry_codes.md +403 -0
- package/.claude/skills/theme-detector/references/thematic_etf_catalog.md +333 -0
- package/.claude/skills/theme-detector/references/theme_detection_methodology.md +430 -0
- package/.claude/skills/theme-detector/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/theme-detector/scripts/calculators/heat_calculator.py +123 -0
- package/.claude/skills/theme-detector/scripts/calculators/industry_ranker.py +98 -0
- package/.claude/skills/theme-detector/scripts/calculators/lifecycle_calculator.py +172 -0
- package/.claude/skills/theme-detector/scripts/calculators/theme_classifier.py +195 -0
- package/.claude/skills/theme-detector/scripts/calculators/theme_discoverer.py +280 -0
- package/.claude/skills/theme-detector/scripts/config_loader.py +142 -0
- package/.claude/skills/theme-detector/scripts/default_theme_config.py +254 -0
- package/.claude/skills/theme-detector/scripts/etf_scanner.py +609 -0
- package/.claude/skills/theme-detector/scripts/finviz_performance_client.py +131 -0
- package/.claude/skills/theme-detector/scripts/report_generator.py +490 -0
- package/.claude/skills/theme-detector/scripts/representative_stock_selector.py +673 -0
- package/.claude/skills/theme-detector/scripts/scorer.py +87 -0
- package/.claude/skills/theme-detector/scripts/tests/README.md +21 -0
- package/.claude/skills/theme-detector/scripts/tests/conftest.py +9 -0
- package/.claude/skills/theme-detector/scripts/tests/test_config_loader.py +239 -0
- package/.claude/skills/theme-detector/scripts/tests/test_etf_scanner.py +810 -0
- package/.claude/skills/theme-detector/scripts/tests/test_heat_calculator.py +245 -0
- package/.claude/skills/theme-detector/scripts/tests/test_industry_ranker.py +256 -0
- package/.claude/skills/theme-detector/scripts/tests/test_lifecycle_calculator.py +301 -0
- package/.claude/skills/theme-detector/scripts/tests/test_report_generator.py +624 -0
- package/.claude/skills/theme-detector/scripts/tests/test_representative_stock_selector.py +898 -0
- package/.claude/skills/theme-detector/scripts/tests/test_scorer.py +185 -0
- package/.claude/skills/theme-detector/scripts/tests/test_theme_classifier.py +534 -0
- package/.claude/skills/theme-detector/scripts/tests/test_theme_detector_e2e.py +467 -0
- package/.claude/skills/theme-detector/scripts/tests/test_theme_discoverer.py +458 -0
- package/.claude/skills/theme-detector/scripts/tests/test_uptrend_client.py +76 -0
- package/.claude/skills/theme-detector/scripts/theme_detector.py +815 -0
- package/.claude/skills/theme-detector/scripts/themes.yaml +168 -0
- package/.claude/skills/theme-detector/scripts/uptrend_client.py +241 -0
- package/.claude/skills/uptrend-analyzer/SKILL.md +108 -0
- package/.claude/skills/uptrend-analyzer/references/uptrend_methodology.md +215 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/historical_context_calculator.py +122 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/market_breadth_calculator.py +145 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/momentum_calculator.py +183 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/sector_participation_calculator.py +204 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/sector_rotation_calculator.py +218 -0
- package/.claude/skills/uptrend-analyzer/scripts/data_fetcher.py +236 -0
- package/.claude/skills/uptrend-analyzer/scripts/report_generator.py +329 -0
- package/.claude/skills/uptrend-analyzer/scripts/scorer.py +276 -0
- package/.claude/skills/uptrend-analyzer/scripts/uptrend_analyzer.py +219 -0
- package/.claude/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
- package/.claude/skills/us-market-bubble-detector/SKILL.md +545 -0
- package/.claude/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
- package/.claude/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
- package/.claude/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
- package/.claude/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
- package/.claude/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
- package/.claude/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
- package/.claude/skills/us-stock-analysis/SKILL.md +294 -0
- package/.claude/skills/us-stock-analysis/references/financial-metrics.md +172 -0
- package/.claude/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
- package/.claude/skills/us-stock-analysis/references/report-template.md +207 -0
- package/.claude/skills/us-stock-analysis/references/technical-analysis.md +93 -0
- package/.claude/skills/value-dividend-screener/SKILL.md +562 -0
- package/.claude/skills/value-dividend-screener/references/fmp_api_guide.md +348 -0
- package/.claude/skills/value-dividend-screener/references/screening_methodology.md +315 -0
- package/.claude/skills/value-dividend-screener/scripts/screen_dividend_stocks.py +1138 -0
- package/.claude/skills/vcp-screener/SKILL.md +79 -0
- package/.claude/skills/vcp-screener/references/fmp_api_endpoints.md +45 -0
- package/.claude/skills/vcp-screener/references/scoring_system.md +154 -0
- package/.claude/skills/vcp-screener/references/vcp_methodology.md +124 -0
- package/.claude/skills/vcp-screener/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/vcp-screener/scripts/calculators/pivot_proximity_calculator.py +139 -0
- package/.claude/skills/vcp-screener/scripts/calculators/relative_strength_calculator.py +161 -0
- package/.claude/skills/vcp-screener/scripts/calculators/trend_template_calculator.py +228 -0
- package/.claude/skills/vcp-screener/scripts/calculators/vcp_pattern_calculator.py +322 -0
- package/.claude/skills/vcp-screener/scripts/calculators/volume_pattern_calculator.py +121 -0
- package/.claude/skills/vcp-screener/scripts/fmp_client.py +162 -0
- package/.claude/skills/vcp-screener/scripts/report_generator.py +317 -0
- package/.claude/skills/vcp-screener/scripts/scorer.py +155 -0
- package/.claude/skills/vcp-screener/scripts/screen_vcp.py +536 -0
- package/.claude/skills/vcp-screener/scripts/tests/__init__.py +0 -0
- package/.claude/skills/vcp-screener/scripts/tests/conftest.py +9 -0
- package/.claude/skills/vcp-screener/scripts/tests/test_vcp_screener.py +834 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/druckenmiller-strategy-planner.md +300 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/market-news-analyzer.md +239 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/technical-market-analyst.md +187 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/us-market-analyst.md +218 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/weekly-trade-blog-writer.md +318 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/SKILL.md +662 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/SKILL.md +721 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/earnings_calendar_2025-11-02.md +447 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/scripts/generate_report.py +366 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/SKILL.md +365 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/SKILL.md +139 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/references/indicators.md +99 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/scripts/market_utils.py +127 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/SKILL.md +714 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/market_event_patterns.md +393 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/SKILL.md +206 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/references/sector_rotation.md +170 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/SKILL.md +238 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/assets/analysis_template.md +183 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/SKILL.md +545 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/SKILL.md +294 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/financial-metrics.md +172 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/report-template.md +207 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/technical-analysis.md +93 -0
- package/.claude/skills/weekly-trade-strategy/CLAUDE.md +454 -0
- package/.claude/skills/weekly-trade-strategy/README.md +287 -0
- package/.claude/skills/weekly-trade-strategy/blogs/.gitkeep +0 -0
- package/.claude/skills/weekly-trade-strategy/charts/.gitkeep +0 -0
- package/.claude/skills/weekly-trade-strategy/earnings_data.json +10054 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/SKILL.md +662 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/SKILL.md +721 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/earnings_calendar_2025-11-02.md +447 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/scripts/generate_report.py +366 -0
- package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/SKILL.md +365 -0
- package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
- package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/SKILL.md +139 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/references/indicators.md +99 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/scripts/market_utils.py +127 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/SKILL.md +714 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/market_event_patterns.md +393 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/SKILL.md +206 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/references/sector_rotation.md +170 -0
- package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
- package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
- package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
- package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
- package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/SKILL.md +238 -0
- package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/assets/analysis_template.md +183 -0
- package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/SKILL.md +545 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/SKILL.md +294 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/financial-metrics.md +172 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/report-template.md +207 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/technical-analysis.md +93 -0
- package/.mcp.json +3 -0
- package/cli.mjs +16 -16
- package/package.json +4 -2
|
@@ -0,0 +1,469 @@
|
|
|
1
|
+
# Options Strategy Advisor
|
|
2
|
+
|
|
3
|
+
Educational options trading tool providing theoretical pricing, strategy analysis, and risk management guidance using Black-Scholes model.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Options Strategy Advisor helps traders understand and analyze options strategies without requiring expensive real-time options data. It uses theoretical pricing models (Black-Scholes) combined with free stock market data (FMP API) to simulate strategies and calculate Greeks.
|
|
8
|
+
|
|
9
|
+
**Key Features:**
|
|
10
|
+
- ✅ Black-Scholes pricing engine
|
|
11
|
+
- ✅ All Greeks calculation (Delta, Gamma, Theta, Vega, Rho)
|
|
12
|
+
- ✅ 17+ options strategies supported
|
|
13
|
+
- ✅ P/L simulation and visualization
|
|
14
|
+
- ✅ Earnings strategy integration
|
|
15
|
+
- ✅ Historical volatility calculation
|
|
16
|
+
- ✅ Risk management guidance
|
|
17
|
+
|
|
18
|
+
## Why This Approach?
|
|
19
|
+
|
|
20
|
+
**No expensive data subscriptions needed:**
|
|
21
|
+
- Real-time options data: $99-$500/month (Polygon.io, Intrinio)
|
|
22
|
+
- FMP API Free tier: $0/month (250 requests/day)
|
|
23
|
+
|
|
24
|
+
**Educational focus:**
|
|
25
|
+
- Learn how strategies work
|
|
26
|
+
- Understand Greeks and risk metrics
|
|
27
|
+
- Compare strategies side-by-side
|
|
28
|
+
|
|
29
|
+
**Practical application:**
|
|
30
|
+
- Theoretical prices ≈ market mid-prices
|
|
31
|
+
- User can input actual IV from broker
|
|
32
|
+
- Good for strategy planning and education
|
|
33
|
+
|
|
34
|
+
## Supported Strategies
|
|
35
|
+
|
|
36
|
+
### Income Strategies
|
|
37
|
+
1. **Covered Call** - Generate income from stock holdings
|
|
38
|
+
2. **Cash-Secured Put** - Get paid to buy stock
|
|
39
|
+
3. **Poor Man's Covered Call** - Capital-efficient covered call
|
|
40
|
+
|
|
41
|
+
### Protection Strategies
|
|
42
|
+
4. **Protective Put** - Insurance for stock positions
|
|
43
|
+
5. **Collar** - Limited risk/reward protection
|
|
44
|
+
|
|
45
|
+
### Directional Strategies
|
|
46
|
+
6. **Bull Call Spread** - Limited risk bullish play
|
|
47
|
+
7. **Bull Put Spread** - Credit spread for bullish view
|
|
48
|
+
8. **Bear Call Spread** - Credit spread for bearish view
|
|
49
|
+
9. **Bear Put Spread** - Limited risk bearish play
|
|
50
|
+
|
|
51
|
+
### Volatility Strategies
|
|
52
|
+
10. **Long Straddle** - Profit from big moves
|
|
53
|
+
11. **Long Strangle** - Cheaper straddle, bigger move needed
|
|
54
|
+
12. **Short Straddle** - Profit from no movement (high risk)
|
|
55
|
+
13. **Short Strangle** - Wider range straddle
|
|
56
|
+
|
|
57
|
+
### Range-Bound Strategies
|
|
58
|
+
14. **Iron Condor** - Profit from range-bound trading
|
|
59
|
+
15. **Iron Butterfly** - Tight range profit
|
|
60
|
+
|
|
61
|
+
### Advanced Strategies
|
|
62
|
+
16. **Calendar Spread** - Time decay play
|
|
63
|
+
17. **Diagonal Spread** - Directional + time decay
|
|
64
|
+
|
|
65
|
+
## Installation
|
|
66
|
+
|
|
67
|
+
### Prerequisites
|
|
68
|
+
- Python 3.8+
|
|
69
|
+
- FMP API key (free tier sufficient)
|
|
70
|
+
|
|
71
|
+
### Install Dependencies
|
|
72
|
+
```bash
|
|
73
|
+
pip install numpy scipy requests pandas
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Get FMP API Key
|
|
77
|
+
1. Visit https://financialmodelingprep.com/developer/docs
|
|
78
|
+
2. Sign up for free account
|
|
79
|
+
3. Copy API key
|
|
80
|
+
4. Set environment variable:
|
|
81
|
+
```bash
|
|
82
|
+
export FMP_API_KEY="your_key_here"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Quick Start
|
|
86
|
+
|
|
87
|
+
### Test Black-Scholes Pricer
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
python scripts/black_scholes.py
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Example Output:**
|
|
94
|
+
```
|
|
95
|
+
BLACK-SCHOLES OPTIONS PRICER - EXAMPLE
|
|
96
|
+
======================================================================
|
|
97
|
+
|
|
98
|
+
Input Parameters:
|
|
99
|
+
Stock Price: $180.00
|
|
100
|
+
Strike Price: $185.00
|
|
101
|
+
Days to Expiration: 30
|
|
102
|
+
Volatility: 25.0%
|
|
103
|
+
Risk-Free Rate: 5.30%
|
|
104
|
+
Dividend Yield: 1.0%
|
|
105
|
+
|
|
106
|
+
======================================================================
|
|
107
|
+
CALL OPTION
|
|
108
|
+
======================================================================
|
|
109
|
+
Price: $2.45
|
|
110
|
+
Intrinsic Value: $0.00
|
|
111
|
+
Time Value: $2.45
|
|
112
|
+
|
|
113
|
+
Greeks:
|
|
114
|
+
Delta: 0.3654 ($36.54 per $1 move)
|
|
115
|
+
Gamma: 0.0234 (delta changes by 0.0234)
|
|
116
|
+
Theta: -$0.18/day (loses $0.18 per day)
|
|
117
|
+
Vega: $0.25 per 1% IV (gains $0.25 if IV +1%)
|
|
118
|
+
Rho: $0.12 per 1% rate (gains $0.12 if rate +1%)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Use in Your Code
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
from scripts.black_scholes import OptionPricer
|
|
125
|
+
|
|
126
|
+
# Initialize pricer
|
|
127
|
+
pricer = OptionPricer(
|
|
128
|
+
S=180, # Stock price
|
|
129
|
+
K=185, # Strike price
|
|
130
|
+
T=30/365, # Time to expiration (years)
|
|
131
|
+
r=0.053, # Risk-free rate (5.3%)
|
|
132
|
+
sigma=0.25, # Volatility (25%)
|
|
133
|
+
q=0.01 # Dividend yield (1%)
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
# Get call option price
|
|
137
|
+
call_price = pricer.call_price()
|
|
138
|
+
print(f"Call Price: ${call_price:.2f}")
|
|
139
|
+
|
|
140
|
+
# Get all Greeks for call
|
|
141
|
+
call_greeks = pricer.get_all_greeks('call')
|
|
142
|
+
print(f"Delta: {call_greeks['delta']:.4f}")
|
|
143
|
+
print(f"Gamma: {call_greeks['gamma']:.4f}")
|
|
144
|
+
print(f"Theta: ${call_greeks['theta']:.2f}/day")
|
|
145
|
+
print(f"Vega: ${call_greeks['vega']:.2f} per 1%")
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Calculate Historical Volatility
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
from scripts.black_scholes import (
|
|
152
|
+
calculate_historical_volatility,
|
|
153
|
+
fetch_historical_prices_for_hv
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
# Fetch prices from FMP
|
|
157
|
+
api_key = "your_key"
|
|
158
|
+
prices = fetch_historical_prices_for_hv("AAPL", api_key, days=90)
|
|
159
|
+
|
|
160
|
+
# Calculate 30-day HV
|
|
161
|
+
hv = calculate_historical_volatility(prices, window=30)
|
|
162
|
+
print(f"30-Day HV: {hv*100:.2f}%")
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Understanding the Metrics
|
|
166
|
+
|
|
167
|
+
### Option Price Components
|
|
168
|
+
|
|
169
|
+
**Intrinsic Value:**
|
|
170
|
+
- Call: max(0, Stock Price - Strike Price)
|
|
171
|
+
- Put: max(0, Strike Price - Stock Price)
|
|
172
|
+
|
|
173
|
+
**Time Value:**
|
|
174
|
+
- Option Price - Intrinsic Value
|
|
175
|
+
- Decays to $0 at expiration
|
|
176
|
+
|
|
177
|
+
### The Greeks
|
|
178
|
+
|
|
179
|
+
**Delta (Δ)** - Directional Exposure
|
|
180
|
+
```
|
|
181
|
+
Range: 0 to 1 (calls), -1 to 0 (puts)
|
|
182
|
+
Meaning: Change in option price per $1 stock move
|
|
183
|
+
|
|
184
|
+
Example: Δ = 0.50
|
|
185
|
+
→ If stock +$1, option +$0.50
|
|
186
|
+
→ If stock -$1, option -$0.50
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Gamma (Γ)** - Delta Acceleration
|
|
190
|
+
```
|
|
191
|
+
Meaning: Change in delta per $1 stock move
|
|
192
|
+
Peak: ATM options
|
|
193
|
+
Low: Deep ITM or OTM
|
|
194
|
+
|
|
195
|
+
Example: Γ = 0.05, Δ currently = 0.50
|
|
196
|
+
→ If stock +$1, delta becomes 0.55
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Theta (Θ)** - Time Decay
|
|
200
|
+
```
|
|
201
|
+
Meaning: Change in option price per day
|
|
202
|
+
Sign: Usually negative (options lose value over time)
|
|
203
|
+
Peak: Last 30 days before expiration
|
|
204
|
+
|
|
205
|
+
Example: Θ = -$0.15/day
|
|
206
|
+
→ Tomorrow, option loses $0.15 if nothing else changes
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**Vega (ν)** - Volatility Sensitivity
|
|
210
|
+
```
|
|
211
|
+
Meaning: Change in option price per 1% IV change
|
|
212
|
+
Sign: Always positive (options gain value when vol increases)
|
|
213
|
+
|
|
214
|
+
Example: ν = $0.25 per 1%
|
|
215
|
+
→ If IV increases from 25% to 26%, option +$0.25
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
**Rho (ρ)** - Interest Rate Sensitivity
|
|
219
|
+
```
|
|
220
|
+
Meaning: Change in option price per 1% rate change
|
|
221
|
+
Sign: Positive for calls, negative for puts
|
|
222
|
+
Impact: Usually small unless long-dated options
|
|
223
|
+
|
|
224
|
+
Example: ρ = $0.10 per 1%
|
|
225
|
+
→ If interest rate increases 1%, option +$0.10
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Volatility: HV vs IV
|
|
229
|
+
|
|
230
|
+
**Historical Volatility (HV):**
|
|
231
|
+
- Calculated from past price movements
|
|
232
|
+
- Objective, based on actual data
|
|
233
|
+
- Available free (from price data)
|
|
234
|
+
|
|
235
|
+
**Implied Volatility (IV):**
|
|
236
|
+
- Derived from option market prices
|
|
237
|
+
- Subjective, based on supply/demand
|
|
238
|
+
- Requires real-time options data (or user input)
|
|
239
|
+
|
|
240
|
+
**Comparison:**
|
|
241
|
+
```
|
|
242
|
+
IV > HV: Options expensive → Consider selling premium
|
|
243
|
+
IV < HV: Options cheap → Consider buying options
|
|
244
|
+
IV = HV: Fairly priced → Any strategy works
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## Common Workflows
|
|
248
|
+
|
|
249
|
+
### 1. Analyze a Strategy
|
|
250
|
+
|
|
251
|
+
```python
|
|
252
|
+
from scripts.black_scholes import OptionPricer
|
|
253
|
+
|
|
254
|
+
# Stock: AAPL @ $180
|
|
255
|
+
# Strategy: Bull Call Spread $180/$185 (30 DTE)
|
|
256
|
+
|
|
257
|
+
# Price long call ($180 strike)
|
|
258
|
+
long_call = OptionPricer(S=180, K=180, T=30/365, r=0.053, sigma=0.25)
|
|
259
|
+
long_price = long_call.call_price()
|
|
260
|
+
long_delta = long_call.call_delta()
|
|
261
|
+
|
|
262
|
+
# Price short call ($185 strike)
|
|
263
|
+
short_call = OptionPricer(S=180, K=185, T=30/365, r=0.053, sigma=0.25)
|
|
264
|
+
short_price = short_call.call_price()
|
|
265
|
+
short_delta = short_call.call_delta()
|
|
266
|
+
|
|
267
|
+
# Strategy metrics
|
|
268
|
+
net_debit = long_price - short_price
|
|
269
|
+
max_profit = (185 - 180) - net_debit
|
|
270
|
+
max_loss = -net_debit
|
|
271
|
+
position_delta = long_delta - short_delta
|
|
272
|
+
|
|
273
|
+
print(f"Bull Call Spread $180/$185")
|
|
274
|
+
print(f"Net Debit: ${net_debit:.2f}")
|
|
275
|
+
print(f"Max Profit: ${max_profit:.2f} (at $185+)")
|
|
276
|
+
print(f"Max Loss: ${max_loss:.2f} (at $180-)")
|
|
277
|
+
print(f"Position Delta: {position_delta:.4f}")
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### 2. Compare IV to HV
|
|
281
|
+
|
|
282
|
+
```python
|
|
283
|
+
# Get HV
|
|
284
|
+
prices = fetch_historical_prices_for_hv("AAPL", api_key, days=90)
|
|
285
|
+
hv = calculate_historical_volatility(prices, window=30)
|
|
286
|
+
|
|
287
|
+
# User provides IV (from broker platform)
|
|
288
|
+
iv = 0.28 # 28% from ThinkorSwim
|
|
289
|
+
|
|
290
|
+
print(f"Historical Volatility: {hv*100:.2f}%")
|
|
291
|
+
print(f"Implied Volatility: {iv*100:.1f}%")
|
|
292
|
+
|
|
293
|
+
if iv > hv * 1.1:
|
|
294
|
+
print("→ Options expensive (IV > HV) - Consider selling premium")
|
|
295
|
+
elif iv < hv * 0.9:
|
|
296
|
+
print("→ Options cheap (IV < HV) - Consider buying options")
|
|
297
|
+
else:
|
|
298
|
+
print("→ Fairly priced")
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### 3. Earnings Strategy
|
|
302
|
+
|
|
303
|
+
Check if earnings coming up (use Earnings Calendar skill):
|
|
304
|
+
```python
|
|
305
|
+
# If earnings in 7 days:
|
|
306
|
+
# - IV typically elevated (30-50% higher)
|
|
307
|
+
# - Consider straddle/strangle (profit from big move)
|
|
308
|
+
# - Or sell iron condor (profit from IV crush)
|
|
309
|
+
|
|
310
|
+
# Example: Long Straddle
|
|
311
|
+
straddle_cost = call_price + put_price
|
|
312
|
+
breakeven_up = stock_price + straddle_cost
|
|
313
|
+
breakeven_down = stock_price - straddle_cost
|
|
314
|
+
|
|
315
|
+
print(f"Straddle Cost: ${straddle_cost:.2f}")
|
|
316
|
+
print(f"Breakevens: ${breakeven_down:.2f} / ${breakeven_up:.2f}")
|
|
317
|
+
print(f"Need {abs(breakeven_up - stock_price)/stock_price*100:.1f}% move to profit")
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## Limitations & Best Practices
|
|
321
|
+
|
|
322
|
+
### Theoretical vs Market Prices
|
|
323
|
+
|
|
324
|
+
**Black-Scholes Assumptions:**
|
|
325
|
+
- European options (can't exercise early)
|
|
326
|
+
- Constant volatility (changes in reality)
|
|
327
|
+
- No transaction costs
|
|
328
|
+
- Continuous trading
|
|
329
|
+
|
|
330
|
+
**Real World Differences:**
|
|
331
|
+
- American options (most stocks) can exercise early
|
|
332
|
+
- Bid-ask spread: Actual cost higher than theoretical mid
|
|
333
|
+
- Commissions and slippage
|
|
334
|
+
- Liquidity: Wide markets on illiquid options
|
|
335
|
+
|
|
336
|
+
### Best Practices
|
|
337
|
+
|
|
338
|
+
**1. Use for Education & Planning:**
|
|
339
|
+
- Learn how strategies work
|
|
340
|
+
- Compare different approaches
|
|
341
|
+
- Understand risk/reward before trading
|
|
342
|
+
|
|
343
|
+
**2. Verify Before Trading:**
|
|
344
|
+
- Get real quotes from your broker
|
|
345
|
+
- Check bid-ask spread
|
|
346
|
+
- Confirm option liquidity (open interest, volume)
|
|
347
|
+
|
|
348
|
+
**3. Input Actual IV:**
|
|
349
|
+
- Theoretical price assumes constant volatility
|
|
350
|
+
- Use current market IV for accuracy
|
|
351
|
+
- Check IV percentile (high/low relative to history)
|
|
352
|
+
|
|
353
|
+
**4. Account for Dividends:**
|
|
354
|
+
- Ex-dividend dates affect option prices
|
|
355
|
+
- Calls lose value, puts gain value on ex-div date
|
|
356
|
+
- Script supports dividend yield input
|
|
357
|
+
|
|
358
|
+
**5. Monitor Greeks:**
|
|
359
|
+
- Delta: Overall directional exposure
|
|
360
|
+
- Theta: Daily time decay (seller advantage)
|
|
361
|
+
- Vega: Volatility risk (watch during earnings)
|
|
362
|
+
- Gamma: Risk of delta changing (avoid near expiration)
|
|
363
|
+
|
|
364
|
+
## Integration with Other Skills
|
|
365
|
+
|
|
366
|
+
**Earnings Calendar:**
|
|
367
|
+
- Fetch earnings dates
|
|
368
|
+
- Identify IV crush opportunities
|
|
369
|
+
- Time earnings strategies
|
|
370
|
+
|
|
371
|
+
**Technical Analyst:**
|
|
372
|
+
- Use support/resistance for strike selection
|
|
373
|
+
- Trend analysis for directional strategies
|
|
374
|
+
- Breakout potential for straddle timing
|
|
375
|
+
|
|
376
|
+
**US Stock Analysis:**
|
|
377
|
+
- Fundamental analysis for LEAPS
|
|
378
|
+
- Dividend yield for covered call/put
|
|
379
|
+
- Earnings quality for earnings plays
|
|
380
|
+
|
|
381
|
+
**Bubble Detector:**
|
|
382
|
+
- High risk → protective puts
|
|
383
|
+
- Low risk → bullish strategies
|
|
384
|
+
- Critical risk → avoid long premium
|
|
385
|
+
|
|
386
|
+
**Portfolio Manager:**
|
|
387
|
+
- Track options with stock positions
|
|
388
|
+
- Aggregate Greeks across portfolio
|
|
389
|
+
- Options as hedging tool
|
|
390
|
+
|
|
391
|
+
## API Usage & Costs
|
|
392
|
+
|
|
393
|
+
**Free Tier Sufficient:**
|
|
394
|
+
- Stock prices: 1 request per symbol
|
|
395
|
+
- Historical prices (HV): 1 request per symbol
|
|
396
|
+
- Dividend data: 1 request per symbol
|
|
397
|
+
|
|
398
|
+
**Example Analysis Cost:**
|
|
399
|
+
```
|
|
400
|
+
Covered Call on AAPL:
|
|
401
|
+
- Current price: 1 request
|
|
402
|
+
- HV calculation: 1 request (90 days data)
|
|
403
|
+
- Dividend yield: 1 request
|
|
404
|
+
Total: 3 requests
|
|
405
|
+
|
|
406
|
+
Daily budget: 250 requests / day
|
|
407
|
+
→ Can analyze ~80 strategies per day
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
## Troubleshooting
|
|
411
|
+
|
|
412
|
+
### Negative Option Price
|
|
413
|
+
**Cause:** Invalid inputs (strike vs stock price)
|
|
414
|
+
**Solution:** Check that inputs make sense
|
|
415
|
+
|
|
416
|
+
### Greeks Seem Wrong
|
|
417
|
+
**Cause:** Using wrong units (annual vs daily)
|
|
418
|
+
**Solution:** Verify T is in years, theta is per day
|
|
419
|
+
|
|
420
|
+
### HV Very Different from IV
|
|
421
|
+
**Normal:** IV reflects future expectations, HV is past
|
|
422
|
+
**Action:** Use IV from broker for more accuracy
|
|
423
|
+
|
|
424
|
+
### Option Price Too High/Low
|
|
425
|
+
**Cause:** Volatility input incorrect
|
|
426
|
+
**Solution:** Verify sigma is annual (e.g., 0.25 for 25%)
|
|
427
|
+
|
|
428
|
+
## Resources
|
|
429
|
+
|
|
430
|
+
### Documentation
|
|
431
|
+
- `SKILL.md` - Complete workflow and strategies
|
|
432
|
+
- `references/strategies_guide.md` - All strategies explained (TBD)
|
|
433
|
+
- `references/greeks_explained.md` - Greeks deep dive (TBD)
|
|
434
|
+
|
|
435
|
+
### External Resources
|
|
436
|
+
- Options Playbook: https://www.optionsplaybook.com/
|
|
437
|
+
- CBOE Education: https://www.cboe.com/education/
|
|
438
|
+
- Black-Scholes Calculator: https://www.option-price.com/
|
|
439
|
+
|
|
440
|
+
### Get Real IV
|
|
441
|
+
- ThinkorSwim (TD Ameritrade): Free
|
|
442
|
+
- TastyTrade: Free
|
|
443
|
+
- Barchart: https://www.barchart.com/options
|
|
444
|
+
- CBOE: http://www.cboe.com/delayedquote/
|
|
445
|
+
|
|
446
|
+
## Future Enhancements
|
|
447
|
+
|
|
448
|
+
**Planned:**
|
|
449
|
+
- Strategy simulation script (complete P/L analysis)
|
|
450
|
+
- P/L diagram generator (ASCII art)
|
|
451
|
+
- Earnings strategy advisor (integrated with Earnings Calendar)
|
|
452
|
+
- Complete strategy reference guides
|
|
453
|
+
|
|
454
|
+
**Contributions Welcome:**
|
|
455
|
+
- Additional strategies
|
|
456
|
+
- Improved volatility models
|
|
457
|
+
- Better visualization tools
|
|
458
|
+
|
|
459
|
+
## License
|
|
460
|
+
|
|
461
|
+
Educational use. Trade at your own risk. Options involve significant risk and are not suitable for all investors.
|
|
462
|
+
|
|
463
|
+
---
|
|
464
|
+
|
|
465
|
+
**Version:** 1.0
|
|
466
|
+
**Last Updated:** 2025-11-08
|
|
467
|
+
**Dependencies:** Python 3.8+, numpy, scipy, requests
|
|
468
|
+
**API:** FMP API (Free tier sufficient)
|
|
469
|
+
**Model:** Black-Scholes (European options pricing)
|