[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 180

 

在处理double 类型的数字时,当你需要给一个变量分配一些值时(如0),不同的作者有不同的拼写方式。例如,a=0;或a=0.0;或a=0.0000;在正确的程序运行方面有什么区别吗?

 

如果((OrderSymbol()==Symbol())&& ((OrderMagicNumber()==44) || (OrderMagicNumber()==55)) && (ticket==0)){

OrderDelete(OrderTicket())。

int err1=GetLastError()。

Print(err1);}

这段代码已经正常工作了一段时间......现在返回一个错误ERR_OFF_QUOTES。请注意,即使手动输入票号,OrderDelete也会返回该错误。谁能澄清一下情况?谢谢你。

 
Elenn:

在处理double 类型的数字时,当你需要给一个变量分配一些值时(例如,0),不同的作者有不同的拼写方式。例如,a=0;或a=0.0;或a=0.0000;在正确的程序运行方面有什么区别吗?


不,没有任何规则。但就我个人而言,我更喜欢用点来写恒定的双倍值。

比如说。

if ( a == 1.0 )
{}

// ...

b = 3.0;

首先,快速浏览一下文本,就会发现值的类型是双数。

其次,它避免了一些错误。比较。

double a=2/3;
double b=2.0/3.0;

Print("a=",a," b=",b);
 

请帮助。不想执行该代码。

int start()
{
int pre12;
{
如果(PRICE_CLOSE>PRICE_OPEN)
pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,"",Bid-100*Point, Ask+100*Point,CLR_NONE)。
}
返回。

}

也就是说,按照原意,如果蜡烛是上升的--打开。

所有的东西都能编译。但在测试过程中什么也没有发生。也就是说,它不下任何订单。请在错误中戳一个洞......

 
NaVolne:

请帮助。代码不愿意执行。

int start()
{
int pre12;
{
if(PRICE_CLOSE>PRICE_OPEN)
pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3," ",Bid-100*Point,Ask+100*Point,CLR_NONE);
}
返回。

}

也就是说,如果蜡烛是向上的,它就会打开。

所有的东西都能编译。但在测试过程中什么也没有发生。也就是说,它不下任何订单。请把矛头指向错误吧。

哪个烛台是图表上的当前烛台? 前一天的烛台? 前一周的烛台? 如果是前一天的烛台,例如......它将看起来像这样

如果(iOpen(NULL,1440,1)<iClose(NULL,1440,1)),iOpen/iClose帮助手册清楚地描述了一切

 
NaVolne:

请帮助。不想执行该代码。

int start()
{
int pre12;
{
如果(PRICE_CLOSE>PRICE_OPEN)
pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,"",Bid-100*Point, Ask+100*Point,CLR_NONE);
}
返回。

}

即按原定计划,如果蜡烛正在上升,它就会打开。

所有的东西都能编译。但在测试过程中什么也没有发生。也就是说,它没有下任何订单。请在错误中戳一个洞......

关键是PRICE_CLOSE和PRICE_OPEN是常数,不是函数,也不是时间序列的数组。为了获得蜡烛图的开盘价和收盘价的数值,我们需要参考函数(iOpeniClose)或时间序列的数组(OpenClose)。

要了解更多,请阅读教程,例如,本 解释了预定义变量(包括你想要的时间序列数组,Open和Close)。

 
Elenn:

在处理double 类型的数字时,当你需要给一个变量赋值时(如0),不同的作者有不同的拼法。例如,a=0;或a=0.0;或a=0.0000;在正确的程序运行方面有什么区别吗?

我理解,在以下情况下

double a = 1;

编译器将 "1 "作为一个int类型的值,并进行类型转换(int到目标双倍类型)。

而在的情况下。

double a = 1.0

或(没有区别)

double a = 1.0000

编译器认为 "1. (xxxx) "是一个双倍类型的值,并且不进行类型转换。


附注:感谢PapaYozh 提供的例子。上面的想法是在它之后产生的。

我想,当编译器不引用过多的类型时,它就会更容易。或者说,在ex4中也有带有 "未皈依 "类型的线路?这是否意味着性能变慢了?尽管编译器应该对代码进行优化。

让那些更有经验的MQL4程序员来纠正我。

 
谢谢你的巨额答复。读书,挖空心思。
 
NaVolne:
谢谢你的巨额答复。读书,挖空心思。
你应该阅读教科书,而不是我们的答案!:))从地壳到地壳,自然。
 
LexAlex:

这段代码直到最近还能正常工作......现在返回错误ERR_OFF_QUOTES。请注意,即使票号是手写的,OrderDelete也会返回这个错误。谁能澄清一下情况?谢谢你。

也许是在冻结水平 上。也许是账户出了问题,经纪人因账户交易频繁而停止流动。
原因: