我在这里,批评,发现你也在这里,尤里。现在我也要在这里拉屎了。对报告的肤浅分析表明,从2004年8月20日到2007年5月4日22点,初始存款为200,000,赚取了72,252的利润,在22点,所有剩余的头寸被关闭,这一下子就带来了约528,000的利润(比整个测试历史的7倍还要多!)。这种影响可能只是由于测试期的结束。
测试员在测试期结束时关闭所有未结头寸。如果权益不等于那一刻的余额,余额将等于关闭所有头寸后的最后一个权益值。因此,不要把测试仪的这种行为称为 "效果",因为它是运行的原则。
这是你的祖母节!开玩笑。
正如Mathemat所说,"通过表面分析",好的,非常好!"。没有任何一个负值。我把它放在网上进行测试。但我不明白的是(也许是我误解了):我没有关闭我的赌徒,也没有关闭终端。在这种情况下,会不会显示警报,或者EA会不会自行交易,因为它应该这样做?如果我与互联网断开一段时间,然后再重新连接,会发生什么?没有从我这边断开任何联系?
对我来说,这个问题非常重要,因为我每天至少有18个小时不在电脑前(睡眠、工作等),如果在这段时间内发生断线,或者我不能输入新的数据。.....,这不是真的好。
另外,如果我理解正确的话:如果你打开凸轮或终端,你只需要输入当前值,一切都会照常进行,即重新连接EA?
另外,如果显示了警报,但我们没有做任何事情,EA是按照旧的设置继续交易,还是等待新的设置进入?
如果可能的话,请给这些点更多的细节!!!!
谢谢你给了我另一个理由来绞尽脑汁。(以一种好的方式)。
真诚的 !!!!
我不知道为什么,但在测试器模式下,专家顾问开出的交易是成串的,大约10件。如果你从5分钟开始3000,欧元兑美元,从2007年1月2日到今天,开了10个头寸,由于某种原因没有在期末关闭,而是在2007年2月12日的某个地方扎扎实实的下沉,这个下沉基本上就是那前10个开仓单。而且这种情况不仅在小的时候重复出现。即使我们将存款增加到50,000,它也是亏损的。 将时间框架改为1小时,它也是亏损的。 这里出了问题!
到目前为止,第一张是最漂亮的。也许我做错了什么?
真诚的!
我有一个小问题:我下载了专家顾问,但它在编译时产生了一个错误。
MODE_MARGINREQUIRED' - 变量未定义 C:\Program Files\PFGFX Trader\experts\ArbitrageReverse_1. 5.mq4 (244, 49)
MODE_MARGINREQUIRED变量有什么作用,如何设置?
你好!
我有一个小问题:我下载了专家顾问,但它在编译时产生了一个错误。
MODE_MARGINREQUIRED' - 变量未定义 C:\Program Files\PFG FX Trader\experts\ArbitrageReverse_1. 5.mq4 (244, 49)
MODE_MARGINREQUIRED变量有什么作用,如何设置?
通过从以下网站下载发行版,将你的终端升级到最新的204版: http://www.metatrader4.com/files/mt4setup.exe
虽然我没有按计划完成旧EA的测试,但我一直在思考如何改进该版本。然后尤里想出了一个新的办法。它不再是 "第五元素",而是 "第六元素"。我怎么能在这里工作呢? 我的手在颤抖。
但说真的,我有一个关于代码的问题。这可能是天真的,所以我不仅仅是针对尤里。也许其他人会澄清。我将对他们表示感谢。
在ArbitrageReverse_1.1.mq4中,以及新版本的ArbitrageReverse_1.5.mq4中,同样的结构被重复,这一点我不清楚:它是在对当前开仓的订单进行区块取舍后,调用用户函数closeby(ticksell, tickbuy)。对于ArbitrageReverse_1.1.mq4,是第[106]行,对于1.5,是第[128]行。这个功能是有意义的--如果有未平仓的SELL订单和未平仓的BUY订单(各一个符号),SELL将被BUY关闭。我不喜欢的是,这一行动的开展没有任何前提条件。换句话说,只有当我们有 "买 "和 "卖 "的时候,订单才会关闭。 但在代码中,在'dt'块中已经调用了函数closeby(ticksell, tickbuy)(对于v:1.1行[163],对于v:1.5[189])的条件。而这在我看来是比较正确的。原则上说,我很快就会自己看到发生了什么,在追踪了所有赋值到变量之后,同时我也在处理我的小错误。但现在我将直接问尤里。
在第[106]行v:1.1或[128]行v:1.5中是否需要closeeby调用,如果是的话,在v:1.1的[163]中或v:1.5的[189]中,如果发现所有可以关闭的东西都必须在这之前关闭,那么什么会 "关闭"? 我明白,可能在批量上存在差异,但仍然,这里有一些东西对我来说似乎 "不对劲"。
在v:1.1的[200]或v:1.5的[224]中的closeeby(tickbuy, ticksell)调用或多或少是清楚的 - 如果在未平仓订单中定义了SELL或BUY的未平仓订单,并且在块 "dt "中,根据条件,可以通过OrderSend 函数打开一个相反的订单 - 然后关闭将被分别执行。
总之,如果我问了一些愚蠢的问题,我向你道歉。指出错误,我就会改正。
真诚的,联邦。
我试图理解--这种修改的逻辑取决于需要手动修改的beginPrice , beginEquity。谢谢
虽然我没有按计划完成旧EA的测试,但我一直在思考如何改进该版本。然后尤里想出了一个新的办法。它不再是 "第五元素",而是 "第六元素"。我怎么能在这里工作呢? 我的手在颤抖。
但说真的,我有一个关于代码的问题。这可能是天真的,所以我不仅仅是针对尤里。也许其他人会澄清。我将对他们表示感谢。
在ArbitrageReverse_1.1.mq4,以及新版本的ArbitrageReverse_1.5.mq4中,同样的结构被重复,我不清楚:它是在对当前打开的订单进行块状取舍后调用用户函数closeby(ticksell, tickbuy)。对于ArbitrageReverse_1.1.mq4,是第[106]行,对于1.5,是第[128]行。这个功能是有意义的--如果有未平仓的SELL订单和未平仓的BUY订单(各一个符号),SELL将被BUY关闭。我不喜欢的是,这一行动的开展没有任何前提条件。换句话说,只有当我们有 "买 "和 "卖 "的时候,订单才会关闭。 但在代码中,在块 "dt "中已经调用了函数closeby(ticksell, tickbuy)(对于v:1.1行[163],对于v:1.5[189])的条件框架。而这在我看来是比较正确的。原则上,我很快就会自己看到发生了什么,在追踪了所有的赋值到变量之后,同时我也在研究我的小错误。但现在我将直接问尤里。
在第[106]行v:1.1或[128]行v:1.5中是否需要closeeby调用,如果是的话,在v:1.1的[163]中或v:1.5的[189]中,如果发现所有可以关闭的东西都必须在这之前关闭,那么什么会 "关闭"? 我明白,可能在批量上存在差异,但仍然,这里有一些东西对我来说似乎 "不对劲"。
在v:1.1的[200]或v:1.5的[224]中的closeeby(tickbuy, ticksell)调用或多或少是清楚的 - 如果在未平仓订单中定义了SELL或BUY的未平仓订单,并且在块 "dt "中,根据条件,可以通过OrderSend 函数打开一个相反的订单 - 然后关闭将被分别执行。
总之,如果我问了一些愚蠢的问题,我向你道歉。指出错误,我就会改正。
真诚的,联邦。
但在演示模式和现实生活中,已关闭的头寸经常由于某种原因(例如,短时间内没有与服务器连接)而无法在计数器上关闭,所以我不得不对closeeby()提供额外调用。
我成功地在余额上筹集到了股权。它看起来像这样(EURJPY H1)。
EA的源代码附在帖子中。测试员的报告也是如此。
为此,我不得不在代码中增加一个输入参数:beginEquity--初始权益。即初始余额。在策略测试器中,专家顾问自动监测是否超过了beginEquity的水平。如果超过了,就会重新开始游戏,即把beginPrice改为Bid,beginEquity改为当前的股权,并改变魔法数字(增加1)。
但在演示版和真实版上,专家顾问只会产生一个警报,要求手动改变这些参数。问题是,专家顾问在终端或电脑关机时不会把以前的参数保存在任何地方,重启后也无法恢复(真正需要的人可以建立一个文件数据库或把参数存储在全局变量中)。
因此,我们将不得不监测专家顾问的信号,如果它们开始显示信息,我们将不得不为整个组手动改变上述输入参数。