42 KiB
🤖 NOFX - AI交易操作系统
语言 / Languages: English | 中文 | Українська | Русский | 日本語 | 한국어 | Tiếng Việt
📚 文档中心: 文档首页 | 快速开始 | 更新日志 | 社区指南 | ⚠️ 免责声明
📑 目录
- 🚀 通用AI交易操作系统
- 👥 开发者社区
- 🆕 最新更新
- 📸 系统截图
- ✨ 当前实现
- 🔮 路线图
- 🏗️ 技术架构
- 💰 注册币安账户
- 🔷 注册Hyperliquid账户
- 🔶 注册Aster DEX账户
- 🚀 快速开始
- 📖 AI决策流程
- 🧠 AI自我学习示例
- 📊 Web界面功能
- 🎛️ API接口
- 📝 决策日志格式
- 🔧 风险控制详解
- ⚠️ 重要风险提示
- 🛠️ 常见问题
- 📈 性能优化建议
- 🔄 更新日志
- 📄 开源协议
- 🤝 贡献指南
🚀 通用AI交易操作系统
NOFX 是通用架构的 AI交易操作系统(Agentic Trading OS)。我们已在加密市场打通"多智能体决策 → 统一风控 → 低延迟执行 → 真实/纸面账户复盘"的闭环,正按同一技术栈扩展到股票、期货、期权、外汇等所有市场。
🎯 核心特性
- 通用数据与回测层:跨市场、跨周期、跨交易所统一表示与因子库,沉淀可迁移的"策略记忆"
- 多智能体自博弈与自进化:策略自动对战择优,按账户级 PnL 与风险约束持续迭代
- 执行与风控一体化:低延迟路由、滑点/风控沙箱、账户级限额,一键切换市场
🏢 由 Amber.ac 背书
👥 核心团队
- Tinkle - @Web3Tinkle
- 唯一官方推特 - @nofx_official
💼 种子轮融资进行中
我们正在进行种子轮融资。
投资咨询,请通过 Twitter 私信联系 Tinkle。
⚠️ 风险提示:本系统为实验性项目,AI自动交易存在重大风险,强烈建议仅用于学习研究或小额资金测试!
👥 开发者社区
加入我们的Telegram开发者社区,讨论、分享想法并获得支持:
🆕 最新更新
🚀 多交易所支持!
NOFX现已支持三大交易所:Binance、Hyperliquid和Aster DEX!
Hyperliquid交易所
高性能的去中心化永续期货交易所!
核心特性:
- ✅ 完整交易支持(做多/做空、杠杆、止损/止盈)
- ✅ 自动精度处理(订单数量和价格)
- ✅ 统一trader接口(无缝切换交易所)
- ✅ 支持主网和测试网
- ✅ 无需API密钥 - 只需以太坊私钥
为什么选择Hyperliquid?
- 🔥 比中心化交易所手续费更低
- 🔒 非托管 - 你掌控自己的资金
- ⚡ 快速执行与链上结算
- 🌍 无需KYC
快速开始:
- 获取你的MetaMask私钥(去掉
0x前缀) 在config.json中设置通过Web界面配置"exchange": "hyperliquid"- 添加
"hyperliquid_private_key": "your_key" - 开始交易!
详见配置指南。
Aster DEX交易所(新!v2.0.2)
兼容Binance的去中心化永续期货交易所!
核心特性:
- ✅ Binance风格API(从Binance轻松迁移)
- ✅ Web3钱包认证(安全且去中心化)
- ✅ 完整交易支持,自动精度处理
- ✅ 比中心化交易所手续费更低
- ✅ 兼容EVM(以太坊、BSC、Polygon等)
为什么选择Aster?
- 🎯 兼容Binance API - 需要最少的代码修改
- 🔐 API钱包系统 - 独立交易钱包提升安全性
- 💰 有竞争力的手续费 - 比大多数中心化交易所更低
- 🌐 多链支持 - 在你喜欢的EVM链上交易
快速开始:
- 通过推荐链接注册Aster(享手续费优惠)
- 访问Aster API钱包
- 连接你的主钱包并创建API钱包
- 复制API Signer地址和私钥
- 在config.json中设置
"exchange": "aster" - 添加
"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图表、告警系统)
📖 详细路线图和时间表,请参阅:
- 中文: 路线图文档
- English: Roadmap Documentation
🏗️ 技术架构
NOFX 采用现代化的模块化架构:
- 后端: Go + Gin 框架,SQLite 数据库
- 前端: React 18 + TypeScript + Vite + TailwindCSS
- 多交易所支持: Binance、Hyperliquid、Aster DEX
- AI 集成: DeepSeek、Qwen 及自定义 OpenAI 兼容 API
- 状态管理: 前端 Zustand,后端数据库驱动
- 实时更新: SWR,5-10 秒轮询间隔
核心特性:
- 🗄️ 数据库驱动的配置(无需编辑 JSON)
- 🔐 JWT 认证,支持可选的 2FA
- 📊 实时性能跟踪和分析
- 🤖 多 AI 竞赛模式,实时对比
- 🔌 RESTful API,完整的配置和监控
📖 详细架构文档,请查看:
- 中文版: 架构文档
- English: Architecture Documentation
💰 注册币安账户(省手续费!)
使用本系统前,您需要一个币安合约账户。使用我们的推荐链接注册可享受手续费优惠:
注册步骤:
- 点击上方链接 访问币安注册页面
- 完成注册 使用邮箱/手机号注册
- 完成KYC身份认证(合约交易必须)
- 开通合约账户:
- 进入币安首页 → 衍生品 → U本位合约
- 点击"立即开通"激活合约交易
- 创建API密钥:
- 进入账户 → API管理
- 创建新的API密钥,务必勾选"合约"权限
- 保存API Key和Secret Key(
config.json中需要Web界面中需要) - 重要:添加IP白名单以确保安全
手续费优惠说明:
- ✅ 现货交易:最高享30%手续费返佣
- ✅ 合约交易:最高享30%手续费返佣
- ✅ 终身有效:永久享受交易手续费折扣
🚀 快速开始
🐳 方式A:Docker 一键部署(最简单 - 新手推荐!)
⚡ 使用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部署教程、故障排查和高级配置:
- 中文: 查看 DOCKER_DEPLOY.md
- English: See DOCKER_DEPLOY.en.md
- 日本語: DOCKER_DEPLOY.ja.mdを参照
📦 方式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提供商之一:
选项1:DeepSeek(推荐新手)
为什么选择DeepSeek?
- 💰 比GPT-4便宜(约1/10成本)
- 🚀 响应速度快
- 🎯 交易决策质量优秀
- 🌍 全球可用无需VPN
如何获取DeepSeek API密钥:
- 访问:https://platform.deepseek.com
- 注册:使用邮箱/手机号注册
- 验证:完成邮箱/手机验证
- 充值:向账户添加余额
- 最低:约$5美元
- 推荐:$20-50美元用于测试
- 创建API密钥:
- 进入API Keys部分
- 点击"创建新密钥"
- 复制并保存密钥(以
sk-开头) - ⚠️ 重要:立即保存 - 之后无法再查看!
价格:每百万tokens约$0.14(非常便宜!)
选项2:Qwen(阿里云通义千问)
如何获取Qwen API密钥:
- 访问:https://dashscope.console.aliyun.com
- 注册:使用阿里云账户注册
- 开通服务:激活DashScope服务
- 创建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账户
-
通过邀请链接访问Hyperliquid(享受优惠!):
-
连接你的钱包:
- 点击右上角"Connect Wallet"
- 选择MetaMask、WalletConnect或其他Web3钱包
- 批准连接
-
启用交易:
- 首次连接会提示你签名消息
- 这会授权你的钱包进行交易(无gas费)
- 你将看到钱包地址显示出来
步骤2:为钱包充值
-
将资产桥接到Arbitrum:
- Hyperliquid运行在Arbitrum L2上
- 从以太坊主网或其他链桥接USDC
- 或者直接从交易所提现USDC到Arbitrum
-
充值到Hyperliquid:
- 在Hyperliquid界面点击"Deposit"
- 选择要充值的USDC数量
- 确认交易(Arbitrum上的小额gas费)
- 资金会在几秒内到达你的Hyperliquid账户
步骤3:设置代理钱包(推荐)
Hyperliquid支持代理钱包功能 - 专门用于交易自动化的安全子钱包!
⚠️ 为什么使用代理钱包:
- ✅ 更安全:永远不暴露主钱包私钥
- ✅ 权限受限:代理钱包只有交易权限
- ✅ 可随时撤销:可从Hyperliquid界面随时禁用
- ✅ 资金隔离:保持主要资产安全
如何创建代理钱包:
-
登录Hyperliquid,使用你的主钱包
- 访问 https://app.hyperliquid.xyz
- 连接你注册时使用的钱包(来自邀请链接)
-
进入代理设置:
- 点击钱包地址(右上角)
- 进入"Settings" → "API & Agents"
- 或直接访问:https://app.hyperliquid.xyz/agents
-
创建新代理:
- 点击"Create Agent"或"Add Agent"
- 系统会自动生成新的代理钱包
- 保存代理钱包地址(以
0x开头) - 保存代理私钥(仅显示一次!)
-
代理钱包详情:
- 主钱包:你连接的钱包(持有资金)
- 代理钱包:用于交易的子钱包(NOFX将使用此钱包)
- 私钥:仅用于NOFX配置
-
为代理充值(可选):
- 从主钱包转账USDC到代理钱包
- 或保持资金在主钱包(代理可以从主钱包交易)
-
保存NOFX配置凭据:
- 主钱包地址:
0xYourMainWalletAddress(保留0x前缀) - 代理私钥:
YourAgentPrivateKeyWithout0x(去掉0x前缀)
- 主钱包地址:
配置 通过Web界面配置config.json
{
"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"- 设置交易所为Hyperliquidhyperliquid_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钱包
- 通过推荐链接注册Aster(享手续费优惠)
- 访问Aster API钱包
- 连接你的主钱包(MetaMask、WalletConnect等)
- 点击"创建API钱包"
- 立即保存这3项:
- 主钱包地址(User)
- API钱包地址(Signer)
- API钱包私钥(⚠️ 仅显示一次!)
步骤2:为Aster配置 通过Web界面配置config.json
{
"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"- 设置交易所为Asteraster_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可跳过启动 |
true 或 false |
✅ 是 |
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 |
是否使用测试网 | true 或 false |
❌ 否(默认false) |
use_qwen |
是否使用Qwen | true 或 false |
✅ 是 |
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: 20时,AI可能根据市场情况决定使用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个部分需要分别运行:
- 后端(AI交易大脑 + API)
- 前端(Web监控仪表板)
步骤1:启动后端
打开终端并运行:
# 构建程序(首次运行或代码更改后)
go build -o nofx
# 启动后端
./nofx
您应该看到:
🚀 启动自动交易系统...
✓ Trader [my_trader] 已初始化
✓ API服务器启动在端口 8080
📊 开始交易监控...
⚠️ 如果看到错误:
| 错误信息 | 解决方案 |
|---|---|
invalid API key |
|
TA-Lib not found |
运行brew install ta-lib(macOS) |
port 8080 already in use |
api_server_portAPI_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
✅ 前端运行正常的标志:
- "Local: http://localhost:3000/"消息
- 无错误信息
- 也保持此终端窗口打开!
步骤3:访问仪表板
在Web浏览器中访问:
您将看到:
- 📊 实时账户余额
- 📈 持仓(如果有)
- 🤖 AI决策日志
- 📉 净值曲线图
首次使用提示:
- 首次AI决策可能需要3-5分钟
- 初始决策可能显示"观望"- 这是正常的
- AI需要先分析市场状况
7. 监控系统
需要关注的内容:
✅ 健康系统标志:
- 后端终端每3-5分钟显示决策周期
- 无持续错误信息
- 账户余额更新
- Web仪表板自动刷新
⚠️ 警告标志:
- 重复的API错误
- 10分钟以上无决策
- 余额快速下降
检查系统状态:
# 在新终端窗口中
curl http://localhost:8080/api/health
应返回:{"status":"ok"}
8. 停止系统
优雅关闭(推荐):
- 转到后端终端(第一个)
- 按
Ctrl+C - 等待"系统已停止"消息
- 转到前端终端(第二个)
- 按
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如何使用反馈
- 避免连续亏损币种: 看到SOLUSDT连续3次止损,AI会避开或更谨慎
- 强化成功策略: BTC突破做多胜率75%,AI会继续这个模式
- 动态调整风格: 胜率<40%时变保守,盈亏比>2时保持激进
- 识别市场环境: 连续亏损可能说明市场震荡,减少交易频率
📊 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保证金 |
为什么这样设计?
-
高杠杆 + 小仓位 = 分散风险
- 20倍杠杆,1500U仓位,只需75U保证金
- 可以同时开10+个小仓位,分散单币种风险
-
单币种风险可控
- 山寨币仓位≤1.5倍净值,5%反向波动 = 7.5%损失
- BTC仓位≤10倍净值,2%反向波动 = 20%损失
-
不限制总保证金使用率
- AI根据市场机会自主决策保证金使用率
- 上限90%,但不强制满仓
- 有好机会就开仓,没机会就观望
防止过度交易
- 同币种同方向不允许重复开仓: 防止AI连续开同一个仓位导致超限
- 先平仓后开仓: 换仓时确保先释放保证金
- 止损止盈强制检查: 风险回报比≥1:2
⚠️ 重要风险提示
交易风险
- 加密货币市场波动极大,AI决策不保证盈利
- 合约交易使用杠杆,亏损可能超过本金
- 市场极端行情下可能出现爆仓风险
- 资金费率可能影响持仓成本
- 流动性风险:某些币种可能出现滑点
技术风险
- 网络延迟可能导致价格滑点
- API限流可能影响交易执行
- AI API超时可能导致决策失败
- 系统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界面中的配置
📈 性能优化建议
- 合理设置决策周期: 建议3-5分钟,避免过度交易
- 控制候选币种数量: 系统默认分析AI500前20 + OI Top前20
- 定期清理日志: 避免占用过多磁盘空间
- 监控API调用次数: 避免触发Binance限流(权重限制)
- 小额资金测试: 先用100-500 USDT测试策略有效性
🔄 更新日志
📖 详细的版本历史和更新,请查看:
- 中文版: CHANGELOG.zh-CN.md
- English: CHANGELOG.md
最新版本: 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!
开发指南
- Fork项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启Pull Request
📬 联系方式
🐛 技术支持
- GitHub Issues: 提交Issue
- 开发者社区: Telegram群组
🙏 致谢
- Binance API - 币安合约API
- DeepSeek - DeepSeek AI API
- Qwen - 阿里云通义千问
- TA-Lib - 技术指标库
- Recharts - React图表库
最后更新: 2025-10-29 (v2.0.2)
⚡ 用AI的力量,探索量化交易的可能性!