再见,机器人--你好,沼泽地。 - 页 3

 

我对切换到新的构建物感到忐忑不安,但事实证明,所有的指标、EA和脚本都能正常工作。然而,编译时有一系列的警告。但新编译的代码工作得更快。我使用的唯一的新功能是OnTimer(),处理文件的新选项,增加指标缓冲区的数量,一些新函数(它们的增加只是时间问题)。非常有用的是控制数组超限,在代码中用字符串表示。以前是:除以0,然后看你想看的地方。而如果错误没有发生,那就更糟糕了。

"MQL4的新内容 "可以为那些记得旧东西的人写。不再有新手?

如果你想给他们一个关于MQL4 Lite的描述,你可以在文档中不提及所有根本上是新的和不必要的东西:结构、类、资源、对象指针、OOP、调试器、信号、图形事件、所有使用这些新知识的功能等等。留下的一切将不会比旧的MQL4复杂得多。要对新的教科书 稍作修改,因为它没有经过清理。

.

 

Renat 09.09.2014 02:55 #

你可以有条不紊地再次提出论点,解释关于功能的倍增、保存旧代码、修复错误等。这已经做了很多次,在文章中描述过,也在论坛中讨论过。但如果说作者是绝对错误的,是无中生有的问题,那就更容易、更准确了。

对Renat的回应!

----------------------------------------------------------------

你在试图编造关于我的谎言!

你,作为一个开发商,为银行服务。

不是社区!你在建造一辆赛车

用脚踏车驱动的儿童自行车!

所以我必须告诉你事实。

问题。

User32. dll在哪里

具有从eXpert调用脚本的功能,该指标。

所有这些都消失了!下面是证据。

该链接器本身使我成为一个有偿的eXpert,这

以在需要时调用该脚本。

现在,该脚本只被手动调用。

调用本身被不同的窗口所包围-允许调用

或者想调用第二个脚本 - 窗口 "你想离开吗?

只有手动交易才是可能的!

机器人应该做什么? 所有的机器人作家呢?

我不反对OOP和所谓的MT4更快的性能。

如果你想加快MT4的速度,你会限制

我使用了5-6个,得到了数以百计的日期!

不必要的符号是垃圾。

他们只来了!这就是速度和反应能力的体现。

但这对银行是不利的!

潘萨

从User32导入函数。如果他们的目的不是相当多地立即

//清楚,那么在这里记录它坦率地说是不会 帮助 多。需要

// "允许DLL导入 "要打开。

#import "user32.dll"

int RegisterWindowMessageA(string MessageName)。

int PostMessageA(int hwnd, int msg, int wparam, string Name);

void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo)。

##进口

// 所有这些函数的hWnd参数是通过WindowHandle()获得的。

// 例如,一个EA/脚本可以通过以下方式获得其自身图表的句柄

// WindowHandle(Symbol(), 0)。如果EA/脚本知道另一个图表

//是开放的,那么它的手柄可以通过已知的符号和

// 时间框架。如果有多个图表,则行为不可预测。

//相同的符号和时间框架。自动接受默认值清除了

//通过模拟新指标/EA/脚本的配置窗口

//稍作等待后按下回车键。长时间的等待可能

//被证明是更强大的。这一切都不适合昏昏欲睡的人......。

void StartStandardIndicator(int hWnd, string IndicatorName, bool AutomaticallyAcceptDefaults = false)

{

int MessageNumber = RegisterWindowMessageA("帐户4_Internal_Message")。

PostMessageA(hWnd, MessageNumber, 13, IndicatorName)。

如果(AutomaticallyAcceptDefaults)ClearConfigDialog()。

}

void StartCustomIndicator(int hWnd, string IndicatorName, bool AutomaticallyAcceptDefaults = false)

{

int MessageNumber = RegisterWindowMessageA("MetaTrader4_Internal_Message");

PostMessageA(hWnd, MessageNumber, 15, IndicatorName)。

如果(AutomaticallyAcceptDefaults)ClearConfigDialog()。

}

void StartEA(int hWnd, string EAName, bool AutomaticallyAcceptDefaults = false)

{

int MessageNumber = RegisterWindowMessageA("MetaTrader4_Internal_Message");

PostMessageA(hWnd, MessageNumber, 14, EAName)。

如果(AutomaticallyAcceptDefaults)ClearConfigDialog()。

}

void StartScript(int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false)

{

int MessageNumber = RegisterWindowMessageA("MetaTrader4_Internal_Message");

PostMessageA(hWnd, MessageNumber, 16, ScriptName)。

如果(AutomaticallyAcceptDefaults)ClearConfigDialog()。

}

空白的ClearConfigDialog()

{

睡眠(100)。

keybd_event(13, 0, 0, 0)。

}

 
pansa:

Renat 09.09.2014 02:55 #

你可以有条不紊地再次提出论点,解释关于功能的倍增,保存旧的代码,修复错误,等等。这已经做了很多次,在文章中描述过,也在论坛中讨论过。但如果说作者是绝对错误的,是无中生有的问题,那就更容易、更准确了。

对Renat的回应!

----------------------------------------------------------------

你是想赤裸裸地说我的坏话!?

当我们处于完全不同的理解水平时,为什么要赞美?


user32.dll是不会消失的--它是一个操作系统库。

使用W(idechar/unicode)函数的变化,而不是A(nsi)函数。

#import "user32.dll"

   int  RegisterWindowMessageW(string MessageName);
   int  PostMessageW(int hwnd, int msg, int wparam, string Name);

   void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo);

#import
 
如果你把符号从市场观察窗口中删除,就不会有流量通过它。这一机制已经运作了14年。
 

致主持人Renate!

关于理解的水平--这是相对的。

我与光荣的骑士唐吉诃德一起拿着长矛

而且我可以胜任这项工作。

另一方面,你必须满足更高的要求。

更高的要求,生产更高的产品

更高的质量。

那么 user32,dll指的是windos。

你关于从A到W的建议 没有任何效果!的建议是 什么?

试着从eXpert!运行脚本。

删除字符并不影响CPU或网络负载。

它是一个屏幕调用,线程是一样的!

希望你会同意我的看法。

潘萨

 

我看得出,你也是如此。

但在这里我们讨论的是编程和程序员编写的 程序。如果你不了解你所使用的源代码,你需要学习。我们为此做了很多工作:广泛的文档、教程、文章、源码库、自由职业者、现成产品市场、信号、论坛等等。

 
pansa:

尝试改变脚本/指标名称的第一个字母的大小写。不知为何,我也在挣扎https://www.mql5.com/ru/forum/152533/page2#982156

P.S: 嗯,把字符串改为char[] 。

 

亲爱的Renat我也在编译EA后得到很多警告,没有错误

我有个问题,这些警告是什么意思(主要是在return()行前面的警告)?而且它们不会对专家顾问的运作产生负面影响吗?

当然,我不想重新学习语言,重新制作我的EA(我是一个交易员,不是一个程序员)。

 
vasabu2012:

亲爱的Renat我也在编译EA后得到很多警告,没有错误

我有个问题,这些警告是什么意思(主要是在return()行前面的警告)?而且它们不会对专家顾问的运作产生负面影响吗?

当然,我不想再学习语言和重新制作我的EA(我是一个交易员,不是一个程序员)。


请把错误或你犯了一些错误的专家顾问的代码发给我。
 
vasabu2012:

我也是,在编译完EA后得到了一堆警告--没有错误。

当函数的模板名称与变量本身相匹配时,大多数垃圾警告弹出,因为变量通过引用传递到函数中是完全合法、正确和标准的,因为在标准和典型的使用中,变量本身是以自己的名字传递到函数的。

遗憾的是,主持人无法对此做出称职的、符合逻辑的解释,他们说,有时在其他结构中,如果有类似的名称,人们可能会产生误解。但这里有一个悖论,例如,当有一个名称相同的函数,而参数数量不同时,警告不会弹出。

所以我们不得不把它归结为一些宗教迷信和模糊的信仰,而这个警告背后根本没有任何逻辑。我还不认为是白痴的版本,正如该线程的作者所建议的那样,来解释这种现象))。