quantwise 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/.claude/skills/README.md +80 -0
  2. package/.claude/skills/backtest-expert/SKILL.md +206 -0
  3. package/.claude/skills/backtest-expert/references/failed_tests.md +236 -0
  4. package/.claude/skills/backtest-expert/references/methodology.md +227 -0
  5. package/.claude/skills/breadth-chart-analyst/SKILL.md +583 -0
  6. package/.claude/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
  7. package/.claude/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
  8. package/.claude/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
  9. package/.claude/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
  10. package/.claude/skills/canslim-screener/SKILL.md +599 -0
  11. package/.claude/skills/canslim-screener/references/canslim_methodology.md +606 -0
  12. package/.claude/skills/canslim-screener/references/fmp_api_endpoints.md +707 -0
  13. package/.claude/skills/canslim-screener/references/interpretation_guide.md +516 -0
  14. package/.claude/skills/canslim-screener/references/scoring_system.md +597 -0
  15. package/.claude/skills/canslim-screener/scripts/calculators/earnings_calculator.py +343 -0
  16. package/.claude/skills/canslim-screener/scripts/calculators/growth_calculator.py +334 -0
  17. package/.claude/skills/canslim-screener/scripts/calculators/institutional_calculator.py +347 -0
  18. package/.claude/skills/canslim-screener/scripts/calculators/leadership_calculator.py +380 -0
  19. package/.claude/skills/canslim-screener/scripts/calculators/market_calculator.py +244 -0
  20. package/.claude/skills/canslim-screener/scripts/calculators/new_highs_calculator.py +194 -0
  21. package/.claude/skills/canslim-screener/scripts/calculators/supply_demand_calculator.py +221 -0
  22. package/.claude/skills/canslim-screener/scripts/finviz_stock_client.py +227 -0
  23. package/.claude/skills/canslim-screener/scripts/fmp_client.py +393 -0
  24. package/.claude/skills/canslim-screener/scripts/report_generator.py +405 -0
  25. package/.claude/skills/canslim-screener/scripts/scorer.py +625 -0
  26. package/.claude/skills/canslim-screener/scripts/screen_canslim.py +361 -0
  27. package/.claude/skills/canslim-screener/scripts/test_institutional_endpoint.py +109 -0
  28. package/.claude/skills/chart/SKILL.md +20 -0
  29. package/.claude/skills/dividend-growth-pullback-screener/SKILL.md +322 -0
  30. package/.claude/skills/dividend-growth-pullback-screener/references/dividend_growth_compounding.md +400 -0
  31. package/.claude/skills/dividend-growth-pullback-screener/references/fmp_api_guide.md +642 -0
  32. package/.claude/skills/dividend-growth-pullback-screener/references/rsi_oversold_strategy.md +333 -0
  33. package/.claude/skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py +1155 -0
  34. package/.claude/skills/earnings-calendar/SKILL.md +721 -0
  35. package/.claude/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
  36. package/.claude/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
  37. package/.claude/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
  38. package/.claude/skills/earnings-calendar/scripts/generate_report.py +366 -0
  39. package/.claude/skills/economic-calendar-fetcher/SKILL.md +365 -0
  40. package/.claude/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
  41. package/.claude/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
  42. package/.claude/skills/ftd-detector/SKILL.md +147 -0
  43. package/.claude/skills/ftd-detector/references/ftd_methodology.md +188 -0
  44. package/.claude/skills/ftd-detector/references/post_ftd_guide.md +185 -0
  45. package/.claude/skills/ftd-detector/scripts/fmp_client.py +158 -0
  46. package/.claude/skills/ftd-detector/scripts/ftd_detector.py +280 -0
  47. package/.claude/skills/ftd-detector/scripts/post_ftd_monitor.py +404 -0
  48. package/.claude/skills/ftd-detector/scripts/rally_tracker.py +508 -0
  49. package/.claude/skills/ftd-detector/scripts/report_generator.py +341 -0
  50. package/.claude/skills/ftd-detector/scripts/tests/conftest.py +9 -0
  51. package/.claude/skills/ftd-detector/scripts/tests/helpers.py +107 -0
  52. package/.claude/skills/ftd-detector/scripts/tests/test_post_ftd_monitor.py +311 -0
  53. package/.claude/skills/ftd-detector/scripts/tests/test_rally_tracker.py +302 -0
  54. package/.claude/skills/institutional-flow-tracker/README.md +362 -0
  55. package/.claude/skills/institutional-flow-tracker/SKILL.md +357 -0
  56. package/.claude/skills/institutional-flow-tracker/references/13f_filings_guide.md +383 -0
  57. package/.claude/skills/institutional-flow-tracker/references/institutional_investor_types.md +580 -0
  58. package/.claude/skills/institutional-flow-tracker/references/interpretation_framework.md +573 -0
  59. package/.claude/skills/institutional-flow-tracker/scripts/analyze_single_stock.py +457 -0
  60. package/.claude/skills/institutional-flow-tracker/scripts/track_institution_portfolio.py +108 -0
  61. package/.claude/skills/institutional-flow-tracker/scripts/track_institutional_flow.py +450 -0
  62. package/.claude/skills/macro-regime-detector/SKILL.md +86 -0
  63. package/.claude/skills/macro-regime-detector/references/historical_regimes.md +124 -0
  64. package/.claude/skills/macro-regime-detector/references/indicator_interpretation_guide.md +144 -0
  65. package/.claude/skills/macro-regime-detector/references/regime_detection_methodology.md +138 -0
  66. package/.claude/skills/macro-regime-detector/scripts/calculators/__init__.py +1 -0
  67. package/.claude/skills/macro-regime-detector/scripts/calculators/concentration_calculator.py +165 -0
  68. package/.claude/skills/macro-regime-detector/scripts/calculators/credit_conditions_calculator.py +124 -0
  69. package/.claude/skills/macro-regime-detector/scripts/calculators/equity_bond_calculator.py +198 -0
  70. package/.claude/skills/macro-regime-detector/scripts/calculators/sector_rotation_calculator.py +123 -0
  71. package/.claude/skills/macro-regime-detector/scripts/calculators/size_factor_calculator.py +131 -0
  72. package/.claude/skills/macro-regime-detector/scripts/calculators/utils.py +347 -0
  73. package/.claude/skills/macro-regime-detector/scripts/calculators/yield_curve_calculator.py +279 -0
  74. package/.claude/skills/macro-regime-detector/scripts/fmp_client.py +134 -0
  75. package/.claude/skills/macro-regime-detector/scripts/macro_regime_detector.py +278 -0
  76. package/.claude/skills/macro-regime-detector/scripts/report_generator.py +327 -0
  77. package/.claude/skills/macro-regime-detector/scripts/scorer.py +574 -0
  78. package/.claude/skills/macro-regime-detector/scripts/tests/conftest.py +9 -0
  79. package/.claude/skills/macro-regime-detector/scripts/tests/test_concentration.py +78 -0
  80. package/.claude/skills/macro-regime-detector/scripts/tests/test_credit_conditions.py +59 -0
  81. package/.claude/skills/macro-regime-detector/scripts/tests/test_equity_bond.py +74 -0
  82. package/.claude/skills/macro-regime-detector/scripts/tests/test_helpers.py +90 -0
  83. package/.claude/skills/macro-regime-detector/scripts/tests/test_scorer.py +439 -0
  84. package/.claude/skills/macro-regime-detector/scripts/tests/test_sector_rotation.py +78 -0
  85. package/.claude/skills/macro-regime-detector/scripts/tests/test_size_factor.py +59 -0
  86. package/.claude/skills/macro-regime-detector/scripts/tests/test_utils.py +126 -0
  87. package/.claude/skills/macro-regime-detector/scripts/tests/test_yield_curve.py +64 -0
  88. package/.claude/skills/market-breadth-analyzer/SKILL.md +121 -0
  89. package/.claude/skills/market-breadth-analyzer/references/breadth_analysis_methodology.md +168 -0
  90. package/.claude/skills/market-breadth-analyzer/scripts/calculators/__init__.py +1 -0
  91. package/.claude/skills/market-breadth-analyzer/scripts/calculators/bearish_signal_calculator.py +150 -0
  92. package/.claude/skills/market-breadth-analyzer/scripts/calculators/cycle_calculator.py +168 -0
  93. package/.claude/skills/market-breadth-analyzer/scripts/calculators/divergence_calculator.py +119 -0
  94. package/.claude/skills/market-breadth-analyzer/scripts/calculators/historical_context_calculator.py +120 -0
  95. package/.claude/skills/market-breadth-analyzer/scripts/calculators/ma_crossover_calculator.py +115 -0
  96. package/.claude/skills/market-breadth-analyzer/scripts/calculators/trend_level_calculator.py +103 -0
  97. package/.claude/skills/market-breadth-analyzer/scripts/csv_client.py +225 -0
  98. package/.claude/skills/market-breadth-analyzer/scripts/market_breadth_analyzer.py +307 -0
  99. package/.claude/skills/market-breadth-analyzer/scripts/report_generator.py +330 -0
  100. package/.claude/skills/market-breadth-analyzer/scripts/scorer.py +271 -0
  101. package/.claude/skills/market-environment-analysis/SKILL.md +139 -0
  102. package/.claude/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
  103. package/.claude/skills/market-environment-analysis/references/indicators.md +99 -0
  104. package/.claude/skills/market-environment-analysis/scripts/market_utils.py +127 -0
  105. package/.claude/skills/market-news-analyst/SKILL.md +714 -0
  106. package/.claude/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
  107. package/.claude/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
  108. package/.claude/skills/market-news-analyst/references/market_event_patterns.md +393 -0
  109. package/.claude/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
  110. package/.claude/skills/market-top-detector/SKILL.md +159 -0
  111. package/.claude/skills/market-top-detector/references/distribution_day_guide.md +100 -0
  112. package/.claude/skills/market-top-detector/references/historical_tops.md +142 -0
  113. package/.claude/skills/market-top-detector/references/market_top_methodology.md +167 -0
  114. package/.claude/skills/market-top-detector/scripts/calculators/__init__.py +17 -0
  115. package/.claude/skills/market-top-detector/scripts/calculators/breadth_calculator.py +116 -0
  116. package/.claude/skills/market-top-detector/scripts/calculators/defensive_rotation_calculator.py +127 -0
  117. package/.claude/skills/market-top-detector/scripts/calculators/distribution_day_calculator.py +161 -0
  118. package/.claude/skills/market-top-detector/scripts/calculators/index_technical_calculator.py +254 -0
  119. package/.claude/skills/market-top-detector/scripts/calculators/leading_stock_calculator.py +198 -0
  120. package/.claude/skills/market-top-detector/scripts/calculators/sentiment_calculator.py +213 -0
  121. package/.claude/skills/market-top-detector/scripts/fmp_client.py +158 -0
  122. package/.claude/skills/market-top-detector/scripts/market_top_detector.py +349 -0
  123. package/.claude/skills/market-top-detector/scripts/report_generator.py +314 -0
  124. package/.claude/skills/market-top-detector/scripts/scorer.py +473 -0
  125. package/.claude/skills/market-top-detector/scripts/tests/conftest.py +9 -0
  126. package/.claude/skills/market-top-detector/scripts/tests/helpers.py +49 -0
  127. package/.claude/skills/market-top-detector/scripts/tests/test_breadth.py +62 -0
  128. package/.claude/skills/market-top-detector/scripts/tests/test_defensive_rotation.py +56 -0
  129. package/.claude/skills/market-top-detector/scripts/tests/test_distribution_day.py +92 -0
  130. package/.claude/skills/market-top-detector/scripts/tests/test_index_technical.py +73 -0
  131. package/.claude/skills/market-top-detector/scripts/tests/test_leading_stock.py +57 -0
  132. package/.claude/skills/market-top-detector/scripts/tests/test_scorer.py +180 -0
  133. package/.claude/skills/market-top-detector/scripts/tests/test_sentiment.py +64 -0
  134. package/.claude/skills/options-strategy-advisor/README.md +469 -0
  135. package/.claude/skills/options-strategy-advisor/SKILL.md +959 -0
  136. package/.claude/skills/options-strategy-advisor/scripts/black_scholes.py +495 -0
  137. package/.claude/skills/pair-trade-screener/README.md +389 -0
  138. package/.claude/skills/pair-trade-screener/SKILL.md +622 -0
  139. package/.claude/skills/pair-trade-screener/references/cointegration_guide.md +745 -0
  140. package/.claude/skills/pair-trade-screener/references/methodology.md +853 -0
  141. package/.claude/skills/pair-trade-screener/scripts/analyze_spread.py +394 -0
  142. package/.claude/skills/pair-trade-screener/scripts/find_pairs.py +535 -0
  143. package/.claude/skills/portfolio-manager/README.md +394 -0
  144. package/.claude/skills/portfolio-manager/SKILL.md +750 -0
  145. package/.claude/skills/portfolio-manager/references/alpaca-mcp-setup.md +367 -0
  146. package/.claude/skills/portfolio-manager/references/asset-allocation.md +502 -0
  147. package/.claude/skills/portfolio-manager/references/diversification-principles.md +553 -0
  148. package/.claude/skills/portfolio-manager/references/portfolio-risk-metrics.md +603 -0
  149. package/.claude/skills/portfolio-manager/references/position-evaluation.md +477 -0
  150. package/.claude/skills/portfolio-manager/references/rebalancing-strategies.md +715 -0
  151. package/.claude/skills/portfolio-manager/references/risk-profile-questionnaire.md +608 -0
  152. package/.claude/skills/portfolio-manager/references/target-allocations.md +558 -0
  153. package/.claude/skills/portfolio-manager/scripts/test_alpaca_connection.py +286 -0
  154. package/.claude/skills/scenario-analyzer/SKILL.md +317 -0
  155. package/.claude/skills/scenario-analyzer/references/headline_event_patterns.md +264 -0
  156. package/.claude/skills/scenario-analyzer/references/scenario_playbooks.md +320 -0
  157. package/.claude/skills/scenario-analyzer/references/sector_sensitivity_matrix.md +217 -0
  158. package/.claude/skills/sector-analyst/SKILL.md +206 -0
  159. package/.claude/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
  160. package/.claude/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
  161. package/.claude/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
  162. package/.claude/skills/sector-analyst/references/sector_rotation.md +170 -0
  163. package/.claude/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
  164. package/.claude/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
  165. package/.claude/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
  166. package/.claude/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
  167. package/.claude/skills/stock/NOTION_SETUP.md +33 -0
  168. package/.claude/skills/stock/SKILL.md +38 -0
  169. package/.claude/skills/technical-analyst/SKILL.md +238 -0
  170. package/.claude/skills/technical-analyst/assets/analysis_template.md +183 -0
  171. package/.claude/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
  172. package/.claude/skills/theme-detector/SKILL.md +320 -0
  173. package/.claude/skills/theme-detector/assets/report_template.md +155 -0
  174. package/.claude/skills/theme-detector/references/cross_sector_themes.md +252 -0
  175. package/.claude/skills/theme-detector/references/finviz_industry_codes.md +403 -0
  176. package/.claude/skills/theme-detector/references/thematic_etf_catalog.md +333 -0
  177. package/.claude/skills/theme-detector/references/theme_detection_methodology.md +430 -0
  178. package/.claude/skills/theme-detector/scripts/calculators/__init__.py +1 -0
  179. package/.claude/skills/theme-detector/scripts/calculators/heat_calculator.py +123 -0
  180. package/.claude/skills/theme-detector/scripts/calculators/industry_ranker.py +98 -0
  181. package/.claude/skills/theme-detector/scripts/calculators/lifecycle_calculator.py +172 -0
  182. package/.claude/skills/theme-detector/scripts/calculators/theme_classifier.py +195 -0
  183. package/.claude/skills/theme-detector/scripts/calculators/theme_discoverer.py +280 -0
  184. package/.claude/skills/theme-detector/scripts/config_loader.py +142 -0
  185. package/.claude/skills/theme-detector/scripts/default_theme_config.py +254 -0
  186. package/.claude/skills/theme-detector/scripts/etf_scanner.py +609 -0
  187. package/.claude/skills/theme-detector/scripts/finviz_performance_client.py +131 -0
  188. package/.claude/skills/theme-detector/scripts/report_generator.py +490 -0
  189. package/.claude/skills/theme-detector/scripts/representative_stock_selector.py +673 -0
  190. package/.claude/skills/theme-detector/scripts/scorer.py +87 -0
  191. package/.claude/skills/theme-detector/scripts/tests/README.md +21 -0
  192. package/.claude/skills/theme-detector/scripts/tests/conftest.py +9 -0
  193. package/.claude/skills/theme-detector/scripts/tests/test_config_loader.py +239 -0
  194. package/.claude/skills/theme-detector/scripts/tests/test_etf_scanner.py +810 -0
  195. package/.claude/skills/theme-detector/scripts/tests/test_heat_calculator.py +245 -0
  196. package/.claude/skills/theme-detector/scripts/tests/test_industry_ranker.py +256 -0
  197. package/.claude/skills/theme-detector/scripts/tests/test_lifecycle_calculator.py +301 -0
  198. package/.claude/skills/theme-detector/scripts/tests/test_report_generator.py +624 -0
  199. package/.claude/skills/theme-detector/scripts/tests/test_representative_stock_selector.py +898 -0
  200. package/.claude/skills/theme-detector/scripts/tests/test_scorer.py +185 -0
  201. package/.claude/skills/theme-detector/scripts/tests/test_theme_classifier.py +534 -0
  202. package/.claude/skills/theme-detector/scripts/tests/test_theme_detector_e2e.py +467 -0
  203. package/.claude/skills/theme-detector/scripts/tests/test_theme_discoverer.py +458 -0
  204. package/.claude/skills/theme-detector/scripts/tests/test_uptrend_client.py +76 -0
  205. package/.claude/skills/theme-detector/scripts/theme_detector.py +815 -0
  206. package/.claude/skills/theme-detector/scripts/themes.yaml +168 -0
  207. package/.claude/skills/theme-detector/scripts/uptrend_client.py +241 -0
  208. package/.claude/skills/uptrend-analyzer/SKILL.md +108 -0
  209. package/.claude/skills/uptrend-analyzer/references/uptrend_methodology.md +215 -0
  210. package/.claude/skills/uptrend-analyzer/scripts/calculators/__init__.py +1 -0
  211. package/.claude/skills/uptrend-analyzer/scripts/calculators/historical_context_calculator.py +122 -0
  212. package/.claude/skills/uptrend-analyzer/scripts/calculators/market_breadth_calculator.py +145 -0
  213. package/.claude/skills/uptrend-analyzer/scripts/calculators/momentum_calculator.py +183 -0
  214. package/.claude/skills/uptrend-analyzer/scripts/calculators/sector_participation_calculator.py +204 -0
  215. package/.claude/skills/uptrend-analyzer/scripts/calculators/sector_rotation_calculator.py +218 -0
  216. package/.claude/skills/uptrend-analyzer/scripts/data_fetcher.py +236 -0
  217. package/.claude/skills/uptrend-analyzer/scripts/report_generator.py +329 -0
  218. package/.claude/skills/uptrend-analyzer/scripts/scorer.py +276 -0
  219. package/.claude/skills/uptrend-analyzer/scripts/uptrend_analyzer.py +219 -0
  220. package/.claude/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
  221. package/.claude/skills/us-market-bubble-detector/SKILL.md +545 -0
  222. package/.claude/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
  223. package/.claude/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
  224. package/.claude/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
  225. package/.claude/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
  226. package/.claude/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
  227. package/.claude/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
  228. package/.claude/skills/us-stock-analysis/SKILL.md +294 -0
  229. package/.claude/skills/us-stock-analysis/references/financial-metrics.md +172 -0
  230. package/.claude/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
  231. package/.claude/skills/us-stock-analysis/references/report-template.md +207 -0
  232. package/.claude/skills/us-stock-analysis/references/technical-analysis.md +93 -0
  233. package/.claude/skills/value-dividend-screener/SKILL.md +562 -0
  234. package/.claude/skills/value-dividend-screener/references/fmp_api_guide.md +348 -0
  235. package/.claude/skills/value-dividend-screener/references/screening_methodology.md +315 -0
  236. package/.claude/skills/value-dividend-screener/scripts/screen_dividend_stocks.py +1138 -0
  237. package/.claude/skills/vcp-screener/SKILL.md +79 -0
  238. package/.claude/skills/vcp-screener/references/fmp_api_endpoints.md +45 -0
  239. package/.claude/skills/vcp-screener/references/scoring_system.md +154 -0
  240. package/.claude/skills/vcp-screener/references/vcp_methodology.md +124 -0
  241. package/.claude/skills/vcp-screener/scripts/calculators/__init__.py +1 -0
  242. package/.claude/skills/vcp-screener/scripts/calculators/pivot_proximity_calculator.py +139 -0
  243. package/.claude/skills/vcp-screener/scripts/calculators/relative_strength_calculator.py +161 -0
  244. package/.claude/skills/vcp-screener/scripts/calculators/trend_template_calculator.py +228 -0
  245. package/.claude/skills/vcp-screener/scripts/calculators/vcp_pattern_calculator.py +322 -0
  246. package/.claude/skills/vcp-screener/scripts/calculators/volume_pattern_calculator.py +121 -0
  247. package/.claude/skills/vcp-screener/scripts/fmp_client.py +162 -0
  248. package/.claude/skills/vcp-screener/scripts/report_generator.py +317 -0
  249. package/.claude/skills/vcp-screener/scripts/scorer.py +155 -0
  250. package/.claude/skills/vcp-screener/scripts/screen_vcp.py +536 -0
  251. package/.claude/skills/vcp-screener/scripts/tests/__init__.py +0 -0
  252. package/.claude/skills/vcp-screener/scripts/tests/conftest.py +9 -0
  253. package/.claude/skills/vcp-screener/scripts/tests/test_vcp_screener.py +834 -0
  254. package/.claude/skills/weekly-trade-strategy/.claude/agents/druckenmiller-strategy-planner.md +300 -0
  255. package/.claude/skills/weekly-trade-strategy/.claude/agents/market-news-analyzer.md +239 -0
  256. package/.claude/skills/weekly-trade-strategy/.claude/agents/technical-market-analyst.md +187 -0
  257. package/.claude/skills/weekly-trade-strategy/.claude/agents/us-market-analyst.md +218 -0
  258. package/.claude/skills/weekly-trade-strategy/.claude/agents/weekly-trade-blog-writer.md +318 -0
  259. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/SKILL.md +662 -0
  260. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
  261. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
  262. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
  263. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
  264. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/SKILL.md +721 -0
  265. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
  266. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/earnings_calendar_2025-11-02.md +447 -0
  267. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
  268. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
  269. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/scripts/generate_report.py +366 -0
  270. package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/SKILL.md +365 -0
  271. package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
  272. package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
  273. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/SKILL.md +139 -0
  274. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
  275. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/references/indicators.md +99 -0
  276. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/scripts/market_utils.py +127 -0
  277. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/SKILL.md +714 -0
  278. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
  279. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
  280. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/market_event_patterns.md +393 -0
  281. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
  282. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/SKILL.md +206 -0
  283. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
  284. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
  285. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
  286. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/references/sector_rotation.md +170 -0
  287. package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
  288. package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
  289. package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
  290. package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
  291. package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/SKILL.md +238 -0
  292. package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/assets/analysis_template.md +183 -0
  293. package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
  294. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
  295. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/SKILL.md +545 -0
  296. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
  297. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
  298. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
  299. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
  300. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
  301. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
  302. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/SKILL.md +294 -0
  303. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/financial-metrics.md +172 -0
  304. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
  305. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/report-template.md +207 -0
  306. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/technical-analysis.md +93 -0
  307. package/.claude/skills/weekly-trade-strategy/CLAUDE.md +454 -0
  308. package/.claude/skills/weekly-trade-strategy/README.md +287 -0
  309. package/.claude/skills/weekly-trade-strategy/blogs/.gitkeep +0 -0
  310. package/.claude/skills/weekly-trade-strategy/charts/.gitkeep +0 -0
  311. package/.claude/skills/weekly-trade-strategy/earnings_data.json +10054 -0
  312. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/SKILL.md +662 -0
  313. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
  314. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
  315. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
  316. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
  317. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/SKILL.md +721 -0
  318. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
  319. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/earnings_calendar_2025-11-02.md +447 -0
  320. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
  321. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
  322. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/scripts/generate_report.py +366 -0
  323. package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/SKILL.md +365 -0
  324. package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
  325. package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
  326. package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/SKILL.md +139 -0
  327. package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
  328. package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/references/indicators.md +99 -0
  329. package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/scripts/market_utils.py +127 -0
  330. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/SKILL.md +714 -0
  331. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
  332. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
  333. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/market_event_patterns.md +393 -0
  334. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
  335. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/SKILL.md +206 -0
  336. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
  337. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
  338. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
  339. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/references/sector_rotation.md +170 -0
  340. package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
  341. package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
  342. package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
  343. package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
  344. package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/SKILL.md +238 -0
  345. package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/assets/analysis_template.md +183 -0
  346. package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
  347. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
  348. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/SKILL.md +545 -0
  349. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
  350. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
  351. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
  352. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
  353. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
  354. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
  355. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/SKILL.md +294 -0
  356. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/financial-metrics.md +172 -0
  357. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
  358. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/report-template.md +207 -0
  359. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/technical-analysis.md +93 -0
  360. package/.mcp.json +3 -0
  361. package/cli.mjs +16 -16
  362. package/package.json +4 -2
@@ -0,0 +1,715 @@
1
+ # Rebalancing Strategies
2
+
3
+ This document provides comprehensive guidance on portfolio rebalancing methodologies, timing strategies, tax optimization, and implementation best practices.
4
+
5
+ ## What is Rebalancing?
6
+
7
+ **Definition:** Rebalancing is the process of realigning portfolio weights back to target allocation by buying and selling assets.
8
+
9
+ **Purpose:**
10
+ 1. **Maintain target risk level** - Prevent portfolio from becoming too aggressive or conservative
11
+ 2. **Enforce discipline** - "Buy low, sell high" systematically
12
+ 3. **Control concentration** - Prevent winners from creating excessive risk
13
+ 4. **Optimize diversification** - Maintain intended asset allocation benefits
14
+
15
+ **Example of Portfolio Drift:**
16
+
17
+ ```
18
+ Initial Allocation (Jan 2023):
19
+ Stocks: 60% ($60,000)
20
+ Bonds: 40% ($40,000)
21
+ Total: $100,000
22
+
23
+ After 1 Year (No Rebalancing):
24
+ Stocks: +20% → $72,000 (now 69% of portfolio)
25
+ Bonds: +2% → $40,800 (now 31% of portfolio)
26
+ Total: $112,800
27
+
28
+ Result: Portfolio is now riskier than intended (69/31 vs 60/40 target)
29
+ ```
30
+
31
+ ## Rebalancing Methodologies
32
+
33
+ ### 1. Calendar-Based Rebalancing
34
+
35
+ **Method:** Rebalance on a fixed schedule regardless of market conditions.
36
+
37
+ **Common Frequencies:**
38
+ - **Monthly:** Very frequent, high transaction costs, rarely needed
39
+ - **Quarterly:** Popular for active investors, balances responsiveness with costs
40
+ - **Semi-Annually:** Good middle ground, aligns with tax planning
41
+ - **Annually:** Simplest, lowest cost, sufficient for buy-and-hold investors
42
+
43
+ **Pros:**
44
+ - Simple and predictable
45
+ - Prevents procrastination
46
+ - Emotionally easier (mechanical process)
47
+ - Can align with tax planning (year-end)
48
+
49
+ **Cons:**
50
+ - May rebalance when not needed (small drifts)
51
+ - May not rebalance when urgently needed (between scheduled dates)
52
+ - Higher transaction costs if frequent
53
+ - Potential tax inefficiency
54
+
55
+ **Best For:**
56
+ - Passive investors
57
+ - Tax-advantaged accounts (no tax impact)
58
+ - Investors who want simplicity
59
+
60
+ **Implementation:**
61
+ ```
62
+ Set calendar reminder: Q1 (January), Q2 (April), Q3 (July), Q4 (October)
63
+
64
+ At each date:
65
+ 1. Calculate current allocation percentages
66
+ 2. Compare to target allocation
67
+ 3. If drift > 5%, rebalance
68
+ 4. If drift < 5%, skip rebalancing
69
+ ```
70
+
71
+ ### 2. Threshold-Based Rebalancing
72
+
73
+ **Method:** Rebalance only when allocation drifts beyond specified threshold.
74
+
75
+ **Common Thresholds:**
76
+ - **Absolute threshold:** Asset class deviates >5 percentage points from target
77
+ - Example: Target 60% stocks, rebalance if <55% or >65%
78
+ - **Relative threshold:** Asset class deviates >10-20% from target weight
79
+ - Example: Target 60% stocks, rebalance if <54% (60% × 0.9) or >66% (60% × 1.1)
80
+
81
+ **Pros:**
82
+ - Responsive to market volatility
83
+ - Rebalances only when necessary
84
+ - Lower transaction costs than calendar-based
85
+ - Tax-efficient (fewer trades)
86
+
87
+ **Cons:**
88
+ - Requires monitoring
89
+ - Can be psychologically harder (rebalancing during extremes)
90
+ - May not rebalance in low-volatility periods (not necessarily bad)
91
+
92
+ **Best For:**
93
+ - Active investors who monitor regularly
94
+ - Taxable accounts (minimize turnover)
95
+ - Volatile portfolios
96
+
97
+ **Implementation:**
98
+ ```
99
+ Check allocation monthly or quarterly
100
+
101
+ Rebalance triggers:
102
+ - Stocks: Target 60% ± 5% (rebalance if <55% or >65%)
103
+ - Bonds: Target 40% ± 5% (rebalance if <35% or >45%)
104
+
105
+ Single position triggers:
106
+ - Any position >15% → Immediate rebalance
107
+ - Any sector >35% → Immediate rebalance
108
+ ```
109
+
110
+ ### 3. Hybrid Approach (Recommended)
111
+
112
+ **Method:** Combine calendar and threshold - check on schedule, rebalance only if threshold exceeded.
113
+
114
+ **Implementation:**
115
+ ```
116
+ Check allocation: Quarterly (Jan, Apr, Jul, Oct)
117
+ Rebalance only if: Drift > 5% from target
118
+
119
+ Example:
120
+ Q1 Review: Stocks 62% (target 60%) → Drift 2% → No action
121
+ Q2 Review: Stocks 67% (target 60%) → Drift 7% → Rebalance
122
+ Q3 Review: Stocks 59% (target 60%) → Drift 1% → No action
123
+ Q4 Review: Stocks 71% (target 60%) → Drift 11% → Rebalance
124
+ ```
125
+
126
+ **Pros:**
127
+ - Best of both worlds
128
+ - Disciplined review schedule
129
+ - Cost-efficient execution
130
+ - Balances responsiveness and simplicity
131
+
132
+ **Cons:**
133
+ - Slightly more complex
134
+
135
+ **Best For:**
136
+ - Most investors
137
+ - Both taxable and tax-advantaged accounts
138
+
139
+ ### 4. Cash Flow Rebalancing
140
+
141
+ **Method:** Use new contributions and withdrawals to rebalance rather than selling.
142
+
143
+ **Implementation:**
144
+ ```
145
+ Every contribution (monthly, quarterly):
146
+ 1. Identify underweight asset classes
147
+ 2. Direct new money to underweight areas
148
+ 3. Over time, allocation drifts back to target
149
+
150
+ Example:
151
+ Monthly contribution: $1,000
152
+ Current allocation: Stocks 67%, Bonds 33% (Target 60/40)
153
+ Action: Contribute 100% to bonds until allocation normalizes
154
+ ```
155
+
156
+ **Pros:**
157
+ - Tax-efficient (no selling, no capital gains)
158
+ - No transaction costs
159
+ - Psychologically easier (always buying)
160
+ - Dollar-cost averaging benefit
161
+
162
+ **Cons:**
163
+ - Slow rebalancing (may take months/years)
164
+ - Requires regular contributions
165
+ - May not work for large drifts
166
+ - Not applicable for retired investors (withdrawing, not contributing)
167
+
168
+ **Best For:**
169
+ - Accumulation phase (regular contributions)
170
+ - Taxable accounts
171
+ - Small drift corrections
172
+
173
+ ### 5. Tactical Rebalancing
174
+
175
+ **Method:** Rebalance strategically based on market conditions and valuations, not just drift.
176
+
177
+ **Factors to Consider:**
178
+ - Market valuations (Shiller CAPE, valuation metrics)
179
+ - Economic cycle position (early, mid, late expansion)
180
+ - Volatility regime (VIX levels)
181
+ - Sentiment indicators (put/call ratio, investor surveys)
182
+
183
+ **Example Tactical Adjustments:**
184
+ ```
185
+ Normal target: 60% stocks, 40% bonds
186
+
187
+ When stocks expensive (CAPE >30):
188
+ Adjust to: 50% stocks, 50% bonds (defensive tilt)
189
+
190
+ When stocks cheap (CAPE <15):
191
+ Adjust to: 70% stocks, 30% bonds (aggressive tilt)
192
+ ```
193
+
194
+ **Pros:**
195
+ - Can enhance returns vs mechanical rebalancing
196
+ - Incorporates market insight
197
+ - Responds to changing opportunity sets
198
+
199
+ **Cons:**
200
+ - Requires market timing skill (difficult)
201
+ - Risk of being wrong
202
+ - Subjective judgment required
203
+ - Easy to rationalize not rebalancing
204
+
205
+ **Best For:**
206
+ - Sophisticated investors
207
+ - Those with market analysis capability
208
+ - Supplement to systematic rebalancing (not replacement)
209
+
210
+ **Warning:** Tactical rebalancing can become an excuse to avoid rebalancing. Use sparingly and document rationale.
211
+
212
+ ## Rebalancing Across Portfolio Dimensions
213
+
214
+ ### Asset Class Rebalancing
215
+
216
+ **Most Important:** Stock/Bond/Cash allocation drives risk
217
+
218
+ **Example:**
219
+ ```
220
+ Target: 70% Stocks, 25% Bonds, 5% Cash
221
+ Current: 78% Stocks, 20% Bonds, 2% Cash
222
+
223
+ Rebalancing trades:
224
+ - Sell stocks: $10,000 (reduce from 78% to 70%)
225
+ - Buy bonds: $6,000 (increase from 20% to 25%)
226
+ - Add to cash: $4,000 (increase from 2% to 5%)
227
+ ```
228
+
229
+ **Priority:** High - Asset allocation most important driver of risk/return
230
+
231
+ ### Sector Rebalancing
232
+
233
+ **Purpose:** Prevent sector concentration, maintain diversification
234
+
235
+ **Example:**
236
+ ```
237
+ Target Allocation:
238
+ - Technology: 25%
239
+ - Healthcare: 15%
240
+ - Financials: 15%
241
+ - Consumer: 15%
242
+ - Industrials: 10%
243
+ - Other: 20%
244
+
245
+ Current Allocation (after tech rally):
246
+ - Technology: 38% (overweight by 13%)
247
+ - Healthcare: 12% (underweight by 3%)
248
+ - Financials: 13% (underweight by 2%)
249
+ - Others: unchanged
250
+
251
+ Rebalancing:
252
+ - Trim Technology from 38% to 25-28% (sell ~10-13%)
253
+ - Add to Healthcare and Financials
254
+ ```
255
+
256
+ **Priority:** Medium-High - Sector concentration creates risk
257
+
258
+ ### Position-Level Rebalancing
259
+
260
+ **Purpose:** Trim individual winners, add to losers (if thesis intact)
261
+
262
+ **Example:**
263
+ ```
264
+ Target: No position >10%, typical position 5-7%
265
+
266
+ Current Positions:
267
+ - NVDA: 18% (winner, appreciated)
268
+ - AAPL: 12% (winner)
269
+ - MSFT: 8% (on target)
270
+ - Others: <5% each
271
+
272
+ Rebalancing:
273
+ - NVDA: Trim from 18% to 10% (sell 8%)
274
+ - AAPL: Trim from 12% to 10% (sell 2%)
275
+ - Redeploy 10% to underweight positions
276
+ ```
277
+
278
+ **Priority:** High if single position >15%, otherwise Medium
279
+
280
+ ### Geographic Rebalancing
281
+
282
+ **Example:**
283
+ ```
284
+ Target: 70% US, 20% International Developed, 10% Emerging Markets
285
+ Current: 75% US, 18% Int'l Dev, 7% EM (US outperformed)
286
+
287
+ Rebalancing:
288
+ - Sell US equities: 5%
289
+ - Buy Int'l Developed: 2%
290
+ - Buy Emerging Markets: 3%
291
+ ```
292
+
293
+ **Priority:** Low to Medium - Less critical than asset class, but maintains diversification
294
+
295
+ ## Rebalancing Implementation Strategies
296
+
297
+ ### Strategy 1: Full Rebalancing (Precise)
298
+
299
+ **Method:** Simultaneously buy and sell to restore exact target weights.
300
+
301
+ **Example:**
302
+ ```
303
+ Portfolio: $200,000
304
+ Target: 60% Stocks ($120k), 40% Bonds ($80k)
305
+ Current: 68% Stocks ($136k), 32% Bonds ($64k)
306
+
307
+ Trades:
308
+ - Sell stocks: $16,000 (reduce to $120k)
309
+ - Buy bonds: $16,000 (increase to $80k)
310
+
311
+ Result: Exactly 60/40
312
+ ```
313
+
314
+ **Pros:**
315
+ - Precise restoration of targets
316
+ - Immediate rebalancing
317
+
318
+ **Cons:**
319
+ - Transaction costs on both sides
320
+ - Tax implications (capital gains on sales)
321
+ - Market impact if large trades
322
+
323
+ **Best For:** Tax-advantaged accounts, large drift corrections
324
+
325
+ ### Strategy 2: Partial Rebalancing
326
+
327
+ **Method:** Rebalance halfway back to target (or other partial percentage).
328
+
329
+ **Example:**
330
+ ```
331
+ Portfolio: $200,000
332
+ Target: 60% Stocks, 40% Bonds
333
+ Current: 68% Stocks, 32% Bonds
334
+ Drift: Stocks +8%, Bonds -8%
335
+
336
+ 50% Rebalancing:
337
+ - Reduce stock overweight by 50%: 68% → 64% (sell $8k stocks)
338
+ - Increase bond underweight by 50%: 32% → 36% (buy $8k bonds)
339
+
340
+ Result: 64/36 (halfway between current and target)
341
+ ```
342
+
343
+ **Pros:**
344
+ - Lower transaction costs
345
+ - Less tax impact
346
+ - Preserves some momentum
347
+ - Still reduces risk
348
+
349
+ **Cons:**
350
+ - Doesn't fully restore targets
351
+ - May need another rebalance soon
352
+
353
+ **Best For:** Moderate drifts (5-10%), trending markets, taxable accounts
354
+
355
+ ### Strategy 3: Threshold Rebalancing
356
+
357
+ **Method:** Only rebalance asset classes that exceed threshold.
358
+
359
+ **Example:**
360
+ ```
361
+ Thresholds: Rebalance only if drift >5%
362
+
363
+ Current vs Target:
364
+ - Stocks: 68% vs 60% (drift +8%) → Rebalance
365
+ - Bonds: 32% vs 40% (drift -8%) → Rebalance
366
+ - Cash: 0% vs 0% (no drift) → No action
367
+
368
+ Only stocks and bonds trade, cash unchanged
369
+ ```
370
+
371
+ **Pros:**
372
+ - Avoids unnecessary trades
373
+ - Cost-efficient
374
+
375
+ **Cons:**
376
+ - Portfolio not perfectly balanced
377
+
378
+ **Best For:** Most situations
379
+
380
+ ### Strategy 4: Opportunistic Rebalancing
381
+
382
+ **Method:** Rebalance strategically using market volatility.
383
+
384
+ **Implementation:**
385
+ ```
386
+ Stocks overweight at 68%:
387
+ - Set limit order to sell stocks on strength (e.g., at +2% day)
388
+ - Wait for rally to execute
389
+
390
+ Bonds underweight at 32%:
391
+ - Set limit order to buy bonds on weakness (e.g., at -1% day)
392
+ - Wait for dip to execute
393
+
394
+ Result: Better execution prices vs market orders
395
+ ```
396
+
397
+ **Pros:**
398
+ - Improved execution prices
399
+ - "Sell high, buy low" even within rebalancing
400
+
401
+ **Cons:**
402
+ - Delayed execution (orders may not fill)
403
+ - Requires active monitoring
404
+ - Rebalancing may not complete
405
+
406
+ **Best For:** Patient investors, non-urgent rebalancing
407
+
408
+ ### Strategy 5: Gradual Rebalancing
409
+
410
+ **Method:** Rebalance over time in multiple tranches.
411
+
412
+ **Implementation:**
413
+ ```
414
+ Need to trim stocks by 8%:
415
+
416
+ Week 1: Sell 2% (1/4 of target)
417
+ Week 2: Sell 2%
418
+ Week 3: Sell 2%
419
+ Week 4: Sell 2%
420
+
421
+ Total: 8% trimmed over one month
422
+ ```
423
+
424
+ **Pros:**
425
+ - Reduces market impact
426
+ - Dollar-cost averaging effect
427
+ - Less stressful (not one big decision)
428
+
429
+ **Cons:**
430
+ - Delayed full rebalancing
431
+ - Multiple transaction fees
432
+ - Complex to track
433
+
434
+ **Best For:** Large positions, concentrated portfolios, volatile markets
435
+
436
+ ## Tax-Efficient Rebalancing
437
+
438
+ ### Tax-Loss Harvesting During Rebalancing
439
+
440
+ **Strategy:** Combine rebalancing with tax-loss harvesting to offset gains.
441
+
442
+ **Example:**
443
+ ```
444
+ Rebalancing Plan:
445
+ - Sell Stock A (winner): +$10,000 gain
446
+ - Sell Stock B (loser): -$5,000 loss
447
+
448
+ Tax Impact:
449
+ - Net capital gain: $10,000 - $5,000 = $5,000
450
+ - Tax (20% long-term): $5,000 × 0.20 = $1,000
451
+ - Effective tax rate on Stock A: $1,000 / $10,000 = 10% (vs 20% without harvesting)
452
+
453
+ Additional benefit: Harvested loss reduces taxes
454
+ ```
455
+
456
+ **Best Practices:**
457
+ - Prioritize selling losses to offset rebalancing gains
458
+ - Harvest losses in December, rebalance in January (timing)
459
+ - Avoid wash sale rule (wait 30 days before repurchasing)
460
+
461
+ ### Tax Lot Management
462
+
463
+ **Strategy:** Select which shares to sell to minimize taxes.
464
+
465
+ **Methods:**
466
+ 1. **Specific Identification:** Choose highest-cost shares (minimize gain)
467
+ 2. **FIFO (First In, First Out):** Sell oldest shares (often long-term)
468
+ 3. **LIFO (Last In, First Out):** Sell newest shares (minimize gain)
469
+ 4. **Highest Cost:** Sell shares with highest cost basis (minimize gain)
470
+
471
+ **Example:**
472
+ ```
473
+ Need to sell 100 shares of AAPL (currently $180):
474
+
475
+ Purchase lots:
476
+ - Lot A: 50 shares @ $150 (2 years ago) → $1,500 gain → $300 tax
477
+ - Lot B: 50 shares @ $170 (6 months ago) → $500 gain → $185 tax (short-term)
478
+ - Lot C: 50 shares @ $175 (1 month ago) → $250 gain → $93 tax (short-term)
479
+
480
+ Best approach: Sell Lot C (minimize tax) or Lot A (long-term rates)
481
+
482
+ Tax savings: $300 - $93 = $207 vs worst choice
483
+ ```
484
+
485
+ ### Account Location Strategy
486
+
487
+ **Strategy:** Rebalance in tax-advantaged accounts when possible.
488
+
489
+ **Tax Treatment by Account Type:**
490
+ - **401(k), IRA, Roth IRA:** No tax on trades (best for rebalancing)
491
+ - **Taxable brokerage:** Capital gains tax on sales
492
+
493
+ **Optimization:**
494
+ ```
495
+ Rebalancing needed: Sell $20,000 stocks, buy $20,000 bonds
496
+
497
+ Option 1 (Non-optimal):
498
+ - Sell stocks in taxable account → Trigger $4,000 capital gain → $800 tax
499
+
500
+ Option 2 (Optimal):
501
+ - Sell stocks in IRA → No tax
502
+ - Result: Same allocation, $800 saved
503
+
504
+ If stocks not held in IRA:
505
+ - Sell bonds in IRA, buy stocks in IRA
506
+ - Sell stocks in taxable, buy bonds in taxable
507
+ - Net effect: Rebalanced, but different holdings per account
508
+ ```
509
+
510
+ ### Tax-Deferred Rebalancing
511
+
512
+ **Strategy:** Delay rebalancing to next tax year or until qualifying for long-term rates.
513
+
514
+ **Example:**
515
+ ```
516
+ Need to rebalance in November:
517
+ Current: Stock position 6 months old (short-term gains)
518
+ Options:
519
+ 1. Rebalance now → Short-term capital gains (37% max tax)
520
+ 2. Wait until January (long-term status) → Long-term gains (20% max tax)
521
+
522
+ Tax savings: 17 percentage points (depends on income)
523
+
524
+ Decision factors:
525
+ - How urgent is rebalancing? (Risk tolerance)
526
+ - How much gain? (Tax dollars at stake)
527
+ - Market outlook? (Risk of waiting)
528
+ ```
529
+
530
+ ## Rebalancing in Different Market Environments
531
+
532
+ ### Bull Market Rebalancing
533
+
534
+ **Characteristics:**
535
+ - Stocks consistently outperforming
536
+ - Portfolio drifting more aggressive
537
+ - Rebalancing means selling winners
538
+
539
+ **Strategy:**
540
+ - Trim equities back to target regularly
541
+ - Don't let greed prevent rebalancing
542
+ - "No one went broke taking profits"
543
+ - Use proceeds to buy underperforming assets
544
+
545
+ **Emotional Challenge:** Feels like leaving money on the table
546
+
547
+ **Discipline Required:** Sell winners even when they're going up
548
+
549
+ ### Bear Market Rebalancing
550
+
551
+ **Characteristics:**
552
+ - Stocks underperforming, declining
553
+ - Portfolio drifting more conservative
554
+ - Rebalancing means buying stocks
555
+
556
+ **Strategy:**
557
+ - Buy equities to restore target (contrarian)
558
+ - "Buy when there's blood in the streets"
559
+ - Gradual buying (dollar-cost average into weakness)
560
+ - Maintain emotional discipline
561
+
562
+ **Emotional Challenge:** Buying feels risky when markets falling
563
+
564
+ **Discipline Required:** Buy when fearful, stick to plan
565
+
566
+ **Example:**
567
+ ```
568
+ 2020 COVID Crash:
569
+ March: Stocks down 30%
570
+ Portfolio drift: 60/40 → 48/52 (stocks fell, bonds rose)
571
+ Rebalancing: Buy stocks (sell bonds)
572
+ Result: Bought at bottom, participated in recovery
573
+ ```
574
+
575
+ ### High Volatility Rebalancing
576
+
577
+ **Characteristics:**
578
+ - Wild market swings
579
+ - Frequent drift beyond thresholds
580
+ - Risk of over-trading
581
+
582
+ **Strategy:**
583
+ - Widen rebalancing thresholds (e.g., 5% → 7%)
584
+ - Use partial rebalancing (50% toward target)
585
+ - Gradual rebalancing over time
586
+ - Avoid panic-driven trades
587
+
588
+ **Best Practice:** Don't rebalance daily, stick to schedule
589
+
590
+ ### Low Volatility Rebalancing
591
+
592
+ **Characteristics:**
593
+ - Markets calm, low drift
594
+ - Infrequent rebalancing needs
595
+
596
+ **Strategy:**
597
+ - May go 12+ months without rebalancing
598
+ - Focus on position-level adjustments
599
+ - Opportunistic trimming of winners
600
+ - Portfolio construction improvements
601
+
602
+ ## Rebalancing Costs and Break-Even Analysis
603
+
604
+ ### Transaction Costs
605
+
606
+ **Cost Components:**
607
+ 1. **Commissions:** $0 at most brokers (2024)
608
+ 2. **Bid-ask spreads:** 0.01-0.10% for liquid stocks, higher for bonds/ETFs
609
+ 3. **Market impact:** Minimal for small trades, higher for large positions
610
+ 4. **Taxes:** Largest cost (15-20% long-term, up to 37% short-term)
611
+
612
+ **Total Cost Estimate:**
613
+ ```
614
+ Rebalancing $50,000 position:
615
+ - Bid-ask spread: $50,000 × 0.05% = $25
616
+ - Capital gain: $20,000 (assumes doubled)
617
+ - Tax (20% long-term): $20,000 × 0.20 = $4,000
618
+
619
+ Total cost: $4,025 (8% of trade value)
620
+ ```
621
+
622
+ ### Break-Even Analysis
623
+
624
+ **Question:** Does rebalancing benefit outweigh costs?
625
+
626
+ **Benefits of Rebalancing:**
627
+ - Risk reduction (volatility drag reduction)
628
+ - "Buy low, sell high" systematic discipline
629
+ - Maintain target risk level
630
+
631
+ **Academic Research:**
632
+ - Rebalancing adds 0.3-0.5% annual return (after costs) for 60/40 portfolio
633
+ - Benefit higher in volatile markets
634
+ - Benefit lower in trending markets
635
+
636
+ **Rule of Thumb:**
637
+ ```
638
+ Rebalance if:
639
+ (Expected Risk Reduction Benefit × Time Horizon) > (Transaction Costs + Tax Costs)
640
+
641
+ Example:
642
+ Expected benefit: 0.4% per year
643
+ Time horizon: 10 years
644
+ Total benefit: ~4%
645
+
646
+ Costs: 8% (from example above)
647
+
648
+ Conclusion: Don't rebalance if costs >4% (wait for long-term rates, use tax-advantaged account, or accept drift)
649
+ ```
650
+
651
+ ## Rebalancing Checklist
652
+
653
+ ### Quarterly Review Checklist
654
+
655
+ - [ ] **Calculate Current Allocation**
656
+ - Asset class percentages (stocks, bonds, cash, alternatives)
657
+ - Sector percentages (within equities)
658
+ - Position sizes (% of portfolio)
659
+ - Geographic allocation
660
+
661
+ - [ ] **Compare to Targets**
662
+ - Asset class drift from target (% points)
663
+ - Sector drift from target
664
+ - Position size vs maximum thresholds
665
+ - Identify overweight and underweight areas
666
+
667
+ - [ ] **Assess Rebalancing Need**
668
+ - Any drift >5%? (Rebalancing recommended)
669
+ - Any position >15%? (Immediate trim)
670
+ - Any sector >35%? (Immediate trim)
671
+ - Overall risk level vs target
672
+
673
+ - [ ] **Plan Rebalancing Trades**
674
+ - List positions to sell (overweight)
675
+ - List positions to buy (underweight)
676
+ - Calculate trade sizes ($)
677
+ - Select which account to trade in (tax optimization)
678
+
679
+ - [ ] **Tax Optimization**
680
+ - Identify tax-loss harvest opportunities
681
+ - Select tax lots (highest cost basis)
682
+ - Consider timing (short-term vs long-term)
683
+ - Estimate tax impact
684
+
685
+ - [ ] **Execute Rebalancing**
686
+ - Place sell orders (overweight positions)
687
+ - Wait for settlement (T+2)
688
+ - Place buy orders (underweight positions)
689
+ - Verify allocation after trades
690
+
691
+ - [ ] **Document Decision**
692
+ - Record pre-rebalancing allocation
693
+ - Record trades executed
694
+ - Record post-rebalancing allocation
695
+ - Note any deviations from plan
696
+ - Set next review date
697
+
698
+ ## Summary
699
+
700
+ **Key Principles:**
701
+
702
+ 1. **Systematic discipline** - Rebalance on schedule or threshold, not emotions
703
+ 2. **Tax efficiency** - Use tax-advantaged accounts, harvest losses, manage lots
704
+ 3. **Cost awareness** - Balance rebalancing benefits vs transaction costs
705
+ 4. **Appropriate frequency** - Quarterly or semi-annually for most investors
706
+ 5. **Maintain perspective** - Rebalancing is risk management, not return maximization
707
+
708
+ **Recommended Approach for Most Investors:**
709
+
710
+ - **Frequency:** Quarterly review, rebalance if drift >5%
711
+ - **Method:** Hybrid (calendar + threshold)
712
+ - **Implementation:** Full rebalancing in tax-advantaged accounts, partial in taxable
713
+ - **Tax optimization:** Harvest losses, select tax lots, time for long-term rates
714
+
715
+ **Remember:** Rebalancing is a risk management tool, not a performance enhancement technique. The primary goal is to maintain your target risk level and prevent portfolio drift. The discipline of rebalancing enforces "buy low, sell high" behavior that is emotionally difficult but mathematically sound.