Language: English | ไธญๆ
Click to switch language / ็นๅปๅๆข่ฏญ่จ
OpenQuant is a modular algorithmic trading system built in Python. It runs a parallel dual-engine architecture: Grid Trading (always on, scalping micro-oscillations) and Trend Following (opportunistic, capturing macro moves). Both engines operate independently โ the grid never stops, and trend trades overlay on top when a strong signal fires.
The system doesn't predict the market โ it reacts to it. Grid grinds. Trend hunts.
openquant/
โโโ core/ # State Machine & Double-Entry Ledger (PostgreSQL)
โโโ data/ # Market Data Ingestion (WebSocket) & Indicators
โโโ strategy/ # Grid Strategy, Trend Strategy, Regime Detector
โโโ execution/ # Exchange API Routing & Order Management
โโโ risk/ # Independent Risk Guard
โโโ config/ # JSON Configuration
โโโ tests/ # Unit Tests (100+ passing)
โโโ main.py # Event Bus & Main Loop
โโโ backtest.py # Historical Backtesting Engine
โโโ dashboard.py # Real-Time Trading Dashboard
โโโ visualize.py # Candlestick Chart Generator
Hard rule: The Brain (strategy/) NEVER imports the Hands (execution/). All communication goes through standardized, immutable StrategySignal data classes via the event bus in main.py.
| Feature | Status |
|---|---|
| Parallel Grid+Trend Engine | โ Live |
| Tracking Grid (price-following) | โ Live |
| Pyramid Capital Allocation | โ Live |
| Volatility-Adaptive Levels | โ Live |
| Grid Stop-Loss | โ Live |
| Unidirectional Deployment | โ Live |
| Double-Entry Ledger (PostgreSQL) | โ Live |
| Time-Sync (auto server clock) | โ Live |
| Risk Guard (6 checks) | โ Complete |
| Binance Spot Live Trading | โ LIVE โ DOGEUSDT |
| Backtesting (dual engine) | โ Complete |
| Real-Time Web Dashboard | โ Complete |
| 100+ Unit Tests | โ Passing |
Old architecture (regime-switching): Detect if market is "trending" or "ranging" โ pick ONE strategy.
New architecture (parallel): Grid runs 100% of the time. Trend independently monitors for strong signals and fires when conditions align. They don't fight โ they coexist.
โโโโโโโโโโโโโโโโโโโ
โ K-line Data โ
โ (WebSocket) โ
โโโโโโโโโโฌโโโโโโโโโ
โ
โโโโโโโโโโผโโโโโโโโโ
โ Indicators โ
โ EMA/MACD/ADX/ATRโ
โโโโโโโโโโฌโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ
โ โ
โโโโโโโโโโผโโโโโโโโโ โโโโโโโโโโโผโโโโโโโโโ
โ GRID ENGINE โ โ TREND ENGINE โ
โ Always Running โ โ Opportunistic โ
โ 10-layer Trail โ โ EMA Cross+MACD โ
โโโโโโโโโโฌโโโโโโโโโ โโโโโโโโโโโฌโโโโโโโโโ
โ โ
โ โโโโโโโโโโโโโโโโโ โ
โโโโโโโบ Risk Guard โโโโโโโโโ
โ 6 Checks โ
โโโโโโโโโฌโโโโโโโโ
โ
โโโโโโโโโผโโโโโโโโ
โ Order Manager โ
โ โ Binance API โ
โโโโโโโโโโโโโโโโโ
Place a ladder of limit buy orders below the current price. When price dips, buy. Automatically place a take-profit sell above entry. Round-trip captures 0.3% minus fees.
| Parameter | Value | Meaning |
|---|---|---|
| Levels | 3~5 per side | Capped by capital (min $1/level) |
| Range | ยฑ3% | Grid covers 3% above/below current price |
| Profit | 0.3%/level | Target profit per round-trip |
| Rebalance | Drift > 1% | Auto-recenter around new price |
Key innovations over vanilla grid:
-
Tracking reference price: Grid always centers on the latest close, not a stale SMA. As price drifts, the grid follows โ keeping buy levels close to market.
-
Pyramid capital allocation: Levels closest to the current price get more capital (exponential decay weight). Why? Higher fill probability.
Capital per level (pyramid decay=0.5): Buy #1 (closest): ~$2.70 57% of side capital Buy #2: ~$1.35 29% Buy #3 (farthest): ~$0.68 14% โ skipped if < $1 min -
Volatility-adaptive density: More levels in low-volatility ranging markets; fewer in high-volatility trending markets.
-
Grid stop-loss: If price drops 3% below the lowest buy level, emergency-close the entire grid โ prevents catching a falling knife.
-
Unidirectional deployment: Checks actual account balances before placing orders. No DOGE? Skip sell levels. No USDT? Skip buy levels. No more "insufficient balance" error storms.
Evaluated independently every tick. Only fires on true ENTRY or EXIT signals โ never overrides the grid.
| Signal | Condition |
|---|---|
| LONG Entry | EMA12 crosses ABOVE EMA26 + MACD histogram > 0 + market not flat |
| SHORT Entry | EMA12 crosses BELOW EMA26 + MACD histogram < 0 + market not flat |
| Stop-Loss | Entry price ยฑ 2ร ATR |
| Trailing Stop | Ratchets at 3ร ATR distance in favorable direction |
| Position Size | Kelly-style: risk 1% of capital per trade |
| Cooldown | First 30 ticks (~2.5h) after startup: no trend trades |
The five-factor scoring model still runs, but it no longer MUTES the grid. Its output is used to:
- Tune grid density (more levels when ranging)
- Gate trend entries (higher confidence required in ambiguous markets)
- Provide diagnostic insight
| Factor | Weight | What It Measures |
|---|---|---|
| Trend Strength (ADX) | 30% | Is there a clear directional move? |
| Volatility Regime | 25% | Is volatility expanding or contracting? |
| Momentum (MACD + EMA) | 20% | Are short-term and long-term forces aligned? |
| Volume Profile | 15% | Does volume confirm the price move? |
| Market Microstructure | 10% | Are candles decisive or indecisive? |
Hysteresis: score > 0.70 โ classify as trending; score < 0.30 โ classify as ranging; otherwise hold previous.
Here's exactly what happens when a grid level executes:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ STEP 1: GRID DEPLOYMENT โ
โ _process_symbol_tick (every 5 min) โ
โ โ compute_grid(reference_price=close, atr, is_ranging) โ
โ โ generate_signal โ dispatch โ
โ โ BUY LIMIT 20 DOGE @ 0.0792 โ ๆๅจ Binance โ
โ โ ่ดฆๆท USDT ่ขซ้ๅฎ $1.58 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ STEP 2: EXCHANGE FILL (Binance) โ
โ ไปทๆ ผ่ทๅฐ 0.0792 โ ๆฎๅๆไบค โ
โ โ ่ดฆๆทๅคไบ 19.98 DOGE๏ผๆฃ 0.1% ๆ็ปญ่ดนๅ๏ผ โ
โ โ USDT ้ๅฎ้ๆพ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ (ๆๅค 30 ็งๅ)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ STEP 3: RECONCILIATION DETECTS FILL โ
โ _reconciliation_loop (every 30s) โ
โ โ GET /myTrades?symbol=DOGEUSDT&limit=50 โ
โ โ ๅ็ฐๆฐๆไบค: BUY 20 DOGE @ 0.0792 โ
โ โ ๆฅๅฟ: "Fill: DOGEUSDT BUY 20 @ $0.0792" โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ (ๅไธ่ฝฎ reconciliation)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ STEP 4: AUTO PLACE TAKE-PROFIT โ
โ โ ่ฎก็ฎๆญข็ไปท: 0.0792 ร 1.003 = 0.07944 โ
โ โ ๆฅ DOGE ๅฎ้
ไฝ้ข: 19.98 โ ๅๆดๅฐๆดๆฐ: 19 DOGE โ
โ โ ๅป้ๆฃๆฅ: ่ฟไธช fill ID ๆฏๅฆๅทฒๅค็่ฟ๏ผโ ๅฆ โ
โ โ SELL LIMIT 19 DOGE @ 0.07944 โ ๆๅจ Binance โ
โ โ ่ฎฐๅฝๅฐ _tp_attempted๏ผ็ปไธๅค้๏ผ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ STEP 5: TP FILL (Binance) โ
โ ไปทๆ ผๆถจๅฐ 0.07944 โ ๆฎๅๆไบค โ
โ โ ๅๅบ 19 DOGE โ ๆฟๅ ~$1.51 USDT โ
โ โ ๅ่ต: ~0.3% โ 0.2% ๆ็ปญ่ดน = ~$0.002 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ (ๆๅค 30 ็งๅ)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ STEP 6: RECONCILIATION DETECTS TP FILL โ
โ โ ๅ็ฐ SELL ๆไบค, ่ฎฐๅฝๅฐ่ดฆๆฌ โ
โ โ ๆ ๆฐๅจไฝ๏ผๅๅฎๅณๆญข๏ผ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ (ไธๆฌก tick)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ STEP 7: GRID CONTINUES โ
โ _process_symbol_tick (ๆฏ 5 ๅ้) โ
โ โ ๆฃๆฅไปทๆ ผๅ็ฆปๆฏๅฆ > 1% โ
โ โ ๆฒกๅ็ฆป: ไนฐๅ่ฟๅจ๏ผไปไน้ฝไธๅ โ
โ โ ๅ็ฆปไบ: ๅๆถๆงๅ๏ผๅด็ปๆฐไปทๆ ผ้ๅปบ็ฝๆ ผ โ
โ โ ่ดฆๆท USDT ๅค โ ๆฐไนฐๅ่ชๅจ่กฅไธ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Key timing:
- Fill โ system awareness: 0โ30 seconds (reconciliation poll interval)
- Fill โ TP placed: 0โ30 seconds (same reconciliation cycle)
- The system is poll-based, not event-driven. Reconciliation bridges the gap.
WebSocket โ MarketDataEngine โ OHLCV โ Indicators (EMA/MACD/ADX/ATR/RSI/BB)
โ GridStrategy: always evaluates, may rebalance
โ TrendStrategy: independently evaluates, fires on strong ENTRY/EXIT
โ RegimeDetector: scores market (ranging/trending) for parameter tuning
โ RiskGuard (6 checks) โ APPROVED / BLOCKED / MODIFIED
โ OrderManager โ Binance API
โ LedgerEngine (PostgreSQL double-entry bookkeeping)
| Layer | What It Does |
|---|---|
| Strategy | Computes signals only โ never touches API or database |
| Risk Guard | 6 pre-execution checks: drawdown, daily loss, position size, exposure, dust orders, circuit breaker |
| Grid Stop-Loss | Price drops 3% below grid floor โ emergency close all |
| Time Sync | Auto-syncs Binance server time at startup; auto-corrects on recvWindow errors |
| Watchdog | Independent async task: warns if main loop stalls > 2 tick intervals |
| Per-Tick Timeout | 30-second hard limit per tick; hung ticks are skipped |
- Thread-safe connection pool (psycopg2, 2โ10 connections)
- SERIALIZABLE isolation for ACID compliance
- Every trade: at least two journal lines (one debit, one credit)
- Immutable audit trail (corrections via reversing entries, never UPDATEs)
NUMERIC(20,8)โ no floating-point rounding errors in accounting
- Language: Python 3.10+
- Data: pandas, numpy, pandas-ta
- Database: PostgreSQL 16 (Docker or native)
- Exchange: Binance REST API & WebSocket (aiohttp)
- Testing: pytest (100+ tests)
- Dashboard: HTTP server on port 8080
# Clone
git clone https://github.com/Joe-Xuu/openquant.git
cd openquant
# Virtual environment
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
# Install
pip install -r requirements.txt
# Database (Docker)
docker-compose up -d # starts PostgreSQL 16
# Configure
cp .env.example .env
# Edit .env with your Binance API keys
# Unit tests
python -m pytest tests/ -v
# Run
python main.py# 1. Set BINANCE_TESTNET=false in .env
# 2. Fill in BINANCE_API_KEY and BINANCE_API_SECRET
# 3. Whitelist your IP in Binance API Management
python main.py# Real-time dashboard at http://localhost:8080
python dashboard.py# Run backtest on historical data
python backtest.py --symbol DOGEUSDT --capital 12# Generate candlestick charts with trade markers
python visualize.pyOpenQuant ๆฏไธไธช็จ Python ๆๅปบ็ๆจกๅๅ็ฎๆณไบคๆ็ณป็ปใ้็จๅนถ่กๅๅผๆๆถๆ๏ผ็ฝๆ ผไบคๆ๏ผๅธธ้ฉป่ฟ่ก๏ผ่้ฃๅพฎๅน ้่ก๏ผๅ่ถๅฟ่ท้๏ผไผบๆบ่ๅจ๏ผๆ่ทๅฎ่งๆณขๆฎต๏ผใไธคไธชๅผๆ็ฌ็ซๅนถ่กโโ็ฝๆ ผๆฐธไธๅ๏ผ่ถๅฟไฟกๅทๅผบๆถๅ ๅ ไปๅ ฅใ
็ณป็ปไธ้ขๆตๅธๅบโโๅฎๅฏนๅธๅบๅๅบๅๅบใ็ฝๆ ผ็ฃจๅฐๅฉ๏ผ่ถๅฟๆๅคงๆณขใ
openquant/
โโโ core/ # ็ถๆๆบ & ๅคๅผ่ฎฐ่ดฆ่ดฆๆฌ (PostgreSQL)
โโโ data/ # ่กๆ
ๆฐๆฎ (WebSocket) & ๆๆฏๆๆ
โโโ strategy/ # ็ฝๆ ผ็ญ็ฅใ่ถๅฟ็ญ็ฅใ็ถๆๆฃๆตๅจ
โโโ execution/ # ไบคๆๆ API ่ทฏ็ฑ & ่ฎขๅ็ฎก็
โโโ risk/ # ็ฌ็ซ้ฃ้ฉๅฎๅซ
โโโ config/ # JSON ้
็ฝฎ
โโโ tests/ # ๅๅ
ๆต่ฏ (100+ ้่ฟ)
โโโ main.py # ไบไปถๆป็บฟ & ไธปๅพช็ฏ
โโโ backtest.py # ๅๅฒๅๆตๅผๆ
โโโ dashboard.py # ๅฎๆถไบคๆ็ๆฟ
โโโ visualize.py # K็บฟๅพ็ๆๅจ
้ๅพ๏ผ ๅคง่๏ผstrategy/๏ผ็ปไธๅฏผๅ
ฅๅๆ๏ผexecution/๏ผใๆๆ้ไฟก้่ฟๆ ๅๅไธๅฏๅ็ StrategySignal ๆฐๆฎ็ฑป๏ผ็ป็ฑ main.py ไธญ็ไบไปถๆป็บฟไผ ้ใ
| ๅ่ฝ | ็ถๆ |
|---|---|
| ๅนถ่ก็ฝๆ ผ+่ถๅฟๅผๆ | โ ๅฎ็่ฟ่ก |
| ่ฟฝ่ธช็ฝๆ ผ๏ผ่ท้ๅธไปท๏ผ | โ ๅฎ็่ฟ่ก |
| ้ๅญๅก่ต้ๅ้ | โ ๅฎ็่ฟ่ก |
| ๆณขๅจ็่ช้ๅบๅฑๆฐ | โ ๅฎ็่ฟ่ก |
| ็ฝๆ ผๆปๆญขๆ | โ ๅฎ็่ฟ่ก |
| ๅๅ้จ็ฝฒ | โ ๅฎ็่ฟ่ก |
| ๅคๅผ่ฎฐ่ดฆ (PostgreSQL) | โ ๅฎ็่ฟ่ก |
| ่ชๅจๅฏนๆถ | โ ๅฎ็่ฟ่ก |
| ้ฃ้ฉๅฎๅซ (6้กนๆฃๆฅ) | โ ๅฎๆ |
| ๅธๅฎ็ฐ่ดงๅฎ็ | โ ๅฎ็ โ DOGEUSDT |
| ๅๆต (ๅๅผๆ) | โ ๅฎๆ |
| ๅฎๆถ็ฝ้กต็ๆฟ | โ ๅฎๆ |
| 100+ ๅๅ ๆต่ฏ | โ ้่ฟ |
ๆงๆถๆ๏ผ็ถๆๅๆข๏ผ๏ผ ๆฃๆต่ถๅฟ/้่ก โ ้ไธไธช็ญ็ฅ่ทใ
ๆฐๆถๆ๏ผๅนถ่ก๏ผ๏ผ ็ฝๆ ผ 100% ๆถ้ดๅจ่ทใ่ถๅฟ็ฌ็ซ็ๆง๏ผๅชๅจๅผบไฟกๅทๆถๅบๆใไธค่
ไธๆๆถ๏ผๅ
ฑๅญใ
โโโโโโโโโโโโโโโโโโโ
โ K็บฟๆฐๆฎ (WS) โ
โโโโโโโโโโฌโโโโโโโโโ
โ
โโโโโโโโโโผโโโโโโโโโ
โ ๆๆฏๆๆ ่ฎก็ฎ โ
โ EMA/MACD/ADX/ATRโ
โโโโโโโโโโฌโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ
โ โ
โโโโโโโโโโผโโโโโโโโโ โโโโโโโโโโโผโโโโโโโโโ
โ ็ฝๆ ผๅผๆ โ โ ่ถๅฟๅผๆ โ
โ ๆฐธ่ฟๅจ็บฟ โ โ ไผบๆบ่ๅจ โ
โ ่ฟฝ่ธช็ฝๆ ผ โ โ EMAไบคๅ+MACD โ
โโโโโโโโโโฌโโโโโโโโโ โโโโโโโโโโโฌโโโโโโโโโ
โ โ
โ โโโโโโโโโโโโโโโโโ โ
โโโโโโโบ ้ฃ้ฉๅฎๅซ โโโโโโโโโ
โ 6้กนๆฃๆฅ โ
โโโโโโโโโฌโโโโโโโโ
โ
โโโโโโโโโผโโโโโโโโ
โ ่ฎขๅ็ฎก็ๅจ โ
โ โ ๅธๅฎ API โ
โโโโโโโโโโโโโโโโโ
ๅจๅฝๅไปทไธๆนๆไธๆ้ไปทไนฐๅใไปทๆ ผ่ทๅฐๅฐฑๅ่ฟ๏ผ่ชๅจๅจไธๆนๆๆญข็ๅๅใไธ่ฝฎไนฐๅๅ 0.3% ๅทฎไปทใ
| ๅๆฐ | ๅผ | ๅซไน |
|---|---|---|
| ๅฑๆฐ | 3~5/่พน | ๆ่ตๆฌ่ชๅจๅฐ้กถ๏ผๆฏๅฑโฅ$1๏ผ |
| ่ๅด | ยฑ3% | ็ฝๆ ผ่ฆ็ๅฝๅไปทไธไธ 3% |
| ๅฉๆถฆ | 0.3%/ๅฑ | ๆฏ็ฌ็ฎๆ ๅฉๆถฆ |
| ้ๅนณ่กก | ๅ็ฆป >1% | ่ชๅจๅด็ปๆฐไปทๆ ผ้ๅปบ |
็ธๆฏไผ ็ป็ฝๆ ผ็ๅๆฐ๏ผ
-
่ฟฝ่ธชๅ่ไปท๏ผ ็ฝๆ ผๅง็ปไปฅๆๆฐๆถ็ไปทไธบไธญๅฟ๏ผ่้่ฟๆถ็ๅ็บฟใไปทๆ ผๆผ็งป๏ผ็ฝๆ ผ่ท้โโไนฐๅๅง็ป็ดง่ดดๅธไปทใ
-
้ๅญๅก่ต้ๅ้ ๏ผ ็ฆปๅธไปท่ถ่ฟ็ๅฑๅ้ ่ถๅค่ต้๏ผๆๆฐ่กฐๅๆ้๏ผ๏ผๅ ไธบๆไบคๆฆ็ๆด้ซใ
-
ๆณขๅจ็่ช้ๅบๅฏๅบฆ๏ผ ไฝๆณขๅจๆจช็ๆถๅ ๅฏๅฑๆฐ๏ผ้ซๆณขๅจ่ถๅฟๆถๅ็ๅฑๆฐใ
-
็ฝๆ ผๆปๆญขๆ๏ผ ไปทๆ ผ่ท็ ด็ฝๆ ผไธ็ 3% โ ็ดงๆฅๆธ ไป๏ผ้ฒๆญขๆฅ้ฃๅใ
-
ๅๅ้จ็ฝฒ๏ผ ไธๅๅๆฃๆฅๅฎ้ ไฝ้ขใๆฒก DOGE ไธๆๅๅ๏ผๆฒก USDT ไธๆไนฐๅใๆถ็ญ "insufficient balance" ้่ฏฏๆดชๆตใ
ๆฏ tick ็ฌ็ซ่ฏไผฐใๅชๅจ็ๆญฃ็ๅ ฅๅบ/็ฆปๅบไฟกๅทๆถๅบๆโโ็ปไธๅๅถ็ฝๆ ผใ
| ไฟกๅท | ๆกไปถ |
|---|---|
| ๅๅค | EMA12 ไธ็ฉฟ EMA26 + MACDๆฑ>0 + ้ๆจช็ |
| ๅ็ฉบ | EMA12 ไธ็ฉฟ EMA26 + MACDๆฑ<0 + ้ๆจช็ |
| ๆญขๆ | ๅ ฅไปท ยฑ 2รATR |
| ็งปๅจๆญข็ | ๆๅฉๆนๅ 3รATR ่ฟฝ่ธช๏ผๅช่ฟไธ้๏ผ |
| ไปไฝ | Kelly้ฃๆ ผ๏ผๆฏ็ฌๅ 1% ๆฌ้้ฃ้ฉ |
| ๅทๅดๆ | ๅฏๅจๅๅ 30 tick(~2.5h)๏ผ่ถๅฟไธไบคๆ |
ไบๅ ๅญ่ฏๅๆจกๅไปๅจ่ฟ่ก๏ผไฝไธๅๅๅถ็ฝๆ ผใ่พๅบ็จไบ๏ผ
- ่ฐๆด็ฝๆ ผๅฏๅบฆ๏ผ้่กๅธๅ ๅฏ๏ผ
- ๆงๅถ่ถๅฟๅ ฅๅบ้จๆง๏ผๆจก็ณๅธๆ้ซ่ฆๆฑ๏ผ
- ๆไพ่ฏๆญๅ่
| ๅ ๅญ | ๆ้ | ่กก้ๅ ๅฎน |
|---|---|---|
| ่ถๅฟๅผบๅบฆ (ADX) | 30% | ๆฏๅฆๅญๅจๆ็กฎๆนๅ่ฟๅจ๏ผ |
| ๆณขๅจ็็ถๆ | 25% | ๆณขๅจ็ๅจๆฉๅผ ่ฟๆฏๆถ็ผฉ๏ผ |
| ๅจ้ (MACD + EMA) | 20% | ็ญๆๅ้ฟๆๅ้ๆฏๅฆไธ่ด๏ผ |
| ๆไบค้็ปๅ | 15% | ๆไบค้ๆฏๅฆ็กฎ่ฎคไปทๆ ผ่ตฐๅฟ๏ผ |
| ๅธๅบๅพฎ่ง็ปๆ | 10% | K็บฟๅฎไฝ/ๅฝฑ็บฟๆฏๆฏๅฆๆๆญ๏ผ |
่ฟๆป้จ๏ผscore > 0.70 โ ่ถๅฟ๏ผscore < 0.30 โ ้่ก๏ผไธญ้ด โ ็ปดๆใ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็ฌฌ1ๆญฅ๏ผ็ฝๆ ผ้จ็ฝฒ โ
โ _process_symbol_tick (ๆฏ 5 ๅ้) โ
โ โ compute_grid(ๅ่ไปท=ๆถ็ไปท) โ
โ โ BUY LIMIT 20 DOGE @ 0.0792 โ ๆๅจๅธๅฎ โ
โ โ ่ดฆๆท USDT ่ขซ้ๅฎ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็ฌฌ2ๆญฅ๏ผๅธๅฎๆไบค โ
โ ไปทๆ ผ่ทๅฐ 0.0792 โ ๆฎๅๆไบค โ
โ โ ่ดฆๆทๅคไบ 19.98 DOGE๏ผๆฃ 0.1% ๆ็ปญ่ดน๏ผ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ (ๆๅค 30 ็ง)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็ฌฌ3ๆญฅ๏ผๅฏน่ดฆๅ็ฐๆไบค โ
โ _reconciliation_loop (ๆฏ 30 ็ง) โ
โ โ GET /myTrades โ ๅ็ฐๆฐๆไบค โ
โ โ ๆฅๅฟ: "Fill: DOGEUSDT BUY 20 @ $0.0792" โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ (ๅไธ่ฝฎๅฏน่ดฆ)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็ฌฌ4ๆญฅ๏ผ่ชๅจๆๆญข็ โ
โ โ ๆญข็ไปท = 0.0792 ร 1.003 = 0.07944 โ
โ โ ๆฅ DOGE ๅฎ้
ไฝ้ข: 19.98 โ ๅๆด: 19 DOGE โ
โ โ ๅป้ๆฃๆฅ: ๆญคๆไบคIDๆฏๅฆๅทฒๅค็๏ผโ ๅฆ โ
โ โ SELL LIMIT 19 DOGE @ 0.07944 โ ๆๅจๅธๅฎ โ
โ โ ่ฎฐๅ
ฅ _tp_attempted (็ปไธๅค้) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็ฌฌ5ๆญฅ๏ผๆญข็ๆไบค โ
โ ไปทๆ ผๆถจๅฐ 0.07944 โ ๆฎๅๆไบค โ
โ โ ๅๅบ 19 DOGE โ ๆฟๅ USDT โ
โ โ ๅ่ต: ~0.3% โ 0.2% ๆ็ปญ่ดน โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ (ๆๅค 30 ็ง)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็ฌฌ6ๆญฅ๏ผๅฏน่ดฆ็กฎ่ฎค โ
โ โ ๅ็ฐ SELL ๆไบค๏ผ่ฎฐๅฝๅฐ่ดฆๆฌ โ
โ โ ๆ ๆฐๅจไฝ๏ผๅๅฎๅณๆญข๏ผ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ (ไธๆฌก tick)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็ฌฌ7ๆญฅ๏ผ็ฝๆ ผ็ปง็ปญ่ฟ่ฝฌ โ
โ _process_symbol_tick (ๆฏ 5 ๅ้) โ
โ โ ๆฃๆฅไปทๆ ผๅ็ฆป >1%๏ผโ ๅฆ๏ผไปไน้ฝไธๅ โ
โ โ ๆฏ๏ผๅๆถๆงๅ๏ผๅด็ปๆฐไปทๆ ผ้ๅปบ็ฝๆ ผ โ
โ โ USDT ๅค โ ๆฐไนฐๅ่ชๅจ่กฅไธ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๅ ณ้ฎๆถ้ด๏ผ
- ๆไบค โ ็ณป็ปๆ็ฅ๏ผ0~30 ็ง๏ผๅฏน่ดฆ่ฝฎ่ฏข้ด้๏ผ
- ๆไบค โ ๆญข็ๆไธ๏ผ0~30 ็ง๏ผๅไธ่ฝฎๅฏน่ดฆๅฎๆ๏ผ
- ็ณป็ปๆฏ่ฝฎ่ฏขๅถ๏ผ้ไบไปถ้ฉฑๅจใๅฏน่ดฆๆฏๆ็ฅๆไบค็ๅฏไธ้ๅพใ
| ๅฑ็บง | ่่ดฃ |
|---|---|
| ็ญ็ฅๅฑ | ๅช่ฎก็ฎไฟกๅท โ ็ปไธๆฅ่งฆ API ๆๆฐๆฎๅบ |
| ้ฃ้ฉๅฎๅซ | 6 ้กนๆง่กๅๆฃๆฅ๏ผๅๆคใๆฅๅ ไบๆใๅคดๅฏธ่งๆจกใๆๅฃใ็ฒๅฐ่ฎขๅใ็ๆญ |
| ็ฝๆ ผๆญขๆ | ไปทๆ ผ่ท็ ด็ฝๆ ผไธ็ 3% โ ็ดงๆฅๅ จๅนณ |
| ่ชๅจๅฏนๆถ | ๅฏๅจๆถไธๅธๅฎๆๅกๅจๅๆญฅๆถ้๏ผrecvWindow ้่ฏฏ่ชๅจ็บ ๆญฃ |
| ็้จ็ | ็ฌ็ซๅผๆญฅไปปๅก๏ผไธปๅพช็ฏๅๆป่ถ 2 ไธช tick ้ด้ โ ๆฅ่ญฆ |
| ้ tick ่ถ ๆถ | ๆฏไธช tick ็กฌ้ 30 ็ง๏ผ่ถ ๆถ่ทณ่ฟไธ้ปๅก |
- ็บฟ็จๅฎๅ จ่ฟๆฅๆฑ ๏ผpsycopg2๏ผ2~10 ่ฟๆฅ๏ผ
- SERIALIZABLE ้็ฆป็บงๅซ๏ผACID ๅ่ง
- ๆฏ็ฌไบคๆ่ณๅฐไธคๆกๅๅฝ๏ผไธๅไธ่ดท๏ผ
- ไธๅฏๅๅฎก่ฎก่ฟฝๆบฏ๏ผไฟฎๆญฃ้่ฟๅฒ้ๅๅฝ๏ผ็ปไธ UPDATE๏ผ
NUMERIC(20,8)โ ๆ็ปๆตฎ็น่ๅ ฅ่ฏฏๅทฎ
- ่ฏญ่จ๏ผ Python 3.10+
- ๆฐๆฎๅค็๏ผ pandas, numpy, pandas-ta
- ๆฐๆฎๅบ๏ผ PostgreSQL 16 (Docker ๆๅ็)
- ไบคๆๆ๏ผ Binance REST API & WebSocket (aiohttp)
- ๆต่ฏ๏ผ pytest (100+ ้กน)
- ็ๆฟ๏ผ HTTP ๆๅก๏ผ็ซฏๅฃ 8080
# ๅ
้
git clone https://github.com/Joe-Xuu/openquant.git
cd openquant
# ่ๆ็ฏๅข
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# ๅฎ่ฃ
ไพ่ต
pip install -r requirements.txt
# ๆฐๆฎๅบ (Docker)
docker-compose up -d # ๅฏๅจ PostgreSQL 16
# ้
็ฝฎ
cp .env.example .env
# ็ผ่พ .env ๅกซๅ
ฅๅธๅฎ API ๅฏ้ฅ
# ๆต่ฏ
python -m pytest tests/ -v
# ๅฏๅจ
python main.py# 1. .env ไธญ่ฎพ็ฝฎ BINANCE_TESTNET=false
# 2. ๅกซๅ
ฅ BINANCE_API_KEY ๅ BINANCE_API_SECRET
# 3. ๅปๅธๅฎ API ็ฎก็้กต้ขๆ IP ๅ ๅ
ฅ็ฝๅๅ
python main.pypython dashboard.py # http://localhost:8080python backtest.py --symbol DOGEUSDT --capital 12python visualize.py # K็บฟๅพไฟๅญๅฐ charts/ ็ฎๅฝMIT โ see LICENSE file for details.
This software is for educational and research purposes only. Trading cryptocurrencies involves substantial risk of loss and is not suitable for all investors. Past performance is not indicative of future results. The authors assume no responsibility for any financial losses incurred through the use of this software.
ๆฌ่ฝฏไปถไป ไพๅญฆไน ๅ็ ็ฉถไฝฟ็จใๅ ๅฏ่ดงๅธไบคๆๅญๅจ้ๅคงไบๆ้ฃ้ฉ๏ผๅนถไธ้ๅๆๆๆ่ต่ ใๅๅฒ่กจ็ฐไธไปฃ่กจๆชๆฅ็ปๆใไฝ่ ๅฏนไฝฟ็จๆฌ่ฝฏไปถไบง็็ไปปไฝ่ดขๅกๆๅคฑไธๆฟๆ ่ดฃไปปใ