新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 502 1...495496497498499500501502503504505506507508509...1953 新评论 Вадим Мотеюнас 2018.03.24 22:05 #5011 Vitaly Muzichenko:该函数按时间顺序排列并选择最新的一个,即最后一个 接下来,我们有一个选定的,我们把它代入函数iBarShift(sym, tf,oot ,true)。 该函数按时间返回酒吧编号。这就是全部。 不幸的是,我不能检查它,但当我使用它时,它完美地工作,以及我在这里发表的所有功能。 如果我打开一个订单时指定了一个票据,并且该功能选择了一个连续的数字,这可以吗? Konstantin Nikitin 2018.03.24 22:12 #5012 Вадим Мотеюнас: 写下错误提示if( iOpen[0] != time_open )'iOpen' - 未声明的标识。我写的东西有点不对,有点在另一个思考方向。将iOpen[0]改为 Open[0]。 纠正了。简而言之,虽然。当我打开一个酒吧时,我记得酒吧开放的时间,而且这个酒吧已经没有订单了。 Вадим Мотеюнас 2018.03.24 22:18 #5013 在函数描述中还写到 要考虑的位置的选择是由外部参数设定的。sy- 市场工具的名称。如果你设置这个参数,函数将只考虑指定仪器的位置。默认值--NULL 表示当前的市场工具。tf- 时间框架。默认值0 表示当前的时间框架。op-贸易操作,职位类型。有效值:OP_BUY、OP_SELL 或-1。默认值-1 意味着任何位置。mn- 位置标识符,MagicNumber。默认值-1 表示任何标识符。这些值应该在第一个特殊函数之前声明,也就是说,它们包含在NumberOfBarOpenLastPos() 函数本身的描述中,这还不够? 只有 KimIV 的有用功能 。 KimIV的有用功能 并让我们把它做成一个 "卡通"(多货币)。 Vitaly Muzichenko 2018.03.24 22:24 #5014 Вадим Мотеюнас:在函数描述中还写到 要考虑的位置的选择是由外部参数设定的。sy- 市场工具的名称。如果你设置这个参数,函数将只考虑指定仪器的位置。默认值--NULL 表示当前的市场工具。tf- 时间框架。默认值0 表示当前的时间框架。op-贸易操作,职位类型。有效值:OP_BUY、OP_SELL 或-1。默认值-1 意味着任何位置。mn- 位置标识符,MagicNumber。默认值-1 表示任何标识符。通过外部参数? 是否有必要在第一个特殊函数之前声明它们?也就是说,它们在NumberOfBarOpenLastPos() 函数本身的描述中是不够的?够了。在外部参数中,你可以输入你需要的值:MagicNumber,你要找的是哪个位置,如果你要买入(0)和卖出(1)--那么就写"-1"。 Вадим Мотеюнас 2018.03.24 22:26 #5015 Konstantin Nikitin:我写的东西有点不对,有点在另一个思考方向。将iOpen[0]改为 Open[0]。 纠正了。简而言之,虽然。当我打开一个酒吧时,它会记住酒吧打开的时间,并且在这个酒吧上不会有任何订单被打开。 很多订单被打开,看起来在非订单打开之前,条件if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0)被满足了,因为NumberOfBarOpenLastPos返回-1。 Vitaly Muzichenko 2018.03.24 22:39 #5016 Вадим Мотеюнас:很多订单被打开,似乎条件if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0)在非订单被打开之前就已经满足,因为NumberOfBarOpenLastPos返回-1。你在寻找订单,那么你需要使用完整版本的功能,即具有按订单搜索的能力,而不仅仅是按头寸搜索。 int NumberOfBarOpenLastPos(string sym="",int tf=0,int op=-1,int mn=-1) { datetime oot=0; // Инициализируем нулём int i,k=OrdersTotal(); if(sym=="") sym=Symbol(); for(i=0; i<k; i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==sym) { if(OrderType()<6) // Ищем и по ордерам { if(op<0 || OrderType()==op) { if(mn<0 || OrderMagicNumber()==mn) { if(oot<OrderOpenTime()) oot=OrderOpenTime(); // Ищем последнее } } } } } } return(iBarShift(sym, tf, oot, true)); } Вадим Мотеюнас 2018.03.24 22:39 #5017 Vitaly Muzichenko:这就足够了。在外部参数中,你可以输入所需的值:Majik,寻找什么位置,也许只有买入,如果需要买入(0)和卖出(1)--那么我们写"-1"。当我在测试器中启动时,没有未结订单,也许这就是为什么返回-1,这就是为什么条件if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0)不成立? Vitaly Muzichenko 2018.03.24 22:44 #5018 Вадим Мотеюнас:在测试器中启动时,没有未结订单,也许这就是为什么返回-1,因此条件if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0)不符合?我现在就去检查。 Вадим Мотеюнас 2018.03.24 22:45 #5019 Vitaly Muzichenko:你在寻找订单,那么你需要使用完整版本的功能,即具有按订单搜索的能力,而不仅仅是按头寸搜索。 仍然返回-1 Vitaly Muzichenko 2018.03.24 22:59 #5020 Вадим Мотеюнас:仍然返回-1它的效果非常好! 从两个位置中,它选择了最后一个,也就是第11条,你可以在截图中看到。 检查代码。 void OnTick() { ... Comment( NumberOfBarOpenLastPos("",0,-1,-1) ); ... } int NumberOfBarOpenLastPos(string sym="",int tf=0,int op=-1,int mn=-1) { datetime oot=0; // Инициализируем нулём int i,k=OrdersTotal(); if(sym=="") sym=Symbol(); for(i=0; i<k; i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==sym) { if(OrderType()<6) // Ищем и по ордерам { if(op<0 || OrderType()==op) { if(mn<0 || OrderMagicNumber()==mn) { if(oot<OrderOpenTime()) oot=OrderOpenTime(); // Ищем последнее } } } } } } return(iBarShift(sym, tf, oot, true)); } 1...495496497498499500501502503504505506507508509...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
该函数按时间顺序排列并选择最新的一个,即最后一个
接下来,我们有一个选定的,我们把它代入函数iBarShift(sym, tf,oot ,true)。
该函数按时间返回酒吧编号。这就是全部。
不幸的是,我不能检查它,但当我使用它时,它完美地工作,以及我在这里发表的所有功能。
写下错误提示if( iOpen[0] != time_open )'iOpen' - 未声明的标识。
我写的东西有点不对,有点在另一个思考方向。将iOpen[0]改为 Open[0]。 纠正了。简而言之,虽然。当我打开一个酒吧时,我记得酒吧开放的时间,而且这个酒吧已经没有订单了。
在函数描述中还写到
要考虑的位置的选择是由外部参数设定的。
在函数描述中还写到
要考虑的位置的选择是由外部参数设定的。
够了。在外部参数中,你可以输入你需要的值:MagicNumber,你要找的是哪个位置,如果你要买入(0)和卖出(1)--那么就写"-1"。
我写的东西有点不对,有点在另一个思考方向。将iOpen[0]改为 Open[0]。 纠正了。简而言之,虽然。当我打开一个酒吧时,它会记住酒吧打开的时间,并且在这个酒吧上不会有任何订单被打开。
很多订单被打开,看起来在非订单打开之前,条件if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0)被满足了,因为NumberOfBarOpenLastPos返回-1。
很多订单被打开,似乎条件if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0)在非订单被打开之前就已经满足,因为NumberOfBarOpenLastPos返回-1。
你在寻找订单,那么你需要使用完整版本的功能,即具有按订单搜索的能力,而不仅仅是按头寸搜索。
这就足够了。在外部参数中,你可以输入所需的值:Majik,寻找什么位置,也许只有买入,如果需要买入(0)和卖出(1)--那么我们写"-1"。
当我在测试器中启动时,没有未结订单,也许这就是为什么返回-1,这就是为什么条件if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0)不成立?
在测试器中启动时,没有未结订单,也许这就是为什么返回-1,因此条件if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0)不符合?
我现在就去检查。
你在寻找订单,那么你需要使用完整版本的功能,即具有按订单搜索的能力,而不仅仅是按头寸搜索。
仍然返回-1
仍然返回-1
它的效果非常好!
从两个位置中,它选择了最后一个,也就是第11条,你可以在截图中看到。
检查代码。