从这里开始在线交易
ZH /zh/interesting-articles/mt4-bots/write-trading-bot/
AR Arabic
AZ Azerbaijan
CS Czech
DA Danish
DE Deutsche
EL Greek
EN English
ES Spanish
ET Estonian
FI Finnish
FR French
HE Hebrew
HI Hindi
HU Hungarian
IND Indonesian
IT Italian
JA Japan
KK Kazakh
KM Khmer
KO Korean
MS Melayu
NB Norwegian
NL Dutch
PL Polish
PT Portuguese
RO Romanian
... Русский
SV Swedish
TH Thai
TR Turkish
UA Ukrainian
UZ Uzbek
VI Vietnamese
ZH Chinese

如何构建交易机器人 |
新手指南

编辑说明:虽然我们遵循严格的编辑原则,但本篇文章可能包含对我们合作伙伴产品的引用。这里是关于我们如何赚钱的解释。本网页上的数据和信息不构成投资建议,详见我们的免责声明

如何编写交易机器人代码:

构建一个交易机器人看似是一项艰巨的任务,但只要掌握正确的技巧,它是可以实现的。交易机器人或自动交易系统允许您根据预先设定的策略执行交易。这样就无需持续监控和人工干预。我们将逐步介绍如何构建自己的交易机器人:从选择合适的平台和编程语言到编码、测试和优化。无论您是编程新手还是刚刚开始算法交易,本指南都将帮助您为构建适合自己交易风格的交易机器人奠定基础。

如何编写交易机器人代码

交易机器人 是一种将金融市场交易过程自动化的软件。它分析市场数据,并根据指定的算法和策略自动执行交易。使用交易机器人可以让交易者快速应对市场变化,将人为因素的影响降至最低。

交易机器人主要有两种类型:

  • 自动 - 完全独立分析市场并执行交易,交易者无需参与。

  • 半自动(顾问)--提供交易建议,由交易者做出最终决定。

创建交易机器人有三种方法:

方案 1:联系专家

您可以在 MQL5 平台或自由交流平台上找到编写交易机器人的程序员。

优点

  • 快速实现想法;

  • 可以选择专家。

方案 2:自己编写代码

这条路适合那些想学习创建机器人过程的人。经过基本培训后,即使是简单的机器人也能编写出来,而且可用的在线资源将有助于培养技能。

优点

  • 能够逐一实现想法;

  • 从代码层面了解机器人的工作;

  • 对创意完全保密。

选择 3:使用代码生成器

使用在线代码生成器可以简化 MetaTrader 4 交易机器人的创建过程。这些平台允许您以 ex4 格式开发简单的交易机器人,与 MT4 兼容。

Create a trading robot online for free免费在线创建交易机器人

这个过程通常包括

  1. 添加指标。选择为您的交易决策提供依据的技术指标。

  2. 创建条件。根据所选指标定义触发交易的具体标准或规则。

  3. 实施资本管理策略。制定管理交易规模、风险水平和整体资本分配的准则。

  4. 导出交易机器人。生成最终的 ex4 文件,上传到 MT4 平台执行。

优势:

  • 如果可以使用设计器中的现有功能来实现,您将很快获得机器人。

其中许多工具都是免费的,没有编程技能的交易者也可以使用。

从哪里开始

您应该从搜索想法开始。例如

  • 您注意到市场经常错误地突破整数关口;

  • 您发现了价格和交易量之间相互作用的依赖性;

  • 你在书中读到了关于交易策略的描述。

如果能用分步说明的方式清楚地概述想法,就能将其转化为程序代码。

哪个经纪账户最适合机器人?

设置好交易机器人代码后,将其与合适的交易平台整合。这可以是 TradingView 这样的平台,也可以是 Forex 经纪商或加密货币交易所,具体取决于您的交易偏好。该平台还应支持 API  集成、机器人连接、低费用和 ECN 流动性,以确保一致的点差和最小的滑点。

与机器人合作的经纪人
欧元/美元 ECN 价差 ECN 委员会 应用程序接口 交易机器人(EA) 免费 VPS 开设账户

Pepperstone

0,1 3 开设账户
您的资金是有风险的。

IG Markets

0,8 2,3 研究回顾

Exness

0,1 3 开设账户
您的资金是有风险的。

测试和优化历史记录

创建机器人后,有必要进行测试(回溯测试)并优化其参数。

回溯测试是指根据历史数据对机器人进行测试。这意味着,您需要获取 2017-2019 年的数据,并查看机器人在过去这段时间内根据规则进行的交易。然后对交易数据进行处理,并以报告的形式展示出来,其中包括

  • 执行的交易次数。

  • 总盈利或亏损。

  • 盈亏比。

  • 评估机器人质量的其他指标。

要在 MT4 中打开测试面板,请按 Ctrl+T

Test panel in MT4MT4 中的测试面板

然后,您可以

  • 选择要测试的机器人。机器人的ex4 文件应位于MQL4Experts 文件夹中。在上面的示例中,我们选择了移动平均线交易机器人。它随MT 4 终端一起提供。

  • 选择要测试的交易对。例如,您可以选择EUR/USD

  • 选择测试精度(精度越高,测试时间越长)。

  • 选择测试时间段。处理的历史数据越多,结果就越可靠。

  • 选择时间范围 (5)。

  • 指定点差值(买入价和卖出价之间的差值)。当前表示自动加载点差值。

  • 选择机器人参数。例如,移动平均周期、初始保证金大小。

  • 运行测试。结果选项卡将显示机器人在测试期间进行的交易。

因此,如果您的操作正确无误,很有可能会在 "图表 "选项卡上看到以下图片:

Example of testing a trading robot交易机器人测试示例

这意味着交易机器人正在慢慢损失存款,因为

  • 盈利的数学概率 = 50/50;

  • 最后的损失是由于 每笔交易的 点差(佣金)造成的。

为了纠正这一结果,您可以尝试 "玩弄 "移动平均线的周期、时间框架和货币对。但所有这些 "游戏 "都很可能无法在长距离内获得理想的结果。

但很有可能的是,经过无数次的策略和优化实验(为交易机器人寻找最佳设置)后,您会看到令人印象深刻的曲线,如下图所示。

报告选项卡提供了更多详细信息。

在上面的例子中,报告如下:

  • 测试准确率 = 99.9%,测试误差 = 0。这是一个很高的置信度,可以通过高质量的价格数据库来实现。

  • 通过 9,395 次交易,机器人在 2019 年 2 月至 2023 年 1 月期间成功地将最初的 20,000 美元增长到了 110 万美元。

  • 相对缩水 = 40% 当然很高。而在现实生活中,这会让人神经紧张。

优化在一个时期(例如,在 2015-2018 年的数据上)找到参数,并在另一个时期(2019-2023 年)进行测试。这就是所谓的直接测试。

值得注意的是,不能 100% 依赖测试结果。事实上,您无法完全模拟真实情况,也无法将滑点、利差变化考虑在内。一个大问题是一分钟的数据粒度,这是 MetaTrader 环境中最小的时间框架。但是,价格在一分钟内的变化可以决定交易是止盈还是止损。事实上,MT4 简化了一分钟内发生的情况,以优化数据库,终端运行速度也更快。

但是,专业人士需要达到最高精确度,因此他会购买近 20 年的大型勾选数据库,而您的经纪商很可能不会向您提供这些数据库。经纪商提供的 "平滑 "历史数据可能是机器人在历史数据中显示盈利而在实时数据中遭受损失的原因。

在模拟账户上进行测试

完成机器人的测试和优化后,不要急于切换到真实账户。首先,在模拟账户上测试几个月。这将让机器人经历重大新闻期,并确定可能的改进。

需要注意的事项

  • 硬件和连接:确保您的设备和互联网连接不会干扰机器人的运行。为将风险降至最低,值得考虑使用 VPS。

  • 代码质量:观察结果后,您可能会想修改代码,以考虑到更多的市场情况。

  • 经纪商质量:使用不同经纪商的模拟账户,了解他们的选择是否会影响机器人的效率。

假设机器人在4个月内使用模拟账户进行了40次交易,存款增加了7.45%,缩水率为6%。在历史测试模式下运行同期的交易,检查结果的匹配情况。结果之间的微小差异是正常的。重要的是,差异要小;在这种情况下,结果才是可靠的。

在真实账户上启动

如果您已经正确完成了所有步骤并达到了这一步,那么客观地说,您已经很棒了。因为初学者通常会操之过急,将匆忙获得的交易机器人放到真实账户上,以便尽快获利。不幸的是,这种方法会造成存款损失。最主要的是要小心谨慎,保护好自己的本金。如果您要在真实账户上交易机器人,首先要为早期测试交易分配少量资金。

然后看看真实账户上的结果是否与模拟账户和历史记录上的结果有偏差。也许你会遇到下面这种情况:

两个账户--模拟账户和真实账户--同时在一家信誉良好的经纪商处交易。但模拟账户显示盈利,而真实账户则显示亏损,尽管一切都完全相同。

典型的剥头皮机器人会在价格冲动时进行交易。交易持续时间以秒为单位,执行质量变得至关重要。真实账户和模拟账户的执行质量不同。因此,在开发机器人时,应优先考虑与剥头皮交易无关的想法。

如何创建 MT4 交易机器人

可以使用 MetaTrader 4 (MT4) 平台创建为交易者执行交易的自动系统。它拥有所有编程工具。这一过程可简化为六个步骤:

  1. 确定策略。首先,确定资产和交易方法。根据基本面和技术分析决定交易时间和条件,这将极大地影响机器人的有效性。

  2. 选择编程语言。MT4 支持 MQL 4,它是创建机器人的常用语言。对于高级功能,您可以使用MQL 5,它也适用于 MT5 平台。

  3. 学习 MQL4 的基础知识。掌握变量、语法和基本逻辑的概念。练习编写简单的脚本有助于加深理解和提高技能。

  4. 编写代码。将策略合成为代码。设置进入和退出交易的参数、资金管理和变量,以便灵活定制。

  5. 优化机器人。确定关键指标,对算法进行回溯测试,了解其在模拟条件下的运行情况。

  6. 在模拟账户上进行测试。使用模拟账户测试机器人在当前市场数据下的表现。测试成功后,您就可以进行真实交易了。

我能赚多少钱?

实事求是,不要建造空中楼阁,也不要认为一个简单的策略就能让你发财。以下是一个知名网站的数据,该网站销售专家设计的股市资产管理策略。业绩 "一栏显示每年的回报率为 6% 至 18%。这才是现实。

交易机器人可以在自动模式下工作吗?

理论上可以。但无人值守是有风险的。我们建议您根据长期更新的历史数据对其进行测试和优化,使机器人的设置符合当前的市场条件。市场会随着全球宏观经济周期的变化而变化。

算法交易员的错误

在创建交易机器人时,初学者经常会犯一些常见错误。

  • 过度依赖历史业绩。假设过去的成功保证了未来的利润,这会导致过度自信。市场条件在变,策略也需要适应。

  • 测试不足。在真实账户上使用机器人,而不进行彻底的回溯测试和模拟试验,可能会导致损失。适当的测试有助于在冒真金白银的风险之前发现问题。

  • 盲目信任 "黑箱 "策略。在不了解系统如何运作的情况下依赖系统会有风险。了解策略的机制对判断其潜力非常重要。

  • 过度优化。过度微调机器人以适应历史数据可能会导致曲线拟合,即过去运行良好,但在实际市场中却失灵。保持策略简单可靠。

  • 选择错误的经纪商。选择不支持算法交易或条件较差的经纪商可能会损害结果。确保经纪商满足你的交易需求。

  • 不切实际的盈利预期。期望快速获利,尤其是使用剥头皮机器人,会导致失望和冒险行为。设定现实的目标并了解风险。

  • 忽视市场事件。在重大新闻发布期间运行机器人,会使其面临波动、不可预测的走势。在这种情况下,应采取保护措施或暂停交易。

  • 滥用马丁格尔策略。这包括在亏损后将交易规模翻倍,以一次获胜挽回损失。这种方法需要大量资金,在连败时会迅速耗尽账户资金。一般不建议采用这种高风险的方法。

深入研究市场微观结构的细微差别至关重要

Anastasiia Chabaniuk 作者,Traders Union 财务专家

要制作一个有效的交易机器人,深入研究市场微观结构的细微差别至关重要。这包括了解订单流的机制、流动性以及不同市场参与者的行为。通过分析大型机构订单如何影响价格走势以及识别交易执行的模式,您可以开发出比传统技术指标更能准确预测短期市场波动的算法。这种深入的洞察力能让交易机器人做出更明智的决策,提高其在实时交易环境中的表现。

另一个重要方面是 在交易机器人中整合自适应学习机制。 整合机器学习模型可以让系统随着市场条件的变化而发展。例如,实施强化学习可以让机器人从交易结果中学习,根据实时反馈不断改进策略。这种动态适应性可确保您的交易机器人即使在市场动态发生变化时也能保持稳健和有效,与静态的、基于规则的系统相比具有显著优势。

结论

构建交易机器人是一个令人兴奋的过程,它为自动交易开辟了新的可能性。按照所述步骤,您将能够建立一个基本模型,对其进行测试并逐步优化。重要的是要记住,一个好的机器人需要定期更新并适应不断变化的市场条件。从简单的策略开始,逐步发展,将风险降到最低。只要有耐心,多加练习,交易机器人就能成为您实现财务目标的可靠工具。

常见问题

如何选择测试机器人的时间框架?

建议使用几年的数据对机器人进行测试,包括高波动期和市场平静期。这将显示机器人在不同条件下的稳定性,并有助于避免只针对当前趋势进行优化。

我可以在一个机器人中使用多种策略吗?

可以,可以将多个策略结合起来,使机器人能够适应不同的市场条件。例如,将趋势策略与反趋势策略相结合,有助于在不利的市场阶段减少损失。

我应该多久更新一次机器人算法?

建议至少每季度一次或在市场发生突然变化时审查和优化算法。这将使您能够考虑到新的市场条件,并将机器人的过时率降至最低。

使用交易机器人有什么风险?

主要风险包括对技术基础设施的依赖、代码中的错误和市场条件的突然变化。建议使用止损,定期监控机器人的性能,避免过于激进的策略。

文章编辑团队

Andrey Mastykin
作者,Traders Union 金融专家

Andrey Mastykin 是一名经验丰富的作者、编辑和内容策略师,从2020年便开始与 Traders Union 合作。作为一名编辑,他对事实核查以及确保所有发布在 Traders Union 平台上的所有信息的准确性一丝不苟。Andrey 专注于为读者提供交易金融市场领域的潜在奖励和风险方面的教育。

他坚定地认为被动投资对于大部分的散户而言是更合适的策略。Andrey 保守的尝试和专注于风险管理与很多读者产生共鸣,使其成为了金融信息的可靠来源。

此外,安德烈还是乌克兰国家记者联盟的成员(会员证号 4574,国际证书 UKR4492)。

新手交易者術語表
加密货币

加密货币是一种数字或虚拟货币,其安全性依赖于密码学。与政府发行的传统货币(法定货币)不同,加密货币在去中心化网络上运行,通常基于区块链技术。

算法交易

算法交易是一种先进的方法,依赖于基于数学模型的高级编码和公式。不过,与传统交易方法相比,它的不同之处在于交易过程是自动化的。

ECN

ECN 即电子通信网络,是一种将交易者与市场参与者直接连接起来的技术,有助于透明、直接地进入金融市场。

风险管理

风险管理是一种风险管理模式,包括控制潜在损失,同时最大限度地提高利润。主要的风险管理工具有止损、止盈、计算头寸量并考虑杠杆和点值。

交易执行

交易执行是指了解如何以合适的价格下单和平仓。这是将您的交易计划转化为实际行动的关键,对您的利润有直接影响。