MQL4,大型EA

时间:2015-12-18 12:38:24

标签: low-latency algorithmic-trading quantitative-finance mql4 metatrader4

这主要是一个理论问题(但总是欢迎示例代码)。

真正的问题是: 如何正确编码'框架'从多个自定义指标测试多个场景的EA?

我(忙)建立EA的方式并不是非常关注1策略,而是会尝试测试'多种策略和选择'最合适的一个。

所以我创建了一些自定义指标,这些指标都返回了一系列状态数据'。

例如,我有以下指标:

  • 越过移动平均线指标,在平均值超过时发出信号,当前位置的百分比也从MA移动。
  • 布林带指标,返回'房间'在乐队之间,当乐队开始挤压时发出信号。
  • 多时间范围'方向/趋势'指标(是某个时间框架向上或向下移动)。如果时间范围方向改变,则返回当前方向并给出信号。
  • ADX指标,用于检查小规模的'移动和挑选最佳买/卖点。

我可以编写一个巨大的场景,但我认为它可以做得更好。因为,假设所有时间框架都在下降(向下趋势)你可以有一个特殊的场景来处理大量的向下移动。但如果没有当前的趋势,那么不同的场景最适合。

所以,我觉得最好制作多个场景(仍然在1个EA中)。首先收集所有自定义指标数据,然后每个方案使用该数据来计算其内容。然后它返回一个'得分'并选出最好的一个。

但是,如何在最佳概述中布置代码'方式是什么?

我应该为每个场景创建一个类,并给他们一个手册' tick'有数据吗?然后将它们分成多个文件并 #include 它们?

或者也许是事件驱动的?创建的类只是继续运行,计算和设置某些指标事件的监听器,并以自己的方式(这将是很棒的)

欢迎任何想法!

更新 <子> 2016-01-11,12:00

我现在没有时间创建UML ..但我现在做以下事情 - &gt;

  • Order Order是单身人士,仅执行订单请求)
  • Indicator (每个指标扩展的基类)
  • Strategy (每个策略扩展的基类)

  • IndicatorFetcher (保留所有指标,在每个刻度线上运行)

  • StrategyRunner (保留所有策略,在IndicatorFetcher之后的每个刻度线上运行)

每个Strategy实例都可以访问IndicatorFetcher(包含所有指标&#39;数据的概述,并使用Order单例进行交易。)

0 个答案:

没有答案