错误、漏洞、问题 - 页 1035

 
A100:
你见过它输出为 "word Hello "吗?

重新仔细阅读我写给你的内容。计算,而不是输出。

这是一个i += ++i +++的表达式

 

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

MetaDriver, 2013.08.03 17:55

"

如果你 确定你在屏幕的右边有一个输入。

对于我的目的来说,这并不总是合适的,但在一般情况下,很多 "周末问题 "将被消除

对于交易、自动交易系统和交易策略测试方面的专家。

虫子,虫子,问题

MetaDriver, 2013.08.03 18:02

...

这也将是有用的 "命令",以编程方式强制对选定符号的所有prev_calculated 进行归零。与随后的蜱虫生成将是一个很好的组合。

先生们,你们的计划中是否有关于这个问题的内容?


 
TheXpert:

重新仔细阅读我写给你的内容。计算,而不是扣减。


你把这些时刻分开是对的:计算函数参数、替换这些参数和计算函数本身。这个脚本--表明参数都是从左到右计算的,表达式本身也是从左到右计算的。

int f( int x )  { Print( __FUNCTION__ + "(" + x + ")" ); return ( x ); }

void OnStart()
{
        int a = 0x0;
        int b = f(a+=1) << f(a+=2) << f(a+=3);
	Print( "b=" + b );
}
Результат:
f(1)
f(3)
f(6)
b=512
 
请告诉我extern和static的区别,什么是全局寿命
//Test.mqh
extern int e1;
static int s1;

#import "testLib.ex5"
        void f();
#import
//test.mq5
#include "Test.mqh"

void OnStart()
{
        e1 = 10;
        s1 = 10;
        f();
}

//testLib.mq5

#property library
#include "Test.mqh"

void f() export
{
        Print( "e1=" + e1 );
        Print( "s1=" + s1 );
}
Результат:
e1 = 0 //не понятно
s1 = 0 //нормально
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Silent:
不是那个

没有--在那里使用了一个未初始化的标准类。

我所有的课都是自己写的。我不明白--为什么在类方法中工作正常,而在OnInit()中却不行。

更新:非常有趣...;-)如果专家顾问在调试器下的MetaEditor中运行--一切正常。此外,在调试器下编译的EX5(比平时大1.5倍)也能正常工作。但是,一旦EA在正常模式下重新编译,它就开始出现故障。显然,我必须在服务台开一个新的应用程序。

 
A100:
有识之士能否告诉我extern和static的区别,全局寿命 是什么?

在你的案例中,你已经决定将两组在两个不同文件中独立描述的变量合并为一个表示。实际上,情况并非如此。

通过添加一个mqh文件,你在每个include文件中明确定义了单独的变量集。粗略的说,不要把变量定义放在头文件中--它们会被范围化。

 
我想在几个模块中使用一个(单一)变量,但不知道如何使用。取出了.mqh。
10 //testLib.mq5
20 #property library
30 extern int e1;
40 void f() export
50 {
60         Print( "e1=" + e1 );
70 }
10 //test.mq5
20 extern int e1;        
30 #import "testLib.ex5"
40          void f();
50 #import
60 void OnStart()
70 {
80         e1 = 10;
90         f();
100 }

输出结果:e1=0没有变化。e1=10去哪儿了?如果e1在不同的模块中是不同的,这意味着静态和外部的功能是相同的?如果不是,我的错误在哪里?
 
A100:
我想在几个模块中使用一个(单一)变量,但我不知道怎么做。输出结果:e1=0没有变化。
有一个专门针对你的情况的外部 内存类。尝试
 
stringo:
有一个专门针对你的情况的外部 内存类。尝试
请给我一个例子--或者指出我的错误--在一个模块中,我指定e1=10,我在第二个模块中调用e1,它等于零。
 
A100:
我想在几个模块中使用一个(单一)变量,但我不知道怎么做。拿走了.mqhP的输出:e1=0没有变化。e=10去哪儿了?如果e1在不同的模块中是不同的,这意味着静态和外部的功能是相同的?如果不是,我的错误在哪里?
嗯,它应该只被初始化一次。它是外部的。