我如何以总利润为单位关闭所有订单? - 页 7 1234567 新评论 Vadym Kulish 2017.06.27 09:10 #61 khasan kayumov: 谁能告诉我如何按总利润的点数关闭所有订单?看了这些帖子,有些我没看懂。我想我没有遇到过他们中的任何一个。 我对这个问题的理解是:当达到利润时,如何关闭不同工具的开仓订单。也许,这不是很聪明,但这是我实现它的方式。extern int iPrftAc = 35; // Закрытие всех ордеров по текущему счету. ....... if (AccountProfit() > iPrftAc) { Print("//--> Закрытие ордеров: Условие достижения ПРИБЫЛИ ПО ТЕКУЩЕМУ СЧЕТУ!;"); vOrderClose(9,0,""); } ........ void vOrderClose(int f_iTypOrdDel, //Тип операции выбранного ордера на удаление int f_iOrderTicket,//Номер тикета ордера string f_sNamSig) //Наименование сигнала { ....... if (f_iTypOrdDel==9) // Удаление всех открытых и отложенных ордеров по всем финансовым инструментам. { int CloseOrdSymAll = 0; do { CloseOrdSymAll = 0; for (int i=0; i<=OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true) { switch(OrderType()) { case OP_BUY :f_sCmdType = "OP_BUY"; f_bResult = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),iSlippage,clrBlue); if (f_bResult == true) Print("//---> vOrderClose: ",f_iTypOrdDel,") Order(#",OrderTicket(),") Type(#",OrderType(),") ",f_sCmdType," successfully"); else { Print("//--->vOrderClose: № ",f_iTypOrdDel,". Order(#",OrderTicket(),") Type(#",OrderType(),") ",f_sCmdType,", failed. Error:", GetLastError()); Sleep(1000); } CloseOrdSymAll++; break; case OP_BUYLIMIT:f_sCmdType = "OP_BUYLIMIT"; f_bResult = OrderDelete(OrderTicket(),CLR_NONE); if (f_bResult == true) Print("//---> vOrderClose: ",f_iTypOrdDel,") Order(#",OrderTicket(),") Type(#",OrderType(),") ",f_sCmdType," successfully"); else { Print("//--->vOrderClose: № ",f_iTypOrdDel,". Order(#",OrderTicket(),") Type(#",OrderType(),") ",f_sCmdType,", failed. Error:", GetLastError()); Sleep(1000); } CloseOrdSymAll++; break; case OP_BUYSTOP :f_sCmdType = "OP_BUYSTOP"; f_bResult = OrderDelete(OrderTicket(),CLR_NONE); if (f_bResult == true) Print("//---> vOrderClose: ",f_iTypOrdDel,") Order(#",OrderTicket(),") Type(#",OrderType(),") ",f_sCmdType," successfully"); else { Print("//--->vOrderClose: № ",f_iTypOrdDel,". Order(#",OrderTicket(),") Type(#",OrderType(),") ",f_sCmdType,", failed. Error:", GetLastError()); Sleep(1000); } CloseOrdSymAll++; break; case OP_SELL :f_sCmdType = "OP_SELL"; f_bResult = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),iSlippage,clrRed); if (f_bResult == true) Print("//---> vOrderClose: ",f_iTypOrdDel,") Order(#",OrderTicket(),") Type(#",OrderType(),") ",f_sCmdType," successfully"); else { Print("//--->vOrderClose: № ",f_iTypOrdDel,". Order(#",OrderTicket(),") Type(#",OrderType(),") ",f_sCmdType,", failed. Error:", GetLastError()); Sleep(1000); } CloseOrdSymAll++; break; case OP_SELLLIMIT:f_sCmdType = "OP_SELLLIMIT"; f_bResult = OrderDelete(OrderTicket(),CLR_NONE); if (f_bResult == true) Print("//---> vOrderClose: ",f_iTypOrdDel,") Order(#",OrderTicket(),") Type(#",OrderType(),") ",f_sCmdType," successfully"); else { Print("//--->vOrderClose: № ",f_iTypOrdDel,". Order(#",OrderTicket(),") Type(#",OrderType(),") ",f_sCmdType,", failed. Error:", GetLastError()); Sleep(1000); } CloseOrdSymAll++; break; case OP_SELLSTOP :f_sCmdType = "OP_SELLSTOP"; f_bResult = OrderDelete(OrderTicket(),CLR_NONE); if (f_bResult == true) Print("//---> vOrderClose: ",f_iTypOrdDel,") Order(#",OrderTicket(),") Type(#",OrderType(),") ",f_sCmdType," successfully"); else { Print("//--->vOrderClose: № ",f_iTypOrdDel,". Order(#",OrderTicket(),") Type(#",OrderType(),") ",f_sCmdType,", failed. Error:", GetLastError()); Sleep(1000); } CloseOrdSymAll++; break; } } } } } } //+------------------------------------------------------------------+ //|Конец | //+------------------------------------------------------------------+ Artemij 2017.06.27 09:16 #62 我不明白的是这一点。你是在赚钱还是在赚取积分?如果想要的(MAIN!)结果总是在你面前,为什么还要去寻找复杂的结果:如果所有交易的总利润(以金钱为单位)适合你,那么就把整个该死的东西关闭!如果你想知道更多的信息,请联系我们。 Dmitry Fedoseev 2017.06.27 09:38 #63 Artemij:我不明白的是这一点。你是在赚钱还是在赚取积分?如果所需的(MAIN!)结果总是在你面前,为什么还要费心去寻找复杂的结果:如果所有交易的总利润(以金钱为单位)适合你,那么就关闭整个该死的东西吧!如果你想知道更多的信息,请联系我们。如果利润是货币,那么当你改变手数时,你必须按比例改变利润值。这是不方便的。 Renat Akhtyamov 2017.06.27 09:59 #64 Vadym Kulish:看了这些帖子,有些我没看懂。我想我还没有遇到过他们。 我对这个问题的理解是:当达到利润时,如何关闭不同工具的开仓订单。也许,这不是很聪明,但这是我实现这个问题的方法。为什么我们需要如此大的停顿?现在一切都在快速工作。我根本没有任何停顿就关闭了。 Vadym Kulish 2017.06.27 12:02 #65 Renat Akhtyamov:为什么停顿了这么久?它现在运行得很快...我根本就没有暂停过。这是以前代码的遗留问题--我不明白错误的性质。MarketInfo(OrderSymbol(),MODE_ASK)。 我把它放在那里,以防万一。专家顾问是不完整的。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谁能告诉我如何按总利润的点数关闭所有订单?
看了这些帖子,有些我没看懂。我想我没有遇到过他们中的任何一个。
我对这个问题的理解是:当达到利润时,如何关闭不同工具的开仓订单。
也许,这不是很聪明,但这是我实现它的方式。
我不明白的是这一点。
你是在赚钱还是在赚取积分?
如果想要的(MAIN!)结果总是在你面前,为什么还要去寻找复杂的结果:如果所有交易的总利润(以金钱为单位)适合你,那么就把整个该死的东西关闭!如果你想知道更多的信息,请联系我们。
我不明白的是这一点。
你是在赚钱还是在赚取积分?
如果所需的(MAIN!)结果总是在你面前,为什么还要费心去寻找复杂的结果:如果所有交易的总利润(以金钱为单位)适合你,那么就关闭整个该死的东西吧!如果你想知道更多的信息,请联系我们。
如果利润是货币,那么当你改变手数时,你必须按比例改变利润值。这是不方便的。
看了这些帖子,有些我没看懂。我想我还没有遇到过他们。
我对这个问题的理解是:当达到利润时,如何关闭不同工具的开仓订单。
也许,这不是很聪明,但这是我实现这个问题的方法。
为什么我们需要如此大的停顿?现在一切都在快速工作。
我根本没有任何停顿就关闭了。
为什么停顿了这么久?它现在运行得很快...
我根本就没有暂停过。
这是以前代码的遗留问题--我不明白错误的性质。MarketInfo(OrderSymbol(),MODE_ASK)。 我把它放在那里,以防万一。专家顾问是不完整的。