Languages: English | δΈζ | Π£ΠΊΡΠ°ΡΠ½ΡΡΠΊΠ° | Π ΡΡΡΠΊΠΈΠΉ
An automated Binance futures trading system powered by DeepSeek/Qwen AI, supporting 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!
- 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
- Fixed Leverage: Altcoins 20x | BTC/ETH 50x
- 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
β
βββ market/ # Market data & AI decisions
β βββ market_data.go # Market data fetching (K-line, indicators)
β βββ ai_decision_engine.go # AI decision engine (with historical feedback)
β βββ ai_signal.go # AI API calls (DeepSeek/Qwen)
β
βββ 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
β βββ trader1/ # Trader 1 logs
β βββ trader2/ # Trader 2 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
- 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 ..Create config.json file (use config.json.example as template):
{
"traders": [
{
"id": "qwen_trader",
"name": "Qwen AI Trader",
"ai_model": "qwen",
"binance_api_key": "YOUR_BINANCE_API_KEY",
"binance_secret_key": "YOUR_BINANCE_SECRET_KEY",
"use_qwen": true,
"qwen_key": "sk-xxxxx",
"scan_interval_minutes": 3,
"initial_balance": 1000.0
},
{
"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,
"deepseek_key": "sk-xxxxx",
"scan_interval_minutes": 3,
"initial_balance": 1000.0
}
],
"coin_pool_api_url": "http://x.x.x.x:xxx/api/ai500/list?auth=YOUR_AUTH",
"oi_top_api_url": "http://x.x.x.x:xxx/api/oi/top?auth=YOUR_AUTH",
"api_server_port": 8080
}Configuration Notes:
traders: Configure 1-N traders (single AI or multi-AI competition)id: Unique trader identifier (used for log directory)ai_model: "qwen" or "deepseek"binance_api_key/secret_key: Each trader uses independent Binance accountinitial_balance: Initial balance (for calculating P/L%)scan_interval_minutes: Decision cycle (recommended 3-5 minutes)coin_pool_api_url: AI500 coin pool API (optional)oi_top_api_url: OI Top open interest API (optional)
Start backend (AI trading system + API server):
go build -o nofx
./nofxStart frontend (Web Dashboard):
Open a new terminal:
cd web
npm run devAccess the interface:
Web Dashboard: http://localhost:3000
API Server: http://localhost:8080
Press Ctrl+C in both terminals
Each decision cycle (default 3 minutes), the system runs the following process:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. Analyze Historical Performance (last 20 cycles) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β Calculate overall win rate, avg profit, P/L ratioβ
β β Statistics for each coin (win rate, avg P/L) β
β β Identify best/worst coins β
β β List last 5 trade details β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. Get Account Status β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Account equity, available balance β
β β’ Number of positions, total P/L β
β β’ Margin usage rate β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. Analyze Existing Positions (if any) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Get market data for each position β
β β’ Calculate technical indicators (RSI, MACD, EMA) β
β β’ AI decides whether to close positions β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4. Evaluate New Opportunities (candidate coin pool) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Get AI500 high-score coins (top 20) β
β β’ Get OI Top growing coins (top 20) β
β β’ Merge and deduplicate, filter low liquidity β
β β’ Batch fetch market data and technical indicators β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 5. AI Comprehensive Decision β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Review historical feedback (win rate, best/worst)β
β β’ Chain of Thought analysis β
β β’ Output decision: close/open/hold/wait β
β β’ Includes leverage, position size, SL, TP β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 6. Execute Trades β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Priority: close first, then open β
β β’ Auto-adapt precision (LOT_SIZE) β
β β’ Prevent position stacking (reject duplicate) β
β β’ Auto-cancel all orders after closing β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 7. Record Logs β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Save complete decision to decision_logs/ β
β β’ Includes CoT, decision JSON, account snapshot β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
## π 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
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
β‘ Explore the possibilities of quantitative trading with the power of AI!