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.
قائمة التحقق المبدئي للمبتدئين خلال 3 دقائق
- ✓Install Python 3.10+ and run
pip install -U backtesting.py pandas numpy ccxtنسخ - ✓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
لا تشغّل أبداً بوت التداول المباشر على حاسوب منزلي يقوم بالنوم أو يفقد اتصال الواي فاي! ننصح بـ RAKsmart Cloud VPS: (1) اختر طوكيو، سنغافورة، أو وادي السيليكون للحصول على زمن استجابة منخفض للغاية بالمللي ثانية من وإلى OKX/Binance و Polygon RPCs؛ (2) اختر Ubuntu 22.04 LTS (2 vCPU / 4GB RAM) لتقنية Docker Compose؛ (3) اربط عنوان IPv4 المخصص والساكن برابط قوائم التبييض الخاصة ببروتوكول تبادل المعطيات (API) الخاص بمنصة التداول.
هل اشتريت خادم VPS للتو؟ كيف تتصل عبر SSH وتشغّل الأوامر على Windows / Mac (دليل مدته 3 دقائق)
كثير من المستخدمين المبتدئين يتوقفون مباشرة بعد شراء خادم سحابي: «أين أكتب هذه الأوامر في الطرفية؟» اتبع هذه الخطوات الخمس البسيطة:
• عنوان IPv4 الخاص بالخادم (مثال:
198.51.100.88نسخ)• منفذ SSH: عادةً
22نسخ، أو منفذ أمان مخصص مثل 22022نسخ أو 62134نسخ كما هو موضح في لوحة التحكم• اسم المستخدم: دائماً
rootنسخ على Ubuntu• كلمة مرور الجذر: كلمة المرور الأولية للخادم
powershellنسخ، ثم اضغط Enter.• على Mac: اضغط على Command ⌘ + Space، اكتب
Terminalنسخ، ثم اضغط Enter.ssh -p PORT root@SERVER_IPنسخ (لاحظ أن -pنسخ صغيرة؛ إذا تجاهلت تحديد ميناء مخصص فسيظهر خطأ Connection refusedنسخ):• الميناء القياسي 22:
ssh -p 22 root@198.51.100.88نسخ• ميناء SSH مخصص (مثال
62134نسخ): ssh -p 62134 root@198.51.100.88نسخAre you sure you want to continue connecting (yes/no)?نسخ، اكتب الكلمة الكاملة yesنسخ واضغط Enter.• المطالبة 2 ([!] لماذا لا يتحرك المؤشر عندما أكتب كلمة المرور؟!): عند سؤالك عن
password:نسخ، Linux يخفي كل الأحرف (لا تظهر حتى علامات * النجوم) لأسباب أمنية! ببساطة انقر زر الماوس الأيمن في PowerShell (أو اضغط Cmd + Vنسخ على Mac) لصق كلمة المرور بشكل غير مرئي، ثم اضغط Enter!root@ubuntu:~#نسخ، فأنت داخل خادم السحابة الخاص بك! الصق هذه أوامر الإعداد مرة واحدة لتثبيت Docker و Git و Python:docker compose ...نسخ: فقط انقر زر الماوس الأيمن لصق الأمر في نافذة SSH واضغط Enter.• لبرامج Python (سكربتات .py): اكتب
nano bot.pyنسخ واضغط Enter ← انقر زر الماوس الأيمن لصق الكود ← اضغط Ctrl + O ثم Enter للحفظ ← اضغط Ctrl + X للخروج ← شغّل nohup python3 bot.py > bot.log 2>&1 &نسخ ليظل البوت يعمل 24/7 حتى بعد إغلاق حاسوبك المحمول!# 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))
شرح مبسّط سطرًا بسطر لكل الأكواد والأوامر
| الكود / سطر الأمر | شرح مبسّط بالعربي (ماذا يفعل هذا؟) |
|---|---|
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. |
[!] أبرز 3 أخطاء شائعة للمبتدئين ودليل حل المشكلات
✕ Pitfall 1: Forgetting .shift(1)نسخ 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=0نسخ in Backtests
Always deduct 5–10 bps per trade to account for exchange fees and bid-ask spread impact.
Part 1: Why kernc/backtesting.pyنسخ (★ 9.2k+ Stars) Is a Favorite Among Quantitative Developers
Traditional row-by-row forنسخ-loop backtesters take hours to sweep parameter grids. kernc/backtesting.pyنسخ 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)نسخ)
Always shift generated indicator signals forward by one bar (signal.shift(1)نسخ) 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.
دليل الكوانت لـ Polymarket CLOB: نشر بوت لصناعة السيولة ونسخ صفقات الحيتان بدون رسوم بنسبة 0% باستخدام py-clob-client
جولة هندسية شاملة: استخرج بيانات اعتماد Polygon L2 CLOB، استعلم عن معرّفات رموز ظروف Gamma، اشترك في صفقات الحيتان، ونفّذ أوامر حدّية بـ EIP-712 بدون رسوم وبلا غاز.
دليل هندسي لآمنه خوادم VPS الكمية، وقوائم IPv للملخصات (Whitelisting)، ومفاتيح إيقاف الخسائر الآلية (Kill-Switch) عند الانخفاضات القوية
قائمة تحقق أمنية للإنتاج للتجار الكميون: اختيار VPS منخفض التأخير، القائمة البيضاء لمداخلات التطبيقات (API IP) للتبادلات، مفاتيح سحب معطلة، ومفاتيح إيقاف الخسائر الآلية اليومية عند 5% انخفاض.
معايرة احتمالات LLM + تحديد حجم صفقة نصف كيلي: تكامل خطوة بخطوة لواجهات برمجة تطبيقات DeepSeek / OpenAI / Ollama لصفقات +EV
دليل شامل خطوة بخطوة لربط DeepSeek أو OpenAI GPT-4o أو نماذج LLM محلية مثل Ollama عبر Python لتحويل الأخبار العاجلة إلى نِسَب احتمالية بايزية مهيكلة وأحجام مواقع لنصف كيلي.
دليل Freqtrade + FreqAI عبر Docker: ربط OKX / Binance، تنزيل البيانات التاريخية وتدقيق تحيز النظرة المستقبلية
دليل خطوة بخطوة لنشر Freqtrade عبر Docker Compose، تنزيل بيانات OHLCV متعددة السنوات من OKX وBinance، تشغيل اختبارات رجعية واقعية بعد حساب الرسوم، وتنفيذ أمر `lookahead-analysis`.
دليل Hummingbot لـ Market Making والتحوّج باستخدام Deltas: استغلال الفرص بين Polymarket و OKX / Binance Perps
كيف تجمع مكاتب المؤسسات بين وحدات التحكم في السوق من Hummingbot V2 على OKX/Binance وعقود Polymarket للأحداث لبناء تحوّج مخاطر (Hedges) محايد الدلتا (Delta-Neutral) للتقلبات الكلية.
دليل NautilusTrader للاختبار الخلفي (Backtesting) لديانات المستوى الثاني (L2 Orderbook): القضاء على أوهام الانزلاق (Slippage) والانحياز في موقع الطابور (Queue-Position)
كيفية تشغيل اختبارات خلفية عالية الدقة لديانات المستوى الثاني في NautilusTrader مع عمليات تنفيذ واقعية في موقع الطابور، ونمذجة التأخير، والتحقق من صحة Walk-Forward.