错误、漏洞、问题 - 页 1701

 
pako:
泰克斯里有鱼吗?
这就是我想了解的情况。
 
fxsaber:
这就是我想了解的情况。

只有在一些lmax上尝试才有意义。甚至这也是值得怀疑的。

你有没有试过体积、情感、玻璃?对我来说,它的味道更好。我最喜欢的交易是在ticker和tumblr上,但我在外汇上找不到这样的东西。

 
Комбинатор:

只有在一些lmax上尝试才有意义。而这是值得怀疑的。

你有没有试过体积、情感、玻璃?对我来说,它的味道更好。我最喜欢的交易是用Ribbon和Gauge,但在外汇上却没有这样的东西。

我想试试交易所。不知何故,到目前为止,我都很清楚该在那里做什么。而且不清楚为什么即使是以指标的形式也没有这样做。

只有虫子在拖累我。

 
void OnStart()
  {
//---
   Print("-----------------------------   ");
   Print("DBL_MAX= ", DBL_MAX);
   Print("IntegerToString(int(DBL_MAX) )= ", IntegerToString(int(DBL_MAX) ) );
   Print("IntegerToString(uint(MathAbs(DBL_MAX) ) )= ", IntegerToString(uint(MathAbs(DBL_MAX) ) ) );
  }

我运行一个这样的脚本

并得到

DBL_MAX= 1.797693134862316e+308

IntegerToString(int(DBL_MAX) )= -2147483648

IntegerToString(uint(MathAbs(DBL_MAX) ))= 0

------

问题--为什么将一个正的双数转换为int时,我们实际上得到的是一个负数?

 
Print("-----------------------------   ");
   Print("DBL_MAX= ", DBL_MAX);
   Print("IntegerToString(int(DBL_MAX) )= ", IntegerToString(int(DBL_MAX) ) );
   Print("IntegerToString(uint(MathAbs(DBL_MAX) ) )= ", IntegerToString(uint(MathAbs(DBL_MAX) ) ) );
   Print("---");
   Print("int(DBL_MAX)= ", int(DBL_MAX) );
   Print("uint(DBL_MAX)= ", uint(DBL_MAX) );
或者说,这样的情况还是一样的。
 
fxsaber:
我填写了一份申请表,尽管我已经厌倦了经常这样做。
回答并立即关闭

该指标的作者故意将链接编码为自己。

你可以禁止这种 "黑客",或者把它留给使用它的人的良知。

到目前为止,你是几年来第一个被这个功能阻止使用终端的人。

有多少指标可以在空闲模式下执行,而我们对它们一无所知?根本就没有控制。

我不太理解你帖子中经常出现的修辞。很明显,我们谈论的不是一个大规模或严重的问题。

1)只有刻意地、有意识地才能写出一个具有指定行为的指标。谁让你写这样的代码和运行这样的指标?或者你运行其他程序而不知道它们的代码?

2)这样的指标并不比其他许多有不太明显的逻辑错误的指标更恶意。

3) 当你重新启动终端时,指标将被卸载,不会再启动。如果你不小心启动了这样一个指标--重新启动终端。而且不要再运行它。

如果至少有一个副本被启动,我应该有可能删除自己(指标),即使它有不同的输入参数。要做到这一点,我需要弄清楚手柄本身。不幸的是,那时候我还不知道在MQL中100%的情况下是不可能的。因此,我决定尝试一个不太聪明的技巧。

我翻阅了所有的手柄。如果它与我在检查前在指标中写的随机性相吻合,就自动意味着这个手柄属于我,如果有必要,我可以自己删除。

正是从这些考虑出发,写出了这样无害的代码,引起了开发者如此模棱两可,但显然是负面的反应。你看,你不能这样做。你做了什么?好吧,我通过CopyBuffer读取我的缓冲区的值。这是否违法?

让社区知道,你可以用这种方式创建一个后台不受控制地执行任何代码,甚至在没有图表的终端。这里有一个小提示。是否认为这是一个错误,可能是一个术语问题。我的理解是,开发商不能够在这里改变任何建筑上的东西。这就是为什么会有这样的愤怒。我无法以任何其他方式解释这种反应。

反正没有人会说什么。这样的耙子会在帮助中得到很好的反映。

 
Если вы случайно запустили такой индикатор - 重新启动终端。而且不要再运行它。
没有办法知道。不可能的!
 
Dmytro Zelenskyy:
或者说还是一样的。

int类型的大小为4字节。双重类型的 大小为8字节。你不能这样做--试图从8个字节中获取4个字节--你可能会以胡言乱语而告终--特别是在这种情况下,当DBL_MAX值位于int值之外时。

如果你把数字d=123456.1258,并试图从它那里得到int--那么这个数字会起作用,但你仍然不能这样做。

 
Karputov Vladimir:

int类型的大小为4字节。双重类型的 大小为8字节。你不能这样做--试图从8个字节中获取4个字节--你可能会以胡言乱语而告终--特别是在这种情况下,当DBL_MAX值位于int值之外时。

如果你把数字d=123456.1258,并试图从它那里得到int,这个数字会起作用,但你仍然不能这样做。

好的,如何在保留符号的情况下正确地将双数转换为英数(数字并不重要,如果它超出了限制,则限制为英数)。

 
Dmytro Zelenskyy:

好的,如何正确地将double转换为int,并保留符号(数字并不重要,如果它超出了限制,则限制为int)。

䵮䵮

整数int类型 的大小为4字节(32位)。最小值为-2 147 483 648,最大值为2 147 483 647。基于此。

   int A=(int)2147483647.0;
   int B=(int)2147483646.2;
   int C=(int)2147483647.2;
   int D=(int)2147483648.0;
   Print("A: ",IntegerToString(A),", B: ",IntegerToString(B),", C: ",IntegerToString(C),", D: ",IntegerToString(D));

看看返回的是什么。

A: 2147483647, B: 2147483646, C: 2147483647, D: -2147483648

我认为这个原则很清楚。