错误、漏洞、问题 - 页 313

 

由于某些原因,我无法在OnTester函数中获得当前 账户的利润

这就是我如何得到0

double OnTester()
{
   return(AccountInfoDouble(ACCOUNT_PROFIT));

而这就是我获得利润的方式。

double OnTester()
{
   return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 
stringo:

我们在争论什么呢?

PS一定会有一个消息(也许是下面几行)。


Glory我同意--所有这些争论都是如此耗费时间,去他们的(争论)。:)

但是,所以,在腿上叫什么--你,我肯定,你自己完全知道一切,但仍然,如果这个函数是外部的,只通过声明来宣布,有 "const "和 "in "和 "out "这样的修饰词。也许这个功能有一个缺陷。问题是--如果它是一个可返回的参数,那么如果它没有被返回,就会给出一个警告(万一它是通过 "返回 "返回的),并且拥有第二个形式的函数,当返回值通过参数返回时,也应该给出一个警告,因为它是一个可返回值。否则,如果成功/失败的结果是通过参数返回的,而值本身是通过返回的,这将是不可能的。而成功或不成功也总是会被返回。换句话说--(http://users.telenet.be/bart.demeyere/C++InOutParameters.html)这里有一个已经存在了很久的解决方案。


但一般的谈话,因为我没有注意到什么。IMHO,你需要回答这样的问题,如果你不打算从根本上改变目前的实施,像这样的事情:)- "是的,有这样的问题,它将在程序的下一个版本中得到解决,现在我们已经修复了代码,我们只是在修复错误"。没有人(我想即使是最不足的人)会被冒犯,但只要解决这个问题本身就很重要和必要。


因此,无论在这个版本中是否会有这种非常(非常)有用的修改器出现,它们都能极大地减少错误。


***

做完这些信件需要半天时间。我已经完成了。:)

 
Erm955:

由于某些原因,我无法在OnTester函数中获得当前 账户的利润

这就是我如何得到0

double OnTester()
{
   return(AccountInfoDouble(ACCOUNT_PROFIT));

而这就是我获得利润的方式。

double OnTester()
{
   return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);


在OnInit()中声明一个全局变量 并将当前的余额值分配给它。

在OnTester()中根据所有完成的交易结果计算总利润。

Профит=ТекущийБбаланс - Начальный баланс

并在OnTester()中输出。


而你现在想得到的是当前的非固定 利润,如果所有的头寸都被关闭,那么这个利润就是零。

 
Academic:


Glory我同意--所有这些辩论都很耗费时间,不要去管它们(辩论)。:)

在这个版本中,是否会有这种非常(非常)有用的修改器,它们可以使错误降到最低。

"我们在争论什么?"- 是我童年时的一句话,意思是 "我们在争论什么?

通过引用传递参数 正是inout的意思。有一些简单的实现方式是编译器无法控制的。

事实上,通过输入函数来分析执行流程是非常容易的(Rashid提供的例子)。我们特意拒绝了这种做法。其原因是,这将大大增加我们的编译时间。这就是为什么我们选择最简单的方法--显示警告。不产生这样的警告是否更好?是的,你应该。如果你做显式初始化,就不会有警告。

我还重申,我们对逻辑表达有一个缩短的估计。这意味着在你的案例中,如果第一个ObjectGetDouble返回错误(例如,因为对象,注意到程序的外部,突然不存在了),第二个ObjectGetDouble将不会被调用

Документация по MQL5: Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this
Документация по MQL5: Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this
  • www.mql5.com
Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this - Документация по MQL5
 
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 语句中的所有分支......),但在抛出异常时不需要。这与返回 语句的约束相同,没有未定义的行为。


而最重要的是,引入关键词inout,可以帮助我们在编译时就发现一些问题。而我们不都希望尽快发现错误吗?

 

有一个const修改器。传递一个常量引用明确地意味着一个没有任何输出的in参数。我们绝对不会引入额外的实体in、out、inout

 
stringo:

有一个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不这样做呢?

你怎么看?

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
MathX:

你怎么看?

尝试

ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "\\Images\\on.bmp");
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "\\Images\\off.bmp");


证书的变化很快就会到来。