Investment Management
Full-stack investment management: from philosophy to execution. Research, analyze,
decide, execute, track, and optimize across traditional and alternative asset classes.
Financial Management Stack
finance-substrate (Layer 1: Accounting & Tax)
├── Bank transaction import, certificate parsing
├── Form 210 tax projection, DIAN integration
├── Parafiscales, patrimonio, retenciones
└── Gmail document collector
↓
wealth-management (Layer 2: Planning & Projections)
├── Compound growth projections
├── Goal-based planning, Monte Carlo
├── Portfolio summary & asset allocation
└── Budget planning with tax savings
↓
investment-management (Layer 3: Analysis & Execution) ← THIS SKILL
├── RESEARCH: Market data, fundamentals, screening
├── ANALYZE: Factor models, backtests, risk metrics
├── DECIDE: Philosophy-driven frameworks, scoring
├── EXECUTE: Trade via APIs (Alpaca, Coinbase, Polymarket)
├── TRACK: Multi-platform position aggregation
└── OPTIMIZE: Rebalancing, tax-loss harvesting, lot management
Investment Philosophies (Built-in Frameworks)
The skill embeds decision frameworks from legendary investors.
Each philosophy is a scoring lens that can be applied to any investment.
Value (Buffett/Graham/Munger)
| Principle |
Implementation |
| Economic moat analysis |
Score competitive advantage: brand, network, switching cost, scale |
| Margin of safety |
Require 25%+ discount to intrinsic value (DCF, owner earnings) |
| Circle of competence |
Flag unfamiliar sectors; require deeper research threshold |
| Owner earnings |
Net income + depreciation - capex (not GAAP earnings) |
| Quality over price |
ROIC > WACC, consistent ROE > 15%, low debt/equity |
Systematic (Dalio/AQR)
| Principle |
Implementation |
| All-Weather allocation |
Risk-parity: equal risk contribution from growth, inflation, deflation |
| Factor exposure |
Decompose returns into market, value, momentum, quality, size |
| Risk parity |
Weight by inverse volatility, target equal risk contribution |
| Regime awareness |
Detect growth/inflation quadrant, adjust allocation |
| Correlation regime |
Monitor rolling correlations; diversification fails in crises |
Passive/Index (Bogle)
| Principle |
Implementation |
| Three-fund portfolio |
Total market + international + bonds; rebalance annually |
| Minimize costs |
Flag any fund with expense ratio > 0.20% |
| Tax efficiency |
Index funds in taxable, bonds in tax-deferred |
| Stay the course |
Reject market timing; dollar-cost average |
| Simple beats complex |
Baseline comparison for every active strategy |
Second-Level Thinking (Marks)
| Principle |
Implementation |
| Consensus vs reality |
Flag positions where market consensus is priced in |
| Risk is not volatility |
Focus on permanent capital loss, not price fluctuation |
| Market cycles |
Track Shiller CAPE, yield spreads, sentiment indicators |
| Asymmetric outcomes |
Seek situations where upside >> downside |
| Know what you don't know |
Confidence-weighted recommendations |
Barbell (Taleb)
| Principle |
Implementation |
| 85% ultra-safe + 15% high-convexity |
Split portfolio into safe (CDTs, treasuries) + optionality (crypto, VC, prediction markets) |
| Antifragile positions |
Identify investments that benefit from volatility |
| Avoid the middle |
Skip mediocre risk-return profiles |
| Small bets, big payoffs |
Position size by max loss tolerance, not expected return |
Skill Modes
1. screen — Security Screening
Search and filter stocks, ETFs, crypto, and other securities by criteria.
Script: scripts/screener.py
Screening criteria:
- Fundamental: P/E, P/B, EV/EBITDA, FCF yield, ROIC, ROE, debt/equity, dividend yield
- Technical: RSI, MACD signal, price vs 200-day MA, 52-week range position
- Quality: earnings consistency, revenue growth, margin stability
- Momentum: 1/3/6/12-month returns, relative strength
- Value composite: Piotroski F-Score, Greenblatt Magic Formula rank
- Size: market cap filters
Data sources: yfinance, Financial Modeling Prep, OpenBB
2. research — Deep Investment Research — (Planned — not yet implemented)
In-depth analysis of a specific security or market.
Status: Planned — scripts/research.py is not yet shipped. Do not invoke; this mode is a roadmap stub.
Analysis includes:
- Company overview and business model
- Financial statement analysis (3-5 year trends)
- Valuation: DCF, comparable companies, dividend discount
- Competitive landscape and moat assessment
- Risk factors and bear case
- Catalyst identification
- Philosophy alignment score (which frameworks support/oppose)
Data sources: yfinance fundamentals, SEC EDGAR (edgartools), news sentiment (FinBERT)
3. factor — Factor Analysis — (Planned — not yet implemented)
Decompose portfolio returns into systematic factor exposures.
Status: Planned — scripts/factor_analysis.py is not yet shipped. Do not invoke; this mode is a roadmap stub.
Factors analyzed:
- Fama-French 5 factors: Market, Size (SMB), Value (HML), Profitability (RMW), Investment (CMA)
- Momentum (UMD)
- Quality (QMJ from AQR)
- Alpha: residual return not explained by factors
Output: Factor loadings, R², alpha significance, factor exposure drift over time
4. backtest — Strategy Backtesting
Test investment strategies against historical data.
Script: scripts/backtest.py
Built-in strategies:
- Buy and hold (benchmark)
- Equal-weight rebalanced
- Risk parity (inverse vol)
- Momentum (top N by 12-1 month return)
- Value (top N by composite score)
- All-Weather (Dalio's 4-quadrant allocation)
- Custom (user-defined rules)
Metrics: CAGR, Sharpe, Sortino, max drawdown, Calmar, win rate, average gain/loss
5. optimize — Portfolio Optimization — (Planned — not yet implemented)
Find optimal portfolio weights given constraints.
Status: Planned — scripts/portfolio_optimizer.py is not yet shipped. Do not invoke; this mode is a roadmap stub.
Methods:
- Mean-variance (Markowitz efficient frontier)
- Black-Litterman (market equilibrium + personal views)
- Hierarchical Risk Parity (HRP, no covariance inversion)
- Risk budgeting (equal risk contribution)
- Maximum Sharpe, minimum volatility, target return
- CVaR optimization (tail-risk aware)
Constraints: Long-only, sector limits, position size caps, turnover limits, tax-awareness
Libraries: PyPortfolioOpt, Riskfolio-Lib, cvxpy
6. risk — Risk Analysis — (Planned — not yet implemented)
Comprehensive risk assessment of current or proposed portfolio.
Status: Planned — scripts/risk_analysis.py is not yet shipped. Do not invoke; this mode is a roadmap stub.
Metrics:
- Value at Risk (parametric, historical, Monte Carlo)
- Conditional VaR (Expected Shortfall)
- Maximum drawdown analysis
- Stress tests: 2008 GFC, 2020 COVID, 2022 rates, COP devaluation
- Correlation regime analysis (rolling correlations)
- GARCH volatility forecast
- Concentration risk and single-name exposure
7. trade — Trade Execution — (Planned — not yet implemented)
Execute trades via supported platform APIs.
Status: Planned — scripts/trade.py is not yet shipped. Do not invoke; this mode is a roadmap stub. (For a working, paper-only execution loop today, use services/tradingview-bridge — see below.)
Supported platforms:
| Platform |
Assets |
Auth |
Library |
| Alpaca |
US stocks, ETFs |
API key pair |
alpaca-trade-api |
| Coinbase |
Crypto |
CDP API key + JWT |
coinbase-advanced-py |
| Polymarket |
Prediction markets |
Wallet signature |
py-clob-client |
| Interactive Brokers |
Everything |
TWS API |
ib_async |
Features:
- Paper trading mode (default) — no real money until explicitly confirmed
- Order types: market, limit, stop-loss
- Position sizing: Kelly criterion, fixed fractional, risk-budget
- Pre-trade checks: liquidity, spread, portfolio impact
8. track — Multi-Platform Position Tracking — (Planned — not yet implemented)
Aggregate positions across all investment platforms.
Status: Planned — scripts/tracker.py is not yet shipped. Do not invoke; this mode is a roadmap stub.
Sources (in priority order):
- API-connected platforms (Alpaca, Coinbase) — real-time
- finance-substrate certificates (Skandia, Davivienda, etc.) — periodic
- Browser-automated platforms (Tyba, Trii, Davivienda Corredores) — via agent-browser
- Manual entries (portfolio.json) — user-maintained
Output: Unified position list with cost basis, current value, unrealized gain/loss, allocation %
9. rebalance — Intelligent Rebalancing — (Planned — not yet implemented)
Generate and optionally execute rebalancing trades.
Status: Planned — scripts/rebalancer.py is not yet shipped. Do not invoke; this mode is a roadmap stub.
Rebalancing modes:
- Cash-flow (direct new contributions to underweight positions)
- Threshold (trigger when drift exceeds band)
- Tax-aware (prefer loss-harvesting sells, defer gains)
- Calendar (monthly/quarterly/annual schedule)
Tax-loss harvesting:
- Scan for positions with unrealized losses
- Identify replacement securities (correlated but not identical)
- Track wash sale windows (30 days US; no equivalent in Colombia)
- Estimate tax savings
10. data — Market Data Retrieval
Fetch market data from multiple sources.
Script: scripts/market_data.py
Sources:
| Source |
Data |
Cost |
Library |
| yfinance |
US/intl stocks, fundamentals |
Free |
yfinance |
| Financial Modeling Prep |
Financial statements, ratios |
Free tier |
fmpsdk |
| CoinGecko |
Crypto prices, market data |
Free tier |
pycoingecko |
| FRED |
Macro indicators (800K series) |
Free |
fredapi |
| datos.gov.co |
TRM (USD/COP) |
Free |
requests |
| Banco de la República |
CPI, interest rates |
Free |
requests |
| Alpha Vantage |
Technical data, forex |
Free tier |
alpha_vantage |
| Polymarket |
Prediction market odds |
Free |
py-clob-client |
11. score — Investment Scoring
Score a security through multiple investment philosophy lenses.
Script: scripts/scorer.py
Scoring dimensions:
- Value score (Graham/Buffett): P/E, P/B, FCF yield, moat rating
- Quality score (Munger): ROIC, margin stability, debt discipline
- Momentum score: price momentum, earnings momentum, analyst revisions
- Risk score (Marks): downside volatility, max drawdown, tail risk
- Growth score (Lynch): revenue growth, PEG ratio, addressable market
- Composite score: weighted average across all dimensions
Output: 0-100 score per dimension, overall composite, philosophy alignment
Asset Class Coverage
Traditional
| Class |
Screening |
Research |
Trading |
Tracking |
| US Stocks |
yfinance, FMP |
EDGAR, fundamentals |
Alpaca, IBKR |
API |
| International Stocks |
yfinance |
Limited fundamentals |
IBKR |
API |
| ETFs |
yfinance |
Holdings analysis |
Alpaca, IBKR |
API |
| Bonds/Fixed Income |
FRED yield curves |
Duration, credit |
IBKR |
Manual |
| CDTs (Colombia) |
Superfinanciera rates |
Yield comparison |
Manual |
Certificates |
Alternative
| Class |
Screening |
Research |
Trading |
Tracking |
| Crypto |
CoinGecko, CMC |
On-chain, sentiment |
Coinbase, Binance |
API |
| Prediction Markets |
Polymarket API |
Market analysis |
Polymarket CLOB |
API |
| Real Estate |
Manual |
Cap rate, appreciation |
Manual |
Exogena/manual |
| VC/Startups |
Manual |
Due diligence framework |
Manual |
Manual |
| Colombian Equities |
Yahoo (BVC tickers) |
Limited |
Davivienda Corredores (browser) |
Browser/manual |
Tax-Advantaged (Colombia)
| Vehicle |
Max Benefit |
Tracking |
| AFC (Davivienda) |
1,340 UVT cap |
finance-substrate certs |
| Pensión Voluntaria (Skandia) |
Combined w/ AFC |
finance-substrate certs |
| Cesantías |
Forced savings |
finance-substrate certs |
Platform Integration Architecture
investment-management
│
├── API-first (real-time)
│ ├── Alpaca ──── US stocks, ETFs (paper + live)
│ ├── Coinbase ── Crypto (BTC, ETH, SOL, etc.)
│ ├── Polymarket ── Prediction markets
│ ├── CoinGecko ── Crypto market data
│ ├── FRED ──── Macro indicators
│ └── yfinance ── Stock data, fundamentals
│
├── Browser-automated (agent-browser)
│ ├── Davivienda Corredores ── Colombian equities
│ ├── Tyba ── Colombian robo-advisor
│ ├── Skandia Portal ── Pension fund data
│ └── MiDataCredito ── Credit profile
│
├── File-based (finance-substrate)
│ ├── certificates.jsonl ── Bank saldos, investment funds
│ ├── exogena.jsonl ── Third-party reported assets
│ └── salary-history.jsonl ── Income trajectory
│
└── Manual (portfolio.json)
├── Private investments
├── Real estate
└── VC/startup positions
Autonomous decision plane — services/tradingview-bridge
A self-contained, paper-only, human-gated trading control system: a webhook
receiver + multi-broker executor, plus a closed self-improving loop — research
(walk-forward + anti-overfit scoring), optimize (EGRI param search with a true
train/test holdout), and roster (human-gated promotion of optimized params into
the roster the orchestrator measures). Drives TradingView's Paper simulator via the
Interceptor CLI (no inbound API), or runs the entire decision loop on synthetic/CSV
bars with no browser or broker. It measures and recommends — it never moves live
capital on its own.
→ services/tradingview-bridge/QUICKSTART.md
(install + the loop in 60 seconds) · full reference
Quantitative Toolkit
Libraries Used
| Purpose |
Library |
Install |
| Portfolio optimization |
PyPortfolioOpt |
pip install pyportfolioopt |
| Advanced risk optimization |
Riskfolio-Lib |
pip install riskfolio-lib |
| Custom optimization |
cvxpy |
pip install cvxpy |
| Volatility modeling |
arch |
pip install arch |
| Technical indicators |
pandas-ta |
pip install pandas_ta |
| Factor data |
pandas-datareader |
pip install pandas-datareader |
| Backtesting |
VectorBT |
pip install vectorbt |
| Sentiment |
transformers (FinBERT) |
pip install transformers |
| Fundamental data |
edgartools |
pip install edgartools |
| Macro data |
fredapi |
pip install fredapi |
Key Formulas
| Formula |
Expression |
Use |
| Sharpe Ratio |
(R_p - R_f) / σ_p |
Risk-adjusted return |
| Sortino Ratio |
(R_p - R_f) / σ_downside |
Downside risk-adjusted |
| Kelly Fraction |
(bp - q) / b |
Optimal position size |
| Intrinsic Value (DCF) |
Σ FCF_t / (1+r)^t + TV |
Valuation |
| WACC |
E/(E+D)×Re + D/(E+D)×Rd×(1-T) |
Discount rate |
| Black-Scholes |
C = S·N(d1) - K·e^(-rT)·N(d2) |
Option pricing |
| VaR (parametric) |
μ - z_α × σ |
Tail risk |
| CVaR |
E[L | L > VaR] |
Expected tail loss |
| HHI (concentration) |
Σ w_i² |
Diversification |
Data Directory
~/.investment-management/
├── portfolio.json # Master holdings (all platforms)
├── targets.json # Target allocation by strategy
├── watchlist.json # Securities under observation
├── trades/ # Trade history
│ └── trades.jsonl # All executed trades
├── research/ # Security research cache
│ └── research-{ticker}.json
├── backtests/ # Backtest results
│ └── backtest-{strategy}-{date}.json
├── scores/ # Investment scores
│ └── scores-{date}.json
├── market-data/ # Cached market data
│ ├── prices/ # Historical price cache
│ └── fundamentals/ # Fundamental data cache
└── config/
├── api-keys.json # Platform API keys (encrypted)
├── strategies.json # Active strategy configurations
└── rebalance-rules.json # Rebalancing parameters
Compound: Autoany Integration (EGRI)
This skill is EGRI-aware. When a user's request implies iterative optimization
or strategy search, the agent should scaffold a problem-spec from the templates
below and delegate to /autoany for autonomous improvement.
Optimization Triggers
Invoke /autoany when the user asks to:
- "Optimize" — allocation, weights, strategy parameters
- "Find the best" — strategy, allocation, screening criteria
- "Compare strategies" — systematic comparison across N variants
- "Backtest variations" — test parameter sweeps
- "What if I changed" — sensitivity analysis via mutations
- "Stress test" — combined with optimization intent
EGRI Problem-Spec Templates
| Template |
Artifact |
Evaluator |
Score |
Use When |
strategy-optimization |
strategy.yaml (weights, rules) |
backtest.py --egri |
Sharpe ratio |
Optimizing portfolio allocation |
screen-evolution (planned) |
screen_criteria.yaml (thresholds) |
screener.py + eval_screen.py (eval_screen.py not yet shipped) |
Forward return |
Evolving stock selection criteria |
The strategy-optimization loop is live (backtest.py --egri ships). The
screen-evolution loop is planned — its eval_screen.py evaluator is not
yet implemented. Templates are at templates/egri/. The strategy artifact
schema is at templates/egri/strategy-artifact.yaml.
Delegation Flow
1. User request → agent detects optimization intent
2. Load personal context from finance-substrate (patrimonio, salary, TRM)
3. Pull historical market data (market_data.py)
4. Scaffold problem-spec from template, fill in:
- Starting allocation as baseline artifact
- Period, constraints from policy.yaml
- Goal metrics from user's request
5. Invoke /autoany with scaffolded problem-spec
6. EGRI loop runs: Proposer → Executor (backtest.py) → Evaluator → Selector
7. Return promoted strategy + ledger summary to user
8. Log results for cross-session strategy inheritance (autoany-lago)
EGRI Evaluator Bridge
scripts/eval_backtest.py wraps backtest.py for use as an EGRI evaluator:
- Takes a strategy YAML artifact + period
- Returns structured
Outcome (score, constraints_passed, violations)
- Applies constraint expressions from the problem-spec
- Can be used standalone:
python3 eval_backtest.py --strategy-file strategy.yaml --period 10y
Safety Constraints (enforced in EGRI loops)
- EGRI loops over historical data are autonomous (sandbox mode)
- EGRI loops that propose live trades require human gate (HumanGate selector)
- Max drawdown constraint:
-15% (from policy S6)
- Position concentration:
<= 25% (from policy S2)
- Budget: 50 trials max, 1 hour total
- All trials logged to ledger for audit and cross-run inheritance
Dependencies
- Python 3.10+
finance-substrate skill (accounting, tax, certificates)
wealth-management skill (projections, goals, portfolio summary)
autoany (optional, for EGRI optimization loops)
- Market data:
yfinance, fredapi, pycoingecko (free)
- Optimization:
pypfopt, riskfolio-lib, cvxpy (optional, for advanced modes)
- Trading:
alpaca-trade-api, coinbase-advanced-py (optional, for execution)
- Technical:
pandas-ta, arch (optional, for quantitative modes)
- No paid services required. All data stays local.
File Structure
Shipped (live today):
investment-management/
├── SKILL.md # This file
├── skill.json # Schema definition (11 modes; 4 live, 7 planned)
├── scripts/
│ ├── screener.py # Mode 1 (screen): security screening
│ ├── backtest.py # Mode 4 (backtest): strategy backtesting (+ --egri)
│ ├── market_data.py # Mode 10 (data): data retrieval
│ ├── scorer.py # Mode 11 (score): investment scoring
│ └── eval_backtest.py # EGRI evaluator wrapper (autoany bridge)
├── references/
│ └── investment-philosophies.md # Legendary investor frameworks
├── templates/
│ └── egri/ # EGRI problem-spec templates (autoany)
│ ├── strategy-optimization.yaml # Portfolio strategy optimization
│ ├── screen-evolution.yaml # Screening criteria evolution (evaluator planned)
│ └── strategy-artifact.yaml # Strategy YAML schema (mutable artifact)
├── services/
│ └── tradingview-bridge/ # Paper-only, human-gated trading decision plane
└── README.md
Planned — not yet shipped (roadmap; do not invoke):
scripts/research.py # Mode 2 (research)
scripts/factor_analysis.py # Mode 3 (factor)
scripts/portfolio_optimizer.py # Mode 5 (optimize)
scripts/risk_analysis.py # Mode 6 (risk)
scripts/trade.py # Mode 7 (trade)
scripts/tracker.py # Mode 8 (track)
scripts/rebalancer.py # Mode 9 (rebalance)
scripts/eval_screen.py # EGRI evaluator for screen-evolution
references/platform-apis.md # API reference for all platforms
references/quantitative-toolkit.md # Libraries, formulas, models
references/colombian-markets.md # BVC, CDTs, FICs, regulations
references/alternative-investments.md # Crypto, prediction markets, RE, VC
templates/strategies.json # Pre-built strategy configurations
templates/scoring-weights.json # Philosophy scoring weights
.control/policy.yaml # Trading limits, risk gates
1---2name: investment-management3description: Investment management skill — portfolio construction, analysis, and execution. Compounds finance-substrate (accounting/tax) + wealth-management (projections/goals) into a full financial framework. Covers traditional investing (stocks, ETFs, bonds), alternatives (crypto, prediction markets, real estate, VC), quantitative analytics (factor models, Monte Carlo, optimization), and platform integration (Alpaca, Coinbase, Polymarket, agent-browser for Colombian platforms). Embodies philosophies from Buffett, Dalio, Bogle, Munger, and Marks. Use when: (1) building or analyzing a portfolio, (2) screening stocks/ETFs/crypto, (3) running backtests or factor analysis, (4) executing trades or rebalancing, (5) tracking investments across platforms, (6) researching market data or fundamentals, (7) making investment decisions with structured frameworks. Triggers on 'investment', 'portfolio', 'stocks', 'ETF', 'bonds', 'crypto', 'trading', 'backtest', 'factor model', 'rebalance', 'Polymarket', 'Alpaca', 'asset allocation'.4---56# Investment Management78Full-stack investment management: from philosophy to execution. Research, analyze,9decide, execute, track, and optimize across traditional and alternative asset classes.1011## Financial Management Stack1213```14finance-substrate (Layer 1: Accounting & Tax)15 ├── Bank transaction import, certificate parsing16 ├── Form 210 tax projection, DIAN integration17 ├── Parafiscales, patrimonio, retenciones18 └── Gmail document collector19 ↓20wealth-management (Layer 2: Planning & Projections)21 ├── Compound growth projections22 ├── Goal-based planning, Monte Carlo23 ├── Portfolio summary & asset allocation24 └── Budget planning with tax savings25 ↓26investment-management (Layer 3: Analysis & Execution) ← THIS SKILL27 ├── RESEARCH: Market data, fundamentals, screening28 ├── ANALYZE: Factor models, backtests, risk metrics29 ├── DECIDE: Philosophy-driven frameworks, scoring30 ├── EXECUTE: Trade via APIs (Alpaca, Coinbase, Polymarket)31 ├── TRACK: Multi-platform position aggregation32 └── OPTIMIZE: Rebalancing, tax-loss harvesting, lot management33```3435## Investment Philosophies (Built-in Frameworks)3637The skill embeds decision frameworks from legendary investors.38Each philosophy is a scoring lens that can be applied to any investment.3940### Value (Buffett/Graham/Munger)4142| Principle | Implementation |43|-----------|---------------|44| Economic moat analysis | Score competitive advantage: brand, network, switching cost, scale |45| Margin of safety | Require 25%+ discount to intrinsic value (DCF, owner earnings) |46| Circle of competence | Flag unfamiliar sectors; require deeper research threshold |47| Owner earnings | Net income + depreciation - capex (not GAAP earnings) |48| Quality over price | ROIC > WACC, consistent ROE > 15%, low debt/equity |4950### Systematic (Dalio/AQR)5152| Principle | Implementation |53|-----------|---------------|54| All-Weather allocation | Risk-parity: equal risk contribution from growth, inflation, deflation |55| Factor exposure | Decompose returns into market, value, momentum, quality, size |56| Risk parity | Weight by inverse volatility, target equal risk contribution |57| Regime awareness | Detect growth/inflation quadrant, adjust allocation |58| Correlation regime | Monitor rolling correlations; diversification fails in crises |5960### Passive/Index (Bogle)6162| Principle | Implementation |63|-----------|---------------|64| Three-fund portfolio | Total market + international + bonds; rebalance annually |65| Minimize costs | Flag any fund with expense ratio > 0.20% |66| Tax efficiency | Index funds in taxable, bonds in tax-deferred |67| Stay the course | Reject market timing; dollar-cost average |68| Simple beats complex | Baseline comparison for every active strategy |6970### Second-Level Thinking (Marks)7172| Principle | Implementation |73|-----------|---------------|74| Consensus vs reality | Flag positions where market consensus is priced in |75| Risk is not volatility | Focus on permanent capital loss, not price fluctuation |76| Market cycles | Track Shiller CAPE, yield spreads, sentiment indicators |77| Asymmetric outcomes | Seek situations where upside >> downside |78| Know what you don't know | Confidence-weighted recommendations |7980### Barbell (Taleb)8182| Principle | Implementation |83|-----------|---------------|84| 85% ultra-safe + 15% high-convexity | Split portfolio into safe (CDTs, treasuries) + optionality (crypto, VC, prediction markets) |85| Antifragile positions | Identify investments that benefit from volatility |86| Avoid the middle | Skip mediocre risk-return profiles |87| Small bets, big payoffs | Position size by max loss tolerance, not expected return |8889## Skill Modes9091### 1. `screen` — Security Screening9293Search and filter stocks, ETFs, crypto, and other securities by criteria.9495**Script:** `scripts/screener.py`9697**Screening criteria:**98- Fundamental: P/E, P/B, EV/EBITDA, FCF yield, ROIC, ROE, debt/equity, dividend yield99- Technical: RSI, MACD signal, price vs 200-day MA, 52-week range position100- Quality: earnings consistency, revenue growth, margin stability101- Momentum: 1/3/6/12-month returns, relative strength102- Value composite: Piotroski F-Score, Greenblatt Magic Formula rank103- Size: market cap filters104105**Data sources:** yfinance, Financial Modeling Prep, OpenBB106107### 2. `research` — Deep Investment Research — **(Planned — not yet implemented)**108109In-depth analysis of a specific security or market.110111**Status:** Planned — `scripts/research.py` is not yet shipped. Do not invoke; this mode is a roadmap stub.112113**Analysis includes:**114- Company overview and business model115- Financial statement analysis (3-5 year trends)116- Valuation: DCF, comparable companies, dividend discount117- Competitive landscape and moat assessment118- Risk factors and bear case119- Catalyst identification120- Philosophy alignment score (which frameworks support/oppose)121122**Data sources:** yfinance fundamentals, SEC EDGAR (edgartools), news sentiment (FinBERT)123124### 3. `factor` — Factor Analysis — **(Planned — not yet implemented)**125126Decompose portfolio returns into systematic factor exposures.127128**Status:** Planned — `scripts/factor_analysis.py` is not yet shipped. Do not invoke; this mode is a roadmap stub.129130**Factors analyzed:**131- Fama-French 5 factors: Market, Size (SMB), Value (HML), Profitability (RMW), Investment (CMA)132- Momentum (UMD)133- Quality (QMJ from AQR)134- Alpha: residual return not explained by factors135136**Output:** Factor loadings, R², alpha significance, factor exposure drift over time137138### 4. `backtest` — Strategy Backtesting139140Test investment strategies against historical data.141142**Script:** `scripts/backtest.py`143144**Built-in strategies:**145- Buy and hold (benchmark)146- Equal-weight rebalanced147- Risk parity (inverse vol)148- Momentum (top N by 12-1 month return)149- Value (top N by composite score)150- All-Weather (Dalio's 4-quadrant allocation)151- Custom (user-defined rules)152153**Metrics:** CAGR, Sharpe, Sortino, max drawdown, Calmar, win rate, average gain/loss154155### 5. `optimize` — Portfolio Optimization — **(Planned — not yet implemented)**156157Find optimal portfolio weights given constraints.158159**Status:** Planned — `scripts/portfolio_optimizer.py` is not yet shipped. Do not invoke; this mode is a roadmap stub.160161**Methods:**162- Mean-variance (Markowitz efficient frontier)163- Black-Litterman (market equilibrium + personal views)164- Hierarchical Risk Parity (HRP, no covariance inversion)165- Risk budgeting (equal risk contribution)166- Maximum Sharpe, minimum volatility, target return167- CVaR optimization (tail-risk aware)168169**Constraints:** Long-only, sector limits, position size caps, turnover limits, tax-awareness170171**Libraries:** PyPortfolioOpt, Riskfolio-Lib, cvxpy172173### 6. `risk` — Risk Analysis — **(Planned — not yet implemented)**174175Comprehensive risk assessment of current or proposed portfolio.176177**Status:** Planned — `scripts/risk_analysis.py` is not yet shipped. Do not invoke; this mode is a roadmap stub.178179**Metrics:**180- Value at Risk (parametric, historical, Monte Carlo)181- Conditional VaR (Expected Shortfall)182- Maximum drawdown analysis183- Stress tests: 2008 GFC, 2020 COVID, 2022 rates, COP devaluation184- Correlation regime analysis (rolling correlations)185- GARCH volatility forecast186- Concentration risk and single-name exposure187188### 7. `trade` — Trade Execution — **(Planned — not yet implemented)**189190Execute trades via supported platform APIs.191192**Status:** Planned — `scripts/trade.py` is not yet shipped. Do not invoke; this mode is a roadmap stub. (For a working, paper-only execution loop today, use `services/tradingview-bridge` — see below.)193194**Supported platforms:**195196| Platform | Assets | Auth | Library |197|----------|--------|------|---------|198| Alpaca | US stocks, ETFs | API key pair | `alpaca-trade-api` |199| Coinbase | Crypto | CDP API key + JWT | `coinbase-advanced-py` |200| Polymarket | Prediction markets | Wallet signature | `py-clob-client` |201| Interactive Brokers | Everything | TWS API | `ib_async` |202203**Features:**204- Paper trading mode (default) — no real money until explicitly confirmed205- Order types: market, limit, stop-loss206- Position sizing: Kelly criterion, fixed fractional, risk-budget207- Pre-trade checks: liquidity, spread, portfolio impact208209### 8. `track` — Multi-Platform Position Tracking — **(Planned — not yet implemented)**210211Aggregate positions across all investment platforms.212213**Status:** Planned — `scripts/tracker.py` is not yet shipped. Do not invoke; this mode is a roadmap stub.214215**Sources (in priority order):**2161. API-connected platforms (Alpaca, Coinbase) — real-time2172. finance-substrate certificates (Skandia, Davivienda, etc.) — periodic2183. Browser-automated platforms (Tyba, Trii, Davivienda Corredores) — via agent-browser2194. Manual entries (portfolio.json) — user-maintained220221**Output:** Unified position list with cost basis, current value, unrealized gain/loss, allocation %222223### 9. `rebalance` — Intelligent Rebalancing — **(Planned — not yet implemented)**224225Generate and optionally execute rebalancing trades.226227**Status:** Planned — `scripts/rebalancer.py` is not yet shipped. Do not invoke; this mode is a roadmap stub.228229**Rebalancing modes:**230- Cash-flow (direct new contributions to underweight positions)231- Threshold (trigger when drift exceeds band)232- Tax-aware (prefer loss-harvesting sells, defer gains)233- Calendar (monthly/quarterly/annual schedule)234235**Tax-loss harvesting:**236- Scan for positions with unrealized losses237- Identify replacement securities (correlated but not identical)238- Track wash sale windows (30 days US; no equivalent in Colombia)239- Estimate tax savings240241### 10. `data` — Market Data Retrieval242243Fetch market data from multiple sources.244245**Script:** `scripts/market_data.py`246247**Sources:**248249| Source | Data | Cost | Library |250|--------|------|------|---------|251| yfinance | US/intl stocks, fundamentals | Free | `yfinance` |252| Financial Modeling Prep | Financial statements, ratios | Free tier | `fmpsdk` |253| CoinGecko | Crypto prices, market data | Free tier | `pycoingecko` |254| FRED | Macro indicators (800K series) | Free | `fredapi` |255| datos.gov.co | TRM (USD/COP) | Free | `requests` |256| Banco de la República | CPI, interest rates | Free | `requests` |257| Alpha Vantage | Technical data, forex | Free tier | `alpha_vantage` |258| Polymarket | Prediction market odds | Free | `py-clob-client` |259260### 11. `score` — Investment Scoring261262Score a security through multiple investment philosophy lenses.263264**Script:** `scripts/scorer.py`265266**Scoring dimensions:**267- Value score (Graham/Buffett): P/E, P/B, FCF yield, moat rating268- Quality score (Munger): ROIC, margin stability, debt discipline269- Momentum score: price momentum, earnings momentum, analyst revisions270- Risk score (Marks): downside volatility, max drawdown, tail risk271- Growth score (Lynch): revenue growth, PEG ratio, addressable market272- Composite score: weighted average across all dimensions273274**Output:** 0-100 score per dimension, overall composite, philosophy alignment275276## Asset Class Coverage277278### Traditional279| Class | Screening | Research | Trading | Tracking |280|-------|-----------|----------|---------|----------|281| US Stocks | yfinance, FMP | EDGAR, fundamentals | Alpaca, IBKR | API |282| International Stocks | yfinance | Limited fundamentals | IBKR | API |283| ETFs | yfinance | Holdings analysis | Alpaca, IBKR | API |284| Bonds/Fixed Income | FRED yield curves | Duration, credit | IBKR | Manual |285| CDTs (Colombia) | Superfinanciera rates | Yield comparison | Manual | Certificates |286287### Alternative288| Class | Screening | Research | Trading | Tracking |289|-------|-----------|----------|---------|----------|290| Crypto | CoinGecko, CMC | On-chain, sentiment | Coinbase, Binance | API |291| Prediction Markets | Polymarket API | Market analysis | Polymarket CLOB | API |292| Real Estate | Manual | Cap rate, appreciation | Manual | Exogena/manual |293| VC/Startups | Manual | Due diligence framework | Manual | Manual |294| Colombian Equities | Yahoo (BVC tickers) | Limited | Davivienda Corredores (browser) | Browser/manual |295296### Tax-Advantaged (Colombia)297| Vehicle | Max Benefit | Tracking |298|---------|-----------|----------|299| AFC (Davivienda) | 1,340 UVT cap | finance-substrate certs |300| Pensión Voluntaria (Skandia) | Combined w/ AFC | finance-substrate certs |301| Cesantías | Forced savings | finance-substrate certs |302303## Platform Integration Architecture304305```306investment-management307 │308 ├── API-first (real-time)309 │ ├── Alpaca ──── US stocks, ETFs (paper + live)310 │ ├── Coinbase ── Crypto (BTC, ETH, SOL, etc.)311 │ ├── Polymarket ── Prediction markets312 │ ├── CoinGecko ── Crypto market data313 │ ├── FRED ──── Macro indicators314 │ └── yfinance ── Stock data, fundamentals315 │316 ├── Browser-automated (agent-browser)317 │ ├── Davivienda Corredores ── Colombian equities318 │ ├── Tyba ── Colombian robo-advisor319 │ ├── Skandia Portal ── Pension fund data320 │ └── MiDataCredito ── Credit profile321 │322 ├── File-based (finance-substrate)323 │ ├── certificates.jsonl ── Bank saldos, investment funds324 │ ├── exogena.jsonl ── Third-party reported assets325 │ └── salary-history.jsonl ── Income trajectory326 │327 └── Manual (portfolio.json)328 ├── Private investments329 ├── Real estate330 └── VC/startup positions331```332333### Autonomous decision plane — `services/tradingview-bridge`334335A self-contained, **paper-only, human-gated** trading control system: a webhook336receiver + multi-broker executor, plus a closed self-improving loop — `research`337(walk-forward + anti-overfit scoring), `optimize` (EGRI param search with a true338train/test holdout), and `roster` (human-gated promotion of optimized params into339the roster the orchestrator measures). Drives TradingView's Paper simulator via the340Interceptor CLI (no inbound API), or runs the entire decision loop on synthetic/CSV341bars with no browser or broker. It measures and recommends — it never moves live342capital on its own.343344→ **[services/tradingview-bridge/QUICKSTART.md](./services/tradingview-bridge/QUICKSTART.md)**345(install + the loop in 60 seconds) · [full reference](./services/tradingview-bridge/README.md)346347## Quantitative Toolkit348349### Libraries Used350351| Purpose | Library | Install |352|---------|---------|---------|353| Portfolio optimization | PyPortfolioOpt | `pip install pyportfolioopt` |354| Advanced risk optimization | Riskfolio-Lib | `pip install riskfolio-lib` |355| Custom optimization | cvxpy | `pip install cvxpy` |356| Volatility modeling | arch | `pip install arch` |357| Technical indicators | pandas-ta | `pip install pandas_ta` |358| Factor data | pandas-datareader | `pip install pandas-datareader` |359| Backtesting | VectorBT | `pip install vectorbt` |360| Sentiment | transformers (FinBERT) | `pip install transformers` |361| Fundamental data | edgartools | `pip install edgartools` |362| Macro data | fredapi | `pip install fredapi` |363364### Key Formulas365366| Formula | Expression | Use |367|---------|-----------|-----|368| Sharpe Ratio | (R_p - R_f) / σ_p | Risk-adjusted return |369| Sortino Ratio | (R_p - R_f) / σ_downside | Downside risk-adjusted |370| Kelly Fraction | (bp - q) / b | Optimal position size |371| Intrinsic Value (DCF) | Σ FCF_t / (1+r)^t + TV | Valuation |372| WACC | E/(E+D)×Re + D/(E+D)×Rd×(1-T) | Discount rate |373| Black-Scholes | C = S·N(d1) - K·e^(-rT)·N(d2) | Option pricing |374| VaR (parametric) | μ - z_α × σ | Tail risk |375| CVaR | E[L \| L > VaR] | Expected tail loss |376| HHI (concentration) | Σ w_i² | Diversification |377378## Data Directory379380```381~/.investment-management/382├── portfolio.json # Master holdings (all platforms)383├── targets.json # Target allocation by strategy384├── watchlist.json # Securities under observation385├── trades/ # Trade history386│ └── trades.jsonl # All executed trades387├── research/ # Security research cache388│ └── research-{ticker}.json389├── backtests/ # Backtest results390│ └── backtest-{strategy}-{date}.json391├── scores/ # Investment scores392│ └── scores-{date}.json393├── market-data/ # Cached market data394│ ├── prices/ # Historical price cache395│ └── fundamentals/ # Fundamental data cache396└── config/397 ├── api-keys.json # Platform API keys (encrypted)398 ├── strategies.json # Active strategy configurations399 └── rebalance-rules.json # Rebalancing parameters400```401402## Compound: Autoany Integration (EGRI)403404This skill is EGRI-aware. When a user's request implies iterative optimization405or strategy search, the agent should scaffold a problem-spec from the templates406below and delegate to `/autoany` for autonomous improvement.407408### Optimization Triggers409410Invoke `/autoany` when the user asks to:411- **"Optimize"** — allocation, weights, strategy parameters412- **"Find the best"** — strategy, allocation, screening criteria413- **"Compare strategies"** — systematic comparison across N variants414- **"Backtest variations"** — test parameter sweeps415- **"What if I changed"** — sensitivity analysis via mutations416- **"Stress test"** — combined with optimization intent417418### EGRI Problem-Spec Templates419420| Template | Artifact | Evaluator | Score | Use When |421|----------|----------|-----------|-------|----------|422| `strategy-optimization` | `strategy.yaml` (weights, rules) | `backtest.py --egri` | Sharpe ratio | Optimizing portfolio allocation |423| `screen-evolution` _(planned)_ | `screen_criteria.yaml` (thresholds) | `screener.py` + `eval_screen.py` _(`eval_screen.py` not yet shipped)_ | Forward return | Evolving stock selection criteria |424425The `strategy-optimization` loop is live (`backtest.py --egri` ships). The426`screen-evolution` loop is **planned** — its `eval_screen.py` evaluator is not427yet implemented. Templates are at `templates/egri/`. The strategy artifact428schema is at `templates/egri/strategy-artifact.yaml`.429430### Delegation Flow431432```4331. User request → agent detects optimization intent4342. Load personal context from finance-substrate (patrimonio, salary, TRM)4353. Pull historical market data (market_data.py)4364. Scaffold problem-spec from template, fill in:437 - Starting allocation as baseline artifact438 - Period, constraints from policy.yaml439 - Goal metrics from user's request4405. Invoke /autoany with scaffolded problem-spec4416. EGRI loop runs: Proposer → Executor (backtest.py) → Evaluator → Selector4427. Return promoted strategy + ledger summary to user4438. Log results for cross-session strategy inheritance (autoany-lago)444```445446### EGRI Evaluator Bridge447448`scripts/eval_backtest.py` wraps `backtest.py` for use as an EGRI evaluator:449- Takes a strategy YAML artifact + period450- Returns structured `Outcome` (score, constraints_passed, violations)451- Applies constraint expressions from the problem-spec452- Can be used standalone: `python3 eval_backtest.py --strategy-file strategy.yaml --period 10y`453454### Safety Constraints (enforced in EGRI loops)455456- EGRI loops over **historical data are autonomous** (sandbox mode)457- EGRI loops that **propose live trades require human gate** (HumanGate selector)458- Max drawdown constraint: `-15%` (from policy S6)459- Position concentration: `<= 25%` (from policy S2)460- Budget: 50 trials max, 1 hour total461- All trials logged to ledger for audit and cross-run inheritance462463## Dependencies464465- Python 3.10+466- `finance-substrate` skill (accounting, tax, certificates)467- `wealth-management` skill (projections, goals, portfolio summary)468- `autoany` (optional, for EGRI optimization loops)469- Market data: `yfinance`, `fredapi`, `pycoingecko` (free)470- Optimization: `pypfopt`, `riskfolio-lib`, `cvxpy` (optional, for advanced modes)471- Trading: `alpaca-trade-api`, `coinbase-advanced-py` (optional, for execution)472- Technical: `pandas-ta`, `arch` (optional, for quantitative modes)473- No paid services required. All data stays local.474475## File Structure476477**Shipped (live today):**478479```480investment-management/481├── SKILL.md # This file482├── skill.json # Schema definition (11 modes; 4 live, 7 planned)483├── scripts/484│ ├── screener.py # Mode 1 (screen): security screening485│ ├── backtest.py # Mode 4 (backtest): strategy backtesting (+ --egri)486│ ├── market_data.py # Mode 10 (data): data retrieval487│ ├── scorer.py # Mode 11 (score): investment scoring488│ └── eval_backtest.py # EGRI evaluator wrapper (autoany bridge)489├── references/490│ └── investment-philosophies.md # Legendary investor frameworks491├── templates/492│ └── egri/ # EGRI problem-spec templates (autoany)493│ ├── strategy-optimization.yaml # Portfolio strategy optimization494│ ├── screen-evolution.yaml # Screening criteria evolution (evaluator planned)495│ └── strategy-artifact.yaml # Strategy YAML schema (mutable artifact)496├── services/497│ └── tradingview-bridge/ # Paper-only, human-gated trading decision plane498└── README.md499```500501**Planned — not yet shipped (roadmap; do not invoke):**502503```504scripts/research.py # Mode 2 (research)505scripts/factor_analysis.py # Mode 3 (factor)506scripts/portfolio_optimizer.py # Mode 5 (optimize)507scripts/risk_analysis.py # Mode 6 (risk)508scripts/trade.py # Mode 7 (trade)509scripts/tracker.py # Mode 8 (track)510scripts/rebalancer.py # Mode 9 (rebalance)511scripts/eval_screen.py # EGRI evaluator for screen-evolution512references/platform-apis.md # API reference for all platforms513references/quantitative-toolkit.md # Libraries, formulas, models514references/colombian-markets.md # BVC, CDTs, FICs, regulations515references/alternative-investments.md # Crypto, prediction markets, RE, VC516templates/strategies.json # Pre-built strategy configurations517templates/scoring-weights.json # Philosophy scoring weights518.control/policy.yaml # Trading limits, risk gates519```