如何编码? - 页 311 1...304305306307308309310311312313314315316317318...347 新评论 tkuan77 2012.08.11 01:27 #3101 嗨,Mladen,像往常一样,你真厉害 mladen: Terrance 在这种情况下使用Close[0]。几乎所有的EA都在使用close来达到这个目的,所以我想它也会对你有用。 Mladen Rakic 2012.08.11 04:19 #3102 ... 如果你的EA只在条形图开始时执行,可能有几个原因。 - 它只限于在一个新条形上工作。如果要管理跟踪止损和一些类似的东西,这种方法有一些问题,但如果它在固定的止损和止盈的 情况下工作,那就都一样了。 - 或它正在检查关闭的条形图上的信号(这是最常见的(也是最好的)检查信号的方式)。因此,它看起来好像是在新柱状体形成时执行的,而事实上,它是在刚刚形成的封闭柱状体上获得信号。在闭合条形信号上工作是EA的最佳做法,如果你的EA是这样工作的,最好不要做任何改变。 Premeus: 我注意到我的EA在M1时间段的价格波动中没有运行。我知道EA会在每一个tick进来的时候执行。但我看到它是在每一个新条形开始时执行的。我是不是理解错了?有什么方法可以让EA在每一个新的点位上激活吗?我试图通过使用利润和损失来控制我的利润和损失, ,而不是用点数。当尖峰发生时,EA在达到设定的利润或损失时不关闭订单,直到新的栏位出现。有谁能帮助我解决这个问题?我是EA编码的新手。 预先感谢你。 [删除] 2012.08.11 10:58 #3103 谢谢你,mladen。 我将尝试你的建议。 Abdalla Doleh 2012.08.13 17:41 #3104 尊敬的编码之神。 我需要帮助找到一个控制订单发送执行的EA函数,即如果已经存在相同价格的订单,则不能打开订单。 简单的逻辑:如果订单开盘价和订单类型=现有订单开盘价和订单类型,那么退出并寻找下一个进入标准。 另外,我需要一个函数,如果一个订单与已经存在的价格相差x个点,它将被阻止执行。 简单的逻辑:如果订单的开盘价和类型<上一个订单的开盘价和类型+x点,那么退出并寻找下一个进入标准。 谢谢。 皮普 Mladen Rakic 2012.08.14 15:52 #3105 ... 试试这两个功能:第一是找出是否有一个完全相同的开盘价 的订单;第二是检查是否有一个距离所需价格在nn点以内的订单。如果价格相等,或者与当前一些已开订单的价格的距离在指定的距离内,两者都返回真。 bool existsAtSamePrice(int magicNumber, double price) { for (int i=OrdersTotal()-1; i>=0 ; i--) { if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if (OrderSymbol()!=Symbol()) continue; if (OrderMagicNumber()!=magicNumber) continue; if (CompareDouble(OrderOpenPrice(),price)) return(true); } return(false); } // // // // // bool existsAtApproximatePrice(int magicNumber, double price, double distance) { for (int i=OrdersTotal()-1; i>=0 ; i--) { if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if (OrderSymbol()!=Symbol()) continue; if (OrderMagicNumber()!=magicNumber) continue; if (MathAbs(OrderOpenPrice()-price)< distance) return(true); } return(false); } // // // // // bool CompareDouble(double val1, double val2) { return(NormalizeDouble(val1,Digits)==NormalizeDouble(val2,Digits)); } Pip: 尊敬的编码之神。我需要帮助找到一个控制订单发送执行的EA函数,即如果已经存在相同价格的订单,则不能打开订单。 简单的逻辑:如果订单的开盘价和订单类型=现有订单的开盘价和订单类型,那么退出并寻找下一个进入标准。 另外,我需要一个函数,如果一个订单与已经存在的价格相差x个点,它将被阻止执行。 简单的逻辑:如果订单的开盘价和类型<上一个订单的开盘价和类型+x点,那么退出并寻找下一个进入标准。 谢谢。 Pip 编码帮助 [存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. EA不会在多对上运行,需要帮助 pearl1 2012.08.14 17:40 #3106 mladen: 这可能有几个原因,但最常见的是:- 止损和/或止盈太接近当前价格- 你的经纪商是ECN/STP类型的经纪商,在这种情况下,你首先必须先下一个订单,并将止损和止盈设置为0,只有当订单被打开,你才能将止损和/或止盈修改为所需的值(当然要尊重前面的观点 你好! 谢谢你的帮助! 所以,如果我理解得对,如果我在OrderSend中插入TakeProfit和StopLoss作为外部 "规则",这个EA只能在非ECN经纪商上工作? 对不起,我的英语不好 Mladen Rakic 2012.08.15 06:49 #3107 ... 是的 对于ECN/STP这样的经纪商,你必须在开立订单时将止损和/或止盈设置为0,当订单已经开立时,你才可以修改止损 和/或止盈。 pearl1: 你好!谢谢你的帮助! 所以,如果我没有理解错的话,如果我在OrderSend中插入TakeProfit和StopLoss作为外部 "规则",这个EA只能在非ECN经纪商上工作? 对不起,我的英语不好 pearl1 2012.08.15 11:40 #3108 mladen: 是的,在ECN/STP这样的经纪商,你必须在开立订单时将止损和/或止盈设置为0,当订单已经开立时,你才可以修改止损和/或止盈。 再次感谢,那么......我怎样才能解决这个问题? 对不起 Mladen Rakic 2012.08.15 12:04 #3109 ... 正如我所说,你必须分两步来做。 1.步骤 - 打开一个订单(使用OrderSend()),将止损和止盈 设置为02.步骤--修改订单(使用OrderModify()),将止损和获利设置为理想值 因此,必须修改代码,使其分两步完成工作,而不是一步到位 pearl1: 再次感谢,那么......我怎样才能解决这个问题呢? 对不起 [删除] 2012.08.18 08:25 #3110 编码新手 大家好。 我是编码新手,一直在慢慢学习语言和语法,但我遇到了一个关于MT4如何更新变量的问题。 我试图编写一个简单的EA,显示当前未平仓交易的最高利润,并且只有在达到新的高点时才会更新,但现在的情况是,金额随着利润的变化而上下波动,我似乎看不到我在代码逻辑上的错误。 我检查 以确保选定的交易仍在进行中 t_CloseTime=OrderCloseTime(); //如果订单没有关闭则返回0 if(t_CloseTime==0) //订单已关闭,如果不是零。 { if(OrderProfit() > LastProfitHigh) LastProfitHigh=OrderProfit(); 如果(LastProfitHigh >= MinProfit && MinProfitReached==false) MinProfitReached=true; }//endif 那么,如果逻辑是正确的,为什么这个变量 "LastProfitHigh "会上升和下降....。 谢谢你的帮助。 1...304305306307308309310311312313314315316317318...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
嗨,Mladen,像往常一样,你真厉害
Terrance 在这种情况下使用Close[0]。几乎所有的EA都在使用close来达到这个目的,所以我想它也会对你有用。
...
如果你的EA只在条形图开始时执行,可能有几个原因。
我注意到我的EA在M1时间段的价格波动中没有运行。我知道EA会在每一个tick进来的时候执行。
但我看到它是在每一个新条形开始时执行的。
我是不是理解错了?
有什么方法可以让EA在每一个新的点位上激活吗?
我试图通过使用利润和损失来控制我的利润和损失, ,而不是用点数。当尖峰发生时,EA在达到设定的利润或损失时不关闭订单,直到新的栏位出现。
有谁能帮助我解决这个问题?
我是EA编码的新手。
预先感谢你。谢谢你,mladen。
我将尝试你的建议。
尊敬的编码之神。
我需要帮助找到一个控制订单发送执行的EA函数,即如果已经存在相同价格的订单,则不能打开订单。
简单的逻辑:如果订单开盘价和订单类型=现有订单开盘价和订单类型,那么退出并寻找下一个进入标准。
另外,我需要一个函数,如果一个订单与已经存在的价格相差x个点,它将被阻止执行。
简单的逻辑:如果订单的开盘价和类型<上一个订单的开盘价和类型+x点,那么退出并寻找下一个进入标准。
谢谢。
皮普
...
试试这两个功能 的 。如果价格相等,或者与当前一些已开订单的价格的距离在指定的距离内,两者都返回真。
{
for (int i=OrdersTotal()-1; i>=0 ; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderMagicNumber()!=magicNumber) continue;
if (CompareDouble(OrderOpenPrice(),price)) return(true);
}
return(false);
}
//
//
//
//
//
bool existsAtApproximatePrice(int magicNumber, double price, double distance)
{
for (int i=OrdersTotal()-1; i>=0 ; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderMagicNumber()!=magicNumber) continue;
if (MathAbs(OrderOpenPrice()-price)< distance) return(true);
}
return(false);
}
//
//
//
//
//
bool CompareDouble(double val1, double val2)
{
return(NormalizeDouble(val1,Digits)==NormalizeDouble(val2,Digits));
}
尊敬的编码之神。
我需要帮助找到一个控制订单发送执行的EA函数,即如果已经存在相同价格的订单,则不能打开订单。
简单的逻辑:如果订单的开盘价和订单类型=现有订单的开盘价和订单类型,那么退出并寻找下一个进入标准。
另外,我需要一个函数,如果一个订单与已经存在的价格相差x个点,它将被阻止执行。
简单的逻辑:如果订单的开盘价和类型<上一个订单的开盘价和类型+x点,那么退出并寻找下一个进入标准。
谢谢。
Pip这可能有几个原因,但最常见的是:
你好!
谢谢你的帮助!
所以,如果我理解得对,如果我在OrderSend中插入TakeProfit和StopLoss作为外部 "规则",这个EA只能在非ECN经纪商上工作?
对不起,我的英语不好
...
是的
对于ECN/STP这样的经纪商,你必须在开立订单时将止损和/或止盈设置为0,当订单已经开立时,你才可以修改止损 和/或止盈。
你好!
谢谢你的帮助!
所以,如果我没有理解错的话,如果我在OrderSend中插入TakeProfit和StopLoss作为外部 "规则",这个EA只能在非ECN经纪商上工作?
对不起,我的英语不好是的,在ECN/STP这样的经纪商,你必须在开立订单时将止损和/或止盈设置为0,当订单已经开立时,你才可以修改止损和/或止盈。
再次感谢,那么......我怎样才能解决这个问题? 对不起
...
正如我所说,你必须分两步来做。
因此,必须修改代码,使其分两步完成工作,而不是一步到位
再次感谢,那么......我怎样才能解决这个问题呢? 对不起
编码新手
大家好。
我是编码新手,一直在慢慢学习语言和语法,但我遇到了一个关于MT4如何更新变量的问题。
我试图编写一个简单的EA,显示当前未平仓交易的最高利润,并且只有在达到新的高点时才会更新,但现在的情况是,金额随着利润的变化而上下波动,我似乎看不到我在代码逻辑上的错误。
我检查 以确保选定的交易仍在进行中
t_CloseTime=OrderCloseTime(); //如果订单没有关闭则返回0
if(t_CloseTime==0) //订单已关闭,如果不是零。
{
if(OrderProfit() > LastProfitHigh) LastProfitHigh=OrderProfit();
如果(LastProfitHigh >= MinProfit && MinProfitReached==false) MinProfitReached=true;
}//endif
那么,如果逻辑是正确的,为什么这个变量 "LastProfitHigh "会上升和下降....。
谢谢你的帮助。