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,367 @@
|
|
|
1
|
+
# Alpaca MCP Server Setup Guide
|
|
2
|
+
|
|
3
|
+
This guide explains how to set up and configure the Alpaca MCP (Model Context Protocol) Server for use with the Portfolio Manager skill.
|
|
4
|
+
|
|
5
|
+
## What is Alpaca MCP Server?
|
|
6
|
+
|
|
7
|
+
The Alpaca MCP Server is a Model Context Protocol server that provides Claude with access to your Alpaca brokerage account data through a standardized interface. This allows the Portfolio Manager skill to fetch real-time portfolio positions, account information, and transaction history directly from your Alpaca account.
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
### 1. Alpaca Account
|
|
12
|
+
|
|
13
|
+
You need an Alpaca brokerage account (paper trading or live):
|
|
14
|
+
|
|
15
|
+
- **Sign up:** https://alpaca.markets/
|
|
16
|
+
- **Paper Trading:** Free, uses simulated money (recommended for testing)
|
|
17
|
+
- **Live Trading:** Real money account (requires funding)
|
|
18
|
+
|
|
19
|
+
### 2. Alpaca API Keys
|
|
20
|
+
|
|
21
|
+
Generate API keys from your Alpaca dashboard:
|
|
22
|
+
|
|
23
|
+
**For Paper Trading:**
|
|
24
|
+
1. Log into Alpaca dashboard: https://app.alpaca.markets/
|
|
25
|
+
2. Navigate to "Paper Trading" account
|
|
26
|
+
3. Go to "Your API Keys" section
|
|
27
|
+
4. Click "Generate New Key"
|
|
28
|
+
5. Save your:
|
|
29
|
+
- **API Key ID** (public key)
|
|
30
|
+
- **Secret Key** (private key - only shown once!)
|
|
31
|
+
|
|
32
|
+
**For Live Trading:**
|
|
33
|
+
1. Log into Alpaca dashboard
|
|
34
|
+
2. Navigate to "Live Trading" account
|
|
35
|
+
3. Go to "Your API Keys" section
|
|
36
|
+
4. Click "Generate New Key"
|
|
37
|
+
5. Save your API credentials
|
|
38
|
+
|
|
39
|
+
⚠️ **Security Note:** Never share your Secret Key or commit it to version control. Treat it like a password.
|
|
40
|
+
|
|
41
|
+
## Installation
|
|
42
|
+
|
|
43
|
+
### Option 1: Using MCP Server (Recommended for Claude Desktop/Web)
|
|
44
|
+
|
|
45
|
+
**Step 1: Install Alpaca MCP Server**
|
|
46
|
+
|
|
47
|
+
The Alpaca MCP server may be available through Claude's MCP marketplace or as a standalone package.
|
|
48
|
+
|
|
49
|
+
Check if available in your Claude environment:
|
|
50
|
+
```bash
|
|
51
|
+
# List available MCP servers
|
|
52
|
+
claude mcp list
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
If not installed, follow Anthropic's MCP server installation guide for your platform.
|
|
56
|
+
|
|
57
|
+
**Step 2: Configure API Keys**
|
|
58
|
+
|
|
59
|
+
Set environment variables with your Alpaca credentials:
|
|
60
|
+
|
|
61
|
+
**On macOS/Linux:**
|
|
62
|
+
```bash
|
|
63
|
+
# For Paper Trading
|
|
64
|
+
export ALPACA_API_KEY="your_api_key_id"
|
|
65
|
+
export ALPACA_SECRET_KEY="your_secret_key"
|
|
66
|
+
export ALPACA_PAPER=true
|
|
67
|
+
|
|
68
|
+
# For Live Trading
|
|
69
|
+
export ALPACA_API_KEY="your_api_key_id"
|
|
70
|
+
export ALPACA_SECRET_KEY="your_secret_key"
|
|
71
|
+
export ALPACA_PAPER=false
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Add to `~/.bashrc` or `~/.zshrc` to persist across sessions:
|
|
75
|
+
```bash
|
|
76
|
+
echo 'export ALPACA_API_KEY="your_api_key_id"' >> ~/.bashrc
|
|
77
|
+
echo 'export ALPACA_SECRET_KEY="your_secret_key"' >> ~/.bashrc
|
|
78
|
+
echo 'export ALPACA_PAPER=true' >> ~/.bashrc
|
|
79
|
+
source ~/.bashrc
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**On Windows (PowerShell):**
|
|
83
|
+
```powershell
|
|
84
|
+
# For Paper Trading
|
|
85
|
+
$env:ALPACA_API_KEY="your_api_key_id"
|
|
86
|
+
$env:ALPACA_SECRET_KEY="your_secret_key"
|
|
87
|
+
$env:ALPACA_PAPER="true"
|
|
88
|
+
|
|
89
|
+
# For Live Trading
|
|
90
|
+
$env:ALPACA_API_KEY="your_api_key_id"
|
|
91
|
+
$env:ALPACA_SECRET_KEY="your_secret_key"
|
|
92
|
+
$env:ALPACA_PAPER="false"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
To persist environment variables on Windows:
|
|
96
|
+
```powershell
|
|
97
|
+
[System.Environment]::SetEnvironmentVariable('ALPACA_API_KEY', 'your_api_key_id', 'User')
|
|
98
|
+
[System.Environment]::SetEnvironmentVariable('ALPACA_SECRET_KEY', 'your_secret_key', 'User')
|
|
99
|
+
[System.Environment]::SetEnvironmentVariable('ALPACA_PAPER', 'true', 'User')
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Step 3: Start MCP Server**
|
|
103
|
+
|
|
104
|
+
The MCP server should start automatically when Claude launches. Verify connection:
|
|
105
|
+
```bash
|
|
106
|
+
# Check MCP server status (if CLI available)
|
|
107
|
+
claude mcp status
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Option 2: Direct API Integration (Alternative)
|
|
111
|
+
|
|
112
|
+
If MCP server is unavailable, the skill can fall back to direct Alpaca API integration using Python:
|
|
113
|
+
|
|
114
|
+
**Step 1: Install Alpaca Python SDK**
|
|
115
|
+
```bash
|
|
116
|
+
pip install alpaca-trade-api
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Step 2: Create Configuration File**
|
|
120
|
+
|
|
121
|
+
Create `~/.alpaca/config.ini`:
|
|
122
|
+
```ini
|
|
123
|
+
[alpaca]
|
|
124
|
+
api_key_id = your_api_key_id
|
|
125
|
+
secret_key = your_secret_key
|
|
126
|
+
base_url = https://paper-api.alpaca.markets # For paper trading
|
|
127
|
+
# base_url = https://api.alpaca.markets # For live trading
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Set proper permissions:
|
|
131
|
+
```bash
|
|
132
|
+
chmod 600 ~/.alpaca/config.ini
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Step 3: Test Connection**
|
|
136
|
+
|
|
137
|
+
Use the provided test script:
|
|
138
|
+
```bash
|
|
139
|
+
python3 portfolio-manager/scripts/test_alpaca_connection.py
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Expected output:
|
|
143
|
+
```
|
|
144
|
+
✓ Successfully connected to Alpaca API
|
|
145
|
+
Account Status: ACTIVE
|
|
146
|
+
Equity: $100,000.00
|
|
147
|
+
Cash: $50,000.00
|
|
148
|
+
Buying Power: $200,000.00
|
|
149
|
+
Positions: 5
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Available MCP Tools
|
|
153
|
+
|
|
154
|
+
Once configured, the Portfolio Manager skill can use these Alpaca MCP tools:
|
|
155
|
+
|
|
156
|
+
### `mcp__alpaca__get_account_info`
|
|
157
|
+
Fetches account summary:
|
|
158
|
+
- Total equity (portfolio value)
|
|
159
|
+
- Cash balance
|
|
160
|
+
- Buying power
|
|
161
|
+
- Account status
|
|
162
|
+
- Day trading buying power (if applicable)
|
|
163
|
+
|
|
164
|
+
### `mcp__alpaca__get_positions`
|
|
165
|
+
Retrieves all open positions:
|
|
166
|
+
- Symbol ticker
|
|
167
|
+
- Quantity (shares)
|
|
168
|
+
- Average entry price (cost basis)
|
|
169
|
+
- Current market price
|
|
170
|
+
- Current market value
|
|
171
|
+
- Unrealized P&L ($ and %)
|
|
172
|
+
- Today's P&L
|
|
173
|
+
|
|
174
|
+
### `mcp__alpaca__get_portfolio_history`
|
|
175
|
+
Gets historical portfolio performance:
|
|
176
|
+
- Equity time series
|
|
177
|
+
- Profit/loss time series
|
|
178
|
+
- Timeframes: 1D, 1W, 1M, 3M, 1Y, All
|
|
179
|
+
|
|
180
|
+
### `mcp__alpaca__get_orders`
|
|
181
|
+
Lists orders (open, filled, cancelled):
|
|
182
|
+
- Order ID
|
|
183
|
+
- Symbol
|
|
184
|
+
- Quantity
|
|
185
|
+
- Order type (market, limit, stop, etc.)
|
|
186
|
+
- Status
|
|
187
|
+
- Fill price (if filled)
|
|
188
|
+
- Timestamps
|
|
189
|
+
|
|
190
|
+
### `mcp__alpaca__get_activities`
|
|
191
|
+
Retrieves account activities:
|
|
192
|
+
- Trades (fills)
|
|
193
|
+
- Dividend payments
|
|
194
|
+
- Stock splits
|
|
195
|
+
- Journal entries
|
|
196
|
+
|
|
197
|
+
## Verification and Testing
|
|
198
|
+
|
|
199
|
+
### Test 1: Account Connection
|
|
200
|
+
|
|
201
|
+
Ask Claude to fetch account info:
|
|
202
|
+
```
|
|
203
|
+
"Can you get my Alpaca account information?"
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Expected response should include your equity, cash, and buying power.
|
|
207
|
+
|
|
208
|
+
### Test 2: Portfolio Positions
|
|
209
|
+
|
|
210
|
+
Request current positions:
|
|
211
|
+
```
|
|
212
|
+
"What positions do I have in my portfolio?"
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Expected response should list all holdings with quantities and values.
|
|
216
|
+
|
|
217
|
+
### Test 3: Portfolio Analysis
|
|
218
|
+
|
|
219
|
+
Trigger the Portfolio Manager skill:
|
|
220
|
+
```
|
|
221
|
+
"Analyze my portfolio"
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
The skill should:
|
|
225
|
+
1. Fetch positions via MCP
|
|
226
|
+
2. Gather additional market data
|
|
227
|
+
3. Perform comprehensive analysis
|
|
228
|
+
4. Generate detailed report
|
|
229
|
+
|
|
230
|
+
## Troubleshooting
|
|
231
|
+
|
|
232
|
+
### Error: "Alpaca MCP Server not connected"
|
|
233
|
+
|
|
234
|
+
**Possible causes:**
|
|
235
|
+
1. MCP server not running
|
|
236
|
+
2. API keys not configured
|
|
237
|
+
3. API keys invalid or expired
|
|
238
|
+
|
|
239
|
+
**Solutions:**
|
|
240
|
+
1. Restart Claude to reinitialize MCP servers
|
|
241
|
+
2. Verify environment variables are set: `echo $ALPACA_API_KEY`
|
|
242
|
+
3. Check API keys in Alpaca dashboard (regenerate if needed)
|
|
243
|
+
4. Verify account status (ensure not suspended)
|
|
244
|
+
|
|
245
|
+
### Error: "Invalid API credentials"
|
|
246
|
+
|
|
247
|
+
**Possible causes:**
|
|
248
|
+
1. Wrong API keys
|
|
249
|
+
2. Using live keys with paper mode (or vice versa)
|
|
250
|
+
3. API keys revoked
|
|
251
|
+
|
|
252
|
+
**Solutions:**
|
|
253
|
+
1. Double-check API Key ID and Secret Key (no extra spaces)
|
|
254
|
+
2. Verify `ALPACA_PAPER` setting matches your API keys
|
|
255
|
+
3. Regenerate API keys in Alpaca dashboard
|
|
256
|
+
4. Ensure you're using the correct account (paper vs live)
|
|
257
|
+
|
|
258
|
+
### Error: "Forbidden - insufficient permissions"
|
|
259
|
+
|
|
260
|
+
**Possible causes:**
|
|
261
|
+
1. API keys have restricted permissions
|
|
262
|
+
2. Account not approved for trading
|
|
263
|
+
|
|
264
|
+
**Solutions:**
|
|
265
|
+
1. Regenerate API keys with full permissions
|
|
266
|
+
2. Check Alpaca dashboard for account status
|
|
267
|
+
3. For live accounts, ensure account approval is complete
|
|
268
|
+
|
|
269
|
+
### Error: "No positions found"
|
|
270
|
+
|
|
271
|
+
**Possible causes:**
|
|
272
|
+
1. Portfolio is actually empty
|
|
273
|
+
2. Wrong account selected (paper vs live)
|
|
274
|
+
3. API returning stale data
|
|
275
|
+
|
|
276
|
+
**Solutions:**
|
|
277
|
+
1. Verify positions exist in Alpaca dashboard
|
|
278
|
+
2. Confirm `ALPACA_PAPER` setting matches intended account
|
|
279
|
+
3. Try refreshing: ask Claude to fetch positions again
|
|
280
|
+
4. Check Alpaca API status page: https://status.alpaca.markets/
|
|
281
|
+
|
|
282
|
+
### MCP Server Not Responding
|
|
283
|
+
|
|
284
|
+
**Solutions:**
|
|
285
|
+
1. Restart Claude application
|
|
286
|
+
2. Check MCP server logs (if available)
|
|
287
|
+
3. Verify network connectivity
|
|
288
|
+
4. Fall back to direct API integration (Option 2)
|
|
289
|
+
|
|
290
|
+
## Security Best Practices
|
|
291
|
+
|
|
292
|
+
### 1. Use Paper Trading for Testing
|
|
293
|
+
Always test with paper trading account first. Never risk real money until thoroughly tested.
|
|
294
|
+
|
|
295
|
+
### 2. Protect API Keys
|
|
296
|
+
- Never commit API keys to GitHub or version control
|
|
297
|
+
- Use environment variables, not hardcoded values
|
|
298
|
+
- Set file permissions: `chmod 600` for config files
|
|
299
|
+
- Rotate keys periodically (every 90 days)
|
|
300
|
+
|
|
301
|
+
### 3. Use Read-Only Keys (If Available)
|
|
302
|
+
For portfolio analysis only, use read-only API keys if Alpaca supports them. This prevents accidental trading.
|
|
303
|
+
|
|
304
|
+
### 4. Monitor API Usage
|
|
305
|
+
- Check Alpaca dashboard for API call logs
|
|
306
|
+
- Review account activities regularly
|
|
307
|
+
- Set up alerts for unusual activity
|
|
308
|
+
|
|
309
|
+
### 5. Separate Paper and Live Environments
|
|
310
|
+
- Use different environment variable prefixes
|
|
311
|
+
- Never mix paper and live credentials
|
|
312
|
+
- Document which keys are which
|
|
313
|
+
|
|
314
|
+
## API Rate Limits
|
|
315
|
+
|
|
316
|
+
Alpaca imposes rate limits on API calls:
|
|
317
|
+
|
|
318
|
+
**Free Tier:**
|
|
319
|
+
- 200 requests per minute
|
|
320
|
+
- Data delayed by 15 minutes (for free market data)
|
|
321
|
+
|
|
322
|
+
**Paid Tier (Alpaca Markets Data subscription):**
|
|
323
|
+
- Higher rate limits
|
|
324
|
+
- Real-time data
|
|
325
|
+
|
|
326
|
+
**Best Practices:**
|
|
327
|
+
- Portfolio Manager skill includes built-in rate limiting
|
|
328
|
+
- Avoid running analysis more than once per minute
|
|
329
|
+
- For frequent monitoring, consider caching results
|
|
330
|
+
|
|
331
|
+
## Alternative: Manual Data Entry
|
|
332
|
+
|
|
333
|
+
If Alpaca integration is unavailable, Portfolio Manager can accept manually entered portfolio data:
|
|
334
|
+
|
|
335
|
+
**CSV Format:**
|
|
336
|
+
```csv
|
|
337
|
+
symbol,quantity,cost_basis,current_price
|
|
338
|
+
AAPL,100,150.00,175.50
|
|
339
|
+
MSFT,50,280.00,310.25
|
|
340
|
+
GOOGL,25,2500.00,2750.00
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
**Usage:**
|
|
344
|
+
1. Export positions from your broker as CSV
|
|
345
|
+
2. Provide file to Claude: "Analyze my portfolio using this CSV file"
|
|
346
|
+
3. Skill will parse data and perform analysis
|
|
347
|
+
|
|
348
|
+
**Limitations:**
|
|
349
|
+
- No real-time updates
|
|
350
|
+
- No historical performance data
|
|
351
|
+
- Manual updates required
|
|
352
|
+
|
|
353
|
+
## Additional Resources
|
|
354
|
+
|
|
355
|
+
**Alpaca Documentation:**
|
|
356
|
+
- API docs: https://alpaca.markets/docs/
|
|
357
|
+
- Python SDK: https://github.com/alpacahq/alpaca-trade-api-python
|
|
358
|
+
- API reference: https://alpaca.markets/docs/api-references/trading-api/
|
|
359
|
+
|
|
360
|
+
**MCP Protocol:**
|
|
361
|
+
- Anthropic MCP docs: https://docs.anthropic.com/claude/docs/model-context-protocol
|
|
362
|
+
- MCP specification: https://github.com/anthropics/mcp
|
|
363
|
+
|
|
364
|
+
**Support:**
|
|
365
|
+
- Alpaca support: support@alpaca.markets
|
|
366
|
+
- Alpaca community: https://forum.alpaca.markets/
|
|
367
|
+
- API status: https://status.alpaca.markets/
|