新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 835

 
Maxim Kuznetsov:

甚至在第一种情况下,编译器会强调 "必须检查OrderSelect的结果";-)

如果你为第一项改变,如果(!OrderSelect(...))继续;那么选项是相同的。

在第一个案例中,代码在视觉上是线性的,在第二个案例中,它看起来像一个楼梯。我更喜欢第一个,它更容易阅读,而且一般来说,深层逻辑标签的出现{{{{ }}}},暗示着是时候改变一些东西了 :-)

谢谢。用阶梯式写法是否影响代码速度?对我来说,更容易理解交错式写作。

 
novichok2018:

谢谢你。阶梯式记录是否影响代码执行的速度?对我来说,理解阶梯式写作比较容易。

首先影响执行 速度的是算法。而你在代码中如何表示它其实并不重要。

这不是你所想的。

你写代码是为了以后能用它工作。所以你无论如何都要写,不要用现实中没有遇到的问题来困扰你的头脑。

好吧,你没有任何速度问题,你需要用编码的技巧和特殊性来避免。简单地保证,你不知道。

当(这不太可能)它们出现时,那么你就会优化性能。

 
Maxim Kuznetsov:

执行的速度主要受算法的影响。而你如何在代码中表示它,并不那么重要。

这不是你想的那样。

你写代码是为了以后自己能用它工作。所以你无论如何都要写,不要用现实中没有遇到的问题来困扰你的头脑。

好吧,你没有任何速度问题,你需要用编码的技巧和特殊性来避免。只是保证,你不知道。

当(这不太可能发生)你会优化你的代码。

非常感谢您!非常可以理解。

 
是否有可能在旧的mt4程序文件夹中工作,仍然在XP vindos那里和安装,如果是这样,如何。
 
Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам
  • 2019.05.06
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Alexander Layzerevich:
请帮助我解决这个问题:https://www.mql5.com/ru/forum/160683/page833#comment_11585085

我怀疑这对你有帮助,但也就这样了。

- 你从MT5中提取了一些代码,并试图将其 "栓 "在MT4上,这不是MT4中的指标调用方式。

- 你没有正确声明函数头

- MT4没有内置的CopyBuffer()函数

这在一般情况下是行不通的,寻找其他选项来增加一些代码部分--MQL4和MQL5的语法有95%是相似的,但你不能在平台之间肆无忌惮地复制代码部分。

 
Igor Makanu:

我怀疑这对你有帮助,但也就这样了。

- 你从MT5中提取了一些代码,并试图将其 "栓 "在MT4上,这不是MT4中的指标调用方式。

- 你没有正确声明函数头

- MT4没有内置的CopyBuffer()函数

MQL4和MQL5的语法有95%是相似的,但你不能在平台之间肆意复制代码部分。

对不起,我忘了说明MT5的代码

它只是没有调用 Deviation(int kanal)函数

我想问的是,如何正确地做到这一点?

 
Igor Makanu:

执行一对一的例子,来自文章https://www.mql5.com/ru/articles/18

作为一种选择,你已经为64位的dll编译了一个项目,MT4终端是32位的,你需要为32位的.dll配置和编译项目。

我也在那里提问,我在那里尝试了建议的例子,事实上我已经贴出了有实验的图片。嗯,是的,这些版本有一些东西,通常这一切都应该在帮助中,如何连接什么细微差别。有人给了我一些带代码的链接,我打开了这些课,又关闭了它们,在一般的信息嘲弄中,没有你想要的和做的。好吧,对不起,我将在20年的编程经验后回到这个话题。我怎么知道是64的编译,我怎么知道?

 
Seric29:

我怎么知道该dll是为64版本编译的?

Visual Studio 中查看项目属性,应该有一个编译dll的平台选项 - MT4需要32位代码。

PS:谷歌找到VS的设置

 
Igor Makanu:

我怀疑这对你有帮助,但也就这样了。

- 你从MT5中提取了一些代码,并试图将其 "栓 "在MT4上,这不是MT4中的指标调用方式。

- 你没有正确声明函数头

- MT4没有内置的CopyBuffer()函数

MQL4和MQL5的语法有95%是相似的,但你不能在平台之间肆意复制代码部分。

你有以下代码片段吗?

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

任何关于MQL4初学者的问题,帮助和讨论算法和代码

Alexander Layzerevich, 2019.05.06 17:21

我试图用 这个函数 在MT5中 接收指标数据

//************************************************************************************************/
double Envelopes(string symb, ENUM_TIMEFRAMES TF_1, int period, int method, int shift, int price,double Deviation(ENUM_TIMEFRAMES TF_2, int kanal), int buff, int index)
{
  double buf[1];
  int handle=iEnvelopes(Symbol(), TF_1, period, method, shift, price, Deviation(TF_2, kanal), buff);
   if(handle<0)
   {
    Print("Failed to create handle ATR, Error: ",GetLastError());
    return(WRONG_VALUE);
   } else
   {
    if(CopyBuffer(handle,0,index,1,buf)<0)
    {
     Print("Failed to copy data from the indicator ATR, Error: ",GetLastError());
     return(WRONG_VALUE);
    }
   }
   return(buf[0]);
}
//************************************************************************************************/

我收到错误。


请告知如何纠正MT5的 代码

高亮显示与函数声明没有区别。事实证明,在函数的输入参数中声明了一个函数。
原因: