如何编码? - 页 300 1...293294295296297298299300301302303304305306307...347 新评论 [删除] 2012.07.12 04:31 #2991 防止过度交易 大家好。 我测试了我的EA,在H4图表上使用所有的ticks方法,使用MACD交叉来启动订单(除其他外),策略测试者 在最初的几分钟内打开了大约200个头寸,所以在做了一些阅读之后,我意识到我需要限制它的交易数量,在我的系统中,它不应该每4小时进行超过1次交易,因为我在使用iMACD(. PRICE_CLOSE...)之前等待蜡烛关闭。...PRICE_CLOSE...),并将MACDMainCurrent和MACDSymbolCurrent偏移为0,MACDMainPrevious和MACDSymbolPrevious为1。 我的全局变量是 string hasOrderedGV = "has_ordered_GV"; string barsGV = "bars_GV"; 在我的EA检查多头或空头头寸之前,我已经插入了这段代码。 //---- 确定是否已经在H4时间块上下了订单 如果((GlobalVariableGet (barsGV) == 0)|| (GlobalVariableGet ( barsGV) < Bars)) { GlobalVariableSet(hasOrderedGV,false)。 GlobalVariableSet(barsGV,Bars)。 } //--- 检查多头头寸(BUY)的可能性 如果(GlobalVariableGet (hasOrderedGV, false)) { 如果......。(这是我实际检查MACD交叉和其他指标的地方)。 然后如果订单成功打开。 if (Ticket > 0) { GlobalVariableSet(hasOrderedGV,true)。 { 如果(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), GetTPPriceShort(SLPriceShort, RiskRewardRatio), OrderExpiration(), Green)。 等等等等。 谁能告诉我,我的方法是否正确?我不知道是否有一个更有效或更准确的方法来做?谢谢。 How to code? 编码帮助 [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 Mladen Rakic 2012.07.12 04:58 #2992 ... 你为什么不简单地计算一下你的EA已经开了多少个订单,如果它已经开了一个订单,就不要再开新的订单? 只是一个想法(也是一个通常的、最简单的限制EA所开订单数量 的方法) crsnape@btinternet.com: 大家好。我测试了我的EA,在H4图表上使用所有的ticks方法,使用MACD交叉来启动订单(除其他外),策略测试者在最初的几分钟内打开了大约200个位置,所以在做了一些阅读之后,我意识到我需要限制它的交易数量,在我的系统中,它不应该每4小时进行超过1次交易,因为我使用iMACD(....PRICE_CLOSE...),并将MACDMainCurrent和MACDSymbolCurrent偏移为0,MACDMainPrevious和MACDSymbolPrevious为1。 我的全局变量是 string hasOrderedGV = "has_ordered_GV"; string barsGV = "bars_GV"; 在我的EA检查多头或空头头寸之前,我已经插入了这段代码。 //---- 确定是否已经在H4时间块上下了订单 如果((GlobalVariableGet (barsGV) == 0)|| (GlobalVariableGet ( barsGV) < Bars)) { GlobalVariableSet(hasOrderedGV,false)。 GlobalVariableSet(barsGV,Bars)。 } //--- 检查多头头寸(BUY)的可能性 如果(GlobalVariableGet (hasOrderedGV, false)) { 如果...(这是我实际检查MACD交叉和其他指标的地方)。 然后如果订单成功打开。 if (Ticket > 0) { GlobalVariableSet(hasOrderedGV,true)。 { 如果(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), GetTPPriceShort(SLPriceShort, RiskRewardRatio), OrderExpiration(), Green)。 等等等等。 谁能告诉我,我的方法是否正确?我不知道是否有一个更有效或更准确的方法来做这件事?谢谢。 [删除] 2012.07.12 10:33 #2993 只是因为我的EA通常在同一时间有几个仓位;所以我不能使用说。 如果(CountedOrders > 5) 打破。 或类似的方法,因为我不知道在任何时间点上有多少头寸会被打开。我需要把它与时间联系起来,我在想。 dipu 2012.07.13 12:00 #2994 我在我的5位数MT4账户上安装了这个EA。但它没有打开任何交易.... 请帮助我 附加的文件: dipu_2.mq4 5 kb Akintunde Akintinoye 2012.07.14 01:36 #2995 我需要编辑这个EA,让它在3个步骤中移动止损。 这个EA已经有了收支平衡的能力,但是我想让这个EA把我的 盈利时,将我的止损点从第一个盈亏平衡点移到另一个+20点。 +27点,当利润达到+50点时,再将其移动到+40点,甚至更多。 甚至更多,如果可能的话。 附加的文件: luktom_manager_2.mq4 16 kb tkuan77 2012.07.15 04:53 #2996 嗨,姆拉登。 谢谢你的提醒!我已经成功地解决了这个问题。 顺便问一下,你知道在iStochasticdo 中MODE和SHIFT的功能 是什么,或者有什么地方可以提供更多的信息?我一直在阅读mql4网站上的文档,但对我来说并没有意义。他们提供的解释太简单了。 比如说 iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, Current + 0)。 iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_MAIN, 0)。 iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_SIGNAL,Current + 1)。 电流+0等是做什么的? 谢谢,问候 Terrance mladen: Terrance 那是一个函数。把它放在你的EA的末尾,并在你认为合适的地方调用它,以检查一个订单是否已经在当前的酒吧打开。 [删除] 2012.07.15 06:39 #2997 你好,请问谁能告诉我哪里出了问题?我得到了错误代码')',在红色突出显示的一行中参数计数错误 - 但所有的参数加起来... 如果((GlobalVariableGet (barsGV) == 0)|| (GlobalVariableGet (barsGV) < Bars)) { GlobalVariableSet(hasOrderedGV,false)。 GlobalVariableSet(barsGV,Bars)。 } //--- 检查多头头寸(BUY)的可能性 如果(GlobalVariableGet (hasOrderedGV, false)) 谢谢 Mladen Rakic 2012.07.15 07:04 #2998 ... 特伦斯 MODE_MAIN意味着你正在读入随机 线的值。MODE_SIGNAL意味着你正在读入随机信号线的值。 至于SHIFT:它对每个指标都是一样的(甚至是自定义的指标)。举个例子:SHIFT=0表示当前的条形值,SHIFT=1表示第一个封闭条形值,以此类推...... tkuan77: 你好,Mladen。 谢谢你的提醒!我已经设法解决了这个问题。顺便问一下,你知道在iStochasticdo 中MODE和SHIFT的功能是什么,或者有什么地方可以提供更多的信息?我一直在阅读mql4网站上的文档,但对我来说并没有意义。他们提供的解释太简单了。比如说iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, Current + 0)。iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_MAIN, 0)。iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_SIGNAL,Current + 1)。电流+0等是做什么的?谢谢,问候 特伦斯 Mladen Rakic 2012.07.15 07:06 #2999 ... 错误在于GlobalVariableGet() 只有一个参数(变量名)。你不需要第二个参数(你在调用该函数 时的"false")。 crsnape@btinternet.com: 嗨,谁能告诉我,我在哪里出了问题?我得到了错误代码')',在红色突出显示的行上有错误的参数计数 - 但所有的参数加起来...如果((GlobalVariableGet (barsGV) == 0)|| (GlobalVariableGet (barsGV) < Bars)) { GlobalVariableSet(hasOrderedGV,false)。 GlobalVariableSet(barsGV,Bars)。 } //--- 检查多头头寸(BUY)的可能性 如果(GlobalVariableGet (hasOrderedGV, false))谢谢 [删除] 2012.07.15 07:11 #3000 我把代码改成了这样,至少没有错误--可以吗? 如果(GlobalVariableGet (hasOrderedGV) == false) 1...293294295296297298299300301302303304305306307...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
防止过度交易
大家好。
我测试了我的EA,在H4图表上使用所有的ticks方法,使用MACD交叉来启动订单(除其他外),策略测试者 在最初的几分钟内打开了大约200个头寸,所以在做了一些阅读之后,我意识到我需要限制它的交易数量,在我的系统中,它不应该每4小时进行超过1次交易,因为我在使用iMACD(. PRICE_CLOSE...)之前等待蜡烛关闭。...PRICE_CLOSE...),并将MACDMainCurrent和MACDSymbolCurrent偏移为0,MACDMainPrevious和MACDSymbolPrevious为1。
我的全局变量是
string hasOrderedGV = "has_ordered_GV";
string barsGV = "bars_GV";
在我的EA检查多头或空头头寸之前,我已经插入了这段代码。
//---- 确定是否已经在H4时间块上下了订单
如果((GlobalVariableGet (barsGV) == 0)|| (GlobalVariableGet ( barsGV) < Bars))
{
GlobalVariableSet(hasOrderedGV,false)。
GlobalVariableSet(barsGV,Bars)。
}
//--- 检查多头头寸(BUY)的可能性
如果(GlobalVariableGet (hasOrderedGV, false))
{
如果......。(这是我实际检查MACD交叉和其他指标的地方)。
然后如果订单成功打开。
if (Ticket > 0)
{
GlobalVariableSet(hasOrderedGV,true)。
{
如果(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES))
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), GetTPPriceShort(SLPriceShort, RiskRewardRatio), OrderExpiration(), Green)。
等等等等。
谁能告诉我,我的方法是否正确?我不知道是否有一个更有效或更准确的方法来做?谢谢。
...
你为什么不简单地计算一下你的EA已经开了多少个订单,如果它已经开了一个订单,就不要再开新的订单?
只是一个想法(也是一个通常的、最简单的限制EA所开订单数量 的方法)
大家好。
我测试了我的EA,在H4图表上使用所有的ticks方法,使用MACD交叉来启动订单(除其他外),策略测试者在最初的几分钟内打开了大约200个位置,所以在做了一些阅读之后,我意识到我需要限制它的交易数量,在我的系统中,它不应该每4小时进行超过1次交易,因为我使用iMACD(....PRICE_CLOSE...),并将MACDMainCurrent和MACDSymbolCurrent偏移为0,MACDMainPrevious和MACDSymbolPrevious为1。
我的全局变量是
string hasOrderedGV = "has_ordered_GV";
string barsGV = "bars_GV";
在我的EA检查多头或空头头寸之前,我已经插入了这段代码。
//---- 确定是否已经在H4时间块上下了订单
如果((GlobalVariableGet (barsGV) == 0)|| (GlobalVariableGet ( barsGV) < Bars))
{
GlobalVariableSet(hasOrderedGV,false)。
GlobalVariableSet(barsGV,Bars)。
}
//--- 检查多头头寸(BUY)的可能性
如果(GlobalVariableGet (hasOrderedGV, false))
{
如果...(这是我实际检查MACD交叉和其他指标的地方)。
然后如果订单成功打开。
if (Ticket > 0)
{
GlobalVariableSet(hasOrderedGV,true)。
{
如果(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES))
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), GetTPPriceShort(SLPriceShort, RiskRewardRatio), OrderExpiration(), Green)。
等等等等。
谁能告诉我,我的方法是否正确?我不知道是否有一个更有效或更准确的方法来做这件事?谢谢。只是因为我的EA通常在同一时间有几个仓位;所以我不能使用说。
如果(CountedOrders > 5)
打破。
或类似的方法,因为我不知道在任何时间点上有多少头寸会被打开。我需要把它与时间联系起来,我在想。
我在我的5位数MT4账户上安装了这个EA。但它没有打开任何交易....![](https://c.mql5.com/forextsd/smiles/cry_smile.png)
请帮助我
我需要编辑这个EA,让它在3个步骤中移动止损。
这个EA已经有了收支平衡的能力,但是我想让这个EA把我的
盈利时,将我的止损点从第一个盈亏平衡点移到另一个+20点。
+27点,当利润达到+50点时,再将其移动到+40点,甚至更多。
甚至更多,如果可能的话。
嗨,姆拉登。
谢谢你的提醒!我已经成功地解决了这个问题。![](https://c.mql5.com/forextsd/smiles/smile.png)
顺便问一下,你知道在iStochasticdo 中MODE和SHIFT的功能 是什么,或者有什么地方可以提供更多的信息?我一直在阅读mql4网站上的文档,但对我来说并没有意义。他们提供的解释太简单了。![](https://c.mql5.com/forextsd/smiles/frown.png)
比如说
iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, Current + 0)。
iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_MAIN, 0)。
iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_SIGNAL,Current + 1)。
电流+0等是做什么的?
谢谢,问候
Terrance
Terrance 那是一个函数。把它放在你的EA的末尾,并在你认为合适的地方调用它,以检查一个订单是否已经在当前的酒吧打开。
你好,请问谁能告诉我哪里出了问题?我得到了错误代码')',在红色突出显示的一行中参数计数错误 - 但所有的参数加起来...
如果((GlobalVariableGet (barsGV) == 0)|| (GlobalVariableGet (barsGV) < Bars))
{
GlobalVariableSet(hasOrderedGV,false)。
GlobalVariableSet(barsGV,Bars)。
}
//--- 检查多头头寸(BUY)的可能性
如果(GlobalVariableGet (hasOrderedGV, false)) 谢谢
...
特伦斯
MODE_MAIN意味着你正在读入随机 线的值。MODE_SIGNAL意味着你正在读入随机信号线的值。
至于SHIFT:它对每个指标都是一样的(甚至是自定义的指标)。举个例子:SHIFT=0表示当前的条形值,SHIFT=1表示第一个封闭条形值,以此类推......
你好,Mladen。
谢谢你的提醒!我已经设法解决了这个问题。![](https://c.mql5.com/forextsd/smiles/smile.png)
顺便问一下,你知道在iStochasticdo 中MODE和SHIFT的功能是什么,或者有什么地方可以提供更多的信息?我一直在阅读mql4网站上的文档,但对我来说并没有意义。他们提供的解释太简单了。![](https://c.mql5.com/forextsd/smiles/frown.png)
比如说
iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, Current + 0)。
iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_MAIN, 0)。
iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_SIGNAL,Current + 1)。
电流+0等是做什么的?
谢谢,问候
特伦斯...
错误在于GlobalVariableGet() 只有一个参数(变量名)。你不需要第二个参数(你在调用该函数 时的"false")。
嗨,谁能告诉我,我在哪里出了问题?我得到了错误代码')',在红色突出显示的行上有错误的参数计数 - 但所有的参数加起来...
如果((GlobalVariableGet (barsGV) == 0)|| (GlobalVariableGet (barsGV) < Bars))
{
GlobalVariableSet(hasOrderedGV,false)。
GlobalVariableSet(barsGV,Bars)。
}
//--- 检查多头头寸(BUY)的可能性
如果(GlobalVariableGet (hasOrderedGV, false))谢谢我把代码改成了这样,至少没有错误--可以吗?
如果(GlobalVariableGet (hasOrderedGV) == false)