Signal 10 — BTC/ETH Cross-Asset Ratio
| Thuộc tính | Giá trị |
|---|---|
| Phân loại | Cross-Asset Spread |
| Khung thời gian | 1H–4H |
| Paper gốc | Gatev-Goetzmann-Rouwenhorst (2006); Engle-Granger (1987) |
| Loại dữ liệu | Spot price BTC, ETH (Binance/OKX) |
| Hướng giao dịch | Mean Reversion trên ratio |
| Capacity | Cao (crypto deep liquidity) |
Logic. Tính ratio = ETH/BTC. Test cointegration (ADF trên log spread) trên cửa sổ 90 ngày. Khi cointegrated và z(ratio) > 2, short ETH long BTC (dollar-neutral). Khi z(ratio) < -2, long ETH short BTC. Exit khi |z| < 0.5.
Code Python.
from statsmodels.tsa.stattools import adfuller
def cointegration_check(s1, s2, alpha=0.05):
spread = np.log(s1) - np.log(s2)
pval = adfuller(spread.dropna(), autolag='AIC')[1]
return pval < alpha, spread
def ratio_zscore(spread, lookback=60):
mu = spread.rolling(lookback).mean()
sigma = spread.rolling(lookback).std()
return (spread - mu) / sigma
def ratio_signal(z, entry=2.0, exit_band=0.5):
sig = pd.Series(0, index=z.index)
sig[z > entry] = -1
sig[z < -entry] = 1
return sigQuantConnect setup. AddCrypto("BTCUSDT", Resolution.Hour, Market.Binance) và tương tự cho ETH. Mỗi giờ, recompute z-score; trước khi entry, recheck cointegration trên cửa sổ 90 ngày — nếu p-value > 0.05, không trade (regime đã đổi). Dollar-neutral sizing: qty_eth = notional / eth_price, qty_btc = -notional / btc_price.
Tổng kết Thư viện Tín hiệu
10 signals trên trải dài từ microstructure (OFI, BADR, Delta) đến cross-sectional factor (Momentum, Carry) và regime filter — đủ để xây dựng một multi-strategy portfolio trên một broker đơn lẻ. Khuyến nghị: chọn 2–3 signals không tương quan (ví dụ: OFI intraday + Momentum monthly + Volatility Mean Reversion), allocate equal-risk thay vì equal-weight, và đặt kill-switch global ở drawdown 15%. Không có signal nào "tốt" tuyệt đối — chỉ có signal phù hợp với regime, capacity, và infrastructure của bạn.