分形的突破--图解 - 页 4 123456 新评论 Zachary 2013.03.18 19:59 #31 for(int i=OrdersTotal()-1; i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber || OrderSymbol() !=Symbol()) continue; double SL=OrderStopLoss(); bool result; int error; //-----The Differnt Order types---// if(OrderType()==OP_BUY) { if(BreakEven>0) { if(Bid-OrderOpenPrice() >= Point*BreakEven*mypoint) { if(OrderStopLoss() <OrderOpenPrice()) { SL=OrderOpenPrice()*Point*mypoint; }}}}} if(SL!=OrderStopLoss()) result=OrderModify(OrderTicket(),OrderOpenPrice(), SL,OrderTakeProfit(),0,CLR_NONE); if(result!=true){error=GetLastError(); Print("ModifyError=",OrderTicket()," ",error);} //--------CHECKING FOR ERRORS-------------------// return(0); } } 我也创建了卖出方,但后来删除了它,因为我得到了错误,所以我把deVries给我看的那个放了回去,仍然得到了同样的错误代码。 40514108另外,为什么我们要在OrderOpenPrice()=SL中加入Point呢?那只是把正确的数字加到止损上。 Tjipke de Vries 2013.03.18 20:40 #32 ZacharyRC:我也创建了卖出方,但后来删除了它,因为我得到了错误,所以我把deVries给我看的那个放了回去,仍然得到同样的错误代码。 for(int i=OrdersTotal()-1; i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber || OrderSymbol() !=Symbol()) continue; double SL=OrderStopLoss(); bool result; int error; //-----The Differnt Order types---// if(OrderType()==OP_BUY) { if(BreakEven>0) { if(Bid-OrderOpenPrice() >= Point*BreakEven*mypoint) { if(OrderStopLoss() <OrderOpenPrice()) { SL=OrderOpenPrice()*Point*mypoint; // WRONG HERE }}}}} if(SL!=OrderStopLoss()) result=OrderModify(OrderTicket(),OrderOpenPrice(), SL,OrderTakeProfit(),0,CLR_NONE); if(result!=true){error=GetLastError(); Print("ModifyError=",OrderTicket()," ",error);} //Where is the } ?? //--------CHECKING FOR ERRORS-------------------// return(0); } } 40514108另外,为什么我们要在OrderOpenPrice()=SL中加入Point呢?那只是把正确的数字加到止损上。 再看看我的代码,把那行红字改一下它与我给出的不同 !!!!我们可以看看现在的代码是怎样的吗?以及你读到的那些错误信息在orderopenprice上加一点,是为了避免在每一个tick 上再次尝试修改交易的盈亏。 Zachary 2013.03.18 21:54 #33 deVries:再看看我的代码,把那行红字改掉它与我给出的不同 !!!!我们可以看看现在的代码是怎样的吗?以及你读到的那些错误信息在orderopenprice上加一点,是为了避免在每一个tick上再次尝试修改交易的盈亏。 是的,我发现了这个错误,我只是改变了一些东西,在发布代码之前忘了擦掉它。对不起。//-----------------EXITING ORDERS---------------// for(int i=OrdersTotal()-1; i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber || OrderSymbol() !=Symbol()) continue; double SL=OrderStopLoss(); bool result; int error; //-----The Differnt Order types---// if(OrderType()==OP_BUY) { if(BreakEven>0) { if(Bid-OrderOpenPrice() >= Point*BreakEven*mypoint) { if(OrderStopLoss() <OrderOpenPrice()) { SL=OrderOpenPrice()+Point; }}}}} if(OrderType()==OP_SELL) { if(OrderOpenPrice()-Ask >= Point*BreakEven*mypoint) { if(OrderStopLoss()>OrderOpenPrice()) { SL=OrderOpenPrice() + Point; }}} if(SL != OrderStopLoss()) result=OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0,CLR_NONE); if(result!=TRUE) { error=GetLastError(); Print("ModifyError = ",OrderTicket()," ",error);} //--------CHECKING FOR ERRORS-------------------// Print(GetLastError()); return(0); } } Zachary 2013.03.18 21:56 #34 2013.03.18 17:55:51 2013.03.11 23:59 测试员:6号订单已关闭 2013.03.18 17:55:51 2013.03.11 15:48 BreakOutEA EURUSD,M1: 0 2013.03.18 17:55:51 2013.03.11 15:48 BreakOutEA EURUSD,M1:ModifyError = 6 0 2013.03.18 17:55:51 2013.03.11 15:48 BreakOutEA EURUSD,M1: modify #6 buy 0.03 EURUSD at 1.30390 sl: 1.30055 tp: 1.30855 ok 2013.03.18 17:55:51 2013.03.11 15:48 BreakOutEA EURUSD,M1: open #6 buy 0.03 EURUSD at 1.30390 ok 2013.03.18 17:55:51 2013.03.11 15:47 BreakOutEA EURUSD,M1: 0 2013.03.18 17:55:51 2013.03.11 15:47 BreakOutEA EURUSD,M1:ModifyError = 5 4108 2013.03.18 17:55:51 2013.03.11 15:47 BreakOutEA EURUSD,M1:OrderModify错误 4108 2013.03.18 17:55:51 2013.03.11 15:47 BreakOutEA EURUSD,M1: OrderModify函数 的未知票5 2013.03.18 17:55:51 2013.03.11 15:47 BreakOutEA EURUSD,M1: 0 Fractal Break Out-Stuck PREDICT time period error 4756 Zachary 2013.03.18 21:57 #35 好吧!因此,对于卖出,我也应该减去1分。 Tjipke de Vries 2013.03.18 22:17 #36 //-----------------EXITING ORDERS---------------// for(int i=OrdersTotal()-1; i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber || OrderSymbol() !=Symbol()) continue; double SL=OrderStopLoss(); bool result; int error; //-----The Differnt Order types---// if(OrderType()==OP_BUY) { if(BreakEven>0) { if(Bid-OrderOpenPrice() >= Point*BreakEven*mypoint) { if(OrderStopLoss() <OrderOpenPrice()) { SL=OrderOpenPrice()+Point; }}}} } //PLACE THE BRACKETS IN LINE OPEN/CLOSE BRACKET AND YOU WILL SEE THE ERROR HERE if(OrderType()==OP_SELL) { if(OrderOpenPrice()-Ask >= Point*BreakEven*mypoint) { if(OrderStopLoss()>OrderOpenPrice()) { SL=OrderOpenPrice() + Point; //OrderStopLoss has to become point lower then orderopenprice }}} if(SL != OrderStopLoss()) result=OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0,CLR_NONE); if(result!=TRUE) { error=GetLastError(); Print("ModifyError = ",OrderTicket()," ",error);} } //--------CHECKING FOR ERRORS-------------------// Print(GetLastError( return(0); } } 在循环内,我们检查每一个修改的错误,而在循环外,我们不知道最后一个错误 的顺序是什么。最后一行print( getlasterror()) b是不需要的。我喜欢在一行中看到更多的括号。 RaptorUK和我没有这样放括号 }}}}}}你现在犯的错误就是因为这个 Zachary 2013.03.18 23:01 #37 for(int i=OrdersTotal()-1; i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber || OrderSymbol() !=Symbol()) continue; double SL=OrderStopLoss(); bool result; int error; //-----The Differnt Order types---// if(OrderType()==OP_BUY) { if(BreakEven>0) { if(Bid-OrderOpenPrice() >= Point*BreakEven*mypoint) { if(OrderStopLoss() <OrderOpenPrice()) { SL=OrderOpenPrice()+Point; } } } } if(OrderType()==OP_SELL) { if(OrderOpenPrice()-Ask >= Point*BreakEven*mypoint) { if(OrderStopLoss()>OrderOpenPrice()) { SL=OrderOpenPrice() - Point; } } } if(SL != OrderStopLoss()) result=OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0,CLR_NONE); if(result!=TRUE) { error=GetLastError(); Print("ModifyError = ",OrderTicket()," ",error);} } return(0); } } 你所要求的{{ }}}开括号和闭括号的顺序是这样的吗?这对我来说一直是个问题,我觉得代码里面很乱。 Zachary 2013.03.18 23:12 #38 现在没有错误,但在视觉回测 中,SL没有被移动。我对此有信心,但现在很受伤,很抱歉这么依赖留言板。大括号是错误的,但仍然不能正常运作。我也一直在重读这本书。 Zachary 2013.03.18 23:36 #39 if(OrderType()==OP_BUY){ if(BreakEven>0){ if(Bid-OrderOpenPrice() >=BreakEven*mypoint*Point){ if(OrderStopLoss() <OrderOpenPrice()){ SL=OrderOpenPrice()+Point; } } } } 我想这对我也有帮助,把括号放在操作者的正下方。 Simon Gniadkowski 2013.03.18 23:45 #40 ZacharyRC: 我想这对我也有帮助,把括号直接放在操作员的下面。 对我来说,这看起来很可怕,但如果对你来说有意义的话,那就太好了。 我是这样做的,这样缩进就能显示出一个块的位置 ......if(OrderType()==OP_BUY) { if(BreakEven>0) { if(Bid-OrderOpenPrice() >=BreakEven*mypoint*Point) { if(OrderStopLoss() <OrderOpenPrice()) { SL=OrderOpenPrice()+Point; } } } }或者像这样做......。if(OrderType() == OP_BUY && BreakEven > 0 && Bid - OrderOpenPrice() >= BreakEven * mypoint * Point && OrderStopLoss() < OrderOpenPrice() ) { SL = OrderOpenPrice() + Point; } 123456 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我也创建了卖出方,但后来删除了它,因为我得到了错误,所以我把deVries给我看的那个放了回去,仍然得到了同样的错误代码。
4051
4108
另外,为什么我们要在OrderOpenPrice()=SL中加入Point呢?那只是把正确的数字加到止损上。
我也创建了卖出方,但后来删除了它,因为我得到了错误,所以我把deVries给我看的那个放了回去,仍然得到同样的错误代码。
4051
4108
另外,为什么我们要在OrderOpenPrice()=SL中加入Point呢?那只是把正确的数字加到止损上。
再看看我的代码,把那行红字改一下
它与我给出的不同 !!!!
我们可以看看现在的代码是怎样的吗?
以及你读到的那些错误信息
在orderopenprice上加一点,是为了避免在每一个tick 上再次尝试修改交易的盈亏。
再看看我的代码,把那行红字改掉
它与我给出的不同 !!!!
我们可以看看现在的代码是怎样的吗?
以及你读到的那些错误信息
在orderopenprice上加一点,是为了避免在每一个tick上再次尝试修改交易的盈亏。
是的,我发现了这个错误,我只是改变了一些东西,在发布代码之前忘了擦掉它。对不起。
2013.03.18 17:55:51 2013.03.11 15:48 BreakOutEA EURUSD,M1: 0
2013.03.18 17:55:51 2013.03.11 15:48 BreakOutEA EURUSD,M1:ModifyError = 6 0
2013.03.18 17:55:51 2013.03.11 15:48 BreakOutEA EURUSD,M1: modify #6 buy 0.03 EURUSD at 1.30390 sl: 1.30055 tp: 1.30855 ok
2013.03.18 17:55:51 2013.03.11 15:48 BreakOutEA EURUSD,M1: open #6 buy 0.03 EURUSD at 1.30390 ok
2013.03.18 17:55:51 2013.03.11 15:47 BreakOutEA EURUSD,M1: 0
2013.03.18 17:55:51 2013.03.11 15:47 BreakOutEA EURUSD,M1:ModifyError = 5 4108
2013.03.18 17:55:51 2013.03.11 15:47 BreakOutEA EURUSD,M1:OrderModify错误 4108
2013.03.18 17:55:51 2013.03.11 15:47 BreakOutEA EURUSD,M1: OrderModify函数 的未知票5
2013.03.18 17:55:51 2013.03.11 15:47 BreakOutEA EURUSD,M1: 0
在循环内,我们检查每一个修改的错误,而在循环外,我们不知道最后一个错误 的顺序是什么。
最后一行print( getlasterror()) b是不需要的。
我喜欢在一行中看到更多的括号。
RaptorUK和我没有这样放括号 }}}}}}
你现在犯的错误就是因为这个
你所要求的{{ }}}开括号和闭括号的顺序是这样的吗?
这对我来说一直是个问题,我觉得代码里面很乱。
现在没有错误,但在视觉回测 中,SL没有被移动。我对此有信心,但现在很受伤,很抱歉这么依赖留言板。
大括号是错误的,但仍然不能正常运作。
我也一直在重读这本书。
我想这对我也有帮助,把括号直接放在操作员的下面。
对我来说,这看起来很可怕,但如果对你来说有意义的话,那就太好了。 我是这样做的,这样缩进就能显示出一个块的位置 ......
或者像这样做......。