[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 458 1...451452453454455456457458459460461462463464465...652 新评论 Всеволод 2011.12.27 05:08 #4571 mamba5:在测试EA的过程中,我得到错误130--错误的停止。在NewOrder函数中,应该传递外部变量TakeProfit和StopLoss,在我看来,我已经做了一切来实现这一点,但正如打印显示的那样,传递的是零。我明白这个错误的原因在于此,但我还没能找到它。请帮助我。 Extern int TakeProfit=100; extern int StopLoss=100。....................................NewOrder(OP_BUYSTOP, Lot, TakeProfit, StopLoss); NewOrder(OP_SELLSTOP, Lot, TakeProfit, StopLoss) 。int NewOrder(int Cmd,double Lot,int TakeProfit,int StopLoss) 这里的问题是,有全局变量 StopLoss,它们被作为参数传递给程序。最好在程序中重新命名它们。 fore-x 2011.12.27 05:33 #4572 fore-x: Как в mql4 из одного индикатора управлять более чем 8 буферами обмена, существует ли способ обхода данного ограничения? Ну, как пример, мне нужно построить более 8 индикаторных линий, но из одной программы. 竺可桢。 趋势线。 还有更多的细节?至少给我一个链接,在哪里读? [删除] 2011.12.27 09:07 #4573 splxgf: 这里的问题是,有全局性的StopLoss变量,它们也被作为参数传递给程序。最好是在程序中重新命名它们。 你是对的。这确实更符合逻辑。纠正了。 //+----------Функция открытия ордера-----------------------------------+ int NewOrder(int Cmd,double Lot,int TaPr,int StLo) { double TP=0;// тейкпрофит double SL=0;// стоплос double PR=0;// цена while(!IsTradeAllowed())Sleep(100); if(TaPr<MarketInfo(Symbol(),MODE_STOPLEVEL)) TaPr=MarketInfo(Symbol(),MODE_STOPLEVEL); if(StLo<MarketInfo(Symbol(),MODE_STOPLEVEL)) StLo=MarketInfo(Symbol(),MODE_STOPLEVEL); if(Cmd==OP_BUY) { PR=NormalizeDouble(Ask, Digits); if(TaPr>0)TP=NormalizeDouble(Ask,Digits)+NormalizeDouble(TaPr*Point,Digits); if(StLo>0)SL=NormalizeDouble(Bid,Digits)-NormalizeDouble(StLo*Point,Digits); } if(Cmd==OP_SELL) { PR=NormalizeDouble(Bid, Digits); if(TaPr>0)TP=NormalizeDouble(Bid,Digits)-NormalizeDouble(TaPr*Point,Digits); if(StLo>0) SL=NormalizeDouble(Ask,Digits)+NormalizeDouble(StLo*Point,Digits); } Print("TaPr=",TaPr," StLo=",StLo," StopLevel=",MarketInfo(Symbol(),MODE_STOPLEVEL)); tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,0,CLR_NONE); if(tic<0)Print("ошибка открытия ордера:",GetLastError()); Print("Cmd-",Cmd," Lot=",Lot," PR=",PR," SL=",SL," TP=",TP); return(tic); } 但这并没有什么帮助。TaPr和StLo=100,但PR、SL和TP因某种原因为零..... 附加的文件: bigidogo1.03a.mq4 5 kb Mamed Mamedov 2011.12.27 09:08 #4574 你好,你能不能帮我写一个条件,让订单只开一次,现在它在每个tick上都开。 topOrder=OrderSend(Symbol(),OP_BUYSTOP,1,Hinput,3,Price_high-(height_box/100*sl),Price_high+(height_box/100*tp),"my order #",16384,0,Green); if (topOrder<0) { Print("Верхний ордер ошибка #", GetLastError()); return(0); } 我只需要做一些事情,让它看起来像这样:如果我已经有一个已经下好的订单,它不会在没有OrderComment的情况下打开 另一个订单,我还不知道该怎么处理它。 预先感谢 Vadim Zhunko 2011.12.27 09:35 #4575 fore-x: 更多细节如何?至少给我一个链接,在哪里读? 什么链接?你将条形图与趋势线 连接起来。你将独立于缓冲器和它们的故障。 [删除] 2011.12.27 09:41 #4576 artmedia70: 除非你自己把它放在图表上,否则它不会在EA期间反映出来。你是怎么做到的? 我在测试器中运行该EA,当测试器完成后,出现了指标线 的信息。 Victor Nikolaev 2011.12.27 09:59 #4577 mamba5: 你是对的。这样做确实更有意义。纠正了。 但这并没有什么帮助。TaPr和StLo=100,但PR、SL和TP因某种原因为零 NewOrder(OP_BUYSTOP, Lot, TakeProfit, StopLoss); NewOrder(OP_SELLSTOP, Lot, TakeProfit, StopLoss); if(Cmd==OP_BUY) { PR=NormalizeDouble(Ask, Digits); if(TaPr>0)TP=NormalizeDouble(Ask,Digits)+NormalizeDouble(TaPr*Point,Digits); if(StLo>0)SL=NormalizeDouble(Bid,Digits)-NormalizeDouble(StLo*Point,Digits); } if(Cmd==OP_SELL) { PR=NormalizeDouble(Bid, Digits); if(TaPr>0)TP=NormalizeDouble(Bid,Digits)-NormalizeDouble(TaPr*Point,Digits); if(StLo>0) SL=NormalizeDouble(Ask,Digits)+NormalizeDouble(StLo*Point,Digits); } [删除] 2011.12.27 12:18 #4578 请告知如何计算亏损的交易。 即被止损关闭的交易。 并在交易获利后重置计数器。 即在获利平仓后,将计数器重置为零。 初始计数器数字=1 int Schetcik = 1; 所有的交易,包括买入和卖出,都应该被计算在内。 [删除] 2011.12.27 12:51 #4579 Vinin: 谢谢你!)))直到如此清晰的比较,才发现了错误 Victor Nikolaev 2011.12.27 13:12 #4580 belck: 请告知如何计算亏损的交易。 即被止损关闭的交易。 并在交易获利后重置计数器。 即在获利平仓后,将计数器重置为零。 初始计数器数字=1 所有的交易,包括买入和卖出,都应该被计算在内。 在止损点上收盘并不意味着交易在亏损,反之亦然。当然,除非在开场时就设定了停顿和取舍,并且没有再被触及。 1...451452453454455456457458459460461462463464465...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在测试EA的过程中,我得到错误130--错误的停止。在NewOrder函数中,应该传递外部变量TakeProfit和StopLoss,在我看来,我已经做了一切来实现这一点,但正如打印显示的那样,传递的是零。我明白这个错误的原因在于此,但我还没能找到它。请帮助我。
Extern int TakeProfit=100;
extern int StopLoss=100。
....................................
NewOrder(OP_BUYSTOP, Lot, TakeProfit, StopLoss);
NewOrder(OP_SELLSTOP, Lot, TakeProfit, StopLoss) 。
int NewOrder(int Cmd,double Lot,int TakeProfit,int StopLoss)
这里的问题是,有全局变量 StopLoss,它们被作为参数传递给程序。最好在程序中重新命名它们。
竺可桢。
趋势线。
这里的问题是,有全局性的StopLoss变量,它们也被作为参数传递给程序。最好是在程序中重新命名它们。
但这并没有什么帮助。TaPr和StLo=100,但PR、SL和TP因某种原因为零.....你是对的。这确实更符合逻辑。纠正了。
你好,你能不能帮我写一个条件,让订单只开一次,现在它在每个tick上都开。
我只需要做一些事情,让它看起来像这样:如果我已经有一个已经下好的订单,它不会在没有OrderComment的情况下打开 另一个订单,我还不知道该怎么处理它。
预先感谢
更多细节如何?至少给我一个链接,在哪里读?
除非你自己把它放在图表上,否则它不会在EA期间反映出来。你是怎么做到的?
但这并没有什么帮助。TaPr和StLo=100,但PR、SL和TP因某种原因为零你是对的。这样做确实更有意义。纠正了。
请告知如何计算亏损的交易。
即被止损关闭的交易。
并在交易获利后重置计数器。
即在获利平仓后,将计数器重置为零。
初始计数器数字=1
所有的交易,包括买入和卖出,都应该被计算在内。
谢谢你!)))直到如此清晰的比较,才发现了错误
请告知如何计算亏损的交易。
即被止损关闭的交易。
并在交易获利后重置计数器。
即在获利平仓后,将计数器重置为零。
初始计数器数字=1
所有的交易,包括买入和卖出,都应该被计算在内。
在止损点上收盘并不意味着交易在亏损,反之亦然。当然,除非在开场时就设定了停顿和取舍,并且没有再被触及。