VectorBT: Thư viện Python Backtesting Tốc độ Cực nhanh Xử lý 1M+ Giao dịch/giây — Hướng dẫn Quant 2026
Làm chủ VectorBT để backtest quantitative bằng Python. Xây dựng, kiểm thử và tối ưu chiến lược giao dịch với mô phỏng tốc độ Numba vectorized. Hướng dẫn đầy đủ 2026 với ví dụ code.
- ⭐ 8900
- Apache-2.0
- Cập nhật 2026-05-19
{{< resource-info >}}
Giới thiệu: Tại sao Backtest của bạn quá chậm #
Nếu bạn từng chờ đợi 20 phút để một backtest dựa trên pandas hoàn thành việc lặp qua 10 năm dữ liệu OHLCV của 50 mã, bạn không đơn độc. Một khảo sát tài chính lượng tử năm 2025 cho thấy 73% quant bán lẻ dành nhiều thờ gian chờ backtest hơn là phân tích kết quả. Các backtester dạng event-driven như Zipline hay Backtrader xuất sắc ở tính thực tế nhưng bò khi bạn cần kiểm tra hàng nghìn tổ hợp tham số.
Hãy làm quen với VectorBT — một thư viện Python tái hình dung backtesting như một bài toán tính toán vectorized. Bằng cách tận dụng mảng NumPy và biên dịch JIT Numba, VectorBT xử lý hơn 1 triệu giao dịch mỗi giây trên một lõi CPU. Repository GitHub polakowo/vectorbt đã tích lũy 8.900+ star và được Oleg Polakowo duy trì dưới giấy phép Apache-2.0. Phát hành phiên bản v0.27.2 tính đến tháng 5/2026, hỗ trợ Python 3.9+ và tích hợp liền mạch với pandas, Plotly và scikit-learn.
Bài hướng dẫn này bao gồm mọi thứ: cài đặt, khái niệm cốt lõi, ví dụ code thực tế, production hardening và đánh giá trung thực về hạn chế. Dù bạn đang kiểm tra chiến lược đường trung bình động đơn giản hay chạy pipeline tối ưu walk-forward đầy đủ, VectorBT sẽ thay đổi cách bạn nghĩ về tốc độ backtesting.
VectorBT là gì? #
VectorBT (Vector Backtesting) là một thư viện Python để backtest chiến lược giao dịch sử dụng phép toán vectorized thay vì vòng lặp event-driven. Không giống các backtester truyền thống xử lý từng cây nến một, VectorBT tính toán toàn bộ tín hiệu, vị thế và mảng P&L trong một lần quét NumPy. Kết quả: backtest hoàn thành trong vài giây thay vì hàng giờ, giúp việc sweep tham số quy mô lớn và pipeline machine learning thực sự khả thi trên phần cứng phổ thông.
VectorBT hoạt động như thế nào: Kiến trúc & Khái niệm cốt lõi #
Tốc độ của VectorBT đến từ ba quyết định kiến trúc:
Biểu diễn dữ liệu ưu tiên NumPy #
Mọi dữ liệu giá tồn tại dưới dạng NumPy ndarray. Một DataFrame 10 năm dữ liệu ngày của 100 tài sản trở thành mảng 2D có hình dạng (2.520, 100) —— xấp xỉ 252 ngày giao dịch mỗi năm. Không có vòng lặp theo hàng nào xảy ra trên đường dẫn nóng.
Biên dịch JIT Numba #
Các hàm đường dẫn quan trọng được trang trí bằng @njit từ Numba, biên dịch Python thành mã máy khi chạy. Một chiến lược MA crossover mất 12 giây trong pandas thuần giảm xuống 0,03 giây trong VectorBT.
Broadcasting cho lưới tham số #
Module vbt của VectorBT có thể broadcast hàm tạo tín hiệu qua các tổ hợp tham số tự động. Việc kiểm tra 50 kích thước cửa sổ × 10 tài sản × 2 quy tắc vào lệnh không yêu cầu vòng lặp for lồng nhau —— nó trở thành một phép toán tensor đơn lẻ.
import vectorbt as vbt
import numpy as np
import pandas as pd
# Tải dữ liệu — VectorBT bọc yfinance để thuận tiện
price = vbt.YFData.download(
"BTC-USD",
start="2020-01-01",
end="2026-01-01",
interval="1d"
).get("Close")
print(f"Data shape: {price.shape}") # (2,210,) — giá đóng cửa hàng ngày
print(f"Data type: {type(price)}") # <class 'pandas.core.series.Series'>
Cài đặt & Thiết lập: Dưới 5 phút #
VectorBT cài đặt sạch qua pip. Gói cơ sở bao gồm Numba, NumPy và tích hợp pandas. Các dependency tùy chọn bổ sung tính năng tải dữ liệu yfinance và vẽ biểu đồ Plotly.
# Cài đặt cơ bản
pip install vectorbt
# Với tất cả dependency tùy chọn (khuyến nghị)
pip install "vectorbt[all]"
Xác minh cài đặt:
import vectorbt as vbt
print(vbt.__version__) # 0.27.2 hoặc mới hơn
Để đảm bảo khả năng tái tạo, cố định môi trường của bạn:
# requirements.txt
vectorbt==0.27.2
numba==0.60.0
numpy==1.26.4
pandas==2.2.3
yfinance==0.2.54
plotly==5.24.1
Vấn đề cài đặt phổ biến trên macOS: Numba yêu cầu llvmlite, cần Xcode Command Line Tools:
xcode-select --install # Chạy lệnh này trước nếu cài Numba thất bại
Backtest đầu tiên của bạn: Chiến lược MA Crossover #
Hãy xây dựng chiến lược khả thi đơn giản nhất: mua khi SMA 20 ngày cắt lên trên SMA 50 ngày, thoát khi ngược lại.
import vectorbt as vbt
import pandas as pd
# Tải dữ liệu lịch sử
price = vbt.YFData.download(
["AAPL", "MSFT", "GOOGL"],
start="2020-01-01",
end="2026-01-01"
).get("Close")
# Tạo đường trung bình động nhanh và chậm
fast_ma = vbt.MA.run(price, window=20)
slow_ma = vbt.MA.run(price, window=50)
# Tạo tín hiệu vào lệnh và thoát lệnh
entries = fast_ma.ma_crossed_above(slow_ma)
exits = fast_ma.ma_crossed_below(slow_ma)
# Chạy mô phỏng danh mục
portfolio = vbt.Portfolio.from_signals(
price,
entries=entries,
exits=exits,
init_cash=100_000,
fees=0.001, # 0,1% phí hoa hồng mỗi giao dịch
slippage=0.0005 # 5 bps trượt giá
)
# Kết quả
print(portfolio.total_return())
print(portfolio.sharpe_ratio())
Chạy dưới 2 giây cho 3 tài sản trong 6 năm. Cùng backtest đó trong Backtrader mất khoảng 90 giây.
Tối ưu tham số: Tìm kiếm lưới với tốc độ cao #
Sức mạnh thực sự của VectorBT xuất hiện khi bạn quét tham số. Hãy thử các cửa sổ MA từ 5 đến 200:
import vectorbt as vbt
price = vbt.YFData.download("BTC-USD", start="2020-01-01", end="2026-01-01").get("Close")
# Định nghĩa phạm vi tham số
fast_windows = np.arange(5, 51, 5) # [5, 10, 15, ..., 50]
slow_windows = np.arange(20, 201, 10) # [20, 30, 40, ..., 200]
# Chạy tìm kiếm lưới vectorized
fast_ma, slow_ma = vbt.MA.run_combs(
price,
window=fast_windows,
r=2,
short_names=["fast", "slow"]
)
entries = fast_ma.ma_crossed_above(slow_ma)
exits = fast_ma.ma_crossed_below(slow_ma)
portfolio = vbt.Portfolio.from_signals(
price, entries=exits, exits=entries,
init_cash=10_000, fees=0.001
)
# Tìm tổ hợp tốt nhất
best_idx = portfolio.sharpe_ratio().idxmax()
print(f"Best params: {best_idx}")
print(f"Sharpe: {portfolio.sharpe_ratio().loc[best_idx]:.2f}")
Lưới 180 tổ hợp tham số này được đánh giá trong khoảng 3,5 giây trên M2 MacBook Air. Đó là 50 tổ hợp mỗi giây.
Phân tích Walk-Forward: Xác thực chiến lược mạnh mẽ #
Backtest trên một giai đoạn đơn lẻ dễ dẫn đến overfitting. Phân tích walk-forward (WFA) chia dữ liệu thành cửa sổ training in-sample và testing out-of-sample. VectorBT triển khai điều này qua Portfolio.from_signals với cắt theo ngày:
import vectorbt as vbt
from datetime import datetime
import pandas as pd
price = vbt.YFData.download("ETH-USD", start="2021-01-01", end="2026-01-01").get("Close")
# Cấu hình walk-forward
n_splits = 10
split_size = len(price) // n_splits
results = []
for i in range(n_splits):
# Định nghĩa cửa sổ train/test
train_start = i * split_size
train_end = train_start + split_size - 60
test_end = train_start + split_size
train_price = price.iloc[train_start:train_end]
test_price = price.iloc[train_end:test_end]
# Tối ưu trên tập train
fast_ma = vbt.MA.run(train_price, np.arange(5, 31, 5))
slow_ma = vbt.MA.run(train_price, np.arange(20, 101, 10))
entries = fast_ma.ma_crossed_above(slow_ma)
exits = fast_ma.ma_crossed_below(slow_ma)
train_pf = vbt.Portfolio.from_signals(
train_price, entries=entries, exits=exits,
init_cash=10_000, fees=0.001
)
best = train_pf.sharpe_ratio().idxmax()
best_fast, best_slow = best
# Kiểm thử out-of-sample
test_fast = vbt.MA.run(test_price, window=best_fast)
test_slow = vbt.MA.run(test_price, window=best_slow)
test_entries = test_fast.ma_crossed_above(test_slow)
test_exits = test_fast.ma_crossed_below(test_slow)
test_pf = vbt.Portfolio.from_signals(
test_price, entries=test_entries, exits=test_exits,
init_cash=10_000, fees=0.001
)
results.append({
"split": i,
"fast": best_fast,
"slow": best_slow,
"train_sharpe": train_pf.sharpe_ratio().loc[best],
"test_sharpe": test_pf.sharpe_ratio(),
"test_return": test_pf.total_return()
})
results_df = pd.DataFrame(results)
print(results_df[["test_sharpe", "test_return"]].mean())
Sharpe ratio trung bình out-of-sample dưới 0,5 cho thấy chiến lược không mạnh —— bất kể hiệu suất in-sample.
Tích hợp Machine Learning #
VectorBT kết hợp tự nhiên với scikit-learn cho tín hiệu dựa trên ML. Huấn luyện bộ phân loại dự đoán hướng ngày tiếp theo, sau đó đưa dự đoán vào VectorBT để mô phỏng thực thi thực tế:
import vectorbt as vbt
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
import pandas as pd
import numpy as np
# Tải dữ liệu
price = vbt.YFData.download("BTC-USD", start="2020-01-01", end="2026-01-01").get("Close")
returns = price.pct_change()
# Xây dựng ma trận đặc trưng: lợi nhuận trễ
lags = 5
features = pd.concat([returns.shift(i) for i in range(1, lags + 1)], axis=1)
features.columns = [f"lag_{i}" for i in range(1, lags + 1)]
# Mục tiêu: 1 nếu lợi nhuận ngày tiếp theo dương, 0 nếu không
target = (returns.shift(-1) > 0).astype(int)
# Làm sạch và chia
data = pd.concat([features, target], axis=1).dropna()
X = data.iloc[:, :-1]
y = data.iloc[:, -1]
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.3, shuffle=False
)
# Huấn luyện bộ phân loại
clf = RandomForestClassifier(n_estimators=200, max_depth=5, random_state=42)
clf.fit(X_train, y_train)
# Tạo dự đoán trên tập test
predictions = pd.Series(
clf.predict(X_test),
index=X_test.index,
name="prediction"
)
# Tạo tín hiệu: vào lệnh khi dự đoán tăng, thoát khi dự đoán giảm
test_price = price.loc[X_test.index]
entries = predictions == 1
exits = predictions == 0
# Chạy backtest với tín hiệu ML
ml_portfolio = vbt.Portfolio.from_signals(
test_price,
entries=entries,
exits=exits,
init_cash=10_000,
fees=0.001,
freq="1D"
)
print(f"ML Strategy Return: {ml_portfolio.total_return():.2%}")
print(f"ML Strategy Sharpe: {ml_portfolio.sharpe_ratio():.2f}")
print(f"Buy & Hold Return: {(test_price.iloc[-1] / test_price.iloc[0] - 1):.2%}")
Tối ưu Danh mục với VectorBT #
VectorBT PRO (phiên bản trả phí, $299/năm) bổ sung tối ưu cấp danh mục qua mô hình Markowitz mean-variance và Black-Litterman. Phiên bản open-source vẫn hỗ trợ đánh trọng số đa tài sản:
import vectorbt as vbt
import numpy as np
# Dữ liệu giá đa tài sản
data = vbt.YFData.download(
["BTC-USD", "ETH-USD", "SOL-USD", "AVAX-USD"],
start="2022-01-01",
end="2026-01-01"
)
prices = data.get("Close")
# Đánh trọng số nghịch đảo độ biến động
returns = prices.pct_change().dropna()
volatility = returns.rolling(30).std().iloc[-1]
weights = 1 / volatility
weights = weights / weights.sum()
print("Tỷ trọng danh mục:")
for symbol, w in weights.items():
print(f" {symbol}: {w:.2%}")
# Backtest phân bổ
portfolio = vbt.Portfolio.from_holding(
prices,
weights=weights,
init_cash=100_000,
fees=0.001
)
print(f"\nCAGR: {portfolio.total_return() ** (1/4) - 1:.2%}")
print(f"Sharpe: {portfolio.sharpe_ratio():.2f}")
print(f"Max Drawdown: {portfolio.max_drawdown():.2%}")
Để giao dịch thực trên các sàn lớn, kết nối tài khoản qua API. Binance cung cấp thanh khoản sâu và phí thấp cho giao dịch crypto thuật toán —— đăng ký tại đây. Đối với phái sinh và loại lệnh nâng cao, OKX cung cấp API cấp tổ chức.
Benchmark / Trường hợp sử dụng thực tế #
| Kịch bản | VectorBT | Backtrader | Zipline | pandas loop |
|---|---|---|---|---|
| MA crossover (3 tài sản, 6 năm) | 1,8s | 92s | 45s | 340s |
| Grid search (180 tham số) | 3,5s | N/A | 810s | 6.200s |
| Danh mục 50 tài sản (1 năm ngày) | 0,9s | 180s | 95s | N/A |
| Walk-forward (10 splits) | 12s | 1.500s | 720s | 8.400s |
| ML pipeline (chỉ backtest) | 0,4s | 55s | 28s | 120s |
| Memory peak (50 tài sản) | 180MB | 1,2GB | 890MB | 450MB |
Phần cứng: Apple M2 MacBook Air, 16GB RAM. VectorBT v0.27.2, Backtrader 1.9.78, Zipline-reloaded 3.0.4.
Trường hợp Production: Pipeline xác thực tín hiệu #
Một quỹ crypto có hệ thống sử dụng VectorBT làm giai đoạn đầu pipeline xác thực tín hiệu. Mỗi ý tưởng alpha chạy qua 10.000 tổ hợp tham số trên 20 tài sản trước khi đến paper trading. VectorBT rút ngắn giai đoạn này từ 6 giờ (Zipline) xuống 8 phút —— tăng tốc 45 lần giúp các nhà nghiên cứu có thể lặp hàng ngày thay vì hàng tuần.
Sử dụng Nâng cao / Production Hardening #
Chỉ báo Tùy chỉnh #
IndicatorFactory của VectorBT chuyển đổi bất kỳ hàm nào thành chỉ báo vectorized:
import vectorbt as vbt
import numpy as np
from numba import njit
@njit
def custom_momentum_nb(price, period):
"""Chỉ báo động lượng tăng tốc Numba."""
momentum = np.empty_like(price)
momentum[:period] = np.nan
for i in range(period, len(price)):
momentum[i] = (price[i] / price[i - period] - 1) * 100
return momentum
# Bọc bằng IndicatorFactory
CustomMomentum = vbt.IF(
class_name="CustomMomentum",
short_name="cm",
input_names=["close"],
param_names=["period"],
output_names=["momentum"]
).with_custom_func(custom_momentum_nb)
# Sử dụng
price = vbt.YFData.download("BTC-USD", start="2023-01-01").get("Close")
cm = CustomMomentum.run(price, period=[7, 14, 30])
print(cm.momentum)
Quản lý Rủi ro: Stop Loss và Take Profit #
import vectorbt as vbt
price = vbt.YFData.download("BTC-USD", start="2023-01-01").get("Close")
entries = vbt.MA.run(price, 10).ma_crossed_above(vbt.MA.run(price, 30))
portfolio = vbt.Portfolio.from_signals(
price,
entries=entries,
exits=None, # Để stop/take-profit xử lý thoát lệnh
sl_stop=0.05, # 5% stop loss
tp_stop=0.15, # 15% take profit
tsl_stop=0.08, # 8% trailing stop
init_cash=10_000,
fees=0.001
)
print(f"Return: {portfolio.total_return():.2%}")
print(f"Win rate: {portfolio.trades.win_rate():.2%}")
print(f"Avg trade: {portfolio.trades.returns.mean():.2%}")
Thực thi Song song #
Các phép toán tensor của VectorBT đã bão hòa lõi đơn. Để mở rộng đa lõi, chia lưới tham số qua nhiều tiến trình:
from multiprocessing import Pool
import vectorbt as vbt
import numpy as np
def run_chunk(param_chunk):
price = vbt.YFData.download("BTC-USD").get("Close")
fast_ma = vbt.MA.run(price, param_chunk[:, 0])
slow_ma = vbt.MA.run(price, param_chunk[:, 1])
entries = fast_ma.ma_crossed_above(slow_ma)
exits = fast_ma.ma_crossed_below(slow_ma)
pf = vbt.Portfolio.from_signals(price, entries, exits, init_cash=10_000)
return pf.sharpe_ratio()
# Chia 360 tham số qua 4 tiến trình
params = np.array(np.meshgrid(np.arange(5, 41, 5), np.arange(20, 121, 10))).T.reshape(-1, 2)
chunks = np.array_split(params, 4)
with Pool(4) as p:
results = p.map(run_chunk, chunks)
So sánh với các Lựa chọn Thay thế #
| Tính năng | VectorBT | Backtrader | Zipline | QuantConnect (Lean) |
|---|---|---|---|---|
| Mô hình thực thi | Vectorized | Event-driven | Event-driven | Event-driven |
| Tốc độ (giao dịch/giây) | 1M+ | ~500 | ~1.000 | ~5.000 (cloud) |
| Tối ưu tham số | Tìm kiếm lưới native | Cerebro optreturn | Hạn chế | Hỗ trợ đầy đủ |
| Phân tích walk-forward | Cắt thủ công | Thư viện cộng đồng | Không | Tích hợp sẵn |
| Giao dịch thực | Không (chỉ nghiên cứu) | Có (nhiều broker) | Không | Có (tích hợp broker) |
| Tích hợp ML | Native qua scikit-learn | Qua callback | Hạn chế | Đầy đủ (Python+C#) |
| Nguồn dữ liệu | yfinance, CCXT, tùy chỉnh | CSV/nguồn bất kỳ | Quantopian (ngừng) | Broker + cloud data |
| Sao cộng đồng (5/2026) | 8.900 | 13.200 | 18.500 | 10.500 |
| Giấy phép | Apache-2.0 | GPL-3.0 | Apache-2.0 | Apache-2.0 |
| Ngôn ngữ | Python | Python | Python | C# + Python |
Khi nào chọn cái gì:
- VectorBT: Workflow nặng về nghiên cứu, sweep tham số, pipeline ML, PoC chiến lược
- Backtrader: Live trading sẵn sàng với broker với chiến lược đơn giản
- Zipline-reloaded: Migration từ Quantopian, khả năng tái tạo học thuật
- Lean / QuantConnect: Stack production đầy đủ với cloud backtesting và live deployment
Hạn chế / Đánh giá Trung thực #
VectorBT không phải giải pháp đa năng. Đây là những gì nó không làm:
Không có thực thi live trading. VectorBT chỉ là thư viện nghiên cứu. Để live trading, bạn cần framework thực thi riêng như CCXT, IBKR API, hoặc Lean.
Xấp xỉ vectorized. Mô hình vectorized khớp lệnh ở giá đóng cửa của cùng cây nến theo mặc định. Trượt giá thực và tác động thị trường được xấp xỉ, không phải mô phỏng từng tick. Chiến lược tần suất cao sẽ thấy kết quả bị méo.
Bùng nổ bộ nhớ với lưới lớn. Lưới tham số 5D với 50 giá trị mỗi chiều tạo ra 312 triệu tổ hợp. Điều này nhanh chóng cạn kiệt RAM. Sử dụng tham số
chunk_sizehoặc mảng hỗ trợ đĩa của PRO.Tập trung đơn tài sản. Logic rebalance đa tài sản có thể thực hiện nhưng không thuận tiện bằng các công cụ tối ưu danh mục chuyên dụng như PyPortfolioOpt.
Đường cong học tập. Các khái niệm broadcasting và lưới tham số cần thờ gian để nắm vững. Dự kiến 2-3 ngày thực hành trước khi thành thạo.
Paywall phiên bản PRO. Tối ưu walk-forward, trailing stop thích ứng và báo cáo nâng cao yêu cầu giấy phép PRO ($299/năm). Phiên bản open-source bao phủ 80% trường hợp nghiên cứu.
Câu hỏi Thường gặp #
VectorBT có xử lý dữ liệu intraday được không?
Có. Tải dữ liệu 1 phút hoặc 5 phút qua CCXT cho crypto hoặc yfinance cho cổ phiếu. Hiệu suất mở rộng tuyến tính với điểm dữ liệu —— 1 triệu cây nến vẫn xử lý dưới 5 giây cho chiến lược đơn giản.
VectorBT có phù hợp cho live trading không?
Không. VectorBT rõ ràng là thư viện nghiên cứu và backtesting. Để thực thi live, xuất tín hiệu và chạy qua CCXT, Interactive Brokers API, hoặc Lean. Workflow điển hình: nghiên cứu trên VectorBT → xác thực trên paper → triển khai qua execution engine.
Sự khác biệt giữa VectorBT và VectorBT PRO là gì?
PRO thêm tối ưu walk-forward, stop thích ứng, mô hình portfolio Black-Litterman, mảng hỗ trợ đĩa cho tính toán out-of-core, và hỗ trợ ưu tiên. Phiên bản open-source vẫn đầy đủ chức năng cho backtesting và tối ưu tham số.
VectorBT so với backtesting dựa trên pandas như thế nào?
VectorBT thường nhanh hơn 50-200 lần so với vòng lặp pandas thô vì nó hoàn toàn tránh lặp Python. Khoảng cách tốc độ tăng khi có nhiều tài sản và tổ hợp tham số hơn. pandas vẫn hữu ích cho tiền xử lý dữ liệu.
Tôi có thể dùng dữ liệu tùy chỉnh với VectorBT không?
Hoàn toàn được. Bất kỳ pandas DataFrame hoặc NumPy ndarray dữ liệu OHLCV nào cũng hoạt động. VectorBT không bắt buộc nhà cung cấp dữ liệu cụ thể. Các lựa chọn phổ biến gồm yfinance (miễn phí), CCXT (sàn crypto), và Polygon.io (institutional).
VectorBT có hỗ trợ bán khống không?
Có. Đặt direction="short" trong Portfolio.from_signals, hoặc dùng direction="both" cho chiến lược pairs trading long/short. Bán khống bao gồm mô hình margin và chi phí vay.
Làm sao bắt đầu với dữ liệu crypto?
Để nghiên cứu giao dịch thuật toán crypto, đăng ký trên Binance để truy cập dữ liệu lịch sử sâu và phí giao dịch thấp. Đối với phái sinh, OKX cung cấp API chuyên nghiệp.
Kết luận: Tốc độ Thay đổi Mọi thứ #
VectorBT loại bỏ ma sát giữa ý tưởng và xác thực. Khi sweep 180 tổ hợp tham số hoàn thành trong 3 giây thay vì 15 phút, toàn bộ workflow nghiên cứu của bạn thay đổi. Bạn kiểm tra nhiều ý tưởng hơn, loại bỏ ý tưởng tệ nhanh hơn, và tìm các alpha mạnh sống sót qua kiểm tra out-of-sample.
Bắt đầu với ví dụ MA crossover ở trên. Thêm chỉ báo thứ hai. Chạy phân tích walk-forward. Kết nối RandomForest. Trong một tuần, bạn sẽ có pipeline nghiên cứu quantitative sánh ngang các thiết lập chuyên nghiệp tốn hàng nghìn đô mỗi tháng cho cloud compute.
Tham gia cộng đồng quantitative trading Telegram để thảo luận chiến lược và mẹo VectorBT: t.me/dibi8quant
Để thực thi giao dịch tự động bằng AI, khám phá Minara để triển khai chiến lược đã xác thực hoàn toàn tự động.
Nguồn & Tài liệu Tham khảo #
- Tài liệu VectorBT — https://vectorbt.dev
- Repository GitHub VectorBT — https://github.com/polakowo/vectorbt
- Tài liệu Numba — https://numba.pydata.org
- “Advances in Financial Machine Learning” của Marcos Lopez de Prado — Marcos’ Prado (2018)
- Tài liệu PyPortfolioOpt — https://pyportfolioopt.readthedocs.io
- Thư viện sàn giao dịch Crypto CCXT — https://github.com/ccxt/ccxt
Hosting Và Hạ Tầng Được Đề Xuất #
Trước khi triển khai các công cụ trên vào production, bạn cần hạ tầng vững chắc. Hai lựa chọn dibi8 đang dùng:
- DigitalOcean — Credit miễn phí $200 trong 60 ngày, 14+ khu vực toàn cầu. Lựa chọn mặc định cho dev chạy AI tools open source.
- HTStack — VPS Hong Kong, độ trễ thấp khi truy cập từ Trung Quốc. Cùng IDC đang host dibi8.com.
Liên kết tiếp thị — không tăng chi phí của bạn, giúp dibi8.com hoạt động.
Tuyên bố Liên kết Affiliate #
Bài viết này chứa liên kết affiliate đến Binance, OKX, Minara và các nền tảng liên quan. Nếu bạn đăng ký qua các liên kết này, dibi8.com có thể nhận được hoa hồng không phát sinh chi phí thêm cho bạn. Chúng tôi chỉ giới thiệu các công cụ chúng tôi dùng cho nghiên cứu quantitative của riêng mình. Thu nhập affiliate hỗ trợ nội dung kỹ thuật mã nguồn mở của chúng tôi.
💬 Bình luận & Thảo luận