一个用于将大型语言模型 (LLM) 与 MetaTrader 4 (MT4) 连接起来的 Python 框架,用于创建自主的、工具驱动的算法交易机器人。A Python framework to bridge Large Language Models (LLMs) with MetaTrader 4 (MT4) for creating autonomous, tool-driven algorithmic trading bots.
# AI-Trader-For-MT4: LLM驱动的自主型MT4交易机器人框架
简体中文 | English
AI-Trader-For-MT4 是一款革命性的、开源的AI交易解决方案,它通过赋予大语言模型(LLM)一套“交易法则”和完备的工具集,将LLM从一个对话工具转变为一个能够独立在 MetaTrader 4 (MT4) 平台上进行“感知-思考-行动”的自主交易代理(Agent)。
本项目旨在为量化交易者、策略研究员和开发者提供一个终极框架,让您能够将自己复杂的交易哲学、风控纪律和操作流程,通过高度结构化的Prompt“灌输”给AI,并由AI严格、自主地执行。它彻底摆脱了传统EA编程的束缚,进入一个通过自然语言定义和迭代交易策略的全新范式。
✨ 核心功能
本项目通过五大模块的精密协作,构建了一个真正意义上的AI自主交易生态:🧠 宗师级AI交易员 (Grandmaster AI Trader)
- Agentic 工作流: AI遵循一套类ReAct(Reason + Act)的思考模式,严格按照
Prepare -> Scan -> Act -> Conclude的标准作业程序(SOP)进行循环。每一步都依赖于工具返回的结构化报告,而非凭空想象。
- “交易法则”系统:
prompts.py中定义了一套极其详尽的系统级指令,堪称AI的“交易法则”。它包含了:
Relative Spread Cost) 概念,让AI能根据不同资产类别(如主流外汇、贵金属、加密货币)的价差百分比,智能判断市场流动性,规避高交易成本陷阱。
- 信号评级系统: 将潜在交易机会严格划分为A、B、C三等,并明确“无交易”区域,杜绝低质量出手。
- 精细化执行指令: 对不同信号(如Pin Bar的挂单入场 vs. Inside Bar的突破入场)有不同的执行细则。
- 利润阶梯管理: 内置一套完整的仓位管理策略,用于分批止盈和移动止损。
- 多模型兼容: 在
config/mt4_config.json中可轻松切换 OpenAI (GPT-4o), DeepSeek, Moonshot (Kimi) 等多种LLM,为您的AI交易员选择不同风格的“大脑”。
- 完全透明的决策日志: AI的每一步思考(Thought)、工具调用(Tool Calls)和观察(Observation)都被完整记录并展示在GUI中,让您能深入复盘AI的每一个决策细节。
🛠️ 工作流驱动的二级工具系统 (Workflow-Driven Two-Tier Tool System)
- 高级工作流工具 (
Flow Tools): 位于src/tools/toolflows.py,这是AI主要的交互接口。executeprepareflow,executescanflow,executetradeflow,executemanagement_flow四大工作流将数十个原子操作封装成高级指令,极大地提高了AI决策效率,并强制其遵循SOP。
- 全面的原子工具 (
Atomic Tools): 位于src/tools/各文件中,提供了超过30个精细化的底层工具,涵盖:
scanforpriceaction) 和谐波/供需区扫描 (scanfor_structures)。
- 动态止损计算: 核心工具 calculatestoplossfrompattern 可根据不同信号类型(Pin Bar, Engulfing, Zone等)的K线形态,动态计算出最合理的止损位置,并内置ATR安全缓冲,防止止损过窄。
- 精准仓位计算: calculatelotsize 工具能根据给定的风险金额、止损距离和品种合约信息,精确计算出符合风控要求的交易手数。
- 全功能交易接口: 封装了从开仓到平仓、从修改到部分平仓的所有MT4交易指令。
- 新闻驱动决策: searchjinaand_read 工具允许AI在做出交易决策前,主动搜索并分析相关新闻,将宏观情绪纳入考量。
🌉 鲁棒的MT4-Python异步桥接 (Robust MT4-Python Async Bridge)
- 文件I/O通信机制: Python后端与MT4 EA (
AITraderfor_MT4.mq4) 之间通过在MQL4/Files目录下读写一系列.txt文件进行通信。这种生产者-消费者模式实现了完全的异步解耦,避免了DLL调用的脆弱性和复杂性,即使在高频读写下也极为稳定。
- 命令与响应系统: Python端生成带唯一ID的命令文件(如
AICommands1.txt),EA轮询检测并执行,然后将结果写入对应的响应文件(如AI_xxxxx.txt)。
- 实时数据流: EA持续将账户信息、持仓订单、市场报价、新K线等数据写入
AIOrders.txt,AIMarket_Data.txt等文件,Python端实时监控这些文件以获取最新市场状态。
🗄️ 数据库增强与高级状态管理 (Database Enhancement & Advanced State Management)
- SQLite 数据库核心: 项目使用
src/services/orderdbmanager.py管理一个本地SQLite数据库,它不仅是MT4订单的镜像,更是增强的数据中心。
- 评论区状态管理: 所有由AI开出的订单,其
Comment都遵循L=0;G=A;S=PIN;M=N;ID=xxxx的严格格式。数据库会解析这个Comment,并将其作为结构化数据存储,用于高级的仓位管理。
L: 利润阶梯(Ladder)等级。
- G: 交易评级(Grade)。
- S: 信号类型(Signal)。
- M: 管理状态(Management)。
- ID: 唯一交易ID。
- 部分平仓与订单继承: 当一个订单被部分平仓时,MT4会关闭原订单并生成一个新订单。本系统能智能捕捉这一行为,并在数据库中将新订单的
extends字段指向原订单,同时继承原订单的所有AI元数据(如交易ID、评级等),确保了管理逻辑的连续性。
- 数据预计算与缓存: 数据库会为新订单预先计算并存储所有的利润阶梯(TP1-TP8)价格,极大加速了后续的管理决策过程。
🖥️ 直观的PyQt5图形化界面 (Intuitive PyQt5 GUI)
- 一站式指挥中心: 基于 PyQt5 和 qasync(实现PyQt与asyncio的无缝结合)构建,提供了一个流畅不卡顿的图形界面。
- 参数化配置: 在GUI中即可方便地选择AI模型、策略档案,并管理API密钥。
- 实时数据展示: 主界面清晰地展示了账户净值、持仓列表、AI状态以及详细的思考日志。
- 内置图表工具: 集成了 pyqtgraph,可以快速调出任一交易对的K线图进行预览。
📸 软件截图
软件主界面:集成了AI代理配置、策略选择、账户状态和实时持仓,所有信息一目了然。
AI思考日志:实时展示AI的完整决策链。
AI思考日志:实时展示AI的完整决策链。
内置的K线图表查看器:支持查看K线、指标和形态,双击持仓即可快速打开。
🚀 快速开始
系统要求
- 操作系统: Windows (因为 MetaTrader 4 主要是 Windows 平台)。
- Python: 3.8 或更高版本。
- 交易平台与API:
toolnews 新闻搜索功能。 |
安装与启动
本项目提供两种安装方式,请根据您的需求选择其一:方式一:小白版 (推荐) - 直接运行
这种方式最简单,无需安装 Python 环境,适合希望直接使用的用户。- 下载预编译包:
AI-Trader-For-MT4.zip 的文件。
- 将 AI-Trader-For-MT4.zip 解压到您希望安装的任意位置(例如 D:\AI-Trader)。
- 配置 MT4 Expert Advisor (EA):
文件(File) -> 打开数据文件夹(Open Data Folder)。
- 在弹出的文件夹中,进入 MQL4/Experts/ 目录。
- 将您刚刚解压的文件夹中的 MQL4/Experts/AITraderfor_MT4.mq4 文件复制到这里。
- 返回 MT4 终端,在左侧“导航器(Navigator)”窗口中,右键点击“EA交易(Expert Advisors)”并选择“刷新(Refresh)”。
- AITraderfor_MT4 现在应该会出现在列表中。将其拖拽到任意一个图表上。在弹出的配置窗口中,切换到“常用(Common)”标签,确保 “允许DLL导入(Allow DLL imports)” 和 “允许实时自动交易(Allow live trading)” 均已勾选。点击“确定”后,图表右上角应出现一个😊笑脸图标。
- 配置 API Keys 和 MT4 路径:
.env.example 文件,将其复制一份并重命名为 .env。
- 打开 .env 文件,填入您的LLM API密钥和Jina API密钥。
- [关键步骤] 找到并修改 MT4DATAPATH 变量。此路径必须是您在第2步中打开的MT4数据文件夹下的 MQL4/Files 目录的绝对路径。
# 示例:
MT4DATAPATH="C:/Users/YourUsername/AppData/Roaming/MetaQuotes/Terminal/YOURTERMINALID/MQL4/Files"
- 运行程序:
AI-Trader-For-MT4.exe 文件即可启动程序。
方式二:开发者版 - 从源码运行
这种方式适合希望研究、修改或贡献代码的开发者。- 克隆本仓库:
git clone https://github.com/toki-plus/ai-trader-for-mt4.git
cd ai-trader-for-mt4
- 配置 MT4 Expert Advisor (EA):
- 创建并激活 Python 虚拟环境 (推荐):
python -m venv venv
# Windows 系统
venv\Scripts\activate
- 安装依赖库:
pip install -r requirements.txt
- 配置 API Keys 和 MT4 路径:
- 运行程序:
python main.py
📖 使用指南
- 启动与连接:
AITraderfor_MT4 EA 正在一个图表上活动(右上角有😊笑脸)。
- 运行 python main.py 启动 Python 主程序。
- 观察GUI左上角,MT4 Connection Settings 应显示为绿色“Connected”,代表与MT4通信成功。
- 配置AI人格与策略:
DeepSeek)。
- 在 Strategy Profile 下拉菜单中选择一个交易档案。这决定了AI的交易节奏(15-Minute 对应快节奏日内交易,4-Hour 对应慢节奏波段交易)。
- 启动自主交易:
- 观察与学习:
⚠️ 重要免责声明
本项目仅供技术学习和研究目的使用。自动化交易系统固有高风险,可能导致重大的财务损失。强烈建议您仅在模拟账户(Demo Account)上运行此项目进行测试和验证。切勿在真实资金账户上使用。作者不对任何因使用此软件(或其任何部分)而直接或间接导致的财务损失或其他任何形式的损失负责。在真实账户上运行此软件的风险完全由您自行承担。
业务定制与技术交流,请添加:
个人微信 微信号: toki-plus (请备注来意,否则不通过) |
公众号 获取最新技术分享 |
📂 我的其他开源项目
- AI-Trader-For-MT5: 面向 MetaTrader 5 的 AI 交易助手与 EA 工程化框架,支持 MQL5、Python、MCP 工具服务、风控模块和私有化定制开发。
- Netease Downloader: 一款优雅、功能丰富的网易云音乐下载器,支持无损/高品质音质、歌单/专辑批量下载、扫码登录和自动写入ID3元数据。
- Auto USPS Tracker: 专为跨境电商卖家设计的 USPS 批量物流追踪器,支持批量查询并生成 Excel 报告。
- AI Mixed Cut: AI 内容重构与混剪工具,通过“解构-重构”模式将现有视频解析为创作素材,并自动生成新的短视频内容。
- AI Video Workflow: 全自动 AI 原生视频生成工作流,集成文生图、图生视频和文生音乐模型,一键创作 AIGC 短视频。
- AI Highlight Clip: AI 驱动的智能剪辑工具,自动从长视频中分析并提取高光片段,生成适合分发的短视频内容。
- AI TTV Workflow: AI 驱动的文本转视频工具,自动将文案转化为带配音、字幕和封面的短视频。
- AB Video Deduplicator: 视频去重与指纹重构工具,通过高帧率抽帧混合等方式改变视频数据特征。
- Video Mover: 全自动内容创作流水线,支持视频监听下载、多维度处理、AI 标题生成和多平台发布。
🤝 参与贡献
欢迎任何形式的贡献!如果你有新的功能点子、发现了Bug,或者有任何改进建议,请:- 提交一个 Issue 进行讨论。
- Fork 本仓库并提交 Pull Request。