Files
nofx/docs/i18n/zh-CN/README.md
tinkle-community 84acce9b77 update disclaimer
2025-11-25 20:18:29 +08:00

42 KiB
Raw Blame History

🤖 NOFX - AI交易操作系统

Go Version React TypeScript License Backed by Amber.ac

语言 / Languages: English | 中文 | Українська | Русский | 日本語 | 한국어 | Tiếng Việt

📚 文档中心: 文档首页 | 快速开始 | 更新日志 | 社区指南 | ⚠️ 免责声明


📑 目录


🚀 通用AI交易操作系统

NOFX 是通用架构的 AI交易操作系统Agentic Trading OS。我们已在加密市场打通"多智能体决策 → 统一风控 → 低延迟执行 → 真实/纸面账户复盘"的闭环,正按同一技术栈扩展到股票、期货、期权、外汇等所有市场

🎯 核心特性

  • 通用数据与回测层:跨市场、跨周期、跨交易所统一表示与因子库,沉淀可迁移的"策略记忆"
  • 多智能体自博弈与自进化:策略自动对战择优,按账户级 PnL 与风险约束持续迭代
  • 执行与风控一体化:低延迟路由、滑点/风控沙箱、账户级限额,一键切换市场

🏢Amber.ac 背书

👥 核心团队

💼 种子轮融资进行中

我们正在进行种子轮融资

投资咨询,请通过 Twitter 私信联系 Tinkle


⚠️ 风险提示本系统为实验性项目AI自动交易存在重大风险强烈建议仅用于学习研究或小额资金测试

👥 开发者社区

加入我们的Telegram开发者社区讨论、分享想法并获得支持

💬 NOFX开发者社区


🆕 最新更新

🚀 多交易所支持!

NOFX现已支持三大交易所Binance、Hyperliquid和Aster DEX

Hyperliquid交易所

高性能的去中心化永续期货交易所!

核心特性:

  • 完整交易支持(做多/做空、杠杆、止损/止盈)
  • 自动精度处理(订单数量和价格)
  • 统一trader接口无缝切换交易所
  • 支持主网和测试网
  • 无需API密钥 - 只需以太坊私钥

为什么选择Hyperliquid

  • 🔥 比中心化交易所手续费更低
  • 🔒 非托管 - 你掌控自己的资金
  • 快速执行与链上结算
  • 🌍 无需KYC

快速开始:

  1. 获取你的MetaMask私钥去掉0x前缀)
  2. 在config.json中设置"exchange": "hyperliquid" 通过Web界面配置
  3. 添加"hyperliquid_private_key": "your_key"
  4. 开始交易!

详见配置指南

Aster DEX交易所v2.0.2

兼容Binance的去中心化永续期货交易所

核心特性:

  • Binance风格API从Binance轻松迁移
  • Web3钱包认证安全且去中心化
  • 完整交易支持,自动精度处理
  • 比中心化交易所手续费更低
  • 兼容EVM以太坊、BSC、Polygon等

为什么选择Aster

  • 🎯 兼容Binance API - 需要最少的代码修改
  • 🔐 API钱包系统 - 独立交易钱包提升安全性
  • 💰 有竞争力的手续费 - 比大多数中心化交易所更低
  • 🌐 多链支持 - 在你喜欢的EVM链上交易

快速开始:

  1. 通过推荐链接注册Aster(享手续费优惠)
  2. 访问Aster API钱包
  3. 连接你的主钱包并创建API钱包
  4. 复制API Signer地址和私钥
  5. 在config.json中设置"exchange": "aster"
  6. 添加"aster_user""aster_signer""aster_private_key"

📸 系统截图

🏆 竞赛模式 - AI实时对战

竞赛页面 多AI排行榜和实时性能对比图表展示Qwen vs DeepSeek实时交易对战

📊 交易详情 - 完整交易仪表盘

详情页面 专业交易界面包含权益曲线、实时持仓、AI决策日志支持展开查看输入提示词和AI思维链推理过程


当前实现 - 加密货币市场

NOFX 目前已在加密货币市场全面运行,具备以下经过验证的能力:

🏆 多智能体竞赛框架

  • 实时智能体对战Qwen vs DeepSeek 模型实时交易竞赛
  • 独立账户管理:每个智能体维护独立的决策日志和性能指标
  • 实时性能对比:实时 ROI 追踪、胜率统计、正面对抗分析
  • 自进化循环:智能体从历史表现中学习,持续改进

🧠 AI 自学习与优化

  • 历史反馈系统:每次决策前分析最近 20 个交易周期
  • 智能性能分析
    • 识别表现最佳/最差资产
    • 计算胜率、盈亏比、以真实 USDT 计的平均盈利
    • 避免重复错误(连续亏损模式)
    • 强化成功策略(高胜率模式)
  • 动态策略调整AI 根据回测结果自主调整交易风格

📊 通用市场数据层(加密货币实现)

  • 多时间框架分析3分钟实时 + 4小时趋势数据
  • 技术指标EMA20/50、MACD、RSI(7/14)、ATR
  • 持仓量追踪:市场情绪、资金流向分析
  • 流动性过滤:自动过滤低流动性资产(<15M USD
  • 跨交易所支持Binance、Hyperliquid、Aster DEX统一数据接口

🎯 统一风控系统

  • 仓位限制单资产限制山寨币≤1.5x净值BTC/ETH≤10x净值
  • 可配置杠杆:根据资产类别和账户类型动态调整 1x 到 50x
  • 保证金管理总使用率≤90%AI 控制分配
  • 风险回报强制执行强制≥1:2 的止损止盈比
  • 防叠加保护:防止同一资产/方向的重复仓位

低延迟执行引擎

  • 多交易所 API 集成Binance Futures、Hyperliquid DEX、Aster DEX
  • 自动精度处理:每个交易所智能订单大小和价格格式化
  • 优先级执行:先平仓现有持仓,再开新仓
  • 滑点控制:执行前验证,实时精度检查

🎨 专业监控界面

  • 币安风格仪表板:专业暗色主题,实时更新
  • 净值曲线历史账户价值追踪USD/百分比切换)
  • 性能图表:多智能体 ROI 对比,实时更新
  • 完整决策日志每笔交易的完整思维链CoT推理
  • 5秒数据刷新:实时账户、持仓和盈亏更新

🔮 路线图 - 通用市场扩展

NOFX 的使命是成为所有金融市场的通用 AI 交易操作系统

愿景: 相同架构。相同智能体框架。所有市场。

扩展市场:

  • 📈 股票市场美股、A股、港股
  • 📊 期货市场:商品期货、指数期货
  • 🎯 期权交易:股票期权、加密期权
  • 💱 外汇市场:主要货币对、交叉盘

即将推出的功能:

  • 增强AI能力GPT-4、Claude 3、Gemini Pro、灵活prompt模板
  • 新交易所集成OKX、Bybit、Lighter、EdgeX + CEX/Perp-DEX
  • 项目结构重构高内聚低耦合、SOLID原则
  • 安全性增强API密钥AES-256加密、RBAC、2FA改进
  • 用户体验改进移动端响应式、TradingView图表、告警系统

📖 详细路线图和时间表,请参阅:


🏗️ 技术架构

NOFX 采用现代化的模块化架构:

  • 后端: Go + Gin 框架SQLite 数据库
  • 前端: React 18 + TypeScript + Vite + TailwindCSS
  • 多交易所支持: Binance、Hyperliquid、Aster DEX
  • AI 集成: DeepSeek、Qwen 及自定义 OpenAI 兼容 API
  • 状态管理: 前端 Zustand后端数据库驱动
  • 实时更新: SWR5-10 秒轮询间隔

核心特性:

  • 🗄️ 数据库驱动的配置(无需编辑 JSON
  • 🔐 JWT 认证,支持可选的 2FA
  • 📊 实时性能跟踪和分析
  • 🤖 多 AI 竞赛模式,实时对比
  • 🔌 RESTful API完整的配置和监控

📖 详细架构文档,请查看:


💰 注册币安账户(省手续费!)

使用本系统前,您需要一个币安合约账户。使用我们的推荐链接注册可享受手续费优惠:

🎁 注册币安 - 享手续费折扣

注册步骤:

  1. 点击上方链接 访问币安注册页面
  2. 完成注册 使用邮箱/手机号注册
  3. 完成KYC身份认证(合约交易必须)
  4. 开通合约账户
    • 进入币安首页 → 衍生品 → U本位合约
    • 点击"立即开通"激活合约交易
  5. 创建API密钥
    • 进入账户 → API管理
    • 创建新的API密钥务必勾选"合约"权限
    • 保存API Key和Secret Keyconfig.json中需要 Web界面中需要
    • 重要添加IP白名单以确保安全

手续费优惠说明:

  • 现货交易最高享30%手续费返佣
  • 合约交易最高享30%手续费返佣
  • 终身有效:永久享受交易手续费折扣

🚀 快速开始

🐳 方式ADocker 一键部署(最简单 - 新手推荐!)

使用Docker只需3步即可开始交易 - 无需安装任何环境!

Docker会自动处理所有依赖Go、Node.js、TA-Lib和环境配置完美适合新手

步骤1准备配置文件

# 复制配置文件模板
cp config.json.example config.json

# 编辑并填入你的API密钥
nano config.json  # 或使用其他编辑器

⚠️ 注意: 基础config.json仍需要一些设置交易员配置现在通过Web界面进行。

步骤2一键启动

# 方式1使用便捷脚本推荐
chmod +x scripts/start.sh
./scripts/start.sh start --build


# 方式2直接使用docker compose
# 如果您还在使用旧的独立 `docker-compose`,请升级到 Docker Desktop 或 Docker 20.10+
docker compose up -d --build

步骤3访问控制台

在浏览器中打开:http://localhost:3000

就是这么简单!🎉 你的AI交易系统已经运行起来了

管理你的系统

./scripts/start.sh logs      # 查看日志
./scripts/start.sh status    # 检查状态
./scripts/start.sh stop      # 停止服务
./scripts/start.sh restart   # 重启服务

📖 详细的Docker部署教程、故障排查和高级配置


📦 方式B手动安装开发者

注意如果你使用了上面的Docker部署请跳过本节。手动安装仅在你需要修改代码或不想使用Docker时需要。

1. 环境要求

  • Go 1.21+
  • Node.js 18+
  • TA-Lib 库(技术指标计算)

安装 TA-Lib

macOS:

brew install ta-lib

Ubuntu/Debian:

sudo apt-get install libta-lib0-dev

其他系统: 参考 TA-Lib官方文档

2. 克隆项目

git clone <repository-url>
cd nofx

3. 安装依赖

后端:

go mod download

前端:

cd web
npm install
cd ..

4. 获取AI API密钥

在配置系统之前您需要获取AI API密钥。请选择以下AI提供商之一

选项1DeepSeek推荐新手

为什么选择DeepSeek

  • 💰 比GPT-4便宜约1/10成本
  • 🚀 响应速度快
  • 🎯 交易决策质量优秀
  • 🌍 全球可用无需VPN

如何获取DeepSeek API密钥

  1. 访问https://platform.deepseek.com
  2. 注册:使用邮箱/手机号注册
  3. 验证:完成邮箱/手机验证
  4. 充值:向账户添加余额
    • 最低:约$5美元
    • 推荐:$20-50美元用于测试
  5. 创建API密钥
    • 进入API Keys部分
    • 点击"创建新密钥"
    • 复制并保存密钥(以sk-开头)
    • ⚠️ 重要:立即保存 - 之后无法再查看!

价格每百万tokens约$0.14(非常便宜!)

选项2Qwen阿里云通义千问

如何获取Qwen API密钥

  1. 访问https://dashscope.console.aliyun.com
  2. 注册:使用阿里云账户注册
  3. 开通服务激活DashScope服务
  4. 创建API密钥
    • 进入API密钥管理
    • 创建新密钥
    • 复制并保存(以sk-开头)

注意:可能需要中国手机号注册


5. 系统配置

两种配置模式可选:

  • 🌟 新手模式单trader + 默认币种(推荐!)
  • ⚔️ 专家模式多trader竞赛

🌟 新手模式配置(推荐)

步骤1:复制并重命名示例配置文件

cp config.json.example config.json

步骤2:编辑config.json填入您的API密钥

现在通过Web界面配置无需编辑JSON文件

{
  "traders": [
    {
      "id": "my_trader",
      "name": "我的AI交易员",
      "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
}

步骤3:用您的实际密钥替换占位符

占位符 替换为 哪里获取
YOUR_BINANCE_API_KEY 您的币安API密钥 币安 → 账户 → API管理
YOUR_BINANCE_SECRET_KEY 您的币安Secret密钥 同上
sk-xxxxxxxxxxxxx 您的DeepSeek API密钥 platform.deepseek.com

步骤4:调整初始余额(可选)

  • initial_balance:设置为您实际的币安合约账户余额
  • 用于计算盈亏百分比
  • 例如如果您有500 USDT设置"initial_balance": 500.0

配置检查清单:

  • 币安API密钥已填写无引号问题
  • 币安Secret密钥已填写无引号问题
  • DeepSeek API密钥已填写sk-开头)
  • use_default_coins设为true(新手)
  • initial_balance与您的账户余额匹配
  • 文件保存为config.json(不是.example

🔷 使用Hyperliquid交易所

📝 注册与设置指南

步骤1注册Hyperliquid账户

  1. 通过邀请链接访问Hyperliquid(享受优惠!):

    🎁 注册Hyperliquid - 加入AITRADING

  2. 连接你的钱包

    • 点击右上角"Connect Wallet"
    • 选择MetaMask、WalletConnect或其他Web3钱包
    • 批准连接
  3. 启用交易

    • 首次连接会提示你签名消息
    • 这会授权你的钱包进行交易无gas费
    • 你将看到钱包地址显示出来

步骤2为钱包充值

  1. 将资产桥接到Arbitrum

    • Hyperliquid运行在Arbitrum L2上
    • 从以太坊主网或其他链桥接USDC
    • 或者直接从交易所提现USDC到Arbitrum
  2. 充值到Hyperliquid

    • 在Hyperliquid界面点击"Deposit"
    • 选择要充值的USDC数量
    • 确认交易Arbitrum上的小额gas费
    • 资金会在几秒内到达你的Hyperliquid账户

步骤3设置代理钱包推荐

Hyperliquid支持代理钱包功能 - 专门用于交易自动化的安全子钱包!

⚠️ 为什么使用代理钱包:

  • 更安全:永远不暴露主钱包私钥
  • 权限受限:代理钱包只有交易权限
  • 可随时撤销可从Hyperliquid界面随时禁用
  • 资金隔离:保持主要资产安全

如何创建代理钱包:

  1. 登录Hyperliquid,使用你的主钱包

  2. 进入代理设置

  3. 创建新代理

    • 点击"Create Agent"或"Add Agent"
    • 系统会自动生成新的代理钱包
    • 保存代理钱包地址(以0x开头)
    • 保存代理私钥(仅显示一次!)
  4. 代理钱包详情

    • 主钱包:你连接的钱包(持有资金)
    • 代理钱包用于交易的子钱包NOFX将使用此钱包
    • 私钥仅用于NOFX配置
  5. 为代理充值(可选):

    • 从主钱包转账USDC到代理钱包
    • 或保持资金在主钱包(代理可以从主钱包交易)
  6. 保存NOFX配置凭据

    • 主钱包地址:0xYourMainWalletAddress(保留0x前缀)
    • 代理私钥:YourAgentPrivateKeyWithout0x(去掉0x前缀)

配置config.json 通过Web界面配置

{
  "traders": [
    {
      "id": "hyperliquid_trader",
      "name": "My Hyperliquid Trader",
      "enabled": true,
      "ai_model": "deepseek",
      "exchange": "hyperliquid",
      "hyperliquid_private_key": "your_agent_private_key_without_0x",
      "hyperliquid_wallet_addr": "0xYourMainWalletAddress",
      "hyperliquid_testnet": false,
      "deepseek_key": "sk-xxxxxxxxxxxxx",
      "initial_balance": 1000.0,
      "scan_interval_minutes": 3
    }
  ],
  "use_default_coins": true,
  "api_server_port": 8080
}

关键配置字段:

  • "exchange": "hyperliquid" - 设置交易所为Hyperliquid
  • hyperliquid_private_key - 代理钱包私钥(去掉0x前缀)
  • hyperliquid_wallet_addr - 主钱包地址(保留0x前缀)
  • hyperliquid_testnet: false - 使用主网(设为true使用测试网)

⚠️ 安全提示

  • 优先使用代理钱包而非主钱包私钥
  • 切勿分享你的私钥
  • 可以随时从Hyperliquid界面撤销代理权限
  • 定期检查代理钱包活动

🔶 使用Aster DEX交易所

NOFX支持Aster DEX - 兼容Binance的去中心化永续期货交易所

为什么选择Aster

  • 🎯 兼容Binance API轻松迁移
  • 🔐 API钱包安全系统
  • 💰 更低的交易手续费
  • 🌐 多链支持ETH、BSC、Polygon
  • 🌍 无需KYC

步骤1注册并创建Aster API钱包

  1. 通过推荐链接注册Aster(享手续费优惠)
  2. 访问Aster API钱包
  3. 连接你的主钱包MetaMask、WalletConnect等
  4. 点击"创建API钱包"
  5. 立即保存这3项
    • 主钱包地址User
    • API钱包地址Signer
    • API钱包私钥⚠️ 仅显示一次!)

步骤2为Aster配置config.json 通过Web界面配置

{
  "traders": [
    {
      "id": "aster_deepseek",
      "name": "Aster DeepSeek Trader",
      "enabled": true,
      "ai_model": "deepseek",
      "exchange": "aster",

      "aster_user": "0xYOUR_MAIN_WALLET_ADDRESS_HERE",
      "aster_signer": "0xYOUR_API_WALLET_SIGNER_ADDRESS_HERE",
      "aster_private_key": "your_api_wallet_private_key_without_0x_prefix",

      "deepseek_key": "sk-xxxxxxxxxxxxx",
      "initial_balance": 1000.0,
      "scan_interval_minutes": 3
    }
  ],
  "use_default_coins": true,
  "api_server_port": 8080,
  "leverage": {
    "btc_eth_leverage": 5,
    "altcoin_leverage": 5
  }
}

关键配置字段:

  • "exchange": "aster" - 设置交易所为Aster
  • aster_user - 你的主钱包地址
  • aster_signer - API钱包地址来自步骤1
  • aster_private_key - API钱包私钥去掉0x前缀)

⚠️ 安全提示

  • API钱包与主钱包分离额外的安全层
  • 切勿分享API私钥
  • 你可以随时在asterdex.com撤销API钱包访问

⚔️ 专家模式多Trader竞赛

用于运行多个AI trader相互竞争

{
  "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
}

竞赛模式要求:

  • 2个独立的币安合约账户不同的API密钥
  • 两种AI API密钥Qwen + DeepSeek
  • 更多测试资金推荐每个账户500+ USDT

📚 配置字段详解

字段 说明 示例值 是否必填?
id 此trader的唯一标识符 "my_trader"
name 显示名称 "我的AI交易员"
enabled 是否启用此trader
设为false可跳过启动
truefalse
ai_model 使用的AI提供商 "deepseek""qwen""custom"
exchange 使用的交易所 "binance""hyperliquid""aster"
binance_api_key 币安API密钥 "abc123..." 使用Binance时必填
binance_secret_key 币安Secret密钥 "xyz789..." 使用Binance时必填
hyperliquid_private_key Hyperliquid私钥
⚠️ 去掉0x前缀
"your_key..." 使用Hyperliquid时必填
hyperliquid_wallet_addr Hyperliquid钱包地址 "0xabc..." 使用Hyperliquid时必填
hyperliquid_testnet 是否使用测试网 truefalse 默认false
use_qwen 是否使用Qwen truefalse
deepseek_key DeepSeek API密钥 "sk-xxx" 使用DeepSeek时必填
qwen_key Qwen API密钥 "sk-xxx" 使用Qwen时必填
initial_balance 用于P/L计算的起始余额 1000.0
scan_interval_minutes 决策频率(分钟) 3建议3-5
leverage 杠杆配置 (v2.0.3+) 见下文
btc_eth_leverage BTC/ETH最大杠杆
⚠️ 子账户≤5倍
5(默认,安全)
50(主账户最大)
altcoin_leverage 山寨币最大杠杆
⚠️ 子账户≤5倍
5(默认,安全)
20(主账户最大)
use_default_coins 使用内置币种列表
智能默认:true (v2.0.2+)
未提供API时自动启用
true 或省略
(可选,自动默认)
coin_pool_api_url 自定义币种池API
仅当use_default_coins: false时需要
""(空)
oi_top_api_url 持仓量API
可选补充数据
""(空)
api_server_port Web仪表板端口 8080

默认交易币种(当 use_default_coins: true 时):

  • BTC、ETH、SOL、BNB、XRP、DOGE、ADA、HYPE

⚙️ 杠杆配置 (v2.0.3+)

什么是杠杆配置?

杠杆设置控制AI每次交易可以使用的最大杠杆。这对于风险管理至关重要特别是对于有杠杆限制的币安子账户。

配置格式:

"leverage": {
  "btc_eth_leverage": 5,    // BTC和ETH的最大杠杆
  "altcoin_leverage": 5      // 所有其他币种的最大杠杆
}

⚠️ 重要:币安子账户限制

  • 子账户:币安限制为**≤5倍杠杆**
  • 主账户可使用最高20倍山寨币或50倍BTC/ETH
  • 如果您使用子账户并设置杠杆>5倍交易将失败,错误信息:Subaccounts are restricted from using leverage greater than 5x

推荐设置:

账户类型 BTC/ETH杠杆 山寨币杠杆 风险级别
子账户 5 5 安全(默认)
主账户(保守) 10 10 🟡 中等
主账户(激进) 20 15 🔴
主账户(最大) 50 20 🔴🔴 非常高

示例:

安全配置(子账户或保守):

"leverage": {
  "btc_eth_leverage": 5,
  "altcoin_leverage": 5
}

激进配置(仅主账户):

"leverage": {
  "btc_eth_leverage": 20,
  "altcoin_leverage": 15
}

AI如何使用杠杆

  • AI可以选择从1倍到您配置的最大值之间的任何杠杆
  • 例如,当altcoin_leverage: 20AI可能根据市场情况决定使用5倍、10倍或20倍
  • 配置设置的是上限,而不是固定值
  • AI在选择杠杆时会考虑波动性、风险回报比和账户余额

⚠️ 重要:use_default_coins 字段

智能默认行为v2.0.2+

系统现在会自动默认为use_default_coins: true,如果:

  • 您在config.json中未包含此字段
  • 您将其设为false但未提供coin_pool_api_url

这让新手更友好!您甚至可以完全省略此字段。

配置示例:

选项1显式设置推荐以保持清晰

"use_default_coins": true,
"coin_pool_api_url": "",
"oi_top_api_url": ""

选项2省略字段自动使用默认币种

// 完全不包含"use_default_coins"
"coin_pool_api_url": "",
"oi_top_api_url": ""

⚙️ 高级使用外部API

"use_default_coins": false,
"coin_pool_api_url": "http://your-api.com/coins",
"oi_top_api_url": "http://your-api.com/oi"

6. 运行系统

🚀 启动系统2个步骤

系统有2个部分需要分别运行:

  1. 后端AI交易大脑 + API
  2. 前端Web监控仪表板

步骤1启动后端

打开终端并运行:

# 构建程序(首次运行或代码更改后)
go build -o nofx

# 启动后端
./nofx

您应该看到:

🚀 启动自动交易系统...
✓ Trader [my_trader] 已初始化
✓ API服务器启动在端口 8080
📊 开始交易监控...

⚠️ 如果看到错误:

错误信息 解决方案
invalid API key 检查config.json中的币安API密钥 检查Web界面中的API密钥
TA-Lib not found 运行brew install ta-libmacOS
port 8080 already in use 修改config.json中的api_server_port 修改.env文件中的API_PORT
DeepSeek API error 验证DeepSeek API密钥和余额

后端运行正常的标志:

  • 无错误信息
  • 出现"开始交易监控..."
  • 系统显示账户余额
  • 保持此终端窗口打开!

步骤2启动前端

打开新的终端窗口(保持第一个运行!),然后:

cd web
npm run dev

您应该看到:

VITE v5.x.x  ready in xxx ms

➜  Local:   http://localhost:3000/
➜  Network: use --host to expose

前端运行正常的标志:


步骤3访问仪表板

在Web浏览器中访问

🌐 http://localhost:3000

您将看到:

  • 📊 实时账户余额
  • 📈 持仓(如果有)
  • 🤖 AI决策日志
  • 📉 净值曲线图

首次使用提示:

  • 首次AI决策可能需要3-5分钟
  • 初始决策可能显示"观望"- 这是正常的
  • AI需要先分析市场状况

7. 监控系统

需要关注的内容:

健康系统标志:

  • 后端终端每3-5分钟显示决策周期
  • 无持续错误信息
  • 账户余额更新
  • Web仪表板自动刷新

⚠️ 警告标志:

  • 重复的API错误
  • 10分钟以上无决策
  • 余额快速下降

检查系统状态:

# 在新终端窗口中
curl http://localhost:8080/api/health

应返回:{"status":"ok"}


8. 停止系统

优雅关闭(推荐):

  1. 转到后端终端(第一个)
  2. Ctrl+C
  3. 等待"系统已停止"消息
  4. 转到前端终端(第二个)
  5. Ctrl+C

⚠️ 重要:

  • 始终先停止后端
  • 关闭终端前等待确认
  • 不要强制退出(不要直接关闭终端)

📖 AI决策流程

每个决策周期默认3分钟系统按以下流程运行

步骤1: 📊 分析历史表现最近20个周期

  • ✓ 计算整体胜率、平均盈利、盈亏比
  • ✓ 统计各币种表现胜率、平均USDT盈亏
  • ✓ 识别最佳/最差币种
  • ✓ 列出最近5笔交易详情含准确盈亏金额
  • ✓ 计算夏普比率衡量风险调整后收益
  • 📌 新增 (v2.0.2): 考虑杠杆的准确USDT盈亏计算

步骤2: 💰 获取账户状态

  • 账户净值、可用余额、未实现盈亏
  • 持仓数量、总盈亏(已实现+未实现)
  • 保证金使用率current/maximum
  • 风险评估指标

步骤3: 🔍 分析现有持仓(如果有)

  • 获取每个持仓的市场数据3分钟+4小时K线
  • 计算技术指标RSI、MACD、EMA
  • 显示持仓时长(例如"持仓时长2小时15分钟"
  • AI判断是否需要平仓止盈、止损或调整
  • 📌 新增 (v2.0.2): 追踪持仓时长帮助AI决策

步骤4: 🎯 评估新机会(候选币种池)

  • 获取币种池2种模式
    • 🌟 默认模式: BTC、ETH、SOL、BNB、XRP等
    • ⚙️ 高级模式: AI500前20 + OI Top前20
  • 合并去重,过滤低流动性币种(持仓量<15M USD
  • 批量获取市场数据和技术指标
  • 为每个候选币种准备完整的原始数据序列

步骤5: 🧠 AI综合决策

  • 查看历史反馈(胜率、盈亏比、最佳/最差币种)
  • 接收所有原始序列数据K线、指标、持仓量
  • Chain of Thought 思维链分析
  • 输出决策:平仓/开仓/持有/观望
  • 包含杠杆、仓位、止损、止盈参数
  • 📌 新增 (v2.0.2): AI可自由分析原始序列不受预定义指标限制

步骤6: 执行交易

  • 优先级排序:先平仓,再开仓
  • 精度自动适配LOT_SIZE规则
  • 防止仓位叠加(同币种同方向拒绝开仓)
  • 平仓后自动取消所有挂单
  • 记录开仓时间用于持仓时长追踪
  • 📌 追踪持仓开仓时间

步骤7: 📝 记录日志

  • 保存完整决策记录到 decision_logs/
  • 包含思维链、决策JSON、账户快照、执行结果
  • 存储完整持仓数据(数量、杠杆、开/平仓时间)
  • 使用 symbol_side 键值防止多空冲突
  • 📌 新增 (v2.0.2): 防止多空持仓冲突,考虑数量+杠杆

🔄 每3-5分钟重复一次

v2.0.2的核心改进

📌 持仓时长追踪:

  • 系统现在追踪每个持仓已持有多长时间
  • 在用户提示中显示:"持仓时长2小时15分钟"
  • 帮助AI更好地判断何时退出仓位

📌 准确的盈亏计算:

  • 之前只显示百分比100U@5% = 1000U@5% = 都显示"5.0"
  • 现在真实USDT盈亏 = 仓位价值 × 价格变化% × 杠杆倍数
  • 示例1000 USDT × 5% × 20倍 = 1000 USDT实际盈利

📌 增强的AI自由度

  • AI可以自由分析所有原始序列数据
  • 不再局限于预定义的指标组合
  • 可以执行自己的趋势分析、支撑位/阻力位计算

📌 改进的持仓追踪:

  • 使用symbol_side键值(例如"BTCUSDT_long"
  • 防止同时持有多空仓时的冲突
  • 存储完整数据:数量、杠杆、开/平仓时间

🧠 AI自我学习示例

历史反馈Prompt中自动添加

## 📊 历史表现反馈

### 整体表现
- **总交易数**: 15 笔 (盈利: 8 | 亏损: 7)
- **胜率**: 53.3%
- **平均盈利**: +3.2% | 平均亏损: -2.1%
- **盈亏比**: 1.52:1

### 最近交易
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% ✗

### 币种表现
- **最佳**: BTCUSDT (胜率75%, 平均+2.5%)
- **最差**: SOLUSDT (胜率25%, 平均-1.8%)

AI如何使用反馈

  1. 避免连续亏损币种: 看到SOLUSDT连续3次止损AI会避开或更谨慎
  2. 强化成功策略: BTC突破做多胜率75%AI会继续这个模式
  3. 动态调整风格: 胜率<40%时变保守,盈亏比>2时保持激进
  4. 识别市场环境: 连续亏损可能说明市场震荡,减少交易频率

📊 Web界面功能

1. 竞赛页面Competition

  • 🏆 排行榜: 实时收益率排名,金色边框突出显示领先者
  • 📈 性能对比图: 双AI收益率曲线对比紫色vs蓝色
  • ⚔️ Head-to-Head: 直接对比,显示领先差距
  • 实时数据: 总净值、盈亏%、持仓数、保证金使用率

2. 详情页面Details

  • 账户净值曲线: 历史走势图(美元/百分比切换)
  • 统计信息: 总周期、成功/失败、开仓/平仓统计
  • 持仓表格: 所有持仓详情(入场价、当前价、盈亏%、强平价)
  • AI决策日志: 最近决策记录(可展开思维链)

3. 实时更新

  • 系统状态、账户信息、持仓列表:每5秒刷新
  • 决策日志、统计信息:每10秒刷新
  • 收益率图表:每10秒刷新

🎛️ API接口

竞赛相关

GET /api/competition          # 竞赛排行榜所有trader
GET /api/traders              # Trader列表

单Trader相关

GET /api/status?trader_id=xxx            # 系统状态
GET /api/account?trader_id=xxx           # 账户信息
GET /api/positions?trader_id=xxx         # 持仓列表
GET /api/equity-history?trader_id=xxx    # 净值历史(图表数据)
GET /api/decisions/latest?trader_id=xxx  # 最新5条决策
GET /api/statistics?trader_id=xxx        # 统计信息

系统接口

GET /api/health                   # 健康检查
GET /api/config               # 系统配置

📝 决策日志格式

每次AI决策都会生成详细的JSON日志

日志文件路径

decision_logs/
├── qwen_trader/
│   └── decision_20251028_153042_cycle15.json
└── deepseek_trader/
    └── decision_20251028_153045_cycle15.json

日志内容示例

{
  "timestamp": "2025-10-28T15:30:42+08:00",
  "cycle_number": 15,
  "cot_trace": "当前持仓ETHUSDT多头盈利+2.3%,趋势良好继续持有...",
  "decision_json": "[{\"symbol\":\"BTCUSDT\",\"action\":\"open_long\"...}]",
  "account_state": {
    "total_balance": 1045.80,
    "available_balance": 823.40,
    "position_count": 3,
    "margin_used_pct": 21.3
  },
  "positions": [...],
  "candidate_coins": ["BTCUSDT", "ETHUSDT", ...],
  "decisions": [
    {
      "action": "open_long",
      "symbol": "BTCUSDT",
      "quantity": 0.015,
      "leverage": 50,
      "price": 95800.0,
      "order_id": 123456789,
      "success": true
    }
  ],
  "execution_log": ["✓ BTCUSDT open_long 成功"],
  "success": true
}

🔧 风险控制详解

单币种仓位限制

币种类型 仓位价值上限 杠杆 保证金占用 示例1000U账户
山寨币 1.5倍净值 20x 7.5% 最多开1500U仓位 = 75U保证金
BTC/ETH 10倍净值 50x 20% 最多开10000U仓位 = 200U保证金

为什么这样设计?

  1. 高杠杆 + 小仓位 = 分散风险

    • 20倍杠杆1500U仓位只需75U保证金
    • 可以同时开10+个小仓位,分散单币种风险
  2. 单币种风险可控

    • 山寨币仓位≤1.5倍净值5%反向波动 = 7.5%损失
    • BTC仓位≤10倍净值2%反向波动 = 20%损失
  3. 不限制总保证金使用率

    • AI根据市场机会自主决策保证金使用率
    • 上限90%,但不强制满仓
    • 有好机会就开仓,没机会就观望

防止过度交易

  • 同币种同方向不允许重复开仓: 防止AI连续开同一个仓位导致超限
  • 先平仓后开仓: 换仓时确保先释放保证金
  • 止损止盈强制检查: 风险回报比≥1:2

⚠️ 重要风险提示

交易风险

  1. 加密货币市场波动极大AI决策不保证盈利
  2. 合约交易使用杠杆,亏损可能超过本金
  3. 市场极端行情下可能出现爆仓风险
  4. 资金费率可能影响持仓成本
  5. 流动性风险:某些币种可能出现滑点

技术风险

  1. 网络延迟可能导致价格滑点
  2. API限流可能影响交易执行
  3. AI API超时可能导致决策失败
  4. 系统Bug可能引发意外行为

使用建议

建议做法

  • 仅使用可承受损失的资金测试
  • 从小额资金开始建议100-500 USDT
  • 定期检查系统运行状态
  • 监控账户余额变化
  • 分析AI决策日志理解策略

不建议做法

  • 投入全部资金或借贷资金
  • 长时间无人监控运行
  • 盲目信任AI决策
  • 在不理解系统的情况下使用
  • 在市场极端波动时运行

🛠️ 常见问题

1. 编译错误TA-Lib not found

解决: 安装TA-Lib库

# macOS
brew install ta-lib

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

2. 精度错误Precision is over the maximum

解决: 系统已自动处理精度从Binance获取LOT_SIZE。如仍报错检查网络连接。

3. AI API超时

解决:

  • 检查API密钥是否正确
  • 检查网络连接(可能需要代理)
  • 系统超时时间已设置为120秒

4. 前端无法连接后端

解决:

  • 确保后端正在运行(http://localhost:8080
  • 检查端口8080是否被占用
  • 查看浏览器控制台错误信息

5. 币种池API失败

解决:

  • 币种池API是可选的
  • 如果API失败系统会使用默认主流币种BTC、ETH等
  • 检查config.json中的API URL和auth参数 检查Web界面中的配置

📈 性能优化建议

  1. 合理设置决策周期: 建议3-5分钟避免过度交易
  2. 控制候选币种数量: 系统默认分析AI500前20 + OI Top前20
  3. 定期清理日志: 避免占用过多磁盘空间
  4. 监控API调用次数: 避免触发Binance限流权重限制
  5. 小额资金测试: 先用100-500 USDT测试策略有效性

🔄 更新日志

📖 详细的版本历史和更新,请查看:

最新版本: v3.0.0 (2025-10-30) - 重大架构变革

近期亮点:

  • 🚀 完整系统重新设计基于Web的配置平台
  • 🗄️ 数据库驱动架构SQLite
  • 🎨 无需编辑JSON - 全部通过Web界面配置
  • 🔧 AI模型与交易所任意组合
  • 📊 增强的API层提供全面的端点

📄 开源协议

本项目采用 GNU Affero 通用公共许可证 v3.0 (AGPL-3.0) - 详见 LICENSE 文件

这意味着什么:

  • 你可以使用、修改和分发此软件
  • 你必须公开你修改版本的源代码
  • 如果你在服务器上运行修改版本,必须向用户提供源代码
  • 所有衍生作品也必须使用 AGPL-3.0 许可证

如需商业许可或有疑问,请联系维护者。


🤝 贡献

欢迎提交Issue和Pull Request

开发指南

  1. Fork项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启Pull Request

📬 联系方式

🐛 技术支持


🙏 致谢


最后更新: 2025-10-29 (v2.0.2)

用AI的力量探索量化交易的可能性


Star History

Star History Chart