Skip to main content
用 ccxt 和 vectorbt 搭一个 Python 交易脚本
blog 高级 · ~1 min read

用 ccxt 和 vectorbt 搭一个 Python 交易脚本

一个能跑的 Python 交易脚本模板,ccxt 取数据、vectorbt 做向量化快速回测,附带可改的具体代码。

· Lead Editor · · ~1 min read
#algorithmic#quant-trading
本文为英文。需要查看中文翻译吗?

交互工具在翻译视图中可能无法使用。

用 ccxt 和 vectorbt 搭一个 Python 交易脚本

一个 Python 脚本就能拉实时行情、毫秒级回测策略、把订单路由到交易所。ccxt(数据和执行)加 vectorbt(向量化回测)覆盖了多数散户加密工作流,不需要事件驱动引擎的开销。

为什么用 ccxt 和 vectorbt

ccxt 把 100 多家交易所的 API 统一到一个接口后。一次库调用就能从 Binance、Kraken 或 Bybit 用相同语法拉 OHLCV。vectorbt 把回测当成数组运算跑,而不是逐根 K 线循环,5 年参数扫描几秒完成而不是几分钟。

用 ccxt 拉数据

import ccxt
ex = ccxt.binance()
ohlcv = ex.fetch_ohlcv("BTC/USDT", "1h", limit=1000)

永远尊重频率限制。Binance 每分钟 1,200 次请求,ccxt 内置的 enableRateLimit: True 会自动节流。显式设上避免被封。

在 vectorbt 里搭回测

import vectorbt as vbt
import pandas as pd

df = pd.DataFrame(ohlcv, columns=["ts","open","high","low","close","volume"])
df["ts"] = pd.to_datetime(df["ts"], unit="ms")
df.set_index("ts", inplace=True)

fast = vbt.MA.run(df["close"], 20)
slow = vbt.MA.run(df["close"], 50)
entries = fast.ma_crossed_above(slow)
exits  = fast.ma_crossed_below(slow)

pf = vbt.Portfolio.from_signals(df["close"], entries, exits,
        init_cash=10000, fees=0.001, slippage=0.0005)
print(pf.total_return(), pf.sharpe_ratio())

注意 fees 和 slippage 参数:短持仓周期上省掉它们会让收益虚高 30–60%。

从回测到实盘下单

ex = ccxt.binance({"apiKey": KEY, "secret": SECRET, "enableRateLimit": True})
ex.create_order("BTC/USDT", "market", "buy", 0.001)

实操护栏

  • 永远别硬编码密钥;从环境变量加载。
  • 上实盘前永远先模拟 2 周。用 testnet 端点(ccxt.binance({"urls": ...}))。
  • 每次拉取后验证 OHLCV 时间戳对齐——交易所的数据空洞会静默污染指标。
  • 单笔下单封在权益的 1%,并在脚本里加硬止损,不只是脑子里。

什么时候换 backtrader

vectorbt 擅长干净数据上的快速扫描。一旦你需要逐笔成交、部分成交、或多资产组合带交叉保证金,转 backtrader 或 QuantConnect Lean。向量化速度在不现实的成交模型面前一文不值。

耐用的工作流:vectorbt 里原型、验证逻辑、然后移植到事件驱动引擎做最终生产测试。让实盘和回测代码路径共享同一个信号函数,结果才可比;两者分叉是静默 bug 的第一个信号。上面这个脚本 50 行内带你从想法到测试过的信号。

相关市场数据由 TradingView 提供。

分享:
𝕏 f in r/
·
📝

我的笔记

登录后可在本文保存笔记并与社区分享。

✓ 已核查事实 审阅人 Timi Chen, 编辑顾问 · 发布于: 2026-07-01 · 编辑政策
由 Marcus Cole 起草 · 由 Timi Chen 于 2026-07-01 审核 · 最后检查于 2026-07-01

教育内容 · 非财务建议 · 风险自担

下一篇推荐

algorithmicquant-trading 2026-07-01

Quant Research Workflow: Jupyter Notebooks and Feature Engineering

A repeatable quant research workflow using Jupyter notebooks covers feature engineering, validation, and notebook hygiene that produces deployable signals.

阅读更多 →

Smart Recommendations