文章 "MQL5 向导:如何创建交易信号模块" - 页 4

 

您能告诉我如何使用 LongCondition 和 ShortCondition 在不打开相反仓位的情况下不仅打开仓位而且关闭仓位吗?例如,开仓信号阈值 = 30,平仓信号阈值 = 70。

我们想在条件 1 执行时开多头,条件 2 执行时平仓。在这种情况下,LongCondition 和 ShortCondition 应返回什么值?

如果仅控制 LongCondition 和 ShortCondition 的返回值还不够,可以怎样做?假设我们只使用一个信号。

谢谢。

 

你好、

我按照文章中的所有步骤进行了操作,但是没有成功。

我把信号保存在文件 \include\expert\signal\mysignals\samplesignal.mqh 中。

但是元编辑器无法识别。我用文章中附带的文件做了同样的尝试,没有变化......


我当前的元编辑器版本是 5.00 Build 567


有什么办法吗?


谢谢马里奥

 

当我使用您附在文章后面的文件时,发现有些不对劲。

我发现关于 "类型 "的注释应该如下:

//| Type=SignalAdvanced                                          |

 
yankai0219:

当我使用您附在文章后面的文件时,发现有些不对劲。

我发现关于 "类型 "的注释应该如下:

//| Type=SignalAdvanced                                          |

您可以在《6 个步骤创建自己的交易机器人》一文中阅读
 

大家好、

我从这篇文章中下载了信号,并使用向导创建了一个 MQ5,但 EA 没有进行任何交易。有什么办法吗?

我必须修改上面的注释,才能让信号显示在列表中,除此之外,编译都没问题。但在策略测试器中 运行 EA 却没有任何效果:(

编辑:在所有 CSampleSignal 类函数和 CExpertSignal 类函数中插入打印语句后,似乎继承的函数没有被 CSampleSignal 函数覆盖--也就是说,在本例中,CExpertSignal 类函数和 CSampleSignal 类函数中的打印语句没有被 CSampleSignal 函数覆盖。

即在本例中,执行的不是这些函数:

class CSampleSignal : public CExpertSignal
  {
	 bool CSampleSignal::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);
	 bool CSampleSignal::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

而是执行以下函数:

class CExpertSignal : public CExpertBase
  {
	 virtual bool     CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);
	 virtual bool     CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

这合理吗?父类的函数被执行,而子类的函数却被覆盖了......如果能得到任何帮助,将不胜感激

 
trolley:

大家好、

我从这篇文章中下载了信号,并使用向导创建了一个 MQ5,但 EA 没有进行任何交易。有什么办法吗?

我必须修改上面的注释,才能让信号显示在列表中,除此之外,编译都没问题。但在策略测试器中运行 EA 却没有任何效果:(

编辑:在所有 CSampleSignal 类函数和 CExpertSignal 类函数中插入打印语句后,似乎继承的函数没有被 CSampleSignal 函数覆盖--也就是说,在本例中,CExpertSignal 类函数和 CSampleSignal 类函数中的打印语句没有被 CSampleSignal 函数覆盖。

即在本例中,执行的不是这些函数:

而是执行以下函数:

这合理吗?父类的函数被执行,而子类的函数却被覆盖了......如果能得到任何帮助,将不胜感激

你好,电车、

我也遇到了同样的问题。你有什么解决办法或想法吗?

谢谢

 

下午好、

请教我如何在 Expert Advisor 中增加(充值)仓位,该系统是基于 MQL5 向导编写的,仓位通过以下方式打开

virtual int LongCondition();
virtual int ShortCondition();

我是根据文章中的建议编写机器人的

https://www.mql5.com/zh/articles/367"用 6 个步骤创建一个交易机器人 "一文中的建议编写的,它运行良好,但试图影响头寸大小(无论增减)

(无论增加还是减少),例如在

LongCondition();

不会导致任何结果,已经打开的仓位不会改变,只能通过执行平仓条件或触发 sl , tp 将其删除。

我喜欢 MQL5 向导,它可以方便快捷地 "建立 "一个多指标智能交易系统,更改 sl 跟踪模块,更改资金管理模块。

但我试图编写一个 Expert Advisor,当一个指标形成条件时,打开最小仓位,当另一个指标确认趋势时,增加(填充)仓位。

我遇到了上述问题--当通过 LongCondition() 发出再次开仓信号时,已经开仓的头寸不会改变;

谢谢。

Создай торговый робот за 6 шагов!
Создай торговый робот за 6 шагов!
  • 2012.06.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
 
文章中的文件在向导中看不到,主题中是谁,请告诉我该如何调整。
 
thejobber:
文章中的文件在向导中不可见,主题中是谁,请告诉我该如何调整。

在注释中,您需要替换以下一行

//| 类型=信号

改为

//| 类型=信号高级。

之后,我的主控程序就能看到信号了。

 
我下载了它,通过向导生成了它,并尝试在测试器中运行它。 它不起作用。它甚至无法访问 samplesignal 中的 CheckOpenLong/Short() 方法。它们在 ExpertSignal 中被调用,但在 SampleSignal 中没有。我还能做些什么来覆盖它们?