backtesting.py Open-Source Quant Guide: High-Speed Strategy Backtesting & Live Risk Controls with kernc/backtesting.py
Complete hands-on tutorial for `kernc/backtesting.py` (★ 9.2k+ Stars on GitHub): run fee-adjusted multi-parameter backtests in Python, enforce out-of-sample Walk-Forward validation, and pair your signals with Pionex Cloud AI Bots and Polymarket.
lista de verificación de 3 minutos para principiantes
- ✓Install Python 3.10+ and run
pip install -U backtesting.py pandas numpy ccxtCopiar - ✓Register a Pionex account (https://accounts.pionex.com/zh-TW/signUp?r=0eDnUwgcHjo) and a dedicated Polymarket sub-wallet
- ✓Enforce realistic fee deduction (5–10 bps) and Out-of-Sample Sharpe > 1.8
¡Nunca ejecutes un bot de trading en vivo en una laptop doméstica que entre en reposo o pierda Wi-Fi! recomendamos RAKsmart Cloud VPS: (1) Elige Tokio, Singapur o Silicon Valley para una latencia ultra baja en milisegundos con OKX/Binance y RPCs de Polygon; (2) Selecciona Ubuntu 22.04 LTS (2 vCPU / 4GB de RAM) para Docker Compose; (3) Asocia tu dirección IPv4 estática dedicada con la lista blanca de la API de tu bolsa.
¿Acabas de comprar un VPS? Cómo conectar por SSH y ejecutar comandos en Windows / Mac (Guía de 3 minutos)
Muchos usuarios por primera vez se atascan justo después de comprar un servidor en la nube: '¿Dónde escribo estos comandos de terminal?'. Sigue estos 5 pasos simples:
• Dirección IPv4 del servidor (ej.,
198.51.100.88Copiar)• Puerto SSH: Generalmente
22Copiar, o un puerto de seguridad personalizado como 22022Copiar / 62134Copiar mostrado en tu panel• Nombre de usuario: Siempre
rootCopiar en Ubuntu• Contraseña de Root: Tu contraseña inicial del servidor
powershellCopiar y pulsa Enter.• En Mac: Presiona Command ⌘ + Space, escribe
TerminalCopiar y pulsa Enter.ssh -p PORT root@SERVER_IPCopiar (nótese que -pCopiar va en minúscula; si omites un puerto personalizado, recibirás el error Connection refusedCopiar):• Puerto estándar 22:
ssh -p 22 root@198.51.100.88Copiar• Puerto SSH personalizado (p. ej.,
62134Copiar): ssh -p 62134 root@198.51.100.88CopiarAre you sure you want to continue connecting (yes/no)?Copiar, escribe la palabra completa yesCopiar y pulsa Enter.• Pregunta 2 ([!] ¿Por qué el cursor no se mueve cuando escribo mi contraseña?!): Cuando te pida la
password:Copiar, Linux oculta todos los caracteres (ni siquiera aparecen los asteriscos *) por seguridad! Simplemente haz clic derecho en PowerShell (o presiona Cmd + VCopiar en Mac) para pegar tu contraseña de forma invisible y luego pulsa Enter!root@ubuntu:~#Copiar, ¡estás dentro de tu servidor en la nube! Pega estos comandos de configuración una sola vez para instalar Docker, Git y Python:docker compose ...Copiar: Simplemente haz clic derecho para pegar en tu ventana SSH y pulsa Enter.• Para scripts de Python (
.pyCopiar): Escribe nano bot.pyCopiar y pulsa Enter → Haz clic derecho para pegar el código → Presiona Ctrl + O y luego Enter para guardar → Presiona Ctrl + X para salir → Ejecuta nohup python3 bot.py > bot.log 2>&1 &Copiar para que tu bot siga funcionando 24/7 aunque cierres tu laptop!# 1. Update Ubuntu packages and install Git, Curl, and Python3
apt update -y && apt install -y curl git python3-pip python3-venv
# 2. One-line official Docker & Docker Compose installation
curl -fsSL https://get.docker.com | sh && systemctl enable --now docker
# 3. Verify Docker Compose is ready
docker compose version
#!/usr/bin/env python3
# ==============================================================================
# P.DAY Open-Source Quant Arsenal: kernc/backtesting.py (★ 9.2k+ Stars)
# GitHub Repo: https://github.com/kernc/backtesting.py
# Zero-Code Cloud Alternative: https://accounts.pionex.com/zh-TW/signUp?r=0eDnUwgcHjo
# ==============================================================================
import numpy as np
import pandas as pd
def run_vectorized_ema_backtest(
prices: pd.Series,
fast_windows=(10, 15, 20, 30),
slow_windows=(40, 60, 90, 120),
fee_bps: float = 5.0, # Pionex 0.05% (5 bps) flat maker/taker fee
) -> pd.DataFrame:
"""Vectorized multi-parameter EMA crossover backtest with realistic fee deduction."""
rets = prices.pct_change().fillna(0.0)
records = []
fee_rate = fee_bps / 10000.0
for fw in fast_windows:
fast_ma = prices.ewm(span=fw, adjust=False).mean()
for sw in slow_windows:
if fw >= sw:
continue
slow_ma = prices.ewm(span=sw, adjust=False).mean()
# Shift signal by 1 bar to strictly prevent lookahead bias (严防未来函数)
pos = (fast_ma > slow_ma).astype(float).shift(1).fillna(0.0)
trades = pos.diff().abs().fillna(0.0)
strat_rets = pos * rets - (trades * fee_rate)
cum_ret = float((1.0 + strat_rets).prod() - 1.0)
sharpe = float(np.sqrt(365 * 24) * strat_rets.mean() / (strat_rets.std() + 1e-9))
equity = (1.0 + strat_rets).cumprod()
max_dd = float(((equity / equity.cummax()) - 1.0).min())
records.append({
"fast_ema": fw,
"slow_ema": sw,
"net_return_pct": round(cum_ret * 100, 2),
"sharpe_ratio": round(sharpe, 2),
"max_drawdown_pct": round(max_dd * 100, 2),
})
return pd.DataFrame(records).sort_values("sharpe_ratio", ascending=False)
if __name__ == "__main__":
np.random.seed(42)
synth_btc = pd.Series(90000 * np.exp(np.cumsum(np.random.normal(0.00012, 0.008, 24 * 180))))
leaderboard = run_vectorized_ema_backtest(synth_btc)
print("=== Top backtesting.py Parameter Combos (Out-of-Sample Gate: Sharpe > 1.8) ===")
print(leaderboard.head(5).to_string(index=False))
explicación línea por línea del código y comandos en español sencillo
| Código / Línea de comandos | Explicación en español sencillo (¿Qué hace esto?) |
|---|---|
fast_ma = prices.ewm(span=fw, adjust=False).mean()
|
Computes the fast Exponential Moving Average across the entire price series in one vectorized pass. |
pos = (fast_ma > slow_ma).astype(float).shift(1).fillna(0.0)
|
Shifts the entry signal by 1 bar to prevent lookahead bias. |
strat_rets = pos * rets - (trades * fee_rate)
|
Subtracts realistic trading fees on every position flip. |
sharpe = float(np.sqrt(365 * 24) * strat_rets.mean() / ...)
|
Computes annualized Sharpe Ratio (>1.8 required for live deployment). |
max_dd = float(((equity / equity.cummax()) - 1.0).min())
|
Computes Maximum Drawdown from peak equity. |
[!] los 3 errores más comunes de principiantes y guía de solución de problemas
✕ Pitfall 1: Forgetting .shift(1)Copiar and Executing on the Same Bar That Generated the Signal
Always shift signals by 1 bar so your backtest never peeks into future closing prices.
✕ Pitfall 2: Picking an Isolated 'Lucky Peak' Parameter Pair Instead of a Parameter Plateau
Choose parameter regions where neighboring window lengths also remain profitable.
✕ Pitfall 3: Running High-Turnover Strategies With fee=0Copiar in Backtests
Always deduct 5–10 bps per trade to account for exchange fees and bid-ask spread impact.
Part 1: Why kernc/backtesting.pyCopiar (★ 9.2k+ Stars) Is a Favorite Among Quantitative Developers
Traditional row-by-row forCopiar-loop backtesters take hours to sweep parameter grids. kernc/backtesting.pyCopiar leverages vectorized array operations to test thousands of moving-average, RSI, and volatility regimes in seconds. Prefer zero-code execution? Pair its research insights directly with Pionex's 16 Free Built-In Cloud AI Bots ↗.
Part 2: Eliminating Lookahead Bias with Strict Signal Shifting (shift(1)Copiar)
Always shift generated indicator signals forward by one bar (signal.shift(1)Copiar) so trades execute on the next bar after confirmation, eliminating lookahead leakage.
Part 3: Deducting Realistic Exchange Fees & 70/30 Out-of-Sample Validation
Deduct at least 5–10 bps per turnover and validate your top parameter cluster on an untouched 30% Out-of-Sample window (requiring Sharpe > 1.8 and Max Drawdown < 15%).
Part 4: Deploying 24/7 on a Quant VPS + Dual-Engine Portfolio Allocation
Host your automated research and execution containers on a RAKsmart Low-Latency Quant VPS ↗ while hedging macro event risk on Polymarket ↗.
Production Links: Run zero-code cloud grids on Pionex (16 Free AI Bots, 0.05% Fee) ↗, hedge macro events on Polymarket ↗, and host 24/7 Docker bots on RAKsmart Quant VPS ↗.
Headline Quant Guides Directory (With Reading Level, Time & Code Stack)
Start from L1 Beginner Essentials and progress to L4 Institutional Tick Backtesting. Every guide includes reading difficulty, estimated reading time, and production-ready code:
Beginner $1,000 Quant Starter Combo Deep-Dive: How Much Can You Earn Monthly Running Polymarket Penny Clipper & LP Bots?
Complete quantitative breakdown for first-time algorithmic traders starting with $1,000 USDC: ranking all 4 Polymarket open-source bot strategies by risk-adjusted edge, modeling 3 realistic monthly profit tiers ($60–$180/mo or 6%–18% monthly ROI) using 5×$200 position splitting, and enforcing the 3 iron survival rules.
Pionex Cloud AI Bots vs. Self-Hosted Polymarket Bots (CloddsBot / Grok Desk): 6 Key Differences & Dual-Engine Allocation Guide
Both are called 'quant trading bots,' yet Pionex's 16 built-in cloud bots and self-hosted open-source Polymarket bots (`CloddsBot`, `polymarket_lp_tool`, `Grok 4-Step Desk`) operate on completely different market mechanics. Pionex harvests crypto volatility and perpetual funding rates with zero code and massive liquidity capacity, while self-hosted Polymarket bots snipe $1.00 deterministic event settlement discounts and Daily LP Rewards with zero correlation to Bitcoin price swings.
Pionex AI Quantitative Trading Complete Guide: 16 Free Built-In Grid Bots, Funding-Rate Arbitrage & Polymarket Delta Hedging
Don't want to maintain a Linux VPS? Master Pionex's 16 free built-in AI trading bots (PionexGPT strategy generator, AI Infinity Grid, Spot-Futures Funding Rate Arbitrage, and 0.05% maker/taker fees) and learn how to pair Pionex BTC/ETH grids with Polymarket event tail-hedges.
backtesting.py Open-Source Quant Guide: High-Speed Strategy Backtesting & Live Risk Controls with kernc/backtesting.py
Complete hands-on tutorial for `kernc/backtesting.py` (★ 9.2k+ Stars on GitHub): run fee-adjusted multi-parameter backtests in Python, enforce out-of-sample Walk-Forward validation, and pair your signals with Pionex Cloud AI Bots and Polymarket.
vectorbt Open-Source Quant Guide: High-Speed Strategy Backtesting & Live Risk Controls with polakowo/vectorbt
Complete hands-on tutorial for `polakowo/vectorbt` (★ 9.7k+ Stars on GitHub): run fee-adjusted multi-parameter backtests in Python, enforce out-of-sample Walk-Forward validation, and pair your signals with Pionex Cloud AI Bots and Polymarket.
CloddsBot & Polymarket LP Bot Complete Guide: Deploy 119-Skill AI Arbitrage, Penny Clipper & Daily Liquidity Rewards Bots
Why pay $5,000+ for black-box bots when the best Polymarket trading engines are MIT open-source on GitHub? Full deployment guide to `alsk1992/CloddsBot` (3.1k⭐, 119+ skills including cross-market arbitrage, Penny Clipper expiry decay, and smart-money copy trading) and `lihanyu81/polymarket_lp_tool` (passive LP market-making for daily USDC rewards).
Grok × Polymarket 4-Step Multi-Agent Trading Desk: SCAN · VERIFY · EXECUTE · EXIT Pipeline That Filters Out 90% of Bad Trades
The best agent on a quantitative trading desk has never placed a trade — its entire job is to say NO. Learn how to replace fragile single-prompt FOMO bots with an institutional 4-Agent Desk (SCAN -> VERIFY -> EXECUTE -> EXIT) for Polymarket CLOB & crypto markets: run free deterministic code filters first, invoke Grok `x_search` only on survivors, size off live cash + pool depth, and enforce 5 pre-written exit rules (`exits.py`) with full `tasks.csv` skip auditing.
Guía Cuant para Polymarket CLOB: Despliega un bot de copia de ballenas y maker con 0% de comisiones usando py-clob-client
Recorrido de ingeniería completo: deriva credenciales L2 de Polygon CLOB, consulta IDs de tokens de condición Gamma, suscríbete a las ejecuciones de ballenas y coloca órdenes límite sin gas con 0% de comisiones EIP-712.
Guía de Seguridad de VPS para Quant, Whitelisting de IP para APIs e Ingeniería de Kill-Switch por Retiro de Capital
Lista de verificación de seguridad en producción para traders cuantitativos: selección de VPS de baja latencia, whitelisting de IP para APIs de exchanges, claves con retiros desactivados y kill-switches automatizados de retiro del 5% diario.
Calibración de Probabilidades con LLMs de IA + Dimensionamiento Half-Kelly: Integración Paso a Paso de las APIs de DeepSeek / OpenAI / Ollama para Órdenes con EV+
Guía completa paso a paso para conectar LLMs de DeepSeek, OpenAI GPT-4o o Ollama locales mediante Python, a fin de analizar noticias de último momento y convertirlas en ratios de verosimilitud bayesiano estructurados y tamaños de posición Half-Kelly.
Tutorial de Freqtrade + FreqAI con Docker: Conecta OKX / Binance, descarga datos históricos y auditá el sesgo de anticipación
Guía paso a paso para desplegar Freqtrade mediante Docker Compose, descargar datos OHLCV de varios años de OKX y Binance, ejecutar pruebas retroactivas (backtests) realistas ajustadas por comisiones y ejecutar `lookahead-analysis`.
Guía de Market Making y Delta-Hedging de Hummingbot: Arbitraje de cuotas de Polymarket frente a Perps de OKX / Binance
Cómo los escritorios institucionales combinan los controladores de market-making de Hummingbot V2 en OKX/Binance con contratos de eventos de Polymarket para construir coberturas de volatilidad macro delta-neutras.
Guía de Backtesting de L2 Orderbook en NautilusTrader: Eliminando ilusiones de slippage y sesgo de posición en cola
Cómo ejecutar backtests de alto nivel de fidelidad del L2 orderbook en NautilusTrader con rellenos realistas de posición en cola, modelado de latencia y validación Walk-Forward.