[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 562 1...555556557558559560561562563564565566567568569...631 新评论 Dimka-novitsek 2012.12.01 18:55 #5611 谢谢你!!!。 [删除] 2012.12.01 19:03 #5612 Ekburg:你能告诉我这个代码可能有什么问题吗?这是一个跟踪止损,但当测试时,它给出了错误1,在修改。为什么不修改命令?当我在纠正这个错误时(到目前为止没有成功),当把Expert Advisor的主代码编译到打印函数中时,它开始返回一个错误,说它需要倒置的逗号,但那里的一切都很正确,要纠正这个错误,我必须删除并放入一个新的倒置逗号... bool trailingstop(){如果((OrderMagicNumber()==11111)==true){Print("保持买入位置")。while(OrderCloseTime()==0){如果((Bid-OrderStopLoss())>(StopLevel*Point)){如果(OrderModify(OrderTicket(),OrderOpenPrice(),ND(Bid-StopLevel*Point),0,0) )Print("Stop Loss of the order with number ",OrderTicket()," and the magic number ",OrderMagicNumber()," successfully changed to ",OrderStopLoss();else Print("号码为",OrderTicket(), "和魔法号码为",OrderMagicNumber(), "的订单的止损水平。错误",GetLastError())。}}如果(OrderCloseTime()>0){Print("号码为",OrderTicket(), "和神奇数字",OrderMagicNumber(), "以价格",OrderClosePrice(), "盈利/亏损",OrderProfit()的订单关闭。)return(true)。}}否则{如果((OrderMagicNumber()==22222)==true){Print((Sell position);while(OrderCloseTime()==0){如果((OrderStopLoss()-Ask)>(StopLevel*Point)){如果(OrderModify(OrderTicket(),OrderOpenPrice(),ND(Ask+StopLevel*Point),0,0) )Print("Stop Loss of the order with number ",OrderTicket()," and the magic number ",OrderMagicNumber()," successfully changed to ",OrderStopLoss();else Print("号码为",OrderTicket(), "和魔法号码为",OrderMagicNumber(), "的订单的止损水平。错误",GetLastError())。}}如果(OrderCloseTime()>0){Print("号码为",OrderTicket(), "和神奇数字",OrderMagicNumber(), "以价格",OrderClosePrice(), "盈利/亏损",OrderProfit()的订单关闭。)return(true)。}}否则返回(false)。}} 错误1不是错误。这意味着订单已经被修改。在OrderModify()之前插入检查修改参数(如果订单stoploop 不等于stoploop,(ND(Bid-StopLevel*Point)或 ND(Ask+StopLevel*Point)),则OrderModify(),否则返回)。 [删除] 2012.12.01 19:54 #5613 rigonich: 错误1不是错误,这意味着订单已经被修改。 在OrderModify()之前插入检查修改参数(如果订单的止损不等于止损,(ND(Bid-StopLevel*Point)或ND(Ask+StopLevel*Point)),则OrderModify(),否则返回)。 这个检查在上面:如果((Bid-OrderStopLoss())>(StopLevel*Point)),或者我把你搞错了我在一个急剧的运动中进行了测试,即使从视觉上看,也可以清楚地看到订单的止损和表达方式是不平等的。 Equilibrium 2012.12.01 20:23 #5614 Usual_Trader: 一目了然,我看到的是在关闭订单的功能中,你需要通过票据选择订单OrderSelect(Ticket, SELECT_BY_TICKET),手数指示不是变量Lts,因为它每次都要重新计算,而是使用OrderLots() 还有一点,你一直在0条上工作,分别在一个条上的标准可能会消失,你的订单可能不会在你希望的地方打开。在指标参数中用1替换条形0,用2替换1 非常感谢你的回答),但这个标准并没有像我希望的那样发挥作用(不是所有的随机指标交叉都显示订单(),我想在0条上开立订单,但我想我需要一个额外的条件:在当前条上开立订单后,我必须在条关闭前不做任何事情,但我不知道如何做(可能是使用时间序列数组? 附加的文件: qccltotmvrgqnuccd.mq4 14 kb [删除] 2012.12.01 20:28 #5615 Ekburg: 这个检查在上面:如果((Bid-OrderStopLoss())>(StopLevel*Point)),或者我误解了你。我在一个急剧的运动中检查了它,你可以清楚地看到订单的止损和表达方式是不相等的。 问题如下:由于你在这个函数中没有OrderSelect(),它必须在循环中的某个地方与搜索订单一起使用。如果这个循环组织了从0个订单到最后一个订单的搜索,那么在修改了第一个订单后,或者已经找到了任何订单,当OrderSelect() 在下一次被调用时,订单的顺序会发生变化,函数可能会选择一个已经被修改的订单。因此,我们应该检查订单StopLoss的 值是否等于我们发送至OrderModify()函数的值if(ND(Bid-StopLevel*Point)==OrderStopLoss())return(true); [删除] 2012.12.01 23:01 #5616 abeiks。 一段时间以来, ,我一直试图 ,重做 买入 平仓 区块 ,只关闭最后两个 买入头寸,但是失败了。 你能告诉 ,如何 ,重做 这个区块? //+------------------------------------------------------------------+ //| 0000.mq4 | //+------------------------------------------------------------------+ #property copyright "" #property link "" void Close_2buy() { bool result; int Count=2,Ticket=-1,error; datetime time=0; while(Count>0) { for (int f=OrdersTotal()-1; f>=0; f--) // { OrderSelect(f, SELECT_BY_POS); if (OrderSymbol()==Symbol() &&(OrderMagicNumber()==magic ) && (OrderType() == OP_BUY )) { if(OrderOpenTime()>time) { time=OrderOpenTime();Ticket=OrderTicket(); } } } if(OrderSelect(Ticket,SELECT_BY_TICKET)==True); { result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),0,CLR_NONE); if(result!=TRUE){error=GetLastError();Print("LastError = ", error);} } else{error=GetLastError();Print("LastError = ", error);} Ticket=-1;time=0;Count--; } return; } Mikhail Kozhemyako 2012.12.02 03:51 #5617 ametist444:你好!你能告诉我需要下载哪些文件,并在mt4中安装这些文件以获得这个窗口吗?我不明白如何 在模拟中对被测工具的不同时间段进行 模拟。我想只看到三个日线图,四小时图和小时图我想看三个日线图、四小时图和小时图。 请帮助,我整晚都没能做到!我想看的是日线图。 在视觉模式下测试EA时,像(视觉)这样的窗口打开。 Delf 2012.12.02 04:33 #5618 peshihod:什么样的StopLoss? 我一定是措辞不当 :( 我们有一个开单的算法。 我需要它在另一个方向打开下一个订单(当条件出现时),如果上一个订单以任何方式被关闭。 所有的工作,但如果我已经通过止损 关闭,例如卖出,并有条件在这个方向上打开一个卖出,开口继续。我们需要的是等待条件购买。 也就是说,我们需要检查最后一个关闭的订单,所以它不会与开盘的订单重合(买-卖-买-卖的交替)。只有一个订单或等待信号在运行。 我知道我们也许应该使用OrdersHistoryTotal(),但在一个工作的EA中,它看起来如何? 谢谢你。 [删除] 2012.12.02 08:17 #5619 delf:有一个开单的算法。我们需要上一个订单的任何变体来开启下一个不同方向的订单(当条件出现时)。换句话说,我们需要检查最后的平仓单,使其不与开仓单重合(买-卖-买-卖的交替)。只有一个订单或信号等待被打开。这种交替在任何情况下都会发生,而且只有一种秩序始终在运作?那么在条件中加入对订单数量 的控制就更容易了。if(OrdersTotal()==0) { if(OldOrder==OrderBuy) { ... } else { ... } } [删除] 2012.12.02 08:28 #5620 rigonich: 问题如下:由于你在这个函数中没有OrderSelect(),它似乎是在循环中的某个地方用搜索订单的方式使用。如果这个循环从零个订单到最后一个订单组织搜索,那么在修改第一个订单后,或者任何订单已经被埋在这个勾上,当OrderSelect() 下一次被调用时,订单的顺序会改变,函数可能会选择一个已经被修改的订单。因此,我们应该检查订单StopLoss的值是否等于我们发送至OrderModify()函数的值 不,当其中一个被关闭时,改变仓位订单号的问题已经解决了,我已经检查了不止一次,认为那里可能有一个错误,但那里一切正常,所需的订单被选中,并为其正确计算了止损,但订单不希望被修改... 1...555556557558559560561562563564565566567568569...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你能告诉我这个代码可能有什么问题吗?这是一个跟踪止损,但当测试时,它给出了错误1,在修改。为什么不修改命令?
当我在纠正这个错误时(到目前为止没有成功),当把Expert Advisor的主代码编译到打印函数中时,它开始返回一个错误,说它需要倒置的逗号,但那里的一切都很正确,要纠正这个错误,我必须删除并放入一个新的倒置逗号...
bool trailingstop()错误1不是错误。这意味着订单已经被修改。在OrderModify()之前插入检查修改参数(如果订单stoploop 不等于stoploop,(ND(Bid-StopLevel*Point)或 ND(Ask+StopLevel*Point)),则OrderModify(),否则返回)。
错误1不是错误,这意味着订单已经被修改。 在OrderModify()之前插入检查修改参数(如果订单的止损不等于止损,(ND(Bid-StopLevel*Point)或ND(Ask+StopLevel*Point)),则OrderModify(),否则返回)。
这个检查在上面:如果((Bid-OrderStopLoss())>(StopLevel*Point)),或者我把你搞错了
我在一个急剧的运动中进行了测试,即使从视觉上看,也可以清楚地看到订单的止损和表达方式是不平等的。
一目了然,我看到的是在关闭订单的功能中,你需要通过票据选择订单OrderSelect(Ticket, SELECT_BY_TICKET),手数指示不是变量Lts,因为它每次都要重新计算,而是使用OrderLots() 还有一点,你一直在0条上工作,分别在一个条上的标准可能会消失,你的订单可能不会在你希望的地方打开。在指标参数中用1替换条形0,用2替换1
非常感谢你的回答),但这个标准并没有像我希望的那样发挥作用(不是所有的随机指标交叉都显示订单(),我想在0条上开立订单,但我想我需要一个额外的条件:在当前条上开立订单后,我必须在条关闭前不做任何事情,但我不知道如何做(可能是使用时间序列数组?
这个检查在上面:如果((Bid-OrderStopLoss())>(StopLevel*Point)),或者我误解了你。
我在一个急剧的运动中检查了它,你可以清楚地看到订单的止损和表达方式是不相等的。
问题如下:由于你在这个函数中没有OrderSelect(),它必须在循环中的某个地方与搜索订单一起使用。如果这个循环组织了从0个订单到最后一个订单的搜索,那么在修改了第一个订单后,或者已经找到了任何订单,当OrderSelect() 在下一次被调用时,订单的顺序会发生变化,函数可能会选择一个已经被修改的订单。因此,我们应该检查订单StopLoss的 值是否等于我们发送至OrderModify()函数的值
一段时间以来, ,我一直试图 ,重做 买入 平仓 区块 ,只关闭最后两个 买入头寸,但是失败了。 你能告诉 ,如何 ,重做 这个区块?
Ticket=-1;time=0;Count--;
} return; }
你好!
你能告诉我需要下载哪些文件,并在mt4中安装这些文件以获得这个窗口吗?
我不明白如何 在模拟中对被测工具的不同时间段进行 模拟。
我想只看到三个日线图,四小时图和小时图
我想看三个日线图、四小时图和小时图。 请帮助,我整晚都没能做到!我想看的是日线图。
在视觉模式下测试EA时,像(视觉)这样的窗口打开。
什么样的StopLoss?
我一定是措辞不当 :(
我们有一个开单的算法。
我需要它在另一个方向打开下一个订单(当条件出现时),如果上一个订单以任何方式被关闭。
所有的工作,但如果我已经通过止损 关闭,例如卖出,并有条件在这个方向上打开一个卖出,开口继续。我们需要的是等待条件购买。
也就是说,我们需要检查最后一个关闭的订单,所以它不会与开盘的订单重合(买-卖-买-卖的交替)。只有一个订单或等待信号在运行。
我知道我们也许应该使用OrdersHistoryTotal(),但在一个工作的EA中,它看起来如何?
谢谢你。
有一个开单的算法。
我们需要上一个订单的任何变体来开启下一个不同方向的订单(当条件出现时)。
换句话说,我们需要检查最后的平仓单,使其不与开仓单重合(买-卖-买-卖的交替)。只有一个订单或信号等待被打开。
这种交替在任何情况下都会发生,而且只有一种秩序始终在运作?
那么在条件中加入对订单数量 的控制就更容易了。
问题如下:由于你在这个函数中没有OrderSelect(),它似乎是在循环中的某个地方用搜索订单的方式使用。如果这个循环从零个订单到最后一个订单组织搜索,那么在修改第一个订单后,或者任何订单已经被埋在这个勾上,当OrderSelect() 下一次被调用时,订单的顺序会改变,函数可能会选择一个已经被修改的订单。因此,我们应该检查订单StopLoss的值是否等于我们发送至OrderModify()函数的值
不,当其中一个被关闭时,改变仓位订单号的问题已经解决了,我已经检查了不止一次,认为那里可能有一个错误,但那里一切正常,所需的订单被选中,并为其正确计算了止损,但订单不希望被修改...