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

 
Seric29:

问题是,我把模板应用于所有接受数组的函数,模板函数的导出和导入是不可能的,它将不得不为每个类型的函数进行重复,同样的情况是维度,Mql不想白给它们,又不得不按维度重复它们,这变成了一种超载,但添加额外的参数是不必要的,尽管如此,这也是不必要的代码,至于增加函数参数,Mql也不会只给数据,将不得不重复函数E所以我认为这不值得,我想过写自己的语言,但我又写了15%的机器人,并花了一年多的时间来校准一切,使其尽可能的通用,并提供快速的性能,并花了3年时间来计算。我只是没有足够的生命来写我自己的语言。它是这样的。

拥有自己的语言是很了不起的!

但也许你应该先学习MQL。

然后你会看到,即使现在它的功能也不小。

但如果你学会了C++,你在编程方面就不会有任何问题。

是的,我看了一下你的C++代码,发现你懂得很少。

 
Koldun Zloy:

是的,你的C++代码,我看了一下,发现你懂得很少。

最好是在4岁的时候学习编程,我已经26岁了,成为伟大程序员的概率很低,记得像埃隆-马斯克等人9岁就能编程,我至少会完成主要任务。

 

有一个函数

ArrayCopy

但它不允许你复制一个特定的列。那么有一个函数

ArrayInitialize

又是同样的废话,那么还有一个函数

ArrayFill

但在这里,你也不能指定一个列。如果你必须自己写,这些功能有什么用呢?

 
Seric29:

最好是从4岁开始学习如何编程,而我已经26岁了。

哦,你抽的是烈性的东西!)))))

你不能从4岁开始教计算机编程,因为他想通过把玩具扔到地上来玩,此外,孩子不被教如何阅读,他只能数到10(神童可以数到100!))。)

你在26岁的时候什么都学不会吗? 在你写问题的三个月里,如果你开始阅读,就会解决这个问题,MQL论坛是少数几个可以在1-2小时内得到答案的论坛之一,这真的很不错!你的问题是什么?嗯,这是你的生活方式。在这里,我为你的问题找到了一个,它不能再好了。

https://www.mql5.com/ru/forum/3457/page4494#comment_12804114

 
Seric29:

最好从4岁开始学习编程,我已经26岁了,成为一个很酷的程序员的概率很低,记得像埃隆-马斯克等人9岁就能编程,我至少会完成基本任务。

我没有在4岁开始,甚至没有在9岁开始。

26岁开始成为一个很酷的程序员的概率非常高。

 

伙计们,我有一个问题,但不要笑,为什么这个代码不工作?

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#define  Mkarr(q,w,e,r) switch(ArrayDimension(q)){case 3:q[w][e][r]=15;break;case 2:q[w][e]=15;break;}
int Mas[7],//#else
    Mas2[2][2]={{3,8},{4,17}},
    Mas22[2][2]={{31,128},{94,107}},
    Mas3[2][2][2];

int OnInit()
  {int Perem=ArrayDimension(Mas); 
   Mkarr(Mas2,0,0,0);
   return(INIT_SUCCEEDED);
  }

对数组的访问 是错误的,它是如何知道所有的变种情况都没有被检查,并尝试如果没有被检查也会抛出一个错误? 是否可以在编译时跳过这些代码,或者它没有帮助?

 
Seric29:

伙计们,我有一个问题,但不要笑,为什么这个代码不工作?

对数组的访问 是错误的,它是如何知道所有的变体情况都没有被检查到,并尝试了一下如果什么都没有被检查到也会抛出一个错误? 是否可以在编译时跳过这段代码,或者它没有帮助?

这一点都不好笑,它让我想哭。

如果你不知道如何使用它们,为什么还要使用宏呢? 解开宏(只是复制他妈的!),你应该看到错误在哪里。

罪状: ..... "老鼠哭了又哭,却一直啃着仙人掌" ((((

 
Igor Makanu:

这并不好笑,它让我想哭。

如果你不知道如何使用宏,为什么要使用宏呢? 解开宏的包装(只需复制他妈的!),你应该看到错误在哪里。

SZY: ..... "老鼠哭了又哭,却一直啃着仙人掌" ((((

我不太明白,宏可以接受任何项目,当在编译器中处理它时,我得到一个保护,即同一个项目不能同时是这个和那个。有可能实施这样的想法吗?

 
Seric29:

我不太了解,宏接受任何元素,在编译器中处理它时,有一个保护措施,即同一个元素不能同时是那些和那些,我有这样的想法。这样的想法可以实施吗?

再来一次...把你在ME中的宏置换(或至少在记事本中!)"插入",而不是使用它,用你的数字替换括号中的所有参数

我甚至不知道如何更容易地解释它...如果你对MQL没有足够的参考,请阅读Wiki。

宏命令

C预处理程序

 
Igor Makanu:

再来一次...把你在ME中的宏替换(甚至是在记事本中!)"插入 "它而不是使用它,用你的数字替换括号中的所有参数

为你替换,这里是没有宏的代码

//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//#define Mkarr(q,w,e,r) switch(ArrayDimension(q)){case 3:q[w][e][r]=15;break;case 2:q[w][e]=15;break;}
int Mas[7],//#else
Mas2[2][2]={{3,8},{4,17}},
Mas22[2][2]={{31,128},{94,107}},
Mas3[2][2][2];
int OnInit()
  {
   int Perem=ArrayDimension(Mas);
//   Mkarr(Mas2,0,0,0);
   switch(ArrayDimension(Mas2))
     {
      case 3:Mas2[0][0][0]=15;
      break;
      case 2:Mas2[0][0]=15;
      break;
     }
   return(INIT_SUCCEEDED);
  }

我不知道你为什么要花这么多时间来处理多维数组,如果你不能理解C++/MQL的语法和基础知识,你已经用一个维度定义了数组,你试图用另一个维度来使用它们,当然我可能是错的,但这个技巧即使在Python中也不应该工作,我认为

原因: