AI-Trader-For-MT4 是一款革命性的、开源的AI交易解决方案,它通过赋予大语言模型(LLM)一套“交易法则”和完备的工具集,将LLM从一个对话工具转变为一个能够独立在 MetaTrader 4 (MT4) 平台上进行“感知-思考-行动”的自主交易代理(Agent)。
本项目旨在为量化交易者、策略研究员和开发者提供一个终极框架,让您能够将自己复杂的交易哲学、风控纪律和操作流程,通过高度结构化的Prompt“灌输”给AI,并由AI严格、自主地执行。它彻底摆脱了传统EA编程的束缚,进入一个通过自然语言定义和迭代交易策略的全新范式。
本项目通过五大模块的精密协作,构建了一个真正意义上的AI自主交易生态:
- Agentic 工作流: AI遵循一套类ReAct(Reason + Act)的思考模式,严格按照
Prepare -> Scan -> Act -> Conclude的标准作业程序(SOP)进行循环。每一步都依赖于工具返回的结构化报告,而非凭空想象。 - “交易法则”系统:
prompts.py中定义了一套极其详尽的系统级指令,堪称AI的“交易法则”。它包含了:- 核心哲学: 如“生存第一,盈利第二”、“三周期共振”等。
- 绝对法则: 如单笔2%最大风险、组合9%最大风险、最多10个持仓等铁律。
- 流动性审查: 独创的相对价差成本 (
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的每一个决策细节。
- 高级工作流工具 (
Flow Tools): 位于src/tools/tool_flows.py,这是AI主要的交互接口。execute_prepare_flow,execute_scan_flow,execute_trade_flow,execute_management_flow四大工作流将数十个原子操作封装成高级指令,极大地提高了AI决策效率,并强制其遵循SOP。 - 全面的原子工具 (
Atomic Tools): 位于src/tools/各文件中,提供了超过30个精细化的底层工具,涵盖:- 市场分析与形态识别: 从基础的K线获取,到自动化的价格行为扫描 (
scan_for_price_action) 和谐波/供需区扫描 (scan_for_structures)。 - 动态止损计算: 核心工具
calculate_stop_loss_from_pattern可根据不同信号类型(Pin Bar, Engulfing, Zone等)的K线形态,动态计算出最合理的止损位置,并内置ATR安全缓冲,防止止损过窄。 - 精准仓位计算:
calculate_lot_size工具能根据给定的风险金额、止损距离和品种合约信息,精确计算出符合风控要求的交易手数。 - 全功能交易接口: 封装了从开仓到平仓、从修改到部分平仓的所有MT4交易指令。
- 新闻驱动决策:
search_jina_and_read工具允许AI在做出交易决策前,主动搜索并分析相关新闻,将宏观情绪纳入考量。
- 市场分析与形态识别: 从基础的K线获取,到自动化的价格行为扫描 (
- 文件I/O通信机制: Python后端与MT4 EA (
AI_Trader_for_MT4.mq4) 之间通过在MQL4/Files目录下读写一系列.txt文件进行通信。这种生产者-消费者模式实现了完全的异步解耦,避免了DLL调用的脆弱性和复杂性,即使在高频读写下也极为稳定。 - 命令与响应系统: Python端生成带唯一ID的命令文件(如
AI_Commands_1.txt),EA轮询检测并执行,然后将结果写入对应的响应文件(如AI_xxxxx.txt)。 - 实时数据流: EA持续将账户信息、持仓订单、市场报价、新K线等数据写入
AI_Orders.txt,AI_Market_Data.txt等文件,Python端实时监控这些文件以获取最新市场状态。
- SQLite 数据库核心: 项目使用
src/services/order_db_manager.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 和 qasync(实现PyQt与asyncio的无缝结合)构建,提供了一个流畅不卡顿的图形界面。
- 参数化配置: 在GUI中即可方便地选择AI模型、策略档案,并管理API密钥。
- 实时数据展示: 主界面清晰地展示了账户净值、持仓列表、AI状态以及详细的思考日志。
- 内置图表工具: 集成了 pyqtgraph,可以快速调出任一交易对的K线图进行预览。
软件主界面:集成了AI代理配置、策略选择、账户状态和实时持仓,所有信息一目了然。
内置的K线图表查看器:支持查看K线、指标和形态,双击持仓即可快速打开。
- 操作系统: Windows (因为 MetaTrader 4 主要是 Windows 平台)。
- Python: 3.8 或更高版本。
- 交易平台与API:
软件/工具 下载/安装说明 备注 MetaTrader 4 官方网站 或您的经纪商网站 必须。本程序的核心交易终端。 LLM API Keys OpenAI, DeepSeek, Moonshot 至少需要一个。用于驱动AI交易员。 Jina API Key Jina AI Cloud 可选。用于 tool_news新闻搜索功能。
本项目提供两种安装方式,请根据您的需求选择其一:
这种方式最简单,无需安装 Python 环境,适合希望直接使用的用户。
-
下载预编译包:
- 访问本项目的 Releases 页面。
- 在最新版本中,下载名为
AI-Trader-For-MT4.zip的文件。 - 将
AI-Trader-For-MT4.zip解压到您希望安装的任意位置(例如D:\AI-Trader)。
-
配置 MT4 Expert Advisor (EA):
- 打开您的 MT4 终端,点击菜单栏
文件(File)->打开数据文件夹(Open Data Folder)。 - 在弹出的文件夹中,进入
MQL4/Experts/目录。 - 将您刚刚解压的文件夹中的
MQL4/Experts/AI_Trader_for_MT4.mq4文件复制到这里。 - 返回 MT4 终端,在左侧“导航器(Navigator)”窗口中,右键点击“EA交易(Expert Advisors)”并选择“刷新(Refresh)”。
AI_Trader_for_MT4现在应该会出现在列表中。将其拖拽到任意一个图表上。在弹出的配置窗口中,切换到“常用(Common)”标签,确保 “允许DLL导入(Allow DLL imports)” 和 “允许实时自动交易(Allow live trading)” 均已勾选。点击“确定”后,图表右上角应出现一个😊笑脸图标。
- 打开您的 MT4 终端,点击菜单栏
-
配置 API Keys 和 MT4 路径:
- 在您解压的程序文件夹中,找到
.env.example文件,将其复制一份并重命名为.env。 - 打开
.env文件,填入您的LLM API密钥和Jina API密钥。 - [关键步骤] 找到并修改
MT4_DATA_PATH变量。此路径必须是您在第2步中打开的MT4数据文件夹下的MQL4/Files目录的绝对路径。# 示例: MT4_DATA_PATH="C:/Users/YourUsername/AppData/Roaming/MetaQuotes/Terminal/YOUR_TERMINAL_ID/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):
- (此步骤与“小白版”中的第2步完全相同,请参考上文)
-
创建并激活 Python 虚拟环境 (推荐):
python -m venv venv # Windows 系统 venv\Scripts\activate
-
安装依赖库:
pip install -r requirements.txt
-
配置 API Keys 和 MT4 路径:
- (此步骤与“小白版”中的第3步完全相同,请参考上文)
-
运行程序:
python main.py
-
启动与连接:
- 确保您的 MT4 终端已运行,并且
AI_Trader_for_MT4EA 正在一个图表上活动(右上角有😊笑脸)。 - 运行
python main.py启动 Python 主程序。 - 观察GUI左上角,
MT4 Connection Settings应显示为绿色“Connected”,代表与MT4通信成功。
- 确保您的 MT4 终端已运行,并且
-
配置AI人格与策略:
- 在 "AI Agent Configuration" 区域,从 AI Model 下拉菜单中选择一个“大脑”(如
DeepSeek)。 - 在 Strategy Profile 下拉菜单中选择一个交易档案。这决定了AI的交易节奏(
15-Minute对应快节奏日内交易,4-Hour对应慢节奏波段交易)。
- 在 "AI Agent Configuration" 区域,从 AI Model 下拉菜单中选择一个“大脑”(如
-
启动自主交易:
- 点击 "RUN" 按钮。
- AI代理将进入激活状态,并开始按照其内部“交易法则”和SOP进行周期性的市场分析、仓位管理和交易决策。
-
观察与学习:
- "Logs" 区域是您的主监视窗口。您可以在这里实时看到AI的完整思考过程,理解它为何做出或不做出某个决策。
- "MT4 Open Positions" 区域会实时同步您在MT4中的持仓情况。
- 要停止AI,请点击 "STOP"。AI会在完成当前决策循环后安全、优雅地停止。
本项目仅供技术学习和研究目的使用。自动化交易系统固有高风险,可能导致重大的财务损失。
强烈建议您仅在模拟账户(Demo Account)上运行此项目进行测试和验证。切勿在真实资金账户上使用。
作者不对任何因使用此软件(或其任何部分)而直接或间接导致的财务损失或其他任何形式的损失负责。在真实账户上运行此软件的风险完全由您自行承担。
业务定制与技术交流,请添加:
个人微信 微信号: toki-plus (请备注“GitHub定制”) |
公众号 获取最新技术分享 |
- 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。
如果这个项目对你有帮助,请不吝点亮一颗 ⭐!
本项目基于 MIT 协议开源。详情请见 LICENSE 文件。



