错误、漏洞、问题 - 页 2445

 
fxsaber:

不,是ex5获得了opt中的哈希值。由于这个原因,重新编译会重置测试者的缓存。

那么开发人员就不会帮忙了,自己编写代码分析器 吧。

 
fxsaber:

不,它是进入opt的ex5的散列值。这就是为什么重新编译会重置测试器缓存的原因。

并非如此。

不是每次重新编译Expert Advisor都会重置测试者的缓存。

如果专家顾问有依赖组件:库、自定义指标和/或dll,这些组件的哈希值将与专家顾问的哈希值混合在一起。

EA的哈希值如何计算以及它在EA中的存储位置是技术秘密之一。

这就是为什么我马上就告诉你:"不"。

 
fxsaber:

的确如此。

  1. 我们把mql文件放入一个Uchar数组中
  2. 删除评论//...и /* ...*/
  3. 删除所有的空格、制表符、换行符,甚至所有的括号和引号
  4. 从剩下的内容中读取哈希值

第一个近似值会很好地发挥作用。

当然,如果你改变了变量(函数)的名称,或者增加了一个新的未使用的变量,改变了顺序等等,哈希值会改变,尽管逻辑没有改变。控制这些东西已经非常复杂。这就像编写你自己的链接器。

 
Slava:

如何考虑EA的哈希值,它在EA中的存储位置,是技术秘密之一。

这就是为什么我马上就告诉你:"不"。

关键是,没有要求提供MD5哈希值。你需要任何本地代码的散列。例如,每三个字节的总和。

如果这个总和不一样,那么有很大的可能性,专家顾问(逻辑-本地代码)已经改变。


即,很简单!不幸的是,目前还没有这样的机制。

 
Nikolai Semko:

控制这些东西已经非常复杂。这就像编写你自己的链接器。

这就是为什么我在谈论一个简单的解决方案。

 

开发者对这个话题有什么要说的吗?

https://smart-lab.ru/blog/535490.php

Черный вторник для одного трейдера в Открытии
Черный вторник для одного трейдера в Открытии
  • smart-lab.ru
Привет коллегам по цеху. Поднимите пожалуйста пост в топ, если не затруднит. Случилась одна неожиданная история, как говорится прилетело откуда не ждал. Сегодня ночью на NLMK-9.19 некто, пожелавший остаться неизвестным (на данный момент), слил или перелил 420000 рублей по четырем маркет сделкам 100,35,20,10 контрактов на счете в Открытии...
 
fxsaber:

这就是为什么我在谈论一个简单的解决方案。

那么你需要为MQ提供一个合格的论据。
它是用来做什么的?它如何以及在什么情况下可以增强mql的能力?而不仅仅是为了满足个人的心血来潮。
目前,我个人并不清楚为什么程序需要知道它被改变了。它在哪些任务中可以发挥作用?如果它甚至需要什么,那么在删除 "多余 的 "之后 从mql-code获得哈希值就足够了。而这真的不需要超过20行的代码。

更何况,即使MQ会顺水推舟,给出这样的哈希值供大家使用,他仍然会改变这样的哈希值,不能保证逻辑已经被改变。例如,在改变某些东西的顺序时。

 

不小心更新了--又不工作了--编译错误。

#define  MACRO1
#define  MACRO2(x, y)    y
#define  MACRO3          MACRO2(&, MACRO1)
class A {};
void f( A* ) { Print( 1 ); }
void f( A& ) { Print( 2 ); }
void OnStart()
{
        A a;
        f( MACRO3 a ); //Error: '&' - operand expected
}

以前是很好的(1961年建造)。

 

这里也是--现在(构建2025)有一个错误。

#define  MACRO1( x )
#define  MACRO2          MACRO1( y ) void
#import "any.dll"
        MACRO2 f(); //Error: '(' - expressions are not allowed on a global scope
#import

而在之前(1961年建造),它是好的

 

帮我解决这个问题。 我怎样才能让正常的字符被传送,而不是现在的字符?


原因: