toki-plus
ai-trader-for-mt4
Python

一个用于将大型语言模型 (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.

Last updated Jun 29, 2026
26
Stars
9
Forks
0
Issues
0
Stars/day
Attention Score
69
Language breakdown
Python 100.0%
Files click to expand
README

# AI-Trader-For-MT4: LLM驱动的自主型MT4交易机器人框架 简体中文 | English GitHub stars GitHub forks PRs Welcome MIT License AI-Trader-For-MT4 是一款革命性的、开源的AI交易解决方案,它通过赋予大语言模型(LLM)一套“交易法则”和完备的工具集,将LLM从一个对话工具转变为一个能够独立在 MetaTrader 4 (MT4) 平台上进行“感知-思考-行动”的自主交易代理(Agent)。 本项目旨在为量化交易者、策略研究员和开发者提供一个终极框架,让您能够将自己复杂的交易哲学、风控纪律和操作流程,通过高度结构化的Prompt“灌输”给AI,并由AI严格、自主地执行。它彻底摆脱了传统EA编程的束缚,进入一个通过自然语言定义和迭代交易策略的全新范式。

点击观看B站演示视频(暂未录制)
(点击封面图跳转到 B 站观看高清演示视频)


✨ 核心功能

本项目通过五大模块的精密协作,构建了一个真正意义上的AI自主交易生态:

🧠 宗师级AI交易员 (Grandmaster AI Trader)

  • 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的每一个决策细节。

🛠️ 工作流驱动的二级工具系统 (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个精细化的底层工具,涵盖:
- 市场分析与形态识别: 从基础的K线获取,到自动化的价格行为扫描 (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)

  • 一站式指挥中心: 基于 PyQt5qasync(实现PyQt与asyncio的无缝结合)构建,提供了一个流畅不卡顿的图形界面。
  • 参数化配置: 在GUI中即可方便地选择AI模型、策略档案,并管理API密钥。
  • 实时数据展示: 主界面清晰地展示了账户净值、持仓列表、AI状态以及详细的思考日志。
  • 内置图表工具: 集成了 pyqtgraph,可以快速调出任一交易对的K线图进行预览。

📸 软件截图

软件主界面
软件主界面:集成了AI代理配置、策略选择、账户状态和实时持仓,所有信息一目了然。

AI思考日志
AI思考日志:实时展示AI的完整决策链。

AI思考日志
AI思考日志:实时展示AI的完整决策链。

K线图表查看器
内置的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 | 可选。用于 toolnews 新闻搜索功能。 |

安装与启动

本项目提供两种安装方式,请根据您的需求选择其一:

方式一:小白版 (推荐) - 直接运行

这种方式最简单,无需安装 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/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):
- (此步骤与“小白版”中的第2步完全相同,请参考上文)
  • 创建并激活 Python 虚拟环境 (推荐):
python -m venv venv
     # Windows 系统
     venv\Scripts\activate
  • 安装依赖库:
pip install -r requirements.txt
  • 配置 API Keys 和 MT4 路径:
- (此步骤与“小白版”中的第3步完全相同,请参考上文)
  • 运行程序:
python main.py

📖 使用指南

  • 启动与连接:
- 确保您的 MT4 终端已运行,并且 AITraderfor_MT4 EA 正在一个图表上活动(右上角有😊笑脸)。 - 运行 python main.py 启动 Python 主程序。 - 观察GUI左上角,MT4 Connection Settings 应显示为绿色“Connected”,代表与MT4通信成功。
  • 配置AI人格与策略:
- 在 "AI Agent Configuration" 区域,从 AI Model 下拉菜单中选择一个“大脑”(如 DeepSeek)。 - 在 Strategy Profile 下拉菜单中选择一个交易档案。这决定了AI的交易节奏(15-Minute 对应快节奏日内交易,4-Hour 对应慢节奏波段交易)。
  • 启动自主交易:
- 点击 "RUN" 按钮。 - AI代理将进入激活状态,并开始按照其内部“交易法则”和SOP进行周期性的市场分析、仓位管理和交易决策。
  • 观察与学习:
- "Logs" 区域是您的主监视窗口。您可以在这里实时看到AI的完整思考过程,理解它为何做出或不做出某个决策。 - "MT4 Open Positions" 区域会实时同步您在MT4中的持仓情况。 - 要停止AI,请点击 "STOP"。AI会在完成当前决策循环后安全、优雅地停止。

⚠️ 重要免责声明

本项目仅供技术学习和研究目的使用。自动化交易系统固有高风险,可能导致重大的财务损失。
强烈建议您仅在模拟账户(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 进行讨论。
如果这个项目对你有帮助,请不吝点亮一颗 ⭐!

📜 开源协议

本项目基于 MIT 协议开源。详情请见 LICENSE 文件。

🔗 More in this category

© 2026 GitRepoTrend · toki-plus/ai-trader-for-mt4 · Updated daily from GitHub