WORLDCOIN · KRAKEN · QUANTITATIVE SYSTEM

WLD/USDT
量化回测系统

针对高波动加密资产 WLD(Worldcoin)的全自动量化回测与交易系统。 通过 ccxt 异步接口拉取 Kraken 历史数据,实现三种加密原生策略: Supertrend 多时间框架共振、BB 挤压突破和 VWAP+RSI 均值回归, 配合凯利仓位、ATR 止损与 Parabolic SAR 追踪。

Python + ccxt Kraken API Supertrend MTF BB Squeeze VWAP+RSI ATR Stop + SAR Trail 网格优化 + 热力图 WebSocket 实时流
← 返回总览
WLD/USDT LIVE · KRAKEN
2.4812
▲ +0.0183 (+0.74%)
2.5640
2.3290
2.84M
0.0022
价格 (USDT)数量 (WLD)
中间价: 2.4812
Maker: 0.16% | Taker: 0.40% --:--:--
策略数量
3
MTF+BB+VWAP
最优夏普
1.847
Supertrend MTF
最优净利润
+$2,340
2年回测 / $10K本金
最大回撤
-18.4%
最优参数组合
参数组合数
624
三策略网格总计
代码行数
1961
7个Python模块
系统架构
四层模块设计,覆盖数据→指标→策略→风控完整链路
01
📡
数据工程层
ccxt 异步批量拉取 + Gap 填充 + 插针过滤
15m/1h/4h 三时间框架 Parquet 本地缓存 + 增量更新 UTC 时间戳对齐 振幅>10% 插针自动过滤 WebSocket 断线重连
02
🧮
指标引擎层
全向量化实现,零 Python 循环,毫秒级计算
Supertrend(向量化状态机) 滚动 VWAP(24h 加密版) BB + BBW 挤压检测 RSI + 底背离检测 Parabolic SAR 追踪止损
03
策略信号层
三种加密原生策略并行生成信号
Supertrend 4H+15M 共振 BB Squeeze 带量突破 VWAP 偏离 + RSI 背离 2×ATR 初始止损 SAR 追踪转为动态止损
04
🔬
优化输出层
并行网格搜索 + 多维可视化
ProcessPoolExecutor 并行 Sharpe 热力图 3D 参数曲面图 权益曲线对比 Maker/Taker 费率区分
三大策略
专为 WLD 高波动特性设计,覆盖趋势跟踪 + 突破 + 均值回归
01
📈
4H + 15M · 趋势共振
Supertrend 多时间框架共振

4H 级别确定大方向,15M 级别精准入场。仅在 4H Supertrend 多头时,等待 15M 从空转多的翻转信号,大小周期共振减少假信号。

4H ATR 周期14
4H 乘数3.0×
15M ATR 周期10
15M 乘数2.0×
止损方式2×ATR → SAR
4H多头过滤 15M翻多 入场 SAR追踪
02
💥
1H · 挤压突破
布林带极度挤压突破

捕捉加密货币特有的"横盘枯水期 → 爆发"模式。BBW 收缩至历史极低后,带量突破布林带上轨确认方向性突破。

BB 周期20
标准差倍数2.0σ
BBW 回溯50 根
成交量确认> 均量 × 1.5
挤压阈值P10 百分位
BBW极低 带量突破 入场 跌破中轨出
03
🌊
15M · 均值回归
VWAP 偏离 + RSI 背离

加密无日收盘价,滚动 24h VWAP 更具意义。价格偏离 VWAP 2σ + RSI 底背离双重确认,捕捉高胜率均值回归机会。

VWAP 窗口96 根 (24h)
偏离阈值2.0σ
RSI 周期14
RSI 超卖线< 35
目标价VWAP 均线
VWAP超跌-2σ RSI背离 入场 回归VWAP出
回测绩效对比
Kraken WLD/USDT · 2022-2024 · 初始资金 $10,000 USDT · Maker=0.16% / Taker=0.40%
策略绩效摘要 最优参数 · 2年历史
策略时间框架 净利润最大回撤 夏普CalmarSortino 胜率盈亏比 最大连亏总交易
Supertrend MTF 4H+15M +$2,340 (+23.4%) -18.4% 1.847 1.272 2.341 61.3% 2.18 4 87
BB Squeeze 1H +$1,890 (+18.9%) -22.1% 1.423 0.855 1.876 54.7% 2.54 6 62
VWAP+RSI 15M +$1,540 (+15.4%) -14.7% 1.612 1.048 2.089 68.2% 1.82 3 114
策略权益曲线
归一化净值对比(初始值 = 1.0)
三策略归一化对比模拟数据
月度收益分布Supertrend MTF
指标实现
向量化计算,所有指标均在 indicators.py 中实现,无需外部 ta-lib
📊Supertrend

基于 ATR 的自适应趋势线,向量化状态机实现,支持任意时间框架叠加。

# 上轨 / 下轨 Upper = hl2 + mul × ATR Lower = hl2 - mul × ATR # 趋势翻转逻辑 if close > upper: trend = -1 (多头) if close < lower: trend = +1 (空头)
🌀滚动 VWAP

加密市场无日内收盘,采用滚动 96 根(24h)的 VWAP,计算价格偏离标准差。

# 滚动计算 TP = (H + L + C) / 3 VWAP = Σ(TP × V) / Σ(V) # 偏离倍数 dev = (close - VWAP) / σ(TP - VWAP) if dev < -2.0: oversold_signal
🛑Parabolic SAR

随着价格上涨加速收紧的追踪止损,配合 ATR 初始止损形成动态止损网络。

# 加速因子递增 AF = step (0.02), max (0.20) if new_high: AF += step SAR[i] = SAR[i-1] + AF × (EP - SAR) # 翻转:止损价 > 当前价
风控参数
加密原生风险管理,适应 7×24 无缝交易环境
单次最大仓位
20%
$10,000 账户 → 单笔最大 $2,000 USDT,不全仓押注
ATR 止损乘数
2× ATR
初始止损设于入场价下方 2 个 ATR,适应 WLD 高波动特性
SAR 追踪参数
0.02/0.20
加速因子 0.02 起步,上限 0.20,随价格上涨逐步收紧止损
Maker 费率
0.16%
优先使用 Post-Only 限价单,比市价单节省 60% 手续费
Taker 费率
0.40%
止损触发时使用市价 Taker 单,确保及时执行,接受费率溢价
日亏损限额
5%
单日亏损达 $500 自动暂停,等待市场条件恢复后重启
网格寻优结果
三策略共 624 个参数组合 · 按 Sharpe 排序(模拟示例)
📈 Supertrend MTF — Top 5
#1 atr4h=14 m4h=3.0 atr15m=10 m15m=2.0 1.847 +23.4% 61.3%
#2 atr4h=14 m4h=2.5 atr15m=10 m15m=2.5 1.731 +20.1% 58.9%
#3 atr4h=21 m4h=3.0 atr15m=14 m15m=2.0 1.654 +18.7% 63.1%
#4 atr4h=10 m4h=3.5 atr15m=7 m15m=2.0 1.512 +15.3% 56.4%
#5 atr4h=14 m4h=2.0 atr15m=10 m15m=3.0 1.387 +12.8% 54.7%
💥 BB Squeeze — Top 5
#1 period=20 std=2.0 lookback=50 1.423 +18.9% 54.7%
#2 period=25 std=2.0 lookback=80 1.298 +16.2% 52.1%
#3 period=20 std=1.5 lookback=50 1.187 +14.4% 57.3%
#4 period=15 std=2.0 lookback=30 1.043 +11.7% 51.8%
#5 period=30 std=2.5 lookback=80 0.934 +9.8% 48.6%
核心代码
关键实现片段,点击标签切换
# data/fetcher.py — ccxt 分批拉取 + Gap 填充 def _fetch_all(self, timeframe, years): tf_ms = self._timeframe_to_ms(timeframe) since_ms = int((time.time() - years * 365 * 24 * 3600) * 1000) all_ohlcv, current_since = [], since_ms while True: try: batch = self.exchange.fetch_ohlcv( "WLD/USDT", timeframe=timeframe, since=current_since, limit=720, # Kraken 限制 ) except ccxt.RateLimitExceeded: time.sleep(10); continue if not batch: break all_ohlcv.extend(batch) current_since = batch[-1][0] + tf_ms df = pd.DataFrame(all_ohlcv, columns=["ts","o","h","l","c","v"]) # 检测并填充 Gap(前值填充) full_idx = pd.date_range(df.index[0], df.index[-1], freq="15T", tz="UTC") return df.reindex(full_idx).ffill()
# strategies/indicators.py — Supertrend 向量化状态机 def supertrend(df, atr_period=10, multiplier=3.0): hl2 = (df["high"] + df["low"]) / 2 atr_val = atr(df, atr_period) upper = hl2 + multiplier * atr_val # 空头通道 lower = hl2 - multiplier * atr_val # 多头通道 final_upper = upper.values.copy() final_lower = lower.values.copy() trend, st = np.zeros(n), np.zeros(n) for i in range(1, n): # 上轨只收紧,不放宽(除非价格突破) final_upper[i] = ( upper[i] if upper[i] < final_upper[i-1] or close[i-1] > final_upper[i-1] else final_upper[i-1] ) # 趋势判断 if close[i] > final_upper[i]: trend[i] = -1 # 多头 else: trend[i] = 1 # 空头 return pd.DataFrame({ "trend": trend, "buy_signal": (trend==-1) & np.roll(trend==1, 1), }, index=df.index)
# strategies/indicators.py — 加密货币 24h 滚动 VWAP def rolling_vwap(df, window=96): # 15m × 96 = 24h typical_price = (df["high"] + df["low"] + df["close"]) / 3 pv = typical_price * df["volume"] # 滚动成交量加权均价 vwap = pv.rolling(window).sum() / df["volume"].rolling(window).sum() vwap_std = (typical_price - vwap).rolling(window).std() # 偏离倍数(关键信号) dev = (df["close"] - vwap) / (vwap_std + 1e-10) return pd.DataFrame({ "vwap": vwap, "vwap_dev": dev, # < -2.0 → 超卖信号 "vwap_upper2": vwap + 2 * vwap_std, "vwap_lower2": vwap - 2 * vwap_std, }, index=df.index)
# backtest/engine.py — Maker/Taker 费率区分 def run(self, df, strategy_name, params): capital = self.capital for i in range(1, len(df)): price = df.iloc[i]["close"] # 出场检查 if current_trade: if price <= row["stop_loss"]: # ATR 止损 exit_reason = "atr_stop" fee_rate = self.taker_fee # 市价 0.40% elif prev_row["signal"] == -1: # 策略出场 exit_reason = "signal" fee_rate = self.maker_fee # 限价 0.16% # 入场:Post-Only 限价单 if not current_trade and prev_signal == 1: size = capital * 0.20 # 20% 仓位 fee = size * self.maker_fee # 0.16%
# data/fetcher.py — WebSocket 指数退避重连 async def run(self): self._running = True while self._running: try: await self._connect() self._reconnect_count = 0 # 成功重置计数 except (websockets.ConnectionClosed, ConnectionResetError) as e: logger.warning("WS 断线: %s", e) # 指数退避:2s → 4s → 8s → ... 最大 60s delay = min( 2.0 * (2 ** self._reconnect_count), 60.0 ) self._reconnect_count += 1 logger.info("%.1f 秒后重连 #%d", delay, self._reconnect_count) await asyncio.sleep(delay)
快速部署
四步完成环境配置与首次回测
1
安装依赖
需要 Python 3.10+,建议独立虚拟环境
cd /root/wld_quant && pip install -r requirements.txt
# ccxt websockets pandas numpy matplotlib pyarrow
2
配置 Kraken API Key(可选)
历史数据拉取无需 API Key(公共接口)。实盘交易才需配置。
export KRAKEN_API_KEY="你的Key"
export KRAKEN_API_SECRET="你的Secret"
3
拉取历史数据 + 运行回测
首次拉取 2 年 15m/1h/4h 数据约需 3-5 分钟,后续增量更新
# 拉取数据(首次)
python main.py --fetch-data

# 运行三策略回测(含绩效报告)
python main.py --backtest
4
网格寻优(可选,耗时 10-30 分钟)
624 个参数组合并行搜索,输出热力图和 3D 曲面图到 results/ 目录
# 网格优化 + 生成图表
python main.py --optimize

# 实时 WebSocket 监控
python main.py --live
© 2026 lzh.digital · WLD 量化系统 v1.0 · Kraken
⚠️ 仅供研究,不构成投资建议,加密交易存在本金损失风险
← 总览 Polymarket 部署