MMA_Breakout_strategy_volume I (没有MM或MF) - 由WhooDoo22编码

 
我认为发布MMA_Breakout_strategy_Volume I的更新版本对新的编码者(和有经验的编码者)会有帮助,这样新手/有经验的编码者都有机会了解这个EA(第一卷)需要的两个重要更新,以便更顺利和更有效的运行。这个版本不包括资金管理和市场过滤,仍被视为第一卷。(我仍在决定如何在第一卷中实现资金管理和市场过滤功能,以最终将第一卷发展为第二卷。我将分享我对完成MM(资金管理)和MF(市场过滤)两项任务的部分想法。MM:正如你所知道的,第一卷使用单一订单,并在移动平均线交叉时部分关闭其订单。MM的这个目标是随着账户余额 的增加而增加手数(例如:账户余额增加1000美元,代码块将调整当前的手数,使之成为当前手数的两倍。如果账户余额减少1,000美元,这个代码块也会将手数减少到当前手数的一半。这就是目前MM的目标。至于MF:在向我没有经验的编码领域打开这扇门之前,我正在彻底考虑所有的选择。我可以想到多种方法来完成这项任务。对我来说,问题仍然是,我应该选择哪种方案?我已经开始用MF功能编码第二卷的版本,以熟悉新的和不同的技术。反复的试验和错误将指导我完成这个项目。请 务必在M15时间框架的欧元兑美元上运行1999-2012.10,以验证最近发布的第一卷的回测(这也被认为是第二卷的一部分)。顺便说一句,我很惊讶第一卷在两个多月内被下载了一万次!这让我很吃惊。哇哦!:)我很高兴我的工作被证明对编码员/交易员有价值。谢谢你。- WhooDoo22.
 
如果你的OrderSelect()调用失败,会发生什么?

什么是函数的返回值?我如何使用它们?
 
你好,西蒙,我知道目前有一些小问题,其优先级暂时不如MM和MF。我确实计划在增加MM和MF之后,再对第二卷进行研究。我将通过添加代码来修饰它,通过神奇的数字来选择订单,在4-5位数的经纪商上运行第二卷的代码,等等。我知道有许多小的细节需要监督,但现在,更困难的工作将首先进行。你的煽动很好,我计划在我走到这一步的时候过这个桥。我将访问你提供的链接。谢谢你。
 
WhooDoo22:
你好,西蒙,我知道有一些小问题暂时没有MM和MF那么优先。我确实计划在增加MM和MF之后,再对第二卷进行研究。我将通过添加代码来修饰它,通过神奇的数字来选择订单,在4-5位数的经纪商上运行第二卷的代码,等等。我知道有许多小的细节需要监督,但现在,更困难的工作将首先进行。你的煽动很好,我计划在我走到这一步的时候过这个桥。我将访问你提供的链接。谢谢你。
如果我认为我在那个链接中写的东西是一种好处或选项,或者是在以后时间允许的情况下可以添加的东西,我就不会花时间去写它......这是很重要的,IMO!有多少帖子在问错误130? 或错误138? 检查返回值,如果你有问题,打印错误和所有相关变量。......那么当你遇到问题时,你就会有确定原因所需的信息。

你不可能回到过去,找到你试图下单而失败的Ask是什么。.
 

什么是变量 当你这样做的时候,它怎么可能是一个票号?

i++;

我现在有4个真实的交易,他们的票据号码是不连续的 . .

 

西蒙。

如果我认为我所写的...

RE: 我明白,这个修复是必要的。我将修复这个问题,我相信比我想象的要快,因为你似乎非常坚持要应用这个修复。我同意应该应用这个修正,并将使用错误检查功能进行测试,以隔离错误源。我将回到这个问题上,西蒙。谢谢你。

什么是变量I...

RE:变量i是一个 虚拟票据变量 但是 ;)i 实际上 不是 一个票据; i被EA认为是一个简单的变量。EA计算变量i,而不是计算实际的票号(计算当前票的替代方法)。

当你这样做的时候,它怎么可能是一个票号?

RE:变量i实际上不是一个票号。i是一个虚拟票号变量,由EA计算,以跟上当前票号的计数。一句话,变量i不被认为是一个票号。


我希望尽快回答你的帖子,但在我拥有时间解释和讨论之前,我无法提供广泛的答案。

谢谢你的重要帖子!

 
WhooDoo22:

西蒙。

我希望尽快回答你的帖子,但在我拥有解释和讨论的时间之前,不能提供广泛的答案。

谢谢你的重要帖子!

你可以在你有时间的时候回答,这很好。)

如果 是一个假票号......这样做的意义何在?

OrderClose( i,  0.01,Ask,30,CLR_NONE); 

这不是保证会失败吗?

 
我相信有多种方法来选择订单,所有选择订单的方法都应该使用OrderSelect()函数。说到这里,我不明白为什么会失败,因为在策略测试器中,EA显然对所有订单都执行了OrderClose()函数,没有错误。有可能会出现错误,但我最近没有注意到任何错误。我将更具体地说明这一点。"变量i "是票号的替代品,而且变量i被OrderClose()函数块使用。我需要选择一个票据而不是变量i,以便OrdersHistoryTotal()函数能够识别我所选择的票据,以便它能够 "开绿灯 "发送订单。我可能很难用语言清楚地表达这一点。谢谢你。
 
WhooDoo22:
我相信有多种方法来选择订单,所有选择订单的方法都应该使用OrderSelect()函数。说到这里,我不明白为什么会失败,因为在策略测试器中,EA显然对所有订单都执行了OrderClose()函数而没有错误。
它在模拟账户 上的表现如何,你的票号不是从1开始,而是逐步增加的?
 
除了账户的虚拟和实际资金的概念外,我不熟悉模拟和实盘之间的区别。我不知道这种区别。目前,我相信OrdersHistoryTotal()在任何订单提交和终止 之前都是以0开始。我相信OrderClose()函数 不会被执行,除非;)有一个变量可以选择。这就是变量i在 "i++"下面执行的第一个代码块中呈现的地方。一旦i变量为1也就是i++,OrderClose()函数就会检查这个1。OrderClose()函数就像,"是的,我看到了ya i,我们现在可以关闭这个订单了。谢谢你。
 
WhooDoo22:
除了账户的虚拟和实际资金的概念外,我不熟悉模拟和实盘之间的区别。
好吧,我说的是策略测试器 和模拟/实盘之间的区别 ...... 在策略测试器中,第一个订单是票据1 ...... 我刚刚进行了模拟交易,我的票据号码是46322730 ...... 如果我进行第二次交易,它的票据号码将不是46322731 在这种情况下,你使用的票据号码变量的递增是如何进行的?