市场总是错的

 
"套利"主题的延续。已经有很多页了,批评家们把它弄得一团糟,所以是一个新的话题。

我成功地在余额上筹集到了股权。它看起来像这样(EURJPY H1)。





EA的源代码附在帖子中。测试员的报告也是如此。

为此,我不得不在代码中增加一个输入参数:beginEquity--初始权益。即初始余额。在策略测试器中,专家顾问自动监测是否超过了beginEquity的水平。如果超过了,就会重新开始游戏,即把beginPrice改为Bid,beginEquity改为当前的股权,并改变魔法数字(增加1)。

但在演示版和真实版上,专家顾问只会产生一个警报,要求手动改变这些参数。问题是,专家顾问在终端或电脑关机时不会把以前的参数保存在任何地方,重启后也无法恢复(真正需要的人可以建立一个文件数据库或把参数存储在全局变量中)。
因此,我们将不得不监测专家顾问的信号,如果它们开始显示信息,我们将不得不为整个组手动改变上述输入参数。
附加的文件:
 
我在这里,批评,发现你也在这里,尤里。现在我也要在这里拉屎了。对报告的肤浅分析表明,从2004年8月20日到2007年5月4日22:00,在初始存款200,000时,获得了72,252的利润,在22:00时,所有剩余的头寸被关闭,一次性带来约528,000的利润(是整个测试历史的7倍!)。 这种效果可能只是由测试期结束造成的。
 
Mathemat:
我在这里,批评,发现你也在这里,尤里。现在我也要在这里拉屎了。对报告的肤浅分析表明,从2004年8月20日到2007年5月4日22点,初始存款为200,000,赚取了72,252的利润,在22点,所有剩余的头寸被关闭,这一下子就带来了约528,000的利润(比整个测试历史的7倍还要多!)。这种影响可能只是由于测试期的结束。
测试完成的 时刻可以在右边的图表上看到一个严格的水平绿带(股权),以及在这条非常水平的线下,余额的急剧非线性 "增长"。即,测试者关闭所有头寸,余额 "增长",直到与权益相等。很明显,那时候有很多有正利润的未平仓头寸。否则,股本的上涨不能高于余额。

测试员在测试期结束时关闭所有未结头寸。如果权益不等于那一刻的余额,余额将等于关闭所有头寸后的最后一个权益值。因此,不要把测试仪的这种行为称为 "效果",因为它是运行的原则。
 
你好!
这是你的祖母节!开玩笑。
正如Mathemat所说,"通过表面分析",好的,非常好!"。没有任何一个负值。我把它放在网上进行测试。但我不明白的是(也许是我误解了):我没有关闭我的赌徒,也没有关闭终端。在这种情况下,会不会显示警报,或者EA会不会自行交易,因为它应该这样做?如果我与互联网断开一段时间,然后再重新连接,会发生什么?没有从我这边断开任何联系?
对我来说,这个问题非常重要,因为我每天至少有18个小时不在电脑前(睡眠、工作等),如果在这段时间内发生断线,或者我不能输入新的数据。.....,这不是真的好。
另外,如果我理解正确的话:如果你打开凸轮或终端,你只需要输入当前值,一切都会照常进行,即重新连接EA?
另外,如果显示了警报,但我们没有做任何事情,EA是按照旧的设置继续交易,还是等待新的设置进入?
如果可能的话,请给这些点更多的细节!!!!
谢谢你给了我另一个理由来绞尽脑汁。(以一种好的方式)。
真诚的 !!!!
 
我不知道为什么,但在测试器模式下,专家顾问以10个左右的批次打开交易,这是不是一个巧合?
我不知道为什么,但在测试器模式下,专家顾问开出的交易是成串的,大约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变量有什么作用,如何设置?

 
Implex:
你好!

我有一个小问题:我下载了专家顾问,但它在编译时产生了一个错误。
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 函数打开一个相反的订单 - 然后关闭将被分别执行。

总之,如果我问了一些愚蠢的问题,我向你道歉。指出错误,我就会改正。

真诚的,联邦。

 
我已经在CodeBase上发布了一个EA,通过坚持套利策略,也能在正向交换中获得收益。在版主验证后,代码将在这里 提供。
 
你好!
我试图理解--这种修改的逻辑取决于需要手动修改的beginPrice , beginEquity。谢谢
 
Fed:

虽然我没有按计划完成旧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 函数打开一个相反的订单 - 然后关闭将被分别执行。

总之,如果我问了一些愚蠢的问题,我向你道歉。指出错误,我就会改正。

真诚的,联邦。

如果在演示和真实模式下,关闭计数器的位置和测试中一样完美,那么在启动事件的最后一个返回值(0)之前,只留下一个对closeeby()的调用就足够了。因此,在测试模式下,无论如何追踪,都不会发生额外调用中的关闭。

但在演示模式和现实生活中,已关闭的头寸经常由于某种原因(例如,短时间内没有与服务器连接)而无法在计数器上关闭,所以我不得不对closeeby()提供额外调用。