错误、漏洞、问题 - 页 313 1...306307308309310311312313314315316317318319320...3184 新评论 Владимир 2011.02.22 11:15 #3121 由于某些原因,我无法在OnTester函数中获得当前 账户的利润。 这就是我如何得到0 double OnTester(){ return(AccountInfoDouble(ACCOUNT_PROFIT));} 而这就是我获得利润的方式。 double OnTester(){ return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);} Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5 Academic 2011.02.22 11:22 #3122 stringo: 我们在争论什么呢? PS一定会有一个消息(也许是下面几行)。Glory我同意--所有这些争论都是如此耗费时间,去他们的(争论)。:) 但是,所以,在腿上叫什么--你,我肯定,你自己完全知道一切,但仍然,如果这个函数是外部的,只通过声明来宣布,有 "const "和 "in "和 "out "这样的修饰词。也许这个功能有一个缺陷。问题是--如果它是一个可返回的参数,那么如果它没有被返回,就会给出一个警告(万一它是通过 "返回 "返回的),并且拥有第二个形式的函数,当返回值通过参数返回时,也应该给出一个警告,因为它是一个可返回值。否则,如果成功/失败的结果是通过参数返回的,而值本身是通过返回的,这将是不可能的。而成功或不成功也总是会被返回。换句话说--(http://users.telenet.be/bart.demeyere/C++InOutParameters.html)这里有一个已经存在了很久的解决方案。但一般的谈话,因为我没有注意到什么。IMHO,你需要回答这样的问题,如果你不打算从根本上改变目前的实施,像这样的事情:)- "是的,有这样的问题,它将在程序的下一个版本中得到解决,现在我们已经修复了代码,我们只是在修复错误"。没有人(我想即使是最不足的人)会被冒犯,但只要解决这个问题本身就很重要和必要。 因此,无论在这个版本中是否会有这种非常(非常)有用的修改器出现,它们都能极大地减少错误。 ***做完这些信件需要半天时间。我已经完成了。:) Rashid Umarov 2011.02.22 11:24 #3123 Erm955:由于某些原因,我无法在OnTester函数中获得当前 账户的利润。 这就是我如何得到0 double OnTester(){ return(AccountInfoDouble(ACCOUNT_PROFIT));} 而这就是我获得利润的方式。 double OnTester(){ return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);} 在OnInit()中声明一个全局变量 并将当前的余额值分配给它。在OnTester()中根据所有完成的交易结果计算总利润。Профит=ТекущийБбаланс - Начальный баланс并在OnTester()中输出。而你现在想得到的是当前的非固定 利润,如果所有的头寸都被关闭,那么这个利润就是零。 Slava 2011.02.22 11:44 #3124 Academic: Glory我同意--所有这些辩论都很耗费时间,不要去管它们(辩论)。:) 在这个版本中,是否会有这种非常(非常)有用的修改器,它们可以使错误降到最低。 "我们在争论什么?"- 是我童年时的一句话,意思是 "我们在争论什么? 通过引用传递参数 正是inout的意思。有一些简单的实现方式是编译器无法控制的。 事实上,通过输入函数来分析执行流程是非常容易的(Rashid提供的例子)。我们特意拒绝了这种做法。其原因是,这将大大增加我们的编译时间。这就是为什么我们选择最简单的方法--显示警告。不产生这样的警告是否更好?是的,你应该。如果你做显式初始化,就不会有警告。 我还重申,我们对逻辑表达有一个缩短的估计。这意味着在你的案例中,如果第一个ObjectGetDouble返回错误(例如,因为对象,注意到程序的外部,突然不存在了),第二个ObjectGetDouble将不会被调用 Документация по MQL5: Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this www.mql5.com Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this - Документация по MQL5 Academic 2011.02.22 11:52 #3125 stringo: "我们在争论什么?"- 是我童年时的一句话,意思是 "我们在争论什么? 通过引用传递参数 正是inout的意思。有一些简单的实现方式是编译器无法控制的。 事实上,通过输入函数来分析执行流程是非常容易的(Rashid提供的例子)。我们特意拒绝了这种做法。其原因是,这将大大增加我们的编译时间。这就是为什么我们选择最简单的方法--显示警告。不产生这样的警告是否更好?是的,你应该。如果你做显式初始化,就不会有警告。 我还重申,我们对逻辑表达有一个缩短的估计。这意味着在你的例子中,如果第一个ObjectGetDouble返回错误(例如,因为对象,注意到程序的外部,突然不存在了),第二个ObjectGetDouble将不会被调用对,它不会被调用--这是C代码的标准行为。 修饰语的输入和输出可以是在引用之外的。而且在默认情况下,他们总是进进出出,供人参考。但我可以用in修改器传递一个引用,这意味着这个函数的参数始终是输入的,即使是通过引用传递,也不可能向其中写入。你读过吗?http://users.telenet.be/bart.demeyere/C++InOutParameters.html in: 参数将被读取(当不是在每个分支中读取时发出警告*)。(在:参数将被读取(无处读取时发出警告)out:参数将被写入(当没有在每个分支中写入时发出警告*)。(out): 参数可以被写入(无处写入时发出警告)in 而不out:参数不能被写入out withoutin: 参数在被写入之前不能被读取。*在每一个分支中:在所有可能的通过函数的正常流程中(if 语句中的两个分支,case 语句中的所有分支......),但在抛出异常时不需要。这与返回 语句的约束相同,没有未定义的行为。 而最重要的是,引入关键词in 和out,可以帮助我们在编译时就发现一些问题。而我们不都希望尽快发现错误吗? Slava 2011.02.22 12:11 #3126 有一个const修改器。传递一个常量引用明确地意味着一个没有任何输出的in参数。我们绝对不会引入额外的实体in、out、inout Academic 2011.02.22 12:25 #3127 stringo:有一个const修改器。传递一个常量引用明确地意味着一个没有任何输出的in参数。我们绝对不会引入额外的实体in、out、inout如果你不愿意,你就不愿意。但你必须认识到,那时你将不会得到一个体面的优化。如果在那个例子中出现了OUT,就不会产生警告了。但这一切都是徒劳的--IMHO--它将花费你三分钟,但错误要少得多。如果你不想使用它,就不要使用它。然后一切都像以前一样。就像现在。:) 你是如何做到只出不进的呢?这意味着总是有东西被返回,你知道,就像一个函数返回? [删除] 2011.02.22 12:54 #3128 开发人员。1.我认为主要货币对的价差自1993年5月以来一直被敲打,目前大约有930个周线?而在深厚的历史中,酒吧是以天为单位建立的。因此,专家顾问可能正好从1993年5月开始测试(如果我们使用不低于D1的TF)? 我们可以比1993年5月9日的英镑兑美元看得更深吗(就像它在欧元兑美元上实施的那样)? MathX 2011.02.22 13:27 #3129 你好。 你能解释一下为什么在手动创建"图形标签"对象时,它没有指定的开/关状态的bmp文件? 下面是代码。 ObjectCreate(....)。 ....... ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "Images\on.bmp")。 ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "Images\off.bmp")。 标签的创建完全正确,在指定的位置,有指定的颜色,等等,但 "Images\on.bmp "和 "Images\off.bmp "没有被指定。如果在MT5浏览器中 点击对象列表,手动设置这些文件的标记,它们将被设置。但为什么ObjectSetString不这样做呢? 你怎么看? Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов www.mql5.com Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5 Ilyas 2011.02.22 13:39 #3130 MathX:你怎么看?尝试ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "\\Images\\on.bmp"); ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "\\Images\\off.bmp"); 证书的变化很快就会到来。 1...306307308309310311312313314315316317318319320...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
由于某些原因,我无法在OnTester函数中获得当前 账户的利润。
这就是我如何得到0
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_PROFIT));
}
而这就是我获得利润的方式。
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);
}
我们在争论什么呢?
PS一定会有一个消息(也许是下面几行)。
Glory我同意--所有这些争论都是如此耗费时间,去他们的(争论)。:)
但是,所以,在腿上叫什么--你,我肯定,你自己完全知道一切,但仍然,如果这个函数是外部的,只通过声明来宣布,有 "const "和 "in "和 "out "这样的修饰词。也许这个功能有一个缺陷。问题是--如果它是一个可返回的参数,那么如果它没有被返回,就会给出一个警告(万一它是通过 "返回 "返回的),并且拥有第二个形式的函数,当返回值通过参数返回时,也应该给出一个警告,因为它是一个可返回值。否则,如果成功/失败的结果是通过参数返回的,而值本身是通过返回的,这将是不可能的。而成功或不成功也总是会被返回。换句话说--(http://users.telenet.be/bart.demeyere/C++InOutParameters.html)这里有一个已经存在了很久的解决方案。
但一般的谈话,因为我没有注意到什么。IMHO,你需要回答这样的问题,如果你不打算从根本上改变目前的实施,像这样的事情:)- "是的,有这样的问题,它将在程序的下一个版本中得到解决,现在我们已经修复了代码,我们只是在修复错误"。没有人(我想即使是最不足的人)会被冒犯,但只要解决这个问题本身就很重要和必要。
因此,无论在这个版本中是否会有这种非常(非常)有用的修改器出现,它们都能极大地减少错误。
***
做完这些信件需要半天时间。我已经完成了。:)
由于某些原因,我无法在OnTester函数中获得当前 账户的利润。
这就是我如何得到0
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_PROFIT));
}
而这就是我获得利润的方式。
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);
}
在OnInit()中声明一个全局变量 并将当前的余额值分配给它。
在OnTester()中根据所有完成的交易结果计算总利润。
并在OnTester()中输出。
而你现在想得到的是当前的非固定 利润,如果所有的头寸都被关闭,那么这个利润就是零。
Glory我同意--所有这些辩论都很耗费时间,不要去管它们(辩论)。:)
在这个版本中,是否会有这种非常(非常)有用的修改器,它们可以使错误降到最低。
"我们在争论什么?"- 是我童年时的一句话,意思是 "我们在争论什么?
通过引用传递参数 正是inout的意思。有一些简单的实现方式是编译器无法控制的。
事实上,通过输入函数来分析执行流程是非常容易的(Rashid提供的例子)。我们特意拒绝了这种做法。其原因是,这将大大增加我们的编译时间。这就是为什么我们选择最简单的方法--显示警告。不产生这样的警告是否更好?是的,你应该。如果你做显式初始化,就不会有警告。
我还重申,我们对逻辑表达有一个缩短的估计。这意味着在你的案例中,如果第一个ObjectGetDouble返回错误(例如,因为对象,注意到程序的外部,突然不存在了),第二个ObjectGetDouble将不会被调用
"我们在争论什么?"- 是我童年时的一句话,意思是 "我们在争论什么?
通过引用传递参数 正是inout的意思。有一些简单的实现方式是编译器无法控制的。
事实上,通过输入函数来分析执行流程是非常容易的(Rashid提供的例子)。我们特意拒绝了这种做法。其原因是,这将大大增加我们的编译时间。这就是为什么我们选择最简单的方法--显示警告。不产生这样的警告是否更好?是的,你应该。如果你做显式初始化,就不会有警告。
我还重申,我们对逻辑表达有一个缩短的估计。这意味着在你的例子中,如果第一个ObjectGetDouble返回错误(例如,因为对象,注意到程序的外部,突然不存在了),第二个ObjectGetDouble将不会被调用
对,它不会被调用--这是C代码的标准行为。
修饰语的输入和输出可以是在引用之外的。而且在默认情况下,他们总是进进出出,供人参考。但我可以用in修改器传递一个引用,这意味着这个函数的参数始终是输入的,即使是通过引用传递,也不可能向其中写入。你读过吗?http://users.telenet.be/bart.demeyere/C++InOutParameters.html
有一个const修改器。传递一个常量引用明确地意味着一个没有任何输出的in参数。我们绝对不会引入额外的实体in、out、inout
有一个const修改器。传递一个常量引用明确地意味着一个没有任何输出的in参数。我们绝对不会引入额外的实体in、out、inout
如果你不愿意,你就不愿意。但你必须认识到,那时你将不会得到一个体面的优化。如果在那个例子中出现了OUT,就不会产生警告了。但这一切都是徒劳的--IMHO--它将花费你三分钟,但错误要少得多。如果你不想使用它,就不要使用它。然后一切都像以前一样。就像现在。:)
你是如何做到只出不进的呢?这意味着总是有东西被返回,你知道,就像一个函数返回?
开发人员。
1.我认为主要货币对的价差自1993年5月以来一直被敲打,目前大约有930个周线?
而在深厚的历史中,酒吧是以天为单位建立的。
因此,专家顾问可能正好从1993年5月开始测试(如果我们使用不低于D1的TF)?
我们可以比1993年5月9日的英镑兑美元看得更深吗(就像它在欧元兑美元上实施的那样)?你好。
你能解释一下为什么在手动创建"图形标签"对象时,它没有指定的开/关状态的bmp文件?
下面是代码。
ObjectCreate(....)。
.......
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "Images\on.bmp")。
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "Images\off.bmp")。
标签的创建完全正确,在指定的位置,有指定的颜色,等等,但 "Images\on.bmp "和 "Images\off.bmp "没有被指定。如果在MT5浏览器中
点击对象列表,手动设置这些文件的标记,它们将被设置。但为什么ObjectSetString不这样做呢?
你怎么看?
你怎么看?
尝试
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "\\Images\\on.bmp");
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "\\Images\\off.bmp");
证书的变化很快就会到来。