回溯测试/优化 - 页 84

 

我的测试器的问题

你好。

我从我的策略测试器中 得到以下信息

"在优化过程中共完成了134次

...:优化停止,954条缓存记录被使用,954条缓存记录被拒绝"

在几个主要窗口下面的绿色运行时间线下是

1 088 / 1 280 (39 204) 写。

而测试器只做了134次运行。

我怎样才能调整我的测试器以进行更多的运行呢?

 

价格历史

你好,我编了一个EA,使用金牛座的H4和D1图表。我想对它进行2002-2012年的回测。我在MT4选项中把我的条形历史和条形图增加到1000000,并在此基础上下载了价格历史。我再次运行回测,指定了2002-2012年的日期,但是它仍然只从2009年1月开始。我做错了什么?我希望回测时间超过3年。我可以看到我的图表上有足够的柱子,因为我可以查看2002年之前的价格数据。有什么想法吗?

 

回测 5位数的改编EA

大家好,我有几个被改编为5位数的EA,但它们的回测性能与原始EA不一样。是不是5位数的EA不能进行回测?当使用1点比率而不是10点时,它们仍然无法与原来的性能匹配。有谁能就这个问题提供一些线索?

 

...

通常情况下,差异不是来自于4位或5位数据,而是来自于EA本身(例如,样本结果被曲线化,然后当你用默认设置尝试EA时,你会得到完全不同的结果)。

但是,如果参数 是相同的,那么在EA中仍有一些 "遗留物 "应该被检查和纠正(假设不同的经纪人数据的差异不会导致太大的差异)。

elitecamper:
大家好,我有几个EA被改编为5位数,但它们的回测表现与原来的EA不一样。是不是5位数的EA不能进行回测?当使用1点比率而不是10点时,它们仍然无法与原来的性能匹配。有谁能就这个问题提供一些线索?
 

...

谢谢你,Mladen,那我就检查一下 EA。希望我可以找到罪魁祸首。

 

测试器--开盘价 测试方法

你好,我想测试我的基于VQ指标的手动策略。当我把 "只有开盘价......"(我想在收盘后手动交易)作为测试模型,我得到了奇怪的结果--见下面的截图和代码。

问题是。

1)为什么我没有看到正确的(非零)指数缓冲值(它们在其他测试方法中被填满),为什么06:45的红柱有正值?

2)哪里没有办法让EA在收盘后立即行动,对吗?

谢谢您的帮助。

附加的文件:
open.png  124 kb
vqhisto.mq4  4 kb
 

...

在该图表中还有一个问题。

如果只使用开盘价,因为条形图的大小是按高低点计算的,这些值不可能在条形图开盘时出现(如果是在条形图开盘时出现的,这些值是完全错误的)。所以,"只有开盘价 "并不意味着它看起来的意思......我的猜测是,它是造成你的问题的原因。

mati_temp:
你好,我想测试我的基于VQ指标的手动策略。当我设置 "只有开盘价..."(我想在收盘后手动交易)作为测试模型时,我得到了奇怪的结果--见下面的截图和代码。

问题是。

1)为什么我没有看到正确的(非零)指数缓冲值(它们在其他测试方法中被填满),为什么06:45的红柱有正值?

2)哪里没有办法让EA在收盘后立即行动,对吗?

谢谢你的帮助。
 

谢谢

谢谢mladen的澄清

 

谢谢你的分享

 
mati_temp:
你好,我想测试我基于VQ指标的手动策略。当我设置 "只有开盘价..."(我想在收盘后手动交易)作为测试模型时,我得到了奇怪的结果--见下面的截图和代码。

问题是。

1)为什么我没有看到正确的(非零)指数缓冲值(它们在其他测试方法中被填满),为什么06:45的红柱有正值?

2)哪里没有办法让EA在收盘后立即行动,对吗?

谢谢你的帮助。

开盘价是一个很好的测试方法--最快的方法。

为了正确地使用它,EA需要正确地调整,以便像您写的 "在收盘时 "工作。

例如,如果您使用High[0] - Low[0]来定义当前蜡烛的范围

你不应该使用开盘价模型,因为在现实中,当你检查所有条件时

时,你不知道当前蜡烛的最终高点或低点是什么。

在开始的时候,所有的价格都等于开盘价(高点=开盘价,低点=开盘价,收盘=开盘价)。

因此,为了正确使用它,你需要接受一些延迟(一个小节的延迟)并重新编码EA以使用

过去的小节来计算高点和低点(高点[1]代替[0])。

当然,在开盘时还可以检查其他东西。

比方说,你将这样交易。

如果之前的条形图范围>100,并且开盘>MA,并且之前的开盘<MA,我们就做多。

这个模型在开盘价 的情况下可以完美地工作,只需 进行回测。

但是你需要计算之前的条形图上的范围,比如High[1]-Low[1],并检查其他条件

在当前条形图上,例如ma[0] open[1] 。

有人会说:为什么要使用当前条的MA值,如果它没有关闭。

如果你从收盘价或典型价格计算移动平均线的值,那么

它将会改变数值直到柱子结束。当然我同意,但是这样一来(如果你只在开盘时检查MA

在开盘时),你将会像在收盘条上一样检查MA。

最后一句话。

Ea还需要做一件事。如果你在使用开盘价模型进行测试

那么你需要在EA中模拟同样的事情。因此,它可以执行启动功能

只在小节开始时执行一次。

最好的方法是在启动函数后定义类似的东西。

int start()

{

//----

static int newBar = 0;

if(Bars<=newBar)return;

newBar = Bars;

SOME OTHER LOGIC OF START FUNCTION (TRADING, MOVING STOP ETC)

//----

return(0);

}