[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 180 1...173174175176177178179180181182183184185186187...652 新评论 [删除] 2011.09.16 01:43 #1791 在处理double 类型的数字时,当你需要给一个变量分配一些值时(如0),不同的作者有不同的拼写方式。例如,a=0;或a=0.0;或a=0.0000;在正确的程序运行方面有什么区别吗? Alexey Morozov 2011.09.16 03:06 #1792 如果((OrderSymbol()==Symbol())&& ((OrderMagicNumber()==44) || (OrderMagicNumber()==55)) && (ticket==0)){ OrderDelete(OrderTicket())。 int err1=GetLastError()。 Print(err1);} 这段代码已经正常工作了一段时间......现在返回一个错误ERR_OFF_QUOTES。请注意,即使手动输入票号,OrderDelete也会返回该错误。谁能澄清一下情况?谢谢你。 PapaYozh 2011.09.16 04:50 #1793 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); [删除] 2011.09.16 06:38 #1794 请帮助。不想执行该代码。 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)。 } 返回。 } 也就是说,按照原意,如果蜡烛是上升的--打开。 所有的东西都能编译。但在测试过程中什么也没有发生。也就是说,它不下任何订单。请在错误中戳一个洞...... Alexey Morozov 2011.09.16 06:51 #1795 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帮助手册清楚地描述了一切 Maxim Zaguzov 2011.09.16 06:53 #1796 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是常数,不是函数,也不是时间序列的数组。为了获得蜡烛图的开盘价和收盘价的数值,我们需要参考函数(iOpen 和iClose)或时间序列的数组(Open 和Close)。 要了解更多,请阅读教程,例如,本节 解释了预定义变量(包括你想要的时间序列数组,Open和Close)。 Maxim Zaguzov 2011.09.16 07:09 #1797 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程序员来纠正我。 [删除] 2011.09.16 07:34 #1798 谢谢你的巨额答复。读书,挖空心思。 Maxim Zaguzov 2011.09.16 07:40 #1799 NaVolne: 谢谢你的巨额答复。读书,挖空心思。 你应该阅读教科书,而不是我们的答案!:))从地壳到地壳,自然。 Всеволод 2011.09.16 08:22 #1800 LexAlex:这段代码直到最近还能正常工作......现在返回错误ERR_OFF_QUOTES。请注意,即使票号是手写的,OrderDelete也会返回这个错误。谁能澄清一下情况?谢谢你。 也许是在冻结水平 上。也许是账户出了问题,经纪人因账户交易频繁而停止流动。 1...173174175176177178179180181182183184185186187...652 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在处理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也会返回该错误。谁能澄清一下情况?谢谢你。
在处理double 类型的数字时,当你需要给一个变量分配一些值时(例如,0),不同的作者有不同的拼写方式。例如,a=0;或a=0.0;或a=0.0000;在正确的程序运行方面有什么区别吗?
不,没有任何规则。但就我个人而言,我更喜欢用点来写恒定的双倍值。
比如说。
首先,快速浏览一下文本,就会发现值的类型是双数。
其次,它避免了一些错误。比较。
请帮助。不想执行该代码。
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)。
}
返回。
}
也就是说,按照原意,如果蜡烛是上升的--打开。
所有的东西都能编译。但在测试过程中什么也没有发生。也就是说,它不下任何订单。请在错误中戳一个洞......
请帮助。代码不愿意执行。
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帮助手册清楚地描述了一切
请帮助。不想执行该代码。
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是常数,不是函数,也不是时间序列的数组。为了获得蜡烛图的开盘价和收盘价的数值,我们需要参考函数(iOpen 和iClose)或时间序列的数组(Open 和Close)。
要了解更多,请阅读教程,例如,本节 解释了预定义变量(包括你想要的时间序列数组,Open和Close)。
在处理double 类型的数字时,当你需要给一个变量赋值时(如0),不同的作者有不同的拼法。例如,a=0;或a=0.0;或a=0.0000;在正确的程序运行方面有什么区别吗?
我理解,在以下情况下
编译器将 "1 "作为一个int类型的值,并进行类型转换(int到目标双倍类型)。
而在的情况下。
或(没有区别)
编译器认为 "1. (xxxx) "是一个双倍类型的值,并且不进行类型转换。
附注:感谢PapaYozh 提供的例子。上面的想法是在它之后产生的。
我想,当编译器不引用过多的类型时,它就会更容易。或者说,在ex4中也有带有 "未皈依 "类型的线路?这是否意味着性能变慢了?尽管编译器应该对代码进行优化。
让那些更有经验的MQL4程序员来纠正我。
谢谢你的巨额答复。读书,挖空心思。
这段代码直到最近还能正常工作......现在返回错误ERR_OFF_QUOTES。请注意,即使票号是手写的,OrderDelete也会返回这个错误。谁能澄清一下情况?谢谢你。