[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 858 1...851852853854855856857858859860861862863864865...1145 新评论 usver 2010.09.22 11:02 #8571 这是个简单的问题,但我想不出来。 在一个特定的时间点上,有4个空缺职位。我正试图以下列方式关闭所有这些设备。 for (int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,White); if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,White); } } 但它们不是全部关闭,而是通过一个关闭。事实上,他们有以下数字:2、4、6、7。因此,第2和第6的位置已经关闭。 有什么诀窍吗? Igor Makanu 2010.09.22 11:14 #8572 usver:这是个简单的问题,但我想不出来。在一个特定的时间点上有4个空缺职位。我正试图以下列方式关闭所有这些设备。但它们不是全部关闭,而是通过一个关闭。事实上,他们有以下数字:2、4、6、7。因此,第2和第6的位置已经关闭。有什么好处呢? 诀窍在于,在平仓 后,OrderSelect(i,SELECT_BY_POS,MODE_TRADES)中的编号会发生变化,同时并不是所有的都能被平仓。 SZY: 我得到了fts I.Kim的帮助,我做了一点改动--去掉了多余的括号,拉进了一行。 //+------------------------------------------------------------------+ void CloseAllFirstProfit() { int i, k=OrdersTotal(); for (i=k-1; i>=0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) if (OrderType()==OP_BUY || OrderType()==OP_SELL) if (OrderProfit()+OrderSwap()>0) ClosePosBySelect(); k=OrdersTotal(); for (i=k-1; i>=0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) if (OrderType()==OP_BUY || OrderType()==OP_SELL) ClosePosBySelect(); } //+------------------------------------------------------------------+ void ClosePosBySelect() { if (OrderType()==OP_BUY) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 10, CLR_NONE); if (OrderType()==OP_SELL) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 10, CLR_NONE); } //+------------------------------------------------------------------+ 搜索论坛--你会发现原件的。 usver 2010.09.22 12:23 #8573 IgorM: 是在关闭一个头寸后,OrderSelect(i,SELECT_BY_POS,MODE_TRADES)中的编号发生变化,不能同时关闭所有头寸。SZY: 我得到了fts I.Kim的帮助,我做了一点改动--去掉了多余的括号,拉进了一行。通过论坛搜索--你会发现原始的 谢谢你的提示和例子。我将研究这个问题。 在路上,我将问另一个问题。 任务如下:我需要确定由止损触发的订单类型被关闭,并将由止损关闭的未来订单与之前的订单进行比较(即比较它们的类型)。在翻阅了文档后,我没有找到与处理最后一个事件有关的内容。 在这一点上,我把这个操作实现为当订单达到设定的边界(Bid-OrderOpenPrice() >=TP*Point)时的平仓。这使我能够在一个变量中存储最后一个关闭的订单的类型,并将其与刚刚关闭的订单进行比较( if(type==OrderType())).在测试过程中一切正常。 然而,我想用止损来实现它。 我试图用OrderSelect() 和MODE_HISTORY参数从历史中选择一个已关闭的订单。由于没有关闭订单的条件,那么OrdersTotal()变量的变化可以被认为是触发了止损。但我遇到了一个问题:我无法找到最后关闭的订单的编号(因为它们的编号在不断变化),或者说我还没有想好怎么做。 问题是:如何利用止损来实现?也许有更容易的方法?那么,如果思维方向是正确的,那么我们如何找到最后的封闭订单呢? Andrey F. Zelinsky 2010.09.22 12:29 #8574 IgorM: 在关闭一个头寸后,OrderSelect(i,SELECT_BY_POS,MODE_TRADES)中的编号被改变,而且所有头寸不能同时关闭。 SZS: I.Kim的功能给了我很大的帮助,我把它们改了一下--我去掉了多余的括号,把它们拉成了一行。 通过论坛搜索--你会发现原始的 你已经说得够多了...都在一个堆里。 https://docs.mql4.com/ru/trading/OrderSelect Andrey F. Zelinsky 2010.09.22 12:41 #8575 usver: 这是个简单的问题,但我想不出来。 在一个特定的时间点上有4个空缺职位。我正试图以下列方式关闭所有这些设备。 但它们不是全部关闭,而是通过一个关闭。事实上,他们有以下数字:2、4、6、7。因此,第2和第6的位置已经关闭。 问题是什么? 你说的是按顺序排列的数字吗? 还是门票? usver 2010.09.22 13:00 #8576 abolk: 你说的是按顺序排列的数字吗? 还是门票? 我自己已经很困惑了。它们是票子,但我给它们是为了说明情况。他们一个接一个地关闭。 [删除] 2010.09.22 13:03 #8577 万幸的是,我得到了它的工作!!!。 维克多非常感谢你,我有一个错误,我没有正确写出指标的名称。 Igor Makanu 2010.09.22 13:29 #8578 abolk: 你刚才所说的...一堆堆的 https://docs.mql4.com/ru/trading/OrderSelect 尝试在一组订单中改变/删除外卖或止损--任务很简单,但我遇到过,当使用OrderSelect(i,SELECT_BY_POS,MODE_TRADES)进行订单选择时,订单编号就在循环体中改变,我设法将一个已经修改的(没有外卖的)订单修改了几次--错误#1,这就是为什么我建议wever 有类似问题的原因。 请建议--如何使指标在几个柱状体的收盘时重新计算,例如:我想让指标每5个新柱状体重新计算。 Денис 2010.09.22 14:55 #8579 IgorM: 请建议--如何使一个指标在几个柱子的收盘时重新计算,例如:我想让指标每5个新柱子重新计算一次。 你知道编程。 这是一个合乎逻辑的任务,你不需要很聪明就能解决它。用你的头脑思考。 有不同的情况。到底应该在什么地方重排,在什么TF上重排,应该如何重排,等等。如何回答你的问题。 注意小节的时间,五小节后重置这个时间并再次注意它。在归零的时候,你可以放一个条件来重新计算。函数iTime(NULL,0,0)会有帮助。其余的都是逻辑。 usver 2010.09.22 15:01 #8580 IgorM: 请建议--如何使一个指标在几个柱状体的收盘时重新计算,例如:我想让指标每5个新柱状体重新计算一次。 这个方法可能不是最可靠的,但只要尝试一下这个想法就可以了(比如说,一个草案)。 使用Bars变量并跟踪其变化。增加了5个,记住了,等等。 1...851852853854855856857858859860861862863864865...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这是个简单的问题,但我想不出来。
在一个特定的时间点上,有4个空缺职位。我正试图以下列方式关闭所有这些设备。
但它们不是全部关闭,而是通过一个关闭。事实上,他们有以下数字:2、4、6、7。因此,第2和第6的位置已经关闭。
有什么诀窍吗?
这是个简单的问题,但我想不出来。
在一个特定的时间点上有4个空缺职位。我正试图以下列方式关闭所有这些设备。
但它们不是全部关闭,而是通过一个关闭。事实上,他们有以下数字:2、4、6、7。因此,第2和第6的位置已经关闭。
有什么好处呢?
诀窍在于,在平仓 后,OrderSelect(i,SELECT_BY_POS,MODE_TRADES)中的编号会发生变化,同时并不是所有的都能被平仓。
SZY: 我得到了fts I.Kim的帮助,我做了一点改动--去掉了多余的括号,拉进了一行。
搜索论坛--你会发现原件的。
是在关闭一个头寸后,OrderSelect(i,SELECT_BY_POS,MODE_TRADES)中的编号发生变化,不能同时关闭所有头寸。
SZY: 我得到了fts I.Kim的帮助,我做了一点改动--去掉了多余的括号,拉进了一行。
通过论坛搜索--你会发现原始的
谢谢你的提示和例子。我将研究这个问题。
在路上,我将问另一个问题。
任务如下:我需要确定由止损触发的订单类型被关闭,并将由止损关闭的未来订单与之前的订单进行比较(即比较它们的类型)。在翻阅了文档后,我没有找到与处理最后一个事件有关的内容。
在这一点上,我把这个操作实现为当订单达到设定的边界(Bid-OrderOpenPrice() >=TP*Point)时的平仓。这使我能够在一个变量中存储最后一个关闭的订单的类型,并将其与刚刚关闭的订单进行比较( if(type==OrderType())).在测试过程中一切正常。 然而,我想用止损来实现它。
我试图用OrderSelect() 和MODE_HISTORY参数从历史中选择一个已关闭的订单。由于没有关闭订单的条件,那么OrdersTotal()变量的变化可以被认为是触发了止损。但我遇到了一个问题:我无法找到最后关闭的订单的编号(因为它们的编号在不断变化),或者说我还没有想好怎么做。
问题是:如何利用止损来实现?也许有更容易的方法?那么,如果思维方向是正确的,那么我们如何找到最后的封闭订单呢?
在关闭一个头寸后,OrderSelect(i,SELECT_BY_POS,MODE_TRADES)中的编号被改变,而且所有头寸不能同时关闭。
SZS: I.Kim的功能给了我很大的帮助,我把它们改了一下--我去掉了多余的括号,把它们拉成了一行。
通过论坛搜索--你会发现原始的
https://docs.mql4.com/ru/trading/OrderSelect
这是个简单的问题,但我想不出来。
在一个特定的时间点上有4个空缺职位。我正试图以下列方式关闭所有这些设备。
但它们不是全部关闭,而是通过一个关闭。事实上,他们有以下数字:2、4、6、7。因此,第2和第6的位置已经关闭。
问题是什么?
你说的是按顺序排列的数字吗? 还是门票?
你说的是按顺序排列的数字吗? 还是门票?
我自己已经很困惑了。它们是票子,但我给它们是为了说明情况。他们一个接一个地关闭。
万幸的是,我得到了它的工作!!!。
维克多非常感谢你,我有一个错误,我没有正确写出指标的名称。
你刚才所说的...一堆堆的
https://docs.mql4.com/ru/trading/OrderSelect
尝试在一组订单中改变/删除外卖或止损--任务很简单,但我遇到过,当使用OrderSelect(i,SELECT_BY_POS,MODE_TRADES)进行订单选择时,订单编号就在循环体中改变,我设法将一个已经修改的(没有外卖的)订单修改了几次--错误#1,这就是为什么我建议wever 有类似问题的原因。
请建议--如何使指标在几个柱状体的收盘时重新计算,例如:我想让指标每5个新柱状体重新计算。
请建议--如何使一个指标在几个柱子的收盘时重新计算,例如:我想让指标每5个新柱子重新计算一次。
你知道编程。
这是一个合乎逻辑的任务,你不需要很聪明就能解决它。用你的头脑思考。
有不同的情况。到底应该在什么地方重排,在什么TF上重排,应该如何重排,等等。如何回答你的问题。
注意小节的时间,五小节后重置这个时间并再次注意它。在归零的时候,你可以放一个条件来重新计算。函数iTime(NULL,0,0)会有帮助。其余的都是逻辑。
请建议--如何使一个指标在几个柱状体的收盘时重新计算,例如:我想让指标每5个新柱状体重新计算一次。
这个方法可能不是最可靠的,但只要尝试一下这个想法就可以了(比如说,一个草案)。
使用Bars变量并跟踪其变化。增加了5个,记住了,等等。