帮助。为什么EA不关闭交易 - 页 5 1234567 新评论 Simon Gniadkowski 2012.05.25 12:09 #41 crossy:O.K. 这里是修改后的版本,我得到了同样的错误。Y. 你根本不需要这个功能......。把它去掉。 onewithzachy 2012.05.25 12:13 #42 让我们再做一次第二部分 :( ... for(int cnt = OrdersTotal()-1; cnt >= 0 ; cnt--) { CodeY = false; if ( OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ) { // Do the selection and OrderClose() INSIDE HERE ..., please /* CodeY = true; OrderS = OrderSymbol(); OrderT = OrderTicket(); OrderM = OrderMagicNumber(); OrderTyp = OrderType(); OrderL = OrderLots(); */ } //if ( CodeY && OrderS == Pair1 && OrderTyp == OP_BUY && OrderM == MAG &&.... ) // this selection goes up there //CLOSE_Single_P(Pair1,"LONG",OrderT,OrderL); //-----------------------------------------------+ /* void CLOSE_Single_P(string SYMB, string TREN, int TICKET, double LOTT) { double PRC; bool Check = false; for ( int cntt=0; cntt<20000; cntt++ ) { if ( Check ) { Check_Ini(); return; } Check = false; if ( TREN == "LONG" ) PRC = MarketInfo(SYMB,MODE_BID); else if ( TREN == "SHORT" ) PRC = MarketInfo(SYMB,MODE_ASK); Check = OrderClose(TICKET,LOTT,PRC,Slippage,Yellow); // close it up there, and you have to rewrite the parameters } */ Simon Gniadkowski 2012.05.25 12:16 #43 这样做......。 ( 从这里重复:https://www.mql5.com/en/forum/139543) if ( CodeY && OrderS == Pair1 && OrderTyp == OP_BUY && OrderM == MAG &&.... ) { Print("Trying to close Order: ", OrderTicket()); // <---- tells you that the if returned true if ( ! OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), Slippage, Yellow) Print("OrderClose failed, error # ", GetLastError()); // <------- reports the error if the OrderClose failed . . } ......你就完全不需要这个功能了。 Yochanan Gerbi 2012.05.25 13:52 #44 onewithzachy: 让我们再做一次第二部分 :( 我希望你能原谅我,因为我有一个假期,所以我将在周日 晚上回来。 我会按照你们的建议去做,我希望能成功。 谢谢你们俩。 Y. Simon Gniadkowski 2012.05.25 14:24 #45 crossy: 我希望你能原谅我,因为我有一个假期,所以我将在周日晚上回来。 好的,请享受您的假期 :-) onewithzachy 2012.05.25 16:13 #46 crossy: 我希望你能原谅我,因为我有一个假期,所以我将在周日晚上回来。 我将按照你们的建议去做,我希望能够成功。 谢谢你们俩。 Y. 祝你玩得开心 :D 这周日我有F1摩纳哥站的比赛要看 :D Simon Gniadkowski 2012.05.25 19:46 #47 onewithzachy: 祝你玩得开心。 这周日我有F1摩纳哥站要看。 而明天,FP3和排位赛;-) mighty6469 2012.05.26 01:05 #48 crossy: 谢谢onewithzachy。 首先,我认为你有一个小错误。 for(int cnt = OrdersTotal()-1 ; cnt >= 0; cnt--) 你必须加上绿色和粗体的修正。 但是,我不明白下面这一行对我们有什么帮助? #include "...\libraries\stdlib.mq4" 谢谢你,Y。 我发现这个更简单,而且对我有用。 //---------------------------------------------+ 空白的CheckForClose() { int i, res, order_id; //-------+ for(i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; 如果(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) 继续。 order_id= OrderTicket()。 //------跟踪和关闭 如果(OrderType() == OP_BUY) { if (Is_Close_Buy==true) //--关闭的信号 { RefreshRates();//刷新率 res= 0。 res= OrderClose(order_id,Lots,Bid,3,Gold)。 while(IsTradeAllowed() == false) Sleep(100); //-----------等待一下从服务器得到响应 如果(res>0){ PlaySound("cash_register.wav");} //----快乐的声音,希望能赚到钱 !!!! 如果(res<0) { PlaySound("creak.wav")。 Print("OrderSend failed with error #",GetLastError())。 return(0); } 返回。 } }//结束关闭买入订单检查 //--- 如果(OrderType() == OP_SELL) { if (Is_Close_Sell==true) //------关闭的信号 { RefreshRates();//刷新率 res= 0。 res= OrderClose(order_id,Lots,Ask,3,Gold)。 while(IsTradeAllowed() == false) Sleep(100); //------等待一下从服务器获得响应 如果(res>0){ PlaySound("cash_register.wav");} 如果(res<0) { PlaySound("creak.wav")。 Print("OrderSend failed with error #",GetLastError())。 return(0); } 返回。 } }//结束关闭卖出订单检查 }//--------+ 返回。 } //----------------------------------------------+ Help: Why The EA [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 [存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. onewithzachy 2012.05.26 02:15 #49 RaptorUK: 而明天,FP3和排位赛;-)@ RaptorUK,我正在考虑戴上防撞头盔,这样至少我可以比现在想得更远。那些司机不就是这样吗? @ skaboy,我在这里礼貌地问一下,如果你不介意的话,请你使用SRC按钮来发布你的代码。仅仅在这个主题中,我们已经问了太多次了。 @ crossy,从你的第一篇帖子到现在已经快一个星期了。当然,我理解你现在可能没有一个清晰的头脑来处理4000行,现在我自己的头脑也在这里。如果你还是不明白,--嗯--你可以让我们为你写出那段封闭的代码。不过你还是要写代码,哪怕只是一点点--给我们看看。 :D, RaptorUK的代码就在上面,比我的更直接,想想看,然后你就可以继续你的EA了。 以你在这里写代码的方式--太多不必要的重复代码--你应该对你的4000行代码有一点担心,它可能会拖慢你的EA,使你的EA错过一个点。错过几个点是可以的,但是如果你错过了10个点会怎样? 可能你的4000行还是可以减少到400行。谁知道呢,你的EA会变得更轻更快。 Simon Gniadkowski 2012.05.26 04:44 #50 skaboy: 我发现这要简单得多,而且对我很有效。 如果你有多个要关闭的订单,它就不起作用了......读读这个就知道了。 循环和关闭或删除订单 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
O.K. 这里是修改后的版本,我得到了同样的错误。
Y.
你根本不需要这个功能......。把它去掉。
让我们再做一次第二部分 :(
这样做......。 ( 从这里重复:https://www.mql5.com/en/forum/139543)
......你就完全不需要这个功能了。
让我们再做一次第二部分 :(
我希望你能原谅我,因为我有一个假期,所以我将在周日 晚上回来。
我会按照你们的建议去做,我希望能成功。
谢谢你们俩。
Y.
我希望你能原谅我,因为我有一个假期,所以我将在周日晚上回来。
我希望你能原谅我,因为我有一个假期,所以我将在周日晚上回来。
我将按照你们的建议去做,我希望能够成功。
谢谢你们俩。
Y.
祝你玩得开心 :D
这周日我有F1摩纳哥站的比赛要看 :D
祝你玩得开心。
这周日我有F1摩纳哥站要看。
谢谢onewithzachy。
首先,我认为你有一个小错误。
for(int cnt = OrdersTotal()-1 ; cnt >= 0; cnt--)
你必须加上绿色和粗体的修正。
但是,我不明白下面这一行对我们有什么帮助?
#include "...\libraries\stdlib.mq4"
谢谢你,Y。
我发现这个更简单,而且对我有用。
//---------------------------------------------+
空白的CheckForClose()
{
int i, res, order_id;
//-------+
for(i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
如果(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) 继续。
order_id= OrderTicket()。
//------跟踪和关闭
如果(OrderType() == OP_BUY)
{
if (Is_Close_Buy==true) //--关闭的信号
{
RefreshRates();//刷新率
res= 0。
res= OrderClose(order_id,Lots,Bid,3,Gold)。
while(IsTradeAllowed() == false) Sleep(100); //-----------等待一下从服务器得到响应
如果(res>0){
PlaySound("cash_register.wav");} //----快乐的声音,希望能赚到钱 !!!!
如果(res<0)
{
PlaySound("creak.wav")。
Print("OrderSend failed with error #",GetLastError())。
return(0);
}
返回。
}
}//结束关闭买入订单检查
//---
如果(OrderType() == OP_SELL)
{
if (Is_Close_Sell==true) //------关闭的信号
{
RefreshRates();//刷新率
res= 0。
res= OrderClose(order_id,Lots,Ask,3,Gold)。
while(IsTradeAllowed() == false) Sleep(100); //------等待一下从服务器获得响应
如果(res>0){
PlaySound("cash_register.wav");}
如果(res<0)
{
PlaySound("creak.wav")。
Print("OrderSend failed with error #",GetLastError())。
return(0);
}
返回。
}
}//结束关闭卖出订单检查
}//--------+
返回。
}
//----------------------------------------------+
而明天,FP3和排位赛;-)
@ RaptorUK,我正在考虑戴上防撞头盔,这样至少我可以比现在想得更远。那些司机不就是这样吗?
@ skaboy,我在这里礼貌地问一下,如果你不介意的话,请你使用SRC按钮来发布你的代码。仅仅在这个主题中,我们已经问了太多次了。
@ crossy,从你的第一篇帖子到现在已经快一个星期了。当然,我理解你现在可能没有一个清晰的头脑来处理4000行,现在我自己的头脑也在这里。如果你还是不明白,--嗯--你可以让我们为你写出那段封闭的代码。不过你还是要写代码,哪怕只是一点点--给我们看看。 :D, RaptorUK的代码就在上面,比我的更直接,想想看,然后你就可以继续你的EA了。
以你在这里写代码的方式--太多不必要的重复代码--你应该对你的4000行代码有一点担心,它可能会拖慢你的EA,使你的EA错过一个点。错过几个点是可以的,但是如果你错过了10个点会怎样? 可能你的4000行还是可以减少到400行。谁知道呢,你的EA会变得更轻更快。
我发现这要简单得多,而且对我很有效。