tinkle-community 3a5470ed0c Refactor: Improve AI decision system and Sharpe ratio calculation
Major improvements:
- Use period-level Sharpe ratio (range -2 to +2) instead of annualized
- Save full user prompt in decision logs for debugging
- Format complete market data (3m + 4h candles) for AI analysis
- Prevent position stacking with duplicate position checks
- Update Sharpe ratio interpretation thresholds

Market data enhancements:
- Display full technical indicators in user prompt
- Include 3-minute and 4-hour timeframe data
- Add OI (Open Interest) change and funding rate signals

Risk control:
- Block opening duplicate positions (same symbol + direction)
- Suggest close action first before opening new position
- Prevent margin usage from exceeding limits

UI improvements:
- Update multi-language translations
- Refine AI learning dashboard display

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: tinkle-community <tinklefund@gmail.com>
2025-10-29 04:44:17 +08:00
2025-10-28 21:45:28 +08:00
2025-10-28 21:45:28 +08:00
2025-10-28 15:47:34 +08:00
2025-10-28 15:47:34 +08:00
2025-10-28 15:47:34 +08:00

🤖 NOFX - AI-Driven Binance Futures Auto Trading Competition System

Go Version React TypeScript License

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!


Core Features

🏆 Multi-AI Competition Mode

  • Qwen vs DeepSeek live trading battle
  • Independent account management and decision logs
  • Real-time performance comparison charts
  • ROI PK and win rate statistics

🧠 AI Self-Learning Mechanism (NEW!)

  • 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

📊 Intelligent Market Analysis

  • 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)

🎯 Professional Risk Control

  • 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 UI

  • 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

📝 Complete Decision Recording

  • 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

🏗️ Technical Architecture

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

Core Dependencies

Backend (Go)

  • github.com/adshao/go-binance/v2 - Binance API client
  • github.com/markcheno/go-talib - Technical indicator calculation (TA-Lib)
  • github.com/gin-gonic/gin - HTTP API framework

Frontend (React + TypeScript)

  • react + react-dom - UI framework
  • recharts - Chart library (equity curve, comparison charts)
  • swr - Data fetching and caching
  • tailwindcss - CSS framework

🚀 Quick Start

1. Environment Requirements

  • Go 1.21+
  • Node.js 18+
  • TA-Lib library (technical indicator calculation)

Installing TA-Lib

macOS:

brew install ta-lib

Ubuntu/Debian:

sudo apt-get install libta-lib0-dev

Other systems: Refer to TA-Lib Official Documentation

2. Clone the Project

git clone https://github.com/tinkle-community/nofx.git
cd nofx

3. Install Dependencies

Backend:

go mod download

Frontend:

cd web
npm install
cd ..

4. System Configuration

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 account
  • initial_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)

5. Run the System

Start backend (AI trading system + API server):

go build -o nofx
./nofx

Start frontend (Web Dashboard):

Open a new terminal:

cd web
npm run dev

Access the interface:

Web Dashboard: http://localhost:3000
API Server: http://localhost:8080

6. Stop the System

Press Ctrl+C in both terminals


📖 AI Decision Flow

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    │
└─────────────────────────────────────────────────────┘

🧠 AI Self-Learning Example

Historical Feedback (Auto-added to Prompt)

## 📊 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%)

How AI Uses Feedback

  1. Avoid consecutive losers: Seeing SOLUSDT with 3 consecutive stop-losses, AI avoids or is more cautious
  2. Reinforce successful strategies: BTC breakout long with 75% win rate, AI continues this pattern
  3. Dynamic style adjustment: Win rate <40% → conservative; P/L ratio >2 → maintain aggressive
  4. Identify market conditions: Consecutive losses may indicate choppy market, reduce trading frequency

📊 Web Interface Features

1. Competition Page

  • 🏆 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

2. Details Page

  • 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)

3. Real-time Updates

  • System status, account info, position list: 5-second refresh
  • Decision logs, statistics: 10-second refresh
  • Equity charts: 10-second refresh

🎛️ API Endpoints

GET /api/competition          # Competition leaderboard (all traders)
GET /api/traders              # Trader list
GET /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        # Statistics

System Endpoints

GET /health                   # Health check
GET /api/config               # System configuration

⚠️ Important Risk Warnings

Trading Risks

  1. Cryptocurrency markets are extremely volatile, AI decisions don't guarantee profit
  2. Futures trading uses leverage, losses may exceed principal
  3. Extreme market conditions may lead to liquidation risk
  4. Funding rates may affect holding costs
  5. Liquidity risk: Some coins may experience slippage

Technical Risks

  1. Network latency may cause price slippage
  2. API rate limits may affect trade execution
  3. AI API timeouts may cause decision failures
  4. System bugs may trigger unexpected behavior

Usage Recommendations

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

🛠️ Common Issues

1. Compilation error: TA-Lib not found

Solution: Install TA-Lib library

# macOS
brew install ta-lib

# Ubuntu
sudo apt-get install libta-lib0-dev

2. Precision error: Precision is over the maximum

Solution: System auto-handles precision from Binance LOT_SIZE. If error persists, check network connection.

3. AI API timeout

Solution:

  • Check if API key is correct
  • Check network connection (may need proxy)
  • System timeout is set to 120 seconds

4. Frontend can't connect to backend

Solution:

  • Ensure backend is running (http://localhost:8080)
  • Check if port 8080 is occupied
  • Check browser console for errors

5. Coin pool API failure

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

📈 Performance Optimization Tips

  1. Set reasonable decision cycle: Recommended 3-5 minutes, avoid over-trading
  2. Control candidate coin count: System defaults to AI500 top 20 + OI Top top 20
  3. Regularly clean logs: Avoid excessive disk usage
  4. Monitor API call count: Avoid triggering Binance rate limits
  5. Test with small capital: First test with 100-500 USDT for strategy validation

🔄 Changelog

v2.0.0 (2025-10-28)

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)

v1.0.0 (2025-10-27)

  • Initial release
  • Basic AI trading functionality
  • Decision logging system
  • Simple Web interface

📄 License

MIT License - See LICENSE file for details


🤝 Contributing

Issues and Pull Requests are welcome!

Development Guide

  1. Fork the project
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add some AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open Pull Request

📬 Contact


🙏 Acknowledgments


Last Updated: 2025-10-28

Explore the possibilities of quantitative trading with the power of AI!

Description
NOFX:定义下一代人工智能交易作系统。多交易所 AI 交易平台(Binance/Hyperliquid/Aster),多 Ai 竞赛(deepseek/qwen/claude),自我进化,实时仪表盘
https://nofxai.com/ Readme AGPL-3.0 58 MiB
Languages
Go 52.7%
TypeScript 44.3%
Shell 2%
CSS 0.7%
Makefile 0.2%
Other 0.1%