新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1396 1...138913901391139213931394139513961397139813991400140114021403...1953 新评论 Tretyakov Rostyslav 2021.02.23 10:41 #13951 Tenimagalon: 我看到我们正在进行真正的讨论。 亚历克斯,你也参与其中:))好吧,程序员先生,你有共识吗? 看,主要功能是根据总利润关闭相同类型的订单。开了4个头寸,其中2个是欧元兑美元(买入和卖出),2个是美元兑日元(买入和卖出)。如果买入订单获得了利润,它就会关闭它们,不理会卖出订单,或者不理会卖出订单。 接住 double MyProfit=1000; // уровень профита //+--------------------------------------------------------------------------------------------------------------------+ //| Expert tick function | //+--------------------------------------------------------------------------------------------------------------------+ void OnTick() { //--- if(Open_Pr("",0)>MyProfit)DelOrders("",0); // закрываем покупки if(Open_Pr("",1)>MyProfit)DelOrders("",1); // закрываем продажи //--- } //+--------------------------------------------------------------------------------------------------------------------+ //| Суммарный профит в валюте депозита открытых позиций | //| or_ty=0 - ордера типа BUY | //| or_ty=1 - ордера типа SELL | //+--------------------------------------------------------------------------------------------------------------------+ double Open_Pr(string sy="", int or_ty=0) { double p = 0; if (sy == "0") sy = Symbol(); for(int pos=OrdersTotal()-1;pos>=0;pos--) { if(OrderSelect(pos,SELECT_BY_POS)==true) { if(OrderSymbol() == sy || sy == "") { if(OrderType()==or_ty) {p+=OrderProfit()+OrderSwap()+OrderCommission();} } } } return(p); } //+--------------------------------------------------------------------------------------------------------------------+ //| Функция удаления и закрытия ордеров | //| or_ty=0 - ордера типа BUY | //| or_ty=1 - ордера типа SELL | //+--------------------------------------------------------------------------------------------------------------------+ void DelOrders(string sy="", int or_ty=0) { while(true) { bool find_order=false; //---- if (sy == "0") sy = Symbol(); for(int pos=OrdersTotal()-1;pos>=0;pos--) if(OrderSelect(pos,SELECT_BY_POS)==true) if(OrderSymbol() == sy || sy == "") { find_order=true; //---- if(OrderType()==or_ty) { RefreshRates(); int slip=(int)(((Ask-Bid)/Point)*2); if(OrderClose(OrderTicket(),OrderLots(),Bid,slip,clrBlue)==false){} } //---- if(OrderType()==or_ty) { RefreshRates(); slip=(int)(((Ask-Bid)/Point)*2); if(OrderClose(OrderTicket(),OrderLots(),Ask,slip,clrRed)==false){} } Alert("Все ордера закрыты!"); } if(find_order==false) Alert("Нет ордеров!");break; } } //+--------------------------------------------------------------------------------------------------------------------+ Taras Slobodyanik 2021.02.23 10:45 #13952 Tenimagalon: 我看到我们正在进行真正的讨论。 亚历克斯,你也参与了:)) 好吧,程序员先生,你有共识吗? 看,问题是关闭相同类型的订单,以获得总的利润。4个仓位是开放的,2个欧元兑美元(买入和卖出)和2个美元兑瑞郎(买入和卖出)。如果买入订单获得了利润,它就会关闭它们,不理会卖出订单,或者不理会卖出订单。 像这样?:) Tenimagalon 2021.02.23 11:13 #13953 MakarFX:接住 嗯,很有意思。非常感谢 :) Tenimagalon 2021.02.23 11:22 #13954 Taras Slobodyanik:像这样?:) 如果您在不同的货币对上开了3个头寸,即2个白盘和1个坐盘,那么是的,在这种情况下,机器人会在实现总利润后关闭货币对。如果你试图在2个交易对上建立4个头寸,你永远不会得到总的利润,在这种情况下,专家会关闭交易对的订单,要么买入要么卖出。但他关闭了买入欧元兑美元和买入美元兑瑞士法郎或任何其他选定的货币对。 Tretyakov Rostyslav 2021.02.23 11:32 #13955 Taras Slobodyanik:像这样?:) 是你自己做的对话框 还是SB 做的? Taras Slobodyanik 2021.02.23 11:40 #13956 Tenimagalon: 如果您在不同的货币对上建立了3个头寸,即2个白盘和1个卖盘,那么是的,在这种情况下,机器人会在实现总利润后平仓。如果你试图在2个交易对上建立4个头寸,你永远不会得到总的利润,在这种情况下,专家会关闭交易对的订单,要么买入要么卖出。但他关闭了买入欧元兑美元和买入美元兑瑞士法郎或任何其他选定的货币对。 这里有很多的海湾和自己) Taras Slobodyanik 2021.02.23 11:42 #13957 MakarFX: 你是自己做了这个对话框 还是SB? 是否有任何小组? ps.除非有对象,如果你有 Tretyakov Rostyslav 2021.02.23 12:21 #13958 Taras Slobodyanik:是否有任何小组? 是的,这就是我问的原因。 如果你自己做了,请分享代码(折叠、展开、移动)。 Tenimagalon 2021.02.23 12:30 #13959 Taras Slobodyanik:这里有很多的海湾和自己) 塔拉斯 :)你应该开4个头寸,一个在欧元上,一个在瑞士法郎上,然后再开两个,一个在欧元上卖出,一个在瑞士法郎上卖出。 当买入和卖出达到共同的利润时,机器人将关闭它们或不关闭。在你的屏幕上,我看到有一个工具的订单,不应该是先验的。 Taras Slobodyanik 2021.02.23 12:37 #13960 Tenimagalon: 塔拉斯 :)你应该在一个步骤中建立4个头寸,一个做多欧元,一个做多瑞士法郎,然后再建立两个,一个卖出欧元,一个卖出瑞士法郎。 当买入和买入达到总利润时,机器人将关闭它们或不关闭。在你的屏幕上,我看到有一个工具的订单,不应该是先验的。 按买入或卖出对子分组是错误的 例如,在一个货币对(买入)中,可能有美元的买入,而在另一个货币对(卖出)中,可能有美元的卖出。 1...138913901391139213931394139513961397139813991400140114021403...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我看到我们正在进行真正的讨论。 亚历克斯,你也参与其中:))好吧,程序员先生,你有共识吗? 看,主要功能是根据总利润关闭相同类型的订单。开了4个头寸,其中2个是欧元兑美元(买入和卖出),2个是美元兑日元(买入和卖出)。如果买入订单获得了利润,它就会关闭它们,不理会卖出订单,或者不理会卖出订单。
接住
我看到我们正在进行真正的讨论。 亚历克斯,你也参与了:)) 好吧,程序员先生,你有共识吗? 看,问题是关闭相同类型的订单,以获得总的利润。4个仓位是开放的,2个欧元兑美元(买入和卖出)和2个美元兑瑞郎(买入和卖出)。如果买入订单获得了利润,它就会关闭它们,不理会卖出订单,或者不理会卖出订单。
像这样?:)
接住
像这样?:)
像这样?:)
如果您在不同的货币对上建立了3个头寸,即2个白盘和1个卖盘,那么是的,在这种情况下,机器人会在实现总利润后平仓。如果你试图在2个交易对上建立4个头寸,你永远不会得到总的利润,在这种情况下,专家会关闭交易对的订单,要么买入要么卖出。但他关闭了买入欧元兑美元和买入美元兑瑞士法郎或任何其他选定的货币对。
这里有很多的海湾和自己)
你是自己做了这个对话框 还是SB?
是否有任何小组?
ps.除非有对象,如果你有
是否有任何小组?
是的,这就是我问的原因。
如果你自己做了,请分享代码(折叠、展开、移动)。
这里有很多的海湾和自己)
塔拉斯 :)你应该在一个步骤中建立4个头寸,一个做多欧元,一个做多瑞士法郎,然后再建立两个,一个卖出欧元,一个卖出瑞士法郎。 当买入和买入达到总利润时,机器人将关闭它们或不关闭。在你的屏幕上,我看到有一个工具的订单,不应该是先验的。
按买入或卖出对子分组是错误的
例如,在一个货币对(买入)中,可能有美元的买入,而在另一个货币对(卖出)中,可能有美元的卖出。