文章 "如何利用 MQL5 创建简单的多币种智能交易系统(第 2 部分):指标信号:多时间帧抛物线 SAR 指标"

 

新文章 如何利用 MQL5 创建简单的多币种智能交易系统(第 2 部分):指标信号:多时间帧抛物线 SAR 指标已发布:

本文中的多币种智能交易系统是智能交易系统或交易机器人,它仅在一个品种图表上就能交易(开单、平单、和管理订单,例如:尾随停损和止盈)超过 1 个交易品种对。这次我们只用 1 个指标,即抛物线 SAR 或 iSAR, 将其应用在 PERIOD_M15 到 PERIOD_D1 的多个时间帧。

多币种智能交易系统将用 1 个指标信号,但有 5 个时间帧,始自 PERIOD_M15、PERIOD_M30、PERIOD_H1、PERIOD_H4 和 PERIOD_D1。

在该智能交易系统中,它不使用固定的时间帧来计算指标信号,故无需检测信号计算时间帧。

这意味着 FXSAR_MTF_MCEA 智能交易系统可在从 PERIOD_M1 到 PERIOD_MN1 的任何时间帧内使用,并且 FXSAR_MTF_MCEA 仍将基于 iSAR PERIOD_M15、PERIOD_M30、PERIOD_H1、PERIOD_H4 和 PERIOD_D1 计算信号。

这五个抛物线 SAR 时间帧将检测开单的信号。

同时,在订单处于盈利条件下,若 iSAR 指标 PERIOD_M15 的信号疲软时平单。

若要尾随止损和止盈,则用 iSAR 指标的 PERIOD_H1。


iSAR 信号条件策略公式:

上行 =(PRICE_LOW[0] 大于 iSAR 线),或 PRICE_LOW[0] > iSAR[0]

下行 =(PRICE-HIGH[0] 小于 iSAR 线),或 PRICE-HIGH[0] < iSAR[0]

从哪里获得买入信号或卖出信号:

五个 iSAR 指标时间帧,必须总计 5 x 上行是为买入,5 x 下行是为卖出。

iSAR 指标买入和卖出的描绘,参见图例 1

iSAR_Signal 买入和卖出

作者:Roberto Jacobs

 

老板,我学到了一些关于多品种和多周期的想法,以及一些绘制图表的方法。非常实用。

感谢您的分享

 
cloudchina #:

老板,我学到了关于多品种和多周期的一些想法,以及一些绘制图表的方法。非常实用。

感谢您的分享

不客气

 
请详细说明对不同配对的优化结果......是返回每对配对的最佳结果,还是返回所有配对的最佳结果?
 
Camilo Mora #:
请详细说明不同货币对的优化结果......是返回每个货币对的最佳结果?

此 Expert Advisor 不只交易单一货币对,还交易多货币或多货币对。所以测试结果是针对所有货币对的(提供 30 个货币对)。

 
您有没有比较过运行整个 EA 的时间,比如在 30 个货币对中运行 1 个循环所需的时间? 如果在每个图表上运行 30 个单一货币 EA,需要多少时间?一个相关的问题是,如果在每个刻度线或每个条形图上运行这个多货币 EA,在下一个刻度线或条形图到来之前,是否已经完成了一个完整循环的操作?考虑到其他 EA 的运行速度,我觉得该 EA 的回测 速度很慢。
 

它当然慢!它的计算量是 "快速 EA "的 30 倍,试着同时运行 30 个快速 EA,看看会发生什么。 我敢打赌,这个 EA 的速度要快得多。 如果测试运行中 75% 以上的胜率保持不变,那么在 4 次交易中赢 3 次的情况下,谁还会在乎速度呢?

对于多币种 EA,手动优化代码是必要的。查看循环以移动静态赋值,在循环和函数中使用局部变量以减少计算,确保同一函数不被多次调用,通过将一次性调用和静态计算移动到全局变量中,在 OnInit 函数中完成尽可能多的工作,等等等等。

要解决符号前缀后缀问题,可以考虑为每个符号使用 2 个变量,一对变量表示 6 chr 名称,另一个变量表示带前缀和后缀的全名。 可以使用字符串函数检查名称,以设置这两个变量。

您可能想创建一个自适应抛物线 止损,更紧密地跟踪柱状图,我认为有几个自适应 PSAR 指标可以作为指导。

不应该低估 Roberto 为这款 EA 所做的工作,它非常重要。

 
CapeCoddah 抛物线 止损,以更紧密地跟踪柱状图,我认为有几个自适应 PSAR 指标可用作指导。

不应该低估 Roberto 为这款 EA 所做的工作,它非常重要。

感谢您的支持。我将撰写一篇文章,添加自动检测和处理具有特殊符号名称、前缀和/或后缀的经纪商的功能。

 

罗伯托

坏消息,从 2023 年 1 月 1 日到 2023 年 1 月 11 日,我在欧元兑美元 H4 上运行了您的 EA,初始余额为 1000 美元。 EA 在不到 3 个月的时间内就使账户破产。 在有 10,000 美元的情况下,它完全运行,但损失了 8,250 美元。 从图表上看,损失从开始到结束都是一致的,没有急剧的高峰或低谷。

首先,不要绝望!外汇交易是艰难的,而设计一个多货币 EA 则更加艰难。 我知道,我正在将一个 EA 从 MQ4 转变为 MQ5。

现在也许是时候实现可变货币对功能了,这样就可以指定货币对,使您能够只在一个货币对上进行测试。 最简单的方法是将货币对字符串作为输入项,并使用 STRSPLIT 分隔字符串中的每个货币对,以便加载货币对。 更好的方法是使用 30 个货币对显示屏,让用户通过在货币对上计时和改变颜色来选择运行的货币对。 最近有两篇 GUI 文章:GUI:提示和技巧......我使用的是后者,但我认为 "窍门与技巧 "可能更好、更完整。 您还应该使用图形用户界面来显示您的数据,我认为这非常好,而不是使用 "评论 "功能

我坚信帕累托法则:80% 的特征来自 20% 的元素。 这意味着总体盈利的 80% 来自 6 对交易,相应地,6 对交易造成了 80% 的损失。

在多货币测试中,必须增强策略测试器对单个货币对的统计,以便识别问题领域和帕累托法则。 需要在货币对级别上使用 BackTest 选项卡的元素,即净利润、毛利润、毛损失等等等等。

我仍然认为,SAR 的自适应过程可以提高您的利润。 如果您看一下您的买入/卖出图表,根据条形图大小的增加来提高 SAR 加速速度的自适应功能,可以使 SAR 在图表上前 4 个买入/卖出图中的利润增加。 这种自适应的灵活性有两个好处:

更重要的是,它可以让下 一笔交易提前 5 美元至 10美元开仓。 因此,灵活的影响可能会为每笔交易带来 10 美元至 20 美元的总体 利润。 但是,它也可能会导致大量额外的亏损交易,从而相应地减少总体利润。

专注于这些目标和最佳时间框架,你的盈利能力将大幅提高。 我承认我还没有想出一个动态评估流程。

 
CapeCoddah #:
我坚信帕累托定律:80% 的特征来自 20% 的要素。 这意味着总体利润的 80% 来自 6 对组合,相应地,6 对组合造成了 80% 的损失。

谢谢您的意见。

正如我在结论 4 和 5 中所说:

这个 FXSAR_MTF_MCEA 多货币智能交易系统只是一个学习和开发思路的例子。

在策略测试器上的测试结果仍不理想。因此,如果实施一个信号计算更准确的更好的策略,并增加一些更好的时间框架,我相信结果会比当前策略更好。

因此,能否利用你所说的自适应功能进行升级,以获得更好的结果,就取决于你了。

 

你好,罗伯托、

非常有趣,我喜欢多时间框架系统。

对不起,我不明白如何改变单一 SAR 的时间框架,如果 SAR 有固定值计算。
是否有办法在每个时间框架买入和卖出(而不是等待所有时间框架都在一边)?

在这种情况下,我可以在 1 分钟内卖出,在 5 分钟内买入,假设每隔 0.1 分钟我就会有一个可变数量的多头和空头。

我从 1.1.24 版开始就尝试在黄金 上进行测试,但什么也没发生,没有交易。

有什么建议吗?您也可以私信我。


非常感谢。

马可