对MQL5的祝愿 - 页 77

 
chv писал(а)>>

它不会显示一行关于未使用函数的警告--双击会移动到专家顾问的第一行,而不是这个函数的开头。
例如:函数 "sdfsdgbgfgnh "没有被引用,将从exp-file中删除。

嗯,这就对了!

:)

你忘了在专家顾问中插入函数调用。

编译器已经警告过你,没有在可执行文件中插入这个函数。

作者通常知道他在专家顾问中使用了哪些函数,它们应该在哪里被调用,以及这些函数的文本在哪里。

或者,也许我错了?

简而言之!

你可以双击错误。

如果你忘了放括号,你将不得不手动搜索!

如果你忘了进行函数调用,你必须手动搜索它

还有哪些错误不会双击?

 
stringStringConcatenate(. ...)
从传递的参数中形成一个字符串并返回。参数可以是任何类型。参数的数量不能超过64。
我希望ps= StringConcatenate(g_Profit);也能工作!为什么要限制它少于2个参数?
 
vvavva писал(а)>>
stringStringConcatenate(. ...)
从传递的参数中形成一个字符串并返回。参数可以是任何类型。参数的数量不能超过64。
我希望ps= StringConcatenate(g_Profit);也能工作!为什么将参数数量限制在2个以下?

因为这是字符串的连接。("字符串 "是复数)。

在MQL5中,一个简单的赋值ps=g_Profit就可以工作,但程序会产生一个关于隐式类型转换的警告。为了避免警告信息,可以进行显式转换

ps=(字符串)g_Profit。

 
stringo писал(а)>>

因为它是一个字符串的串联。("字符串 "是复数)。

在MQL5中,一个简单的赋值ps=g_Profit就可以工作,但有一个关于隐式类型转换的警告。为了避免警告信息,可以进行显式转换

ps=(字符串)g_Profit。

我明白,对于STRINGS!但是,如果有64的限制,就意味着有检查,如果有检查,为什么不跳过一个变量呢!?

这并不复杂!

在4中,我们可以ps=g_Profit;但在这个过程中,可能会增加一些变量,最好使用

stringStringConcatenate( ...)
现在ps= StringConcatenate("",g_Profit)。

我不清楚为什么对一个变量有限制!?

 
vvavva писал(а)>>

我明白,对于STRINGS!但是,如果有64的限制,就意味着有检查,如果有检查,为什么不跳过一个变量呢!?

这并不难!

你可以使用ps=g_Profit;但在这个过程中,可以添加变量,最好使用

stringStringConcatenate( ...)
for now ps= StringConcatenate("",g_Profit);

我不明白为什么一定要有一个变量的限制!

所以这不是对MQL5的要求?那你为什么把它写在这里?

 

这些是对从4开始的所有MQL号码的祝愿!我希望有更少的限制。

而这些限制是写在帮助中的!

如果有可能的话!

 
stringo писал(а)>>

为了避免警告,可以做一个明确的转换

ps=(字符串)g_Profit。

这很美。

 
stringo >> :

因为它是一个字符串的串联。("字符串 "是复数)。

在MQL5中,一个简单的赋值ps=g_Profit就可以工作,但有一个关于隐式类型转换的警告。为了避免警告信息,可以进行显式转换

ps=(字符串)g_Profit。

在许多语言中,你可以明确地通过转换。


ps = g_Profit + ""。

 

我将试着不把它写成一个愿望,而是写成目前在MT中不可能做到的事情(希望开发者能看到什么和如何做到)。

你需要一个指标。

  1. 这反映了终端中所有货币 对的"真实 "汇率的 总和,并且包含了,比如说,欧元
  2. 在一个货币对的 "真实 "汇率下,可以理解为(Ask-Bid)/2 +Bid
  3. 该指标应在历史上和当前时刻同样正确地工作,即任何货币对的卖出价 和/或买入价 的任何变化都将反映在该指标中。
  4. 该指标的工作在历史和实时模式下不应该改变,即如果我把它附加到真实账户并把它的所有数据写入一个文件,那么我将得到完全相同的结果,在测试器中运行它的同一时期。

如果MQL5 允许你创建这样的指标,它将是创建(和研究)多货币TS系统的一个好帮手。

 

还有一个要求(对所有的MQL)!

当你改变账户时,当专家顾问在循环中工作,并按下EA按钮时,账户就不匹配了!

假设专家顾问先完成了它的工作,然后它改变了账户,但现在启动(循环)仍在运行,账户已经改变了

而我必须做额外的检查!