输入数据和虚拟测试器(开发)。

 

这里 的话题启发,在我看来,MT5的所有功能都缺少一些可行的选择。这不是一个关于为什么MetaQuotes没有给我的主题。而是我如何能找到解决问题的办法。看来,在我们这一代的元交易员中,对tick-data和market-info的控制是不会实现的。那么,为什么它是重要的呢?下面我将给出几个原因。

1)我的经纪商在欧元兑日元上的平均点差比默认数据低得多,我怎么能用这个平均较低的点差进行测试,反之亦然?非mt5经纪商。

2)我的系统是为波动市场设计的,我的系统如何处理一个长期的趋势市场。我的算法是否足够好,以保持它的不相干性?趋势的情况也是如此。

3) 我相信市场是随机的,我如何在一些随机数据上测试这个系统并将结果与真实数据进行比较?

4)我的经纪人/卖家......给/卖给我大量的高质量数据,但他们没有mt5服务器,我怎么能把这些数据输入mt5进行回测?

5) 我相信真实的点数,而不是算法生成的点数。我已经保存了我过去X年的ticks,并希望使用它,我有什么选择?

6) 我希望对环境[market-info]和数据[price|time|spreads]有信心和更好的控制,对此我应该怎么做?

我还有更多的理由,但不知为何现在想不起来了。希望能听到你的理由 :)

 

目标。

我认为目标应该很简单。我心中的简单目标是让mt5策略测试器 使用.csv或.hst格式的数据。所有其他的好东西都可以以后再来。

我认为第一阶段的讨论应该是 "这是否可行"。这里的明显问题是 "为什么是MT5"。正如我提到的,它比它的前辈更强大。我们大多数人[关心],对mql*语言有很大的投资。另外,讨论其他平台在这个网站上是不会有好结果的。最后,重新发明轮子是不可能的。

因此,我正在寻找一些想法,以尽可能多地纳入我们现有的东西。所以,让我们听听那些聪明的想法吧!

1> 我在想,如果这些EMULATION_MODES能在后台测试器中被完全驾驭,那就能实现所有的功能。另外,在后台测试器中拥有睡眠的能力也将是一个有用的工具。我还在研究这个问题,并看一下目前已经开发的虚拟东西。如果我看起来不了解我的东西,我很抱歉,但是这个话题有需求,这就是为什么我需要你们。干杯。

 
Ubzen:

目标。

我认为目标应该很简单。我心中的简单目标是让mt5策略测试器使用.csv或.hst格式的数据。所有其他的好东西都可以以后再来。

我认为第一阶段的讨论应该是 "这是否可行"。这里的明显问题是 "为什么是MT5"。正如我提到的,它比它的前辈更强大。我们大多数人[关心],对mql*语言有很大的投资。另外,讨论其他平台在这个网站上是不会有好结果的。最后,重新发明轮子是不可能的。

因此,我正在寻找一些想法,以尽可能多地纳入我们现有的东西。所以,让我们听听那些聪明的想法吧!

1> 我在想,如果这些EMULATION_MODES能在后台测试器中被完全驾驭,那就能实现所有的功能。另外,在后台测试器中拥有睡眠的能力也将是一个有用的工具。我还在研究这个问题,并看一下目前已经开发的虚拟东西。如果我看起来不了解我的东西,我很抱歉,但是这个话题有需求,这就是为什么我需要你们。干杯。

请注意,在我看来,策略测试器仍然是一项正在进行的工作。 我已经发现了第一手资料,有些东西就是不工作,许多对象类型被支持,但你不能在图表上点击右键,看到对象列表,所以在设计解决方案时要谨慎一些,你设计的东西可能不被支持。例如,如果你为市场创建了一些依赖按钮对象或ChartGetInteger()与CHART_FIRST_VISIBLE_BAR、CHART_VISIBLE_BARS、CHART_WIDTH_IN_PIXELS和CHART_HEIGHT_IN_PIXELS的产品,那么你的产品就不能作为演示产品来试用,因为这些功能/特性在策略测试器中不起作用。

还有什么是在策略测试器中不工作的?

我们真正需要的是Metaquotes编码一个本地历史数据服务器应用程序,它不仅可以管理我们存储的历史数据,还可以让我们通过自定义符号属性 来创建自己的符号......用离线图表进行回测将很容易。

Documentation on MQL5: Standard Constants, Enumerations and Structures / Environment State / Symbol Properties
Documentation on MQL5: Standard Constants, Enumerations and Structures / Environment State / Symbol Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Environment State / Symbol Properties - Documentation on MQL5
 
Ubzen:

目标。

我认为目标应该很简单。我心中的简单目标是让mt5策略测试器使用.csv或.hst格式的数据。 所有其他的好东西都可以以后再来。

...

这怎么可能呢?我们对策略测试器 没有任何控制。我想我们只有两个选择。

  1. 按原样使用策略测试器,并尝试对数据进行处理。ST使用的是.hcs文件,其结构目前还不清楚,AFAIK。是否有可能用你自己的文件替换这些文件并获得一些结果?
  2. 使用一个虚拟策略测试器,我们可以完全控制它。这意味着 更多的工作 ,但也有 更大的独立性,同时 不再依赖格式 hcs 的变化

我们可以对这两个选项进行研究。我的想法更倾向于第二种。

 

编写完整的系统不是一项简单的任务,但这是一个可以实现的目标。

然而,当你开始编写这样一个系统时,你将把时间花在开发这个系统上,而不是花在交易或开发交易系统上。 因为工作量是无止境的。

要做的主要决定,是决定建立你自己的系统。你必须完全脱离MT5,否则你将总是不断地做出某种妥协,并编写双重代码(就像现在MT4-MT5的情况一样)。此外,一些伟大的东西,如策略测试器代理,并不那么容易实现。

至少有一个已经存在的 框架,所以应该使用这样的东西。

Let me google that for you
Let me google that for you
  • bit.ly
Let Me Google That For You
 
graziani:

编写完整的系统不是一项简单的任务,但它是一个可以实现的目标。

我很想了解你是如何用mql5编码的EA和指标使之工作的?
 
RaptorUK:
我很想知道你是如何让它与mql5编码的EA和指标一起工作的?

你不能这样做。你必须离开MT5。所有未来的EA/指标都是在MT4/MT5之外编写的,然后你使用MT4/MT5作为tick stream提供者和订单执行

出于回测的目的,你可以对数据库格式进行逆向工程( 禁止但可以实现),用S1(一秒,而不是一个tick)记录取代M1,然后在ST中运行M1历史

我的意思是,如果开始这样的项目,就会把精力放在建立另一个 "MT4/5 "上,而不是放在交易上。

 
graziani:

你不能这样做。你必须离开MT5。所有未来的EA/指标都是在MT4/MT5之外编写的,然后你使用MT4/MT5作为tick stream提供者和订单执行

出于回测的目的,你可以对数据库格式进行逆向工程( 禁止但可以实现),用S1(一秒,而不是一个tick)记录取代M1,然后在ST中运行M1历史

我的意思是,如果开始这样的项目,就会把精力放在建立另一个 "MT4/5 "上,而不是放在交易上。

谢谢你的回答,我以为我理解了你的建议,我只是希望你能明确,你已经明确了。

 

@RaptorUK:谢谢,我知道所有的东西都可能不被支持。我不知道所有不能在策略测试器中 工作的东西。我不是在为市场制作产品。制作产品的人有他们自己的一套问题。他们可以修改我们制作的代码,或者等待Mq。Mq不参与这些讨论,(无视我们),我已经不向他们要求什么了。

@angevoyageur。我同意我们需要类似方案2的东西。我不介意为更多的独立性做更多的工作。无论我们想出什么办法,都要容易被采纳和接受。否则所有的工作都将是徒劳的。我不认为我们可以把它变得像这样简单:[在mql5中编码你的EA] [启动策略测试器] [然后虚拟策略测试器接管]。但是,我们可以通过在函数名称前加一个'v'来替代已经存在的函数。

@graziani: 这样做简单吗?FileRead( my.csv ); FileRead( my.market.info ) 。用vMarketInfo()代替你的Marketinfo()。在策略测试器移动时绘制Objects。做一个报告.......Done。:), 那么你怎么想?说起来容易,做起来难,对吗?

在mt4或mt5之外移动是行不通的,因为我正试图从mql4-mql5中收集与我类似的编码者的支持。为了保持这种项目的积极性,它需要别人成功的适应,如果只是为了测试或报告错误的话。我喜欢代理和优化器,我希望有人能说它很容易实现(这里有方法):(.让我们面对现实吧,mt4/mt5的所有功能都不可能在这个VST的第一个版本中得到支持。

现在需要的是对数据、市场信息、市场执行、多货币和简单报告的支持。越多的人能够随时自愿参与这个项目,它就会越成功。如果这个项目变成了在mt以外的地方,我们就必须建立上述所有的东西和其他很多我们以前从未考虑过的东西。

我真的希望我们可以使用现成的mql5代码。如果没有人提出做这个angevoyageur#1的方法,那我们就继续做angevoyageur#2。

 
RaptorUK:

谢谢你的回答,我以为我明白你的建议,我只是希望你能清楚地说明,你已经说明了。


存在 MT5 之外 做什么问题存在 重新编程问题 ,所有的东西都 已经在 策略 测试器上 运行 存在 取代 策略 测试器的问题。 我们的想法 是, 通过 两个 选项 中的 一个 或另一个 见上文), 两个 选项组合开发 一些 补充 策略 测试仪东西
 
Ubzen:

@RaptorUK:谢谢,我知道所有的东西都可能不被支持。我不知道所有不能在策略测试器中工作的东西。我不是在为市场制作产品。制作产品的人有他们自己的一套问题。他们可以修改我们制作的代码,或者等待Mq。Mq不参与这些讨论,(无视我们),我已经不向他们要求什么了。

@angevoyageur。我同意我们需要类似方案2的东西。我不介意为更多的独立性做更多的工作。无论我们想出什么办法,都要容易被采纳和接受。否则所有的工作都将是徒劳的。我不认为我们可以把它变得像这样简单:[在mql5中编码你的EA] [启动策略测试器] [然后虚拟策略测试器接管]。但是,我们可以通过在函数名称前加一个'v'来替代已经存在的函数。

@graziani: 这样做简单吗?FileRead( my.csv ); FileRead( my.market.info ) 。用vMarketInfo()代替你的Marketinfo()。在策略测试器移动时绘制Objects。做一个报告.......Done。:), 那么你怎么想?说起来容易,做起来难,对吗?

在mt4或mt5之外移动是行不通的,因为我正试图从mql4-mql5中收集与我类似的编码者的支持。为了保持对这种项目的积极性,它需要别人的成功适应,如果只是为了测试或报告错误的话。我喜欢代理和优化器,我希望有人能说它很容易实现(这里有方法):(。让我们面对现实吧,mt4/mt5的所有功能都不可能在这个VST的第一个版本中得到支持。

现在需要的是对数据、市场信息、市场执行、多货币和简单报告的支持。越多的人能够随时自愿参与这个项目,它就会越成功。如果这个项目变成了在mt以外的地方,我们就必须建立上述所有的东西和其他很多我们以前从未考虑过的东西。

我真的希望我们可以使用现成的mql5代码。如果没有人提出做这个angevoyageur#1的方法,那我们就继续做angevoyageur#2。

我们在 同一个波长