用tick数据进行回测 - 页 3

 

BTW - 你所附的.rar文件中的脚本。这和你之前在论坛上发布(剪切和粘贴)的脚本完全一样吗?

 
mikey:

BTW - 你所附的.rar文件中的脚本。这和你之前在论坛上发布(剪切和粘贴)的脚本完全一样吗?

是的,这个帖子是从文件中剪切和粘贴的...


关于这一点。

有一件事--不是什么大戏--但输出文件的最后一行是这样的。

2004.02.23,08:34,,,,,1

本假定在最后一行的末尾,文件会结束。在你的例子中,文件的最后一行可能有一个换行符,因此循环没有检测到 "文件结束",继续处理最后一行,而这一行实际上是空的......有很多方法可以解决这个问题,例如你可以添加一个条件,在写入之前,变量'sclose'不是空的。

if (sclose != "")     // make sure close price exists in last line processed
   FileWrite(trg_handle,output);
 

谢谢你,伙计。有一个简单的问题:策略测试器中 的交换成本。这是在最后加入的还是在我们进行时加入的。我认为它可能是在我们进行的过程中加入的。我注意到,对于某些交易:例如,如果获利(TP)是100,当它以TP收盘时,+100的利润不会返回,而是一个较低的TP,例如。+80.这可能是因为在该交易中加入了掉期成本(考虑到它被隔夜持有的天数--当然,用这种方法我们有更多的 "夜",而不是我们应该有的)。 (由于我是用0.1手交易,所以隔夜的交换成本不会太多,但由于有很多晚上的因素,所以会增加)。

它仍在运行。我想说的一点是,结果与M1非常不同。所以,如果这确实是有效的--这当然是值得做的。 这让我有了更多的想法。

 
mikey:

谢谢你,伙计。有一个简单的问题:策略测试器中的互换成本。这是在最后加入的还是在我们进行时加入的。[...]

它的添加方式与真实/演示账户中的添加方式完全相同。从"测试MetaTrader 4的功能和限制"

所有的掉期、保证金要求、到期日、GTC订单都是模型化的。

请注意,掉期的价值取自你在测试器中按下 "开始 "时当前连接的账户。

 

一个新的障碍。当我把3个月的tick数据加载到历史中心时(正如我们在这个主题中已经解决的那样--使每个tick都有自己的M1条)--似乎一切都很好,但我在日志中看到了这个。

历史数据库:内存不足 '#CLX01' [8412861条] 。
内存处理程序:无法分配370166236字节的内存

那么,这是不是说它没有加载所有的数据?

 
mikey:

一个新的障碍。当我把3个月的tick数据加载到历史中心时(正如我们在这个主题中解决的那样--使每个tick都有自己的M1条)--似乎一切都很好,但在日志中看到这个。

Historybase: not enough memory '#CLX01' [8412861 bars]
Memory handler: cannot allocate 370166236 bytes of memory

那么,这是不是说它没有加载所有的数据?

这可能是因为你遇到了2GB的限制。在你按下 "开始 "键后,测试器会创建一个FXT文件,其中包含测试用的点数(在你的例子中,每条街有一个点数)。这个文件是在'\MetaTrader 4\tester\history'文件夹下创建的。打开这个文件夹,检查 最后创建的文件是否有大约2GB的大小。如果是这样,那么你已经达到了测试器的极限。除了在较短的时间内进行测试外,没有其他解决办法......


我不确定这是否是原因,可能是其他原因......

 

当我检查 尺寸时,测试器仍在运行。所以,可能会增加?

但无论如何,到现在为止,大小只有412MB。我推测这远远低于2GB?

 

顺便说一下,这个错误信息所在的日志不是在策略测试器中,而是在另一个日志中(账户的那个)。

 

我变得有些沮丧了。有道理--我在做新的东西,所以肯定会有问题。

但与此无关的是,我刚刚注意到,在一个普通的标准metatrader策略上,我得到了3个月的石油数据(所以与我们在此讨论的内容无关),我注意到,策略测试器 在大约2周后停止了任何交易。 但是,策略测试者在2周内可以开仓,然后在2.5个月内没有开仓(尽管有5000美元的利润)!此外,所提供的结果与我迄今为止的前瞻性测试相去甚远。我开始对metatrader策略测试器的引擎及其有效性和用途产生了怀疑。

(数据全部加载到测试器中是可以的,因为报告上的日期范围--有正确的范围)

我的梦想/目标:我希望给策略测试器提供良好的历史数据(特别是如果你能得到tick数据),你将得到一个很好的洞察力,了解你的策略在那段历史中是如何真正交易的(滑点、点差等被接受)。但现在我想知道这是否可以实现,策略引擎是否真的可以实现。这个目标在metatrader上可以实现吗?谁能给我一点希望?

 
mikey:

顺便说一下,这个错误信息所在的日志不是在策略测试器中,而是在另一个日志中(账户的那个)。

那么它可能与测试器无关(你可以在'MetaTrader 4/tester/logs'文件夹中看到它的日志),但我不能确定。