Skip to main content
ClaudeWave
Skill12k estrellas del repoactualizado today

execution-model

The execution-model skill simulates realistic trade execution costs for backtesting by incorporating slippage models (fixed, linear, and square-root impact formulas) and execution algorithms like VWAP and TWAP. Use this skill when backtesting trading strategies to replace idealized zero-cost assumptions with market-realistic execution costs including bid-ask spreads, market impact from large orders, and latency delays, enabling more accurate performance estimates before live trading.

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/HKUDS/Vibe-Trading /tmp/execution-model && cp -r /tmp/execution-model/agent/src/skills/execution-model ~/.claude/skills/execution-model
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# Trade Execution Modeling

## Overview

Provide more realistic execution assumptions for backtests, including slippage models, market-impact estimation, and execution-algorithm principles. This skill is for backtest simulation only and does not involve live order execution.

## Slippage Models

### Why Slippage Models Are Needed

```
Idealized backtest: filled at the close, zero slippage
Real world:
1. The order book has a bid-ask spread
2. Large orders push prices (market impact)
3. Execution is delayed (there is latency from signal to fill)

No slippage model -> overly optimistic backtest -> losses in live trading
```

### 1. Fixed Slippage Model

```python
def fixed_slippage(price: float, direction: int, bps: float = 5.0) -> float:
    """
    Args:
        price: Original price
        direction: 1=buy, -1=sell
        bps: Slippage in basis points (1bp = 0.01%), default 5bp
    Returns:
        Execution price after slippage
    """
    slippage = price * bps / 10000
    return price + direction * slippage
```

**Reference fixed-slippage assumptions by market:**

| Market | Instrument | Suggested Slippage (bps) | Notes |
|------|------|-------------|------|
| China A-share large cap | CSI 300 constituents | 3-5 | Good liquidity |
| China A-share small cap | CSI 1000 constituents | 5-10 | Average liquidity |
| China micro-cap | market cap < 5 billion RMB | 10-30 | Poor liquidity |
| US large cap | AAPL / MSFT | 1-3 | Excellent liquidity |
| Hong Kong stocks | Hang Seng constituents | 5-10 | Less liquid than A / US |
| BTC spot | BTC-USDT | 2-5 | Good OKX liquidity |
| ETH spot | ETH-USDT | 3-8 | Slightly worse than BTC |
| Small altcoins | other `-USDT` pairs | 10-50 | Liquidity varies widely |

### 2. Linear Impact Model

```python
def linear_impact(price: float, direction: int,
                  volume_traded: float, adv: float,
                  impact_coeff: float = 0.1) -> float:
    """
    Linear market impact: impact ∝ traded volume / ADV

    Args:
        price: Original price
        direction: 1=buy, -1=sell
        volume_traded: Trade size (shares or notional)
        adv: Average Daily Volume
        impact_coeff: Impact coefficient, usually 0.05-0.2
    Returns:
        Execution price after impact
    """
    participation_rate = volume_traded / adv
    impact = impact_coeff * participation_rate
    return price * (1 + direction * impact)
```

**Reference impact coefficients:**

| Market | impact_coeff | Notes |
|------|-------------|------|
| China A-share large cap | 0.05-0.10 | 10% daily price-limit system |
| China A-share small cap | 0.10-0.20 | Liquidity premium |
| US equities | 0.03-0.08 | Market-maker buffering |
| Crypto | 0.05-0.15 | 24h trading is dispersed |

### 3. Square-Root Impact Model (Almgren-Chriss)

```python
import numpy as np

def sqrt_impact(price: float, direction: int,
                volume_traded: float, adv: float,
                volatility: float, eta: float = 0.5) -> float:
    """
    Square-root market impact (more accepted in academia):
    impact = η × σ × sqrt(V/ADV)

    Args:
        price: Original price
        direction: 1=buy, -1=sell
        volume_traded: Trade size
        adv: Average daily volume
        volatility: Daily volatility (standard deviation)
        eta: Impact elasticity coefficient, usually 0.3-0.8
    Returns:
        Execution price after impact
    """
    participation = volume_traded / adv
    impact = eta * volatility * np.sqrt(participation)
    return price * (1 + direction * impact)
```

**Advantages of the square-root model**:
- Strongest empirical support (standard in financial literature)
- Marginal impact declines for larger orders (intuitive)
- Parameters can be estimated from historical data

### Slippage Model Selection Decision Tree

```
Backtest capital vs instrument ADV:
├── Capital < 0.5% of ADV -> fixed slippage (5bps) is enough
├── Capital 0.5-5% -> linear impact model
└── Capital > 5% -> square-root impact model (required)
```

## Execution Algorithm Principles

### VWAP (Volume Weighted Average Price)

```
Goal: execute at the day's volume-weighted average price

VWAP = Σ(Price_i × Volume_i) / Σ(Volume_i)

Execution logic:
1. Forecast the intraday volume profile (typically U-shaped)
2. Split the order according to the predicted profile
3. Execute proportionally in each time slice

Typical China A-share VWAP volume profile (U-shaped):
09:30-10:00  15%  (active open)
10:00-11:30  25%  (normal morning session)
13:00-14:00  15%  (weak afternoon session)
14:00-14:30  15%  (afternoon recovery)
14:30-15:00  30%  (active close)

VWAP in backtests:
- Daily backtest: use the VWAP field directly as the fill price
- Minute backtest: simulate VWAP order slicing
```

### TWAP (Time Weighted Average Price)

```
Goal: execute evenly over a specified time window

TWAP = simple time-sliced execution

Execution logic:
1. Define an execution window (for example 09:30-11:30)
2. Divide it into N time buckets
3. Execute total_size / N in each bucket

Pros and cons:
+ Simple, no need to forecast volume
- Easier to cause impact during low-volume periods
- Less adaptive than VWAP
```

### Simulating Execution Delay in Backtests

```python
def delayed_execution(signal_series: pd.Series, delay_bars: int = 1) -> pd.Series:
    """
    Simulate the delay from signal generation to execution

    Args:
        signal_series: Original signal
        delay_bars: Number of bars to delay, default 1 (T+1 execution)
    Returns:
        Delayed signal

    China A-shares: delay_bars=1 (T+1 rule)
    Crypto: delay_bars=0 or 1
    """
    return signal_series.shift(delay_bars)
```

## Integrated Transaction-Cost Model

### Total Cost Breakdown

```
Total trading cost = explicit cost + implicit cost

Explicit cost:
- Commission: China A-shares 2-3 bps, crypto 0.02-0.1%
- Stamp duty (China A-share sell side): 0.05% (sell orders only)
- Transfer fee: negligible

Implicit cost:
- Bid-ask spread: 0.5-5bps
- Market impact: d
vibe-tradingSkill

Professional finance research toolkit — backtesting (7 engines + benchmark comparison panel), factor analysis, Alpha Zoo (452 pre-built alphas across qlib158/alpha101/gtja191/academic), options pricing, 77 finance skills, 29 multi-agent swarm teams, Trade Journal analyzer, and Shadow Account (extract → backtest → render) across 7 data sources (tushare, yfinance, okx, akshare, mootdx, ccxt, futu).

adr-hshareSkill

ADR/H-share/A-share cross-listing premium analysis — track pricing gaps between US-listed ADRs, HK-listed H-shares, and A-shares for arbitrage signals, dual-listing valuation, and delisting risk assessment.

akshareSkill

AKShare financial data aggregator (18k+ stars). Free, no API key. Covers A-shares, US, HK, futures, macro, forex. Primary fallback for tushare and yfinance.

alpha-zooSkill

Browse and bench the bundled alpha zoos — prebuilt cross-sectional factor libraries (Kakushadze 101, GTJA 191, Qlib 158, Fama-French / Carhart). Use when the user asks "which alphas exist", wants metadata on a named alpha, or wants to run IC/IR on a whole zoo over a universe.

ashare-pre-st-filterSkill

A 股 ST/*ST 风险预测框架 — 基于最新中报/三季报或业绩预告/快报,预测下一财年是否会因营收、利润、净资产、分红不达标而被风险警示,并将新浪监管处罚记录作为独立证据面纳入风险等级。仅适用于 A 股,不预测财务造假。

asset-allocationSkill

Asset allocation theory and optimizer usage — MPT / Black-Litterman / risk budgeting / all-weather strategy, including guides for 4 optimizers and rebalancing rules.

backtest-diagnoseSkill

Diagnose failed or underperforming backtests, locate the root cause, and fix the issue

behavioral-financeSkill

Behavioral finance applications: theories of overreaction and underreaction, behavioral explanations for momentum and reversal, investor sentiment cycles, cognitive-bias checklists, and debiasing quantitative strategies.