专家: MQL5向导 - 基于两条移动平均线带日内时间过滤的交易信号

 

MQL5向导 - 基于两条移动平均线带日内时间过滤的交易信号:

基于两条指数平滑移动平均线交叉带日内过滤的交易信号(CSignal2EMA_ITFA来自MQL5标准库)被考虑。基于该策略的EA交易的代码可以被MQL5向导自动生成

图1. 基于两条EMA交叉带日内时间过滤的交易信号 

作者: MetaQuotes Software Corp.

 
Automated-Trading:

MQL5 向导 - 基于两个 EMA 的交叉和日内时间过滤器的交易信号

作者:MetaQuotes Software Corp:MetaQuotes Software Corp.

文章不错,但我需要一些解释:

**** 仅从 0:00 至 5:59 开仓。可以通过设置 BadHoursOfDay=16777152=11111111111111111111000000b 的值来实现。所有其他交易时段都是 "坏 "时段,因此最好禁止在 6:00 至当日收盘期间开立新头寸。****

这里需要一些细节:

- 如何计算/定义 "16777152 "这个值,如何为其他 "开仓/平仓 "时间或仅为 "开仓 "时间定义这个值?

- 如何对多个 ITF(例如:东京/伦敦/纽约)进行决策?东京/伦敦/纽约的开放时间?

 
razoff:

这里需要一些细节:

- 如何计算/定义 "16777152 "这个值,如何为其他 "开仓/平仓 "时间或仅为 "开仓 "时间定义这个值?

在本示例中,对新开仓时间进行了过滤。(假定它们将被 SL/TP 关闭)。

16777152 的二进制表示为:

在我们的例子中,我们使用了小时过滤器,"坏 "小时用相应的比特=1 标记。同样的方法也适用于 BadMinutesOfHour。

您可以使用 calc.exe 转换二进制值:


- 如何对多个 ITF 进行决策,举例说明:东京/伦敦/纽约的营业时间

如果您想使用 3 个不同的过滤器(东京、伦敦、纽约),可以在您的信号类中添加 CSignalITF 类的额外实例(在我们的例子中只有一个 m_time_filter)。

 
如何优化策略测试器中 的时间过滤器?
 
ssn:
如何优化策略测试器中的时间过滤器?

通过优化策略测试器中 的 BadHoursOfDay 输入参数,可以找到最佳时间过滤器。您可以指定参数的起始值和终止值,它就会找出最佳时间,因为使用的是遗传优化算法,所以看起来不需要太多时间。

第二种方法是手动检查亏损交易的时间,并在 BadHoursOfDay 参数中 "标记"。

事实上,这可以调整您的策略,并考虑到交易想法的一些 "逻辑 "原因。例如,震荡指标在平盘时效果更好,平盘的原因可能是没有新闻、时段/货币对属性等。

 
Automated-Trading:

在本例中,对新开仓位进行过滤。(假定它们将被 SL/TP 关闭)。

16777152 的二进制表示为

在本例中,我们使用了小时数过滤器,"坏 "小时数以相应的位数=1 标记。同样的方法也适用于 BadMinutesOfHour。

您可以使用 calc.exe 转换二进制值:


如果要使用 3 个不同的过滤器(东京、伦敦、纽约),可以在信号类中添加 CSignalITF 类的额外实例(在我们的例子中只有一个 m_time_filter)。

感谢您提供的方法,但真是令人头疼:(( 难道我们不能像使用 MT4 一样,使用 StartHour/EndHour/StartMinute/EndMinute 这样更友好的方式吗?为什么要使用如此复杂的二进制模式?
 
razoff:
感谢您提供的操作方法,但真是令人头疼:( 难道我们就不能像使用 MT4 那样,使用 StartHour/EndHour/StartMinute/EndMinute 这样更方便的模式吗?为什么要使用如此复杂的二进制模式?

参数的二进制表示法有一些显著优势。例如,您可以在 Strategy Tester 中探索参数空间(从 0 开始,16777215 结束,步骤 1)。试试看。

找到最佳时间后,您可以探索天数。但要注意,时间过滤器对较低的时间框架(H1 及以下)有效。

如果您需要更 "友好 "的方式,可以编写自己的交易信号类(参见MQL5 向导:如何创建交易信号模块)。

 
Automated-Trading:

参数的二进制表示法有一些显著优势。例如,您可以在 Strategy Tester 中探索参数空间(从 0 开始,到 16777215,第 1 步)。试试看。

找到最佳时间后,您可以探索天数。但要注意,时间过滤器对较低的时间框架(H1 及以下)有效。

如果您需要更 "友好 "的方式,您可以编写自己的交易信号类(参见MQL5 向导:如何创建交易信号模块)。

好的,我必须先了解二进制的事情;如果 calc.exe 或任何其他科学应用程序可以 "转换 "二进制,我需要找到如何以简单易行的方式获得二进制(不是每个人都是爱因斯坦:例如,在解释的例子中,为什么从 23 开始到 0 结束来计算二进制?那么如何获取其他时间段的二进制,如天(从周六到周一?
 
Automated-Trading:

通过优化 Strategy Tester 中的 BadHoursOfDay 输入参数,可以找到最佳时间过滤器。您可以指定参数的起始值和终止值,它就会找出最佳时间,由于使用了遗传优化算法,因此看起来不需要太多时间。

第二种方法是手动检查亏损交易的时间,并在 BadHoursOfDay 参数中 "标记"。

事实上,这可以调整您的策略,并考虑到交易想法的一些 "逻辑 "原因。例如,震荡指标在平盘时效果更好,平盘的原因可能是没有新闻、时段/货币对属性等。

好吧,如果我说错了,请指正我,但假设我想过滤坏分钟,这是否意味着我需要筛选 1152921504606846975 个选项?
 
ssn:
好吧,如果我说错了,请指正我,但假设我想过滤坏分钟数,这是否意味着我需要筛选 1152921504606846975 个选项?
没错。
 

你好。

是否有可能使平均线从 MA、EMA、WMA 中进行选择。