Languages: English | δΈζ | Π£ΠΊΡΠ°ΡΠ½ΡΡΠΊΠ° | Π ΡΡΡΠΊΠΈΠΉ
An automated crypto futures trading system powered by DeepSeek/Qwen AI, supporting Binance and Hyperliquid exchanges, multi-AI model live trading competition, featuring comprehensive market analysis, AI decision-making, self-learning mechanism, and professional Web monitoring interface.
β οΈ Risk Warning: This system is experimental. AI auto-trading carries significant risks. Strongly recommended for learning/research purposes or testing with small amounts only!
Join our Telegram developer community to discuss, share ideas, and get support:
NOFX now supports Hyperliquid - a high-performance decentralized perpetual futures exchange!
Key Features:
- β Full trading support (long/short, leverage, stop-loss/take-profit)
- β Automatic precision handling (order size & price)
- β Unified trader interface (seamless exchange switching)
- β Support for both mainnet and testnet
- β No API keys needed - just your Ethereum private key
Why Hyperliquid?
- π₯ Lower fees than centralized exchanges
- π Non-custodial - you control your funds
- β‘ Fast execution with on-chain settlement
- π No KYC required
Quick Start:
- Get your MetaMask private key (remove
0xprefix) - Set
"exchange": "hyperliquid"in config.json - Add
"hyperliquid_private_key": "your_key" - Start trading!
See Configuration Guide for details.
- Qwen vs DeepSeek live trading battle
- Independent account management and decision logs
- Real-time performance comparison charts
- ROI PK and win rate statistics
- Historical Feedback: Analyzes last 20 cycles of trading performance before each decision
- Smart Optimization:
- Identifies best/worst performing coins
- Calculates win rate, profit/loss ratio, average profit
- Avoids repeating mistakes (consecutive losing coins)
- Reinforces successful strategies (high win rate patterns)
- Dynamic Adjustment: AI autonomously adjusts trading style based on historical performance
- 3-minute K-line: Real-time price, EMA20, MACD, RSI(7)
- 4-hour K-line: Long-term trend, EMA20/50, ATR, RSI(14)
- Open Interest Analysis: Market sentiment, capital flow judgment
- OI Top Tracking: Top 20 coins with fastest growing open interest
- AI500 Coin Pool: Automatic high-score coin screening
- Liquidity Filter: Auto-filters low liquidity coins (<15M USD position value)
- Per-Coin Position Limit:
- Altcoins β€ 1.5x account equity
- BTC/ETH β€ 10x account equity
- Configurable Leverage (v2.0.3+):
- Set maximum leverage in config.json
- Default: 5x for all coins (safe for subaccounts)
- Main accounts can increase: Altcoins up to 20x, BTC/ETH up to 50x
β οΈ Binance subaccounts restricted to β€5x leverage
- Margin Management: Total usage β€90%, AI autonomous decision on usage rate
- Risk-Reward Ratio: Mandatory β₯1:2 (stop-loss:take-profit)
- Prevent Position Stacking: No duplicate opening of same coin/direction
- Professional Trading Interface: Binance-style visual design
- Dark Theme: Classic color scheme (Gold #F0B90B + dark background)
- Real-time Data: 5-second refresh for accounts, positions, charts
- Equity Curve: Historical account value trend (USD/percentage toggle)
- Performance Comparison Chart: Real-time multi-AI ROI comparison
- Smooth Animations: Fluid hover, transition, and loading effects
- Chain of Thought: AI's complete reasoning process (CoT)
- Historical Performance: Overall win rate, average profit, profit/loss ratio
- Recent Trades: Last 5 trade details (entry price β exit price β P/L%)
- Coin Statistics: Per-coin performance (win rate, average P/L)
- JSON Logs: Complete decision records for post-trade analysis
nofx/
βββ main.go # Program entry (multi-trader manager)
βββ config.json # Configuration file (API keys, multi-trader config)
β
βββ api/ # HTTP API service
β βββ server.go # Gin framework, RESTful API
β
βββ trader/ # Trading core
β βββ auto_trader.go # Auto trading main controller (single trader)
β βββ binance_futures.go # Binance futures API wrapper
β
βββ manager/ # Multi-trader management
β βββ trader_manager.go # Manages multiple trader instances
β
βββ mcp/ # Model Context Protocol - AI communication
β βββ client.go # AI API client (DeepSeek/Qwen integration)
β
βββ decision/ # AI decision engine
β βββ engine.go # Decision logic with historical feedback
β
βββ market/ # Market data fetching
β βββ data.go # Market data & technical indicators (K-line, RSI, MACD)
β
βββ pool/ # Coin pool management
β βββ coin_pool.go # AI500 + OI Top merged pool
β
βββ logger/ # Logging system
β βββ decision_logger.go # Decision recording + performance analysis
β
βββ decision_logs/ # Decision log storage
β βββ qwen_trader/ # Qwen trader logs
β βββ deepseek_trader/ # DeepSeek trader logs
β
βββ web/ # React frontend
βββ src/
β βββ components/ # React components
β β βββ EquityChart.tsx # Equity curve chart
β β βββ ComparisonChart.tsx # Multi-AI comparison chart
β β βββ CompetitionPage.tsx # Competition leaderboard
β βββ lib/api.ts # API call wrapper
β βββ types/index.ts # TypeScript types
β βββ index.css # Binance-style CSS
β βββ App.tsx # Main app
βββ package.json
Backend (Go)
github.com/adshao/go-binance/v2- Binance API clientgithub.com/markcheno/go-talib- Technical indicator calculation (TA-Lib)github.com/gin-gonic/gin- HTTP API framework
Frontend (React + TypeScript)
react+react-dom- UI frameworkrecharts- Chart library (equity curve, comparison charts)swr- Data fetching and cachingtailwindcss- CSS framework
Before using this system, you need a Binance Futures account. Use our referral link to save on trading fees:
π Register Binance - Get Fee Discount
- Click the link above to visit Binance registration page
- Complete registration with email/phone number
- Complete KYC verification (required for futures trading)
- Enable Futures account:
- Go to Binance homepage β Derivatives β USD-M Futures
- Click "Open Now" to activate futures trading
- Create API Key:
- Go to Account β API Management
- Create new API key, enable "Futures" permission
- Save API Key and Secret Key (needed for config.json)
- Important: Whitelist your IP address for security
- β Spot trading: Up to 30% fee discount
- β Futures trading: Up to 30% fee discount
- β Lifetime validity: Permanent discount on all trades
β‘ Start trading in 3 simple steps with Docker - No installation needed!
Docker automatically handles all dependencies (Go, Node.js, TA-Lib) and environment setup. Perfect for beginners!
# Copy configuration template
cp config.json.example config.json
# Edit and fill in your API keys
nano config.json # or use any editor# Option 1: Use convenience script (Recommended)
chmod +x start.sh
./start.sh start --build
# Option 2: Use docker-compose directly
docker-compose up -d --buildOpen your browser and visit: http://localhost:3000
That's it! π Your AI trading system is now running!
./start.sh logs # View logs
./start.sh status # Check status
./start.sh stop # Stop services
./start.sh restart # Restart servicesπ For detailed Docker deployment guide, troubleshooting, and advanced configuration:
- English: See DOCKER_DEPLOY.en.md
- δΈζ: ζ₯η DOCKER_DEPLOY.md
Note: If you used Docker deployment above, skip this section. Manual installation is only needed if you want to modify the code or run without Docker.
- Go 1.21+
- Node.js 18+
- TA-Lib library (technical indicator calculation)
macOS:
brew install ta-libUbuntu/Debian:
sudo apt-get install libta-lib0-devOther systems: Refer to TA-Lib Official Documentation
git clone https://github.com/tinkle-community/nofx.git
cd nofxBackend:
go mod downloadFrontend:
cd web
npm install
cd ..Before configuring the system, you need to obtain AI API keys. Choose one of the following AI providers:
Why DeepSeek?
- π° Cheaper than GPT-4 (about 1/10 the cost)
- π Fast response time
- π― Excellent trading decision quality
- π Works globally without VPN
How to get DeepSeek API Key:
- Visit: https://platform.deepseek.com
- Register: Sign up with email/phone number
- Verify: Complete email/phone verification
- Top-up: Add credits to your account
- Minimum: ~$5 USD
- Recommended: $20-50 USD for testing
- Create API Key:
- Go to API Keys section
- Click "Create New Key"
- Copy and save the key (starts with
sk-) β οΈ Important: Save it immediately - you can't see it again!
Pricing: ~$0.14 per 1M tokens (very cheap!)
How to get Qwen API Key:
- Visit: https://dashscope.aliyuncs.com
- Register: Sign up with Alibaba Cloud account
- Enable Service: Activate DashScope service
- Create API Key:
- Go to API Key Management
- Create new key
- Copy and save (starts with
sk-)
Note: May require Chinese phone number for registration
Two configuration modes available:
- π Beginner Mode: Single trader + default coins (recommended!)
- βοΈ Expert Mode: Multiple traders competition
Step 1: Copy and rename the example config file
cp config.json.example config.jsonStep 2: Edit config.json with your API keys
{
"traders": [
{
"id": "my_trader",
"name": "My AI Trader",
"ai_model": "deepseek",
"binance_api_key": "YOUR_BINANCE_API_KEY",
"binance_secret_key": "YOUR_BINANCE_SECRET_KEY",
"use_qwen": false,
"deepseek_key": "sk-xxxxxxxxxxxxx",
"qwen_key": "",
"initial_balance": 1000.0,
"scan_interval_minutes": 3
}
],
"leverage": {
"btc_eth_leverage": 5,
"altcoin_leverage": 5
},
"use_default_coins": true,
"coin_pool_api_url": "",
"oi_top_api_url": "",
"api_server_port": 8080
}Step 3: Replace placeholders with your actual keys
| Placeholder | Replace With | Where to Get |
|---|---|---|
YOUR_BINANCE_API_KEY |
Your Binance API Key | Binance β Account β API Management |
YOUR_BINANCE_SECRET_KEY |
Your Binance Secret Key | Same as above |
sk-xxxxxxxxxxxxx |
Your DeepSeek API Key | platform.deepseek.com |
Step 4: Adjust initial balance (optional)
initial_balance: Set to your actual Binance futures account balance- Used to calculate profit/loss percentage
- Example: If you have 500 USDT, set
"initial_balance": 500.0
β Configuration Checklist:
- Binance API key filled in (no quotes issues)
- Binance Secret key filled in (no quotes issues)
- DeepSeek API key filled in (starts with
sk-) -
use_default_coinsset totrue(for beginners) -
initial_balancematches your account balance - File saved as
config.json(not.example)
NOFX also supports Hyperliquid - a decentralized perpetual futures exchange. To use Hyperliquid instead of Binance:
Step 1: Get your Ethereum private key (for Hyperliquid authentication)
- Open MetaMask (or any Ethereum wallet)
- Export your private key
- Remove the
0xprefix from the key - Fund your wallet on Hyperliquid
Step 2: Configure config.json for Hyperliquid
{
"traders": [
{
"id": "hyperliquid_trader",
"name": "My Hyperliquid Trader",
"ai_model": "deepseek",
"exchange": "hyperliquid",
"hyperliquid_private_key": "your_private_key_without_0x",
"hyperliquid_testnet": false,
"deepseek_key": "sk-xxxxxxxxxxxxx",
"initial_balance": 1000.0,
"scan_interval_minutes": 3
}
],
"use_default_coins": true,
"api_server_port": 8080
}Key Differences from Binance Config:
- Replace
binance_api_key+binance_secret_keywithhyperliquid_private_key - Add
"exchange": "hyperliquid"field - Set
hyperliquid_testnet: falsefor mainnet (ortruefor testnet)
For running multiple AI traders competing against each other:
{
"traders": [
{
"id": "qwen_trader",
"name": "Qwen AI Trader",
"ai_model": "qwen",
"binance_api_key": "YOUR_BINANCE_API_KEY_1",
"binance_secret_key": "YOUR_BINANCE_SECRET_KEY_1",
"use_qwen": true,
"qwen_key": "sk-xxxxx",
"deepseek_key": "",
"initial_balance": 1000.0,
"scan_interval_minutes": 3
},
{
"id": "deepseek_trader",
"name": "DeepSeek AI Trader",
"ai_model": "deepseek",
"binance_api_key": "YOUR_BINANCE_API_KEY_2",
"binance_secret_key": "YOUR_BINANCE_SECRET_KEY_2",
"use_qwen": false,
"qwen_key": "",
"deepseek_key": "sk-xxxxx",
"initial_balance": 1000.0,
"scan_interval_minutes": 3
}
],
"use_default_coins": true,
"coin_pool_api_url": "",
"oi_top_api_url": "",
"api_server_port": 8080
}Requirements for Competition Mode:
- 2 separate Binance futures accounts (different API keys)
- Both AI API keys (Qwen + DeepSeek)
- More capital for testing (recommended: 500+ USDT per account)
| Field | Description | Example Value | Required? |
|---|---|---|---|
id |
Unique identifier for this trader | "my_trader" |
β Yes |
name |
Display name | "My AI Trader" |
β Yes |
ai_model |
AI provider to use | "deepseek" or "qwen" |
β Yes |
binance_api_key |
Binance API key | "abc123..." |
β Yes |
binance_secret_key |
Binance Secret key | "xyz789..." |
β Yes |
use_qwen |
Whether to use Qwen | true or false |
β Yes |
deepseek_key |
DeepSeek API key | "sk-xxx" |
If using DeepSeek |
qwen_key |
Qwen API key | "sk-xxx" |
If using Qwen |
initial_balance |
Starting balance for P/L calculation | 1000.0 |
β Yes |
scan_interval_minutes |
How often to make decisions | 3 (3-5 recommended) |
β Yes |
leverage |
Leverage configuration (v2.0.3+) | See below | β Yes |
btc_eth_leverage |
Maximum leverage for BTC/ETH |
5 (default, safe)50 (main account max) |
β Yes |
altcoin_leverage |
Maximum leverage for altcoins |
5 (default, safe)20 (main account max) |
β Yes |
use_default_coins |
Use built-in coin list β¨ Smart Default: true (v2.0.2+)Auto-enabled if no API URL provided |
true or omit |
β No (Optional, auto-defaults) |
coin_pool_api_url |
Custom coin pool API Only needed when use_default_coins: false |
"" (empty) |
β No |
oi_top_api_url |
Open interest API Optional supplement data |
"" (empty) |
β No |
api_server_port |
Web dashboard port | 8080 |
β Yes |
Default Trading Coins (when use_default_coins: true):
- BTC, ETH, SOL, BNB, XRP, DOGE, ADA, HYPE
What is leverage configuration?
The leverage settings control the maximum leverage the AI can use for each trade. This is crucial for risk management, especially for Binance subaccounts which have leverage restrictions.
Configuration format:
"leverage": {
"btc_eth_leverage": 5, // Maximum leverage for BTC and ETH
"altcoin_leverage": 5 // Maximum leverage for all other coins
}- Subaccounts: Limited to β€5x leverage by Binance
- Main accounts: Can use up to 20x (altcoins) or 50x (BTC/ETH)
- If you're using a subaccount and set leverage >5x, trades will fail with error:
Subaccounts are restricted from using leverage greater than 5x
Recommended settings:
| Account Type | BTC/ETH Leverage | Altcoin Leverage | Risk Level |
|---|---|---|---|
| Subaccount | 5 |
5 |
β Safe (default) |
| Main (Conservative) | 10 |
10 |
π‘ Medium |
| Main (Aggressive) | 20 |
15 |
π΄ High |
| Main (Maximum) | 50 |
20 |
π΄π΄ Very High |
Examples:
Safe configuration (subaccount or conservative):
"leverage": {
"btc_eth_leverage": 5,
"altcoin_leverage": 5
}Aggressive configuration (main account only):
"leverage": {
"btc_eth_leverage": 20,
"altcoin_leverage": 15
}How AI uses leverage:
- AI can choose any leverage from 1x up to your configured maximum
- For example, with
altcoin_leverage: 20, AI might decide to use 5x, 10x, or 20x based on market conditions - The configuration sets the upper limit, not a fixed value
- AI considers volatility, risk-reward ratio, and account balance when choosing leverage
Smart Default Behavior (v2.0.2+):
The system now automatically defaults to use_default_coins: true if:
- You don't include this field in config.json, OR
- You set it to
falsebut don't providecoin_pool_api_url
This makes it beginner-friendly! You can even omit this field entirely.
Configuration Examples:
β Option 1: Explicitly set (Recommended for clarity)
"use_default_coins": true,
"coin_pool_api_url": "",
"oi_top_api_url": ""β Option 2: Omit the field (uses default coins automatically)
// Just don't include "use_default_coins" at all
"coin_pool_api_url": "",
"oi_top_api_url": ""βοΈ Advanced: Use external API
"use_default_coins": false,
"coin_pool_api_url": "http://your-api.com/coins",
"oi_top_api_url": "http://your-api.com/oi"The system has 2 parts that run separately:
- Backend (AI trading brain + API)
- Frontend (Web dashboard for monitoring)
Open a terminal and run:
# Build the program (first time only, or after code changes)
go build -o nofx
# Start the backend
./nofxWhat you should see:
π ε―ε¨θͺε¨δΊ€ζη³»η»...
β Trader [my_trader] ε·²εε§ε
β APIζε‘ε¨ε―ε¨ε¨η«―ε£ 8080
π εΌε§δΊ€ζηζ§...
| Error Message | Solution |
|---|---|
invalid API key |
Check your Binance API key in config.json |
TA-Lib not found |
Run brew install ta-lib (macOS) |
port 8080 already in use |
Change api_server_port in config.json |
DeepSeek API error |
Verify your DeepSeek API key and balance |
β Backend is running correctly when you see:
- No error messages
- "εΌε§δΊ€ζηζ§..." appears
- System shows account balance
- Keep this terminal window open!
Open a NEW terminal window (keep the first one running!), then:
cd web
npm run devWhat you should see:
VITE v5.x.x ready in xxx ms
β Local: http://localhost:3000/
β Network: use --host to expose
β Frontend is running when you see:
- "Local: http://localhost:3000/" message
- No error messages
- Keep this terminal window open too!
Open your web browser and visit:
What you'll see:
- π Real-time account balance
- π Open positions (if any)
- π€ AI decision logs
- π Equity curve chart
First-time tips:
- It may take 3-5 minutes for the first AI decision
- Initial decisions might say "θ§ζ" (wait) - this is normal
- AI needs to analyze market conditions first
What to watch:
β Healthy System Signs:
- Backend terminal shows decision cycles every 3-5 minutes
- No continuous error messages
- Account balance updates
- Web dashboard refreshes automatically
- Repeated API errors
- No decisions for 10+ minutes
- Balance decreasing rapidly
Checking System Status:
# In a new terminal window
curl http://localhost:8080/healthShould return: {"status":"ok"}
Graceful Shutdown (Recommended):
- Go to the backend terminal (the first one)
- Press
Ctrl+C - Wait for "η³»η»ε·²εζ’" message
- Go to the frontend terminal (the second one)
- Press
Ctrl+C
- Always stop the backend first
- Wait for confirmation before closing terminals
- Don't force quit (don't close terminal directly)
Each decision cycle (default 3 minutes), the system executes the following intelligent process:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. π Analyze Historical Performance (last 20 cycles) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β Calculate overall win rate, avg profit, P/L ratio β
β β Per-coin statistics (win rate, avg P/L in USDT) β
β β Identify best/worst performing coins β
β β List last 5 trade details with accurate PnL β
β β Calculate Sharpe ratio for risk-adjusted performance β
β π NEW (v2.0.2): Accurate USDT PnL with leverage β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. π° Get Account Status β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Total equity & available balance β
β β’ Number of open positions & unrealized P/L β
β β’ Margin usage rate (AI manages up to 90%) β
β β’ Daily P/L tracking & drawdown monitoring β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. π Analyze Existing Positions (if any) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ For each position, fetch latest market data β
β β’ Calculate real-time technical indicators: β
β - 3min K-line: RSI(7), MACD, EMA20 β
β - 4hour K-line: RSI(14), EMA20/50, ATR β
β β’ Track position holding duration (e.g., "2h 15min") β
β π NEW (v2.0.2): Shows how long each position held β
β β’ Display: Entry price, current price, P/L%, duration β
β β’ AI evaluates: Should hold or close? β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4. π― Evaluate New Opportunities (candidate coins) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Fetch coin pool (2 modes): β
β π Default Mode: BTC, ETH, SOL, BNB, XRP, etc. β
β βοΈ Advanced Mode: AI500 (top 20) + OI Top (top 20) β
β β’ Merge & deduplicate candidate coins β
β β’ Filter: Remove low liquidity (<15M USD OI value) β
β β’ Batch fetch market data + technical indicators β
β β’ Calculate volatility, trend strength, volume surge β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 5. π§ AI Comprehensive Decision (DeepSeek/Qwen) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Review historical feedback: β
β - Recent win rate & profit factor β
β - Best/worst coins performance β
β - Avoid repeating mistakes β
β β’ Analyze all raw sequence data: β
β - 3min priceεΊε, 4hour K-lineεΊε β
β - Complete indicator sequences (not just latest) β
β π NEW (v2.0.2): AI has full freedom to analyze β
β β’ Chain of Thought (CoT) reasoning process β
β β’ Output structured decisions: β
β - Action: close_long/close_short/open_long/open_shortβ
β - Coin symbol, quantity, leverage β
β - Stop-loss & take-profit levels (β₯1:2 ratio) β
β β’ Decision: Wait/Hold/Close/Open β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 6. β‘ Execute Trades β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Priority order: Close existing β Then open new β
β β’ Risk checks before execution: β
β - Position size limits (1.5x for altcoins, 10x BTC) β
β - No duplicate positions (same coin + direction) β
β - Margin usage within 90% limit β
β β’ Auto-fetch & apply Binance LOT_SIZE precision β
β β’ Execute orders via Binance Futures API β
β β’ After closing: Auto-cancel all pending orders β
β β’ Record actual execution price & order ID β
β π Track position open time for duration calculation β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 7. π Record Complete Logs & Update Performance β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Save decision log to decision_logs/{trader_id}/ β
β β’ Log includes: β
β - Complete Chain of Thought (CoT) β
β - Input prompt with all market data β
β - Structured decision JSON β
β - Account snapshot (balance, positions, margin) β
β - Execution results (success/failure, prices) β
β β’ Update performance database: β
β - Match open/close pairs by symbol_side key β
β π NEW: Prevents long/short conflicts β
β - Calculate accurate USDT PnL: β
β PnL = Position Value Γ Price Ξ% Γ Leverage β
β π NEW: Considers quantity + leverage β
β - Store: quantity, leverage, open time, close time β
β - Update win rate, profit factor, Sharpe ratio β
β β’ Performance data feeds back into next cycle β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
(Repeat every 3-5 min)
π Position Duration Tracking:
- System now tracks how long each position has been held
- Displayed in user prompt: "ζδ»ζΆιΏ2ε°ζΆ15ει"
- Helps AI make better decisions on when to exit
π Accurate PnL Calculation:
- Previously: Only percentage (100U@5% = 1000U@5% = both showed "5.0")
- Now: Real USDT profit = Position Value Γ Price Change Γ Leverage
- Example: 1000 USDT Γ 5% Γ 20x = 1000 USDT actual profit
π Enhanced AI Freedom:
- AI can freely analyze all raw sequence data
- No longer restricted to predefined indicator combinations
- Can perform own trend analysis, support/resistance calculation
π Improved Position Tracking:
- Uses
symbol_sidekey (e.g., "BTCUSDT_long") - Prevents conflicts when holding both long & short
- Stores complete data: quantity, leverage, open/close times
## π Historical Performance Feedback
### Overall Performance
- **Total Trades**: 15 (Profit: 8 | Loss: 7)
- **Win Rate**: 53.3%
- **Average Profit**: +3.2% | Average Loss: -2.1%
- **Profit/Loss Ratio**: 1.52:1
### Recent Trades
1. BTCUSDT LONG: 95000.0000 β 97500.0000 = +2.63% β
2. ETHUSDT SHORT: 3500.0000 β 3450.0000 = +1.43% β
3. SOLUSDT LONG: 185.0000 β 180.0000 = -2.70% β
4. BNBUSDT LONG: 610.0000 β 625.0000 = +2.46% β
5. ADAUSDT LONG: 0.8500 β 0.8300 = -2.35% β
### Coin Performance
- **Best**: BTCUSDT (Win rate 75%, avg +2.5%)
- **Worst**: SOLUSDT (Win rate 25%, avg -1.8%)- Avoid consecutive losers: Seeing SOLUSDT with 3 consecutive stop-losses, AI avoids or is more cautious
- Reinforce successful strategies: BTC breakout long with 75% win rate, AI continues this pattern
- Dynamic style adjustment: Win rate <40% β conservative; P/L ratio >2 β maintain aggressive
- Identify market conditions: Consecutive losses may indicate choppy market, reduce trading frequency
- π Leaderboard: Real-time ROI ranking, golden border highlights leader
- π Performance Comparison: Dual AI ROI curve comparison (purple vs blue)
- βοΈ Head-to-Head: Direct comparison showing lead margin
- Real-time Data: Total equity, P/L%, position count, margin usage
- Equity Curve: Historical trend chart (USD/percentage toggle)
- Statistics: Total cycles, success/fail, open/close stats
- Position Table: All position details (entry price, current price, P/L%, liquidation price)
- AI Decision Logs: Recent decision records (expandable CoT)
- System status, account info, position list: 5-second refresh
- Decision logs, statistics: 10-second refresh
- Equity charts: 10-second refresh
GET /api/competition # Competition leaderboard (all traders)
GET /api/traders # Trader listGET /api/status?trader_id=xxx # System status
GET /api/account?trader_id=xxx # Account info
GET /api/positions?trader_id=xxx # Position list
GET /api/equity-history?trader_id=xxx # Equity history (chart data)
GET /api/decisions/latest?trader_id=xxx # Latest 5 decisions
GET /api/statistics?trader_id=xxx # StatisticsGET /health # Health check
GET /api/config # System configuration- Cryptocurrency markets are extremely volatile, AI decisions don't guarantee profit
- Futures trading uses leverage, losses may exceed principal
- Extreme market conditions may lead to liquidation risk
- Funding rates may affect holding costs
- Liquidity risk: Some coins may experience slippage
- Network latency may cause price slippage
- API rate limits may affect trade execution
- AI API timeouts may cause decision failures
- System bugs may trigger unexpected behavior
β Recommended
- Use only funds you can afford to lose for testing
- Start with small amounts (recommended 100-500 USDT)
- Regularly check system operation status
- Monitor account balance changes
- Analyze AI decision logs to understand strategy
β Not Recommended
- Invest all funds or borrowed money
- Run unsupervised for long periods
- Blindly trust AI decisions
- Use without understanding the system
- Run during extreme market volatility
Solution: Install TA-Lib library
# macOS
brew install ta-lib
# Ubuntu
sudo apt-get install libta-lib0-devSolution: System auto-handles precision from Binance LOT_SIZE. If error persists, check network connection.
Solution:
- Check if API key is correct
- Check network connection (may need proxy)
- System timeout is set to 120 seconds
Solution:
- Ensure backend is running (http://localhost:8080)
- Check if port 8080 is occupied
- Check browser console for errors
Solution:
- Coin pool API is optional
- If API fails, system uses default mainstream coins (BTC, ETH, etc.)
- Check API URL and auth parameter in config.json
- Set reasonable decision cycle: Recommended 3-5 minutes, avoid over-trading
- Control candidate coin count: System defaults to AI500 top 20 + OI Top top 20
- Regularly clean logs: Avoid excessive disk usage
- Monitor API call count: Avoid triggering Binance rate limits
- Test with small capital: First test with 100-500 USDT for strategy validation
Critical Bug Fixes - Trade History & Performance Analysis:
This version fixes critical calculation errors in the historical trade record and performance analysis system that significantly affected profitability statistics.
1. PnL Calculation - Major Error Fixed (logger/decision_logger.go)
- Problem: Previously calculated PnL as percentage only, completely ignoring position size and leverage
- Example: 100 USDT position earning 5% and 1000 USDT position earning 5% both showed
5.0as profit - This made performance analysis completely inaccurate
- Example: 100 USDT position earning 5% and 1000 USDT position earning 5% both showed
- Solution: Now calculates actual USDT profit amount
PnL (USDT) = Position Value Γ Price Change % Γ Leverage Example: 1000 USDT Γ 5% Γ 20x = 1000 USDT actual profit - Impact: Win rate, profit factor, and Sharpe ratio now based on accurate USDT amounts
2. Position Tracking - Missing Critical Data
- Problem: Open position records only stored price and time, missing quantity and leverage
- Solution: Now stores complete trade data:
quantity: Position size (in coins)leverage: Leverage multiplier (e.g., 20x)- These are essential for accurate PnL calculations
3. Position Key Logic - Long/Short Conflict
- Problem: Used
symbolas position key, causing data conflicts when holding both long and short- Example: BTCUSDT long and BTCUSDT short would overwrite each other
- Solution: Changed to
symbol_sideformat (e.g.,BTCUSDT_long,BTCUSDT_short)- Now properly distinguishes between long and short positions
4. Sharpe Ratio Calculation - Code Optimization
- Problem: Used custom Newton's method for square root calculation
- Solution: Replaced with standard library
math.Sqrt- More reliable, maintainable, and efficient
Why This Update Matters:
- β Historical trade statistics now show real USDT profit/loss instead of meaningless percentages
- β Performance comparison between different leverage trades is now accurate
- β AI self-learning mechanism receives correct historical feedback
- β Profit factor and Sharpe ratio calculations are now meaningful
- β Multi-position tracking (long + short simultaneously) works correctly
Recommendation: If you were running the system before this update, your historical statistics were inaccurate. After updating to v2.0.2, new trades will be calculated correctly.
Bug Fixes:
- β Fixed ComparisonChart data processing logic - switched from cycle_number to timestamp grouping
- β Resolved chart freezing issue when backend restarts and cycle_number resets
- β Improved chart data display - now shows all historical data points chronologically
- β Enhanced debugging logs for better troubleshooting
Major Updates:
- β AI self-learning mechanism (historical feedback, performance analysis)
- β Multi-trader competition mode (Qwen vs DeepSeek)
- β Binance-style UI (complete Binance interface imitation)
- β Performance comparison charts (real-time ROI comparison)
- β Risk control optimization (per-coin position limit adjustment)
Bug Fixes:
- Fixed hardcoded initial balance issue
- Fixed multi-trader data sync issue
- Optimized chart data alignment (using cycle_number)
- Initial release
- Basic AI trading functionality
- Decision logging system
- Simple Web interface
MIT License - See LICENSE file for details
Issues and Pull Requests are welcome!
- Fork the project
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
- Twitter/X: @Web3Tinkle
- GitHub Issues: Submit an Issue
- Binance API - Binance Futures API
- DeepSeek - DeepSeek AI API
- Qwen - Alibaba Cloud Qwen
- TA-Lib - Technical indicator library
- Recharts - React chart library
Last Updated: 2025-10-29 (v2.0.2)
β‘ Explore the possibilities of quantitative trading with the power of AI!