新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 556 1...549550551552553554555556557558559560561562563...1953 新评论 VasiliKolchanov 2018.05.30 14:51 #5551 你能告诉我为什么在我从这个网站复制的代码中,编译器在Magic 前面写着 "未声明的标识符"? for (int pos=0; pos<=OrdersTotal()-1; pos ++) { if(OrderSelect (pos, SELECT_BY_POS)==true) {if (OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic &&OrderCloseTime()==0) // если у Вас есть отложенные ордера и открытие return;} else Print("OrderSelect() вернул ошибку - ",GetLastError()); } //продолжае Maxim Kuznetsov 2018.05.30 15:11 #5552 VasiliKolchanov:你能告诉我,为什么在我从这个网站复制的代码中,在Magic 之前,编译器写着 "未声明的标识符"? 这一定是因为它没有被宣布。 在开始时声明它。或作为顾问参数或常数...或变量,至少在某种程度上...实体必须存在 :-) input int Magic=5566; // это чтобы он был в параметрах и можно поменять // или const int Magic = 8899; Ihor Herasko 2018.05.30 15:11 #5553 VasiliKolchanov:你能告诉我为什么在我从这个网站复制的代码中,编译器在Magic 前面写着 "未声明的标识符"? 因为我使用了标识符Magic,哪种类型(和值,分别)没有在任何地方描述。你需要用这个名字声明一个变量(或常量),并给它赋值。 Artyom Trishkin 2018.05.30 15:12 #5554 VasiliKolchanov:你能告诉我为什么在我从这个网站复制的代码中,编译器在Magic 前面写着 "未声明的标识符"? 因为它没有在你的代码中的任何地方声明--这很明显。 VasiliKolchanov 2018.05.30 15:22 #5555 Artyom Trishkin: 因为它没有在你的代码中任何地方声明--这很明显。 谢谢大家! Rustam Bikbulatov 2018.05.30 20:02 #5556 伙计们,告诉我如何处理,从哪里开始? 例如:我有15个0.01手的订单,我需要在某个时候关闭一些0.07手的交易。 我的问题是,我怎么能在一个OrderClose(...)中关闭7个订单或0.07个订单?如果我一次投入0.07,它不会看到成交量为0.01的交易。 我是编程新手 Valerius 2018.05.31 05:00 #5557 Rustam Bikbulatov:伙计们,告诉我如何处理,从哪里开始? 例如:我有15个0.01手的订单,我需要在某个时候关闭一些0.07手的交易。 我的问题是,我怎么能在一个OrderClose(...)中关闭7个订单或0.07个订单?如果我一次投入0.07,它不会看到成交量为0.01的交易。 我是编程新手。没有办法通过一个命令来关闭它。我们只能对订单进行选择,并因此而删除每个订单。而如果你删除了一个较小体积的订单,你仍然有一个开放的体积。我们将其与我们的剩余开放量进行比较。我们关闭,直到0.07的量达到极限。这是唯一的办法。 Ihor Herasko 2018.05.31 06:48 #5558 Rustam Bikbulatov:伙计们,告诉我如何处理,从哪里开始? 例如:我有15个0.01手的订单,我需要在某个时候关闭一些0.07手的交易。 我的问题是,我怎样才能在一个OrderClose(...)中关闭7个订单或0.07个订单?如果我一次投入0.07,它不会看到成交量为0.01的交易。 我是编程新手。如果经纪人允许使用反平仓,您可以用0.07的量开一个相反的订单,从而固定这个量的盈亏价格。那么,在这之后,我们仍然需要执行7个相反的关闭操作(OrderCloseBy()函数)。使用这种方法还有一个交易操作要执行。其优点是,所有七个订单都以一个价格成交。 Decromor 2018.05.31 14:40 #5559 大家好。 请告知EA的速度,可能还有代码的可靠性和正确性。 我指的是在每一个tick中的开仓和挂单,如果有必要,可以改变它们。 在OrderSelect 的手册中写道:"当使用SELECT_BY_POS参数按顺序选择订单 时,信息是按照从交易服务器 接收的顺序给出的。" 由此产生的问题是:我们能否创建一个数组,将订单的类型、进价以及例如唯一的注释储存在其中?你是否会在每个tick中运行数组,然后,如果有必要,向OrderSelect 函数寻址,使用订单的唯一注释进行选择? Ihor Herasko 2018.05.31 16:15 #5560 Decromor:大家好。 请给出您的建议,这主要是关于EA的速度,可能还有它的可靠性和书写的正确性。 我指的是在每一个tick中的开仓和挂单,如果有必要,可以改变它们。 在OrderSelect 的手册中写道:"当使用SELECT_BY_POS参数按顺序选择订单 时,信息是按照从交易服务器 接收的顺序给出的。" 由此产生的问题是:我们能否创建一个数组,将订单的类型、进价以及例如唯一的注释储存在其中?在每一次打勾时,我们应该运行整个数组,如果有必要的话,向OrderSelect 函数寻址,通过订单的唯一注释进行选择? OrderSelect()是在终端内部实现的,没有对服务器的请求。这就是为什么在每次打勾时调用订单列表没有什么不好。这正是大多数EA的做法。 而你关于阵列的问题与程序的架构有关。如果是操作大量订单的复杂EA,这绝对是必要的。如果专家顾问用简单的逻辑操作单一的订单,那么这个阵列就是多余的了。 只值得一提的是,即使我们有一个订单数组,我们也不能不调用OrderSelect()。毕竟,我们必须在每次打钩时检查订单是否仍然存在。而且,它的参数也可以改变。 1...549550551552553554555556557558559560561562563...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你能告诉我为什么在我从这个网站复制的代码中,编译器在Magic 前面写着 "未声明的标识符"?
你能告诉我,为什么在我从这个网站复制的代码中,在Magic 之前,编译器写着 "未声明的标识符"?
这一定是因为它没有被宣布。
在开始时声明它。或作为顾问参数或常数...或变量,至少在某种程度上...实体必须存在 :-)
input int Magic=5566; // это чтобы он был в параметрах и можно поменять
// или const int Magic = 8899;
你能告诉我为什么在我从这个网站复制的代码中,编译器在Magic 前面写着 "未声明的标识符"?
因为我使用了标识符Magic,哪种类型(和值,分别)没有在任何地方描述。你需要用这个名字声明一个变量(或常量),并给它赋值。
你能告诉我为什么在我从这个网站复制的代码中,编译器在Magic 前面写着 "未声明的标识符"?
因为它没有在你的代码中任何地方声明--这很明显。
伙计们,告诉我如何处理,从哪里开始?
例如:我有15个0.01手的订单,我需要在某个时候关闭一些0.07手的交易。
我的问题是,我怎么能在一个OrderClose(...)中关闭7个订单或0.07个订单?
如果我一次投入0.07,它不会看到成交量为0.01的交易。
我是编程新手
伙计们,告诉我如何处理,从哪里开始?
例如:我有15个0.01手的订单,我需要在某个时候关闭一些0.07手的交易。
我的问题是,我怎么能在一个OrderClose(...)中关闭7个订单或0.07个订单?
如果我一次投入0.07,它不会看到成交量为0.01的交易。
我是编程新手。
没有办法通过一个命令来关闭它。我们只能对订单进行选择,并因此而删除每个订单。而如果你删除了一个较小体积的订单,你仍然有一个开放的体积。我们将其与我们的剩余开放量进行比较。我们关闭,直到0.07的量达到极限。这是唯一的办法。
伙计们,告诉我如何处理,从哪里开始?
例如:我有15个0.01手的订单,我需要在某个时候关闭一些0.07手的交易。
我的问题是,我怎样才能在一个OrderClose(...)中关闭7个订单或0.07个订单?
如果我一次投入0.07,它不会看到成交量为0.01的交易。
我是编程新手。
如果经纪人允许使用反平仓,您可以用0.07的量开一个相反的订单,从而固定这个量的盈亏价格。那么,在这之后,我们仍然需要执行7个相反的关闭操作(OrderCloseBy()函数)。使用这种方法还有一个交易操作要执行。其优点是,所有七个订单都以一个价格成交。
大家好。
请告知EA的速度,可能还有代码的可靠性和正确性。
我指的是在每一个tick中的开仓和挂单,如果有必要,可以改变它们。
在OrderSelect 的手册中写道:"当使用SELECT_BY_POS参数按顺序选择订单 时,信息是按照从交易服务器 接收的顺序给出的。"
由此产生的问题是:我们能否创建一个数组,将订单的类型、进价以及例如唯一的注释储存在其中?你是否会在每个tick中运行数组,然后,如果有必要,向OrderSelect 函数寻址,使用订单的唯一注释进行选择?
大家好。
请给出您的建议,这主要是关于EA的速度,可能还有它的可靠性和书写的正确性。
我指的是在每一个tick中的开仓和挂单,如果有必要,可以改变它们。
在OrderSelect 的手册中写道:"当使用SELECT_BY_POS参数按顺序选择订单 时,信息是按照从交易服务器 接收的顺序给出的。"
由此产生的问题是:我们能否创建一个数组,将订单的类型、进价以及例如唯一的注释储存在其中?在每一次打勾时,我们应该运行整个数组,如果有必要的话,向OrderSelect 函数寻址,通过订单的唯一注释进行选择?
OrderSelect()是在终端内部实现的,没有对服务器的请求。这就是为什么在每次打勾时调用订单列表没有什么不好。这正是大多数EA的做法。
而你关于阵列的问题与程序的架构有关。如果是操作大量订单的复杂EA,这绝对是必要的。如果专家顾问用简单的逻辑操作单一的订单,那么这个阵列就是多余的了。
只值得一提的是,即使我们有一个订单数组,我们也不能不调用OrderSelect()。毕竟,我们必须在每次打钩时检查订单是否仍然存在。而且,它的参数也可以改变。