参考nof1设计的AI自主分析交易机器人 ***注意,请设置币安合约为逐仓、单币保证金模式
本项目是一个基于人工智能 (AI) 的自动化加密货币合约交易机器人。它利用大型语言模型 (LLM),结合市场数据(价格、K 线)和技术指标(如 EMA、RSI、MACD),自主分析行情、做出交易决策(开仓、平仓、持仓),并通过 CCXT 库与交易所 API(目前主要针对币安 Binance)交互,执行实盘或模拟盘交易。
系统设计支持同时监控和操作多个 USDT 本位永续合约交易对。内置严格的风险管理机制,强制 AI 遵循基于可用现金百分比的仓位大小计算规则,并在下单前进行服务器端验证,防止单笔保证金超出预设风险限制。
项目核心功能包括:
- AI 驱动决策: 集成 AI 模型 (支持 OpenAI, Azure OpenAI, DeepSeek 等兼容 OpenAI API 的服务) 进行分析和下单。
- 多币种交易: 可配置同时监控和交易多个交易对。
- 风险管理: 强制仓位大小计算,服务器端验证保证金限制,自动缩减超额仓位。
- 实盘/模拟盘: 通过配置文件 (
config.py) 灵活切换真实交易与模拟回测。 - 状态持久化: 实盘模式下,持仓状态 (
alpha_live_positions_v2.json) 和交易历史 (alpha_live_trades.json) 会自动保存到本地文件,方便重启后恢复。 - Web 仪表盘: 提供一个简单的网页界面 (
alpha_web_server.py),用于实时监控账户净值、持仓、交易历史和运行日志。 - 实时通知: 支持通过 Bark 发送开平仓、错误等关键事件的实时推送通知。
这是一个单一策略模型,完全由 AI (LLM) 驱动进行限价单 (Limit Order) 交易提议,并由 Python 执行严格的风险管理和 Veto(否决)规则。
AI (LLM) 负责分析市场,并根据市场状态选择两种策略之一:
-
策略 A: 趋势回调 (ADX > 20)
- 规则: 当 1h ADX > 20 时,市场处于趋势中。
- 动作: AI 会寻找“回调汇合区” (Pullback Confluence Zone) 来设置
LIMIT_BUY(牛市) 或LIMIT_SELL(熊市)。 - 过滤器: 此策略必须顺从
Rule 1.A(4h EMA 宏观趋势)。
-
策略 B: 震荡均值回归 (ADX < 20)
- 规则: 当 1h ADX < 20 时,市场处于震荡中。
- 动作: AI 会在
BB_Lower(布林带下轨) 提议LIMIT_BUY,或在BB_Upper(上轨) 提议LIMIT_SELL。 - 过滤器: 此策略豁免 4h EMA 宏观趋势的限制。
-
策略 C: 加仓 (Pyramiding)
- 规则: AI 被授权分析已盈利的仓位 (例如 > 1R)。
- 动作: 如果趋势仍然强劲且价格出现回调,AI 可以提议新的
LIMIT_BUY/LIMIT_SELL作为加仓。
在 AI 提议后,Python代码 会进行最终审核:
- 数据确认 (Rule 3): AI 提议必须得到
OI_Regime_1h(持仓量) 和Taker_Ratio_1h_Regime(主动成交) 的数据支持。 - 情绪过滤 (Rule 5): 结合 F&G 情绪指数和 4h EMA 趋势。例如,在牛市中 (Price > 4h EMA),"极度恐惧" (F&G < 25) 反而是高信心买入信号。
- R:R 检查 (Rule 4.5): AI 必须确保提议满足 1.5 R:R。Python 会在
_validate_ai_trade中再次计算并否决不合格的订单。 - 趋势 Veto: Python 确认 4h EMA 过滤器仅在
1h ADX > 20(趋势市) 时才生效。 - 异常 Veto:
Anomaly_Score(ML 异常检测) 必须 > -0.1 (即 "Safe")。 - 过时 Veto:
Stale Plan Veto: 否决 AI 因数据延迟而提议的、会立即成交的限价单。Stale Order Veto: 自动取消已挂出但价格偏离现价过远的限价单。
AI 不参与止盈,Python 通过高频 (2s) 和低频 (10s) 循环执行:
-
阶梯止盈:
high_frequency_risk_loop(2s)。- 一旦盈利超过 1% (
current_peak_rate >= 0.01),立即启动。 - 止损点会紧跟峰值利润的 60% 至 80%,高频锁定利润。
-
原始止盈:
high_frequency_risk_loop(2s)。- AI 提议的
take_profit_price会作为最终的硬止盈目标。
-
1R 盈亏平衡:
high_frequency_risk_loop(2s)。- 当利润达到 1R (即浮盈 = 初始风险
entry - initial_sl) 时,止损立即移动到成本价 (Breakeven)。
- AI 初始止损: AI 提议的
stop_loss_price作为初始硬止损。 - AI 更新止损:
- AI 被授权分析亏损中的仓位。
- 如果 AI 认为市场结构已变坏 (例如 15m MACD 交叉),它可以提议
UPDATE_STOPLOSS来收紧止损,提前离场。
- 动态安全网:
- 有
15 分钟的入场宽限期 (SAFETY_NET_GRACE_PERIOD_MS)。 - ADX 过滤: 此安全网仅在趋势市 (
1h ADX > 20) 中启动,在震荡市中 (ADX < 20) 禁用。 - 触发: 如果价格 (多头) 跌破
1h EMA 50 - (1.5 * 1h ATR)的缓冲带,立即平仓。
- 有
- ATR 追踪止损 (盈利时):
- 同样有
15 分钟宽限期。 - 使用
2.0 * 15min_atr_14作为追踪止损,跟随盈利。
- 同样有
git clone https://github.com/hzy11fk/nof2.git
cd nof2
# (推荐) 创建并激活 Python 虚拟环境
python -m venv .venv
Windows:
.venv\Scripts\activate
Linux / macOS:
source .venv/bin/activate
# 安装依赖库
pip install -r requirements.txt
# 在.env中填入对应信息
vi .env
# 运行程序
python run_alpha.pyrun_alpha.py程序入口,初始化并启动AlphaTrader。config.py: 定义所有配置参数,加载.env文件。.env: 存储 API 密钥等敏感信息。alpha_trader.py: 核心交易逻辑和 AI 交互控制器。alpha_portfolio.py: 账户状态管理器,实盘/模拟盘交易执行的桥梁。alpha_ai_analyzer.py: 与 AI 大模型 API 通信的模块。exchange_client.py: 封装 CCXT 交易所 API 调用,增加重试逻辑。alpha_position_manager.py: 管理和持久化实盘持仓状态 (alpha_live_positions_v2.json)。alpha_trade_logger.py: 记录和持久化实盘交易历史 (alpha_live_trades.json)。alpha_web_server.py: (可选) 提供 Web 监控界面。bark_notifier.py(可选) 发送 Bark 通知的工具函数。requirements.txt: 项目所需的 Python 依赖库列表。train_anomaly_detector.py: 趋势策略相关数据集训练脚本。train_rule8_model.py: 突破策略相关数据集训练脚本。fetch_binance_data.py: 训练集所需文件下载脚本。/models: 训练完成的数据。
本项目仅供学习和研究目的,作者不对任何使用本项目代码造成的实际交易盈亏负责。请在充分了解风险的情况下使用。