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

 
Alexander Layzerevich:

纠正了MT5向指标发送数据的代码。

但错误是一样的。

不要再偷看用mql4写的垃圾代码了,你会更快得到它。

 
Igor Makanu:

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

PS:谷歌找到VS的设置

我试图寻找这样的设置,搜索引擎给出的答案是,像32到64的反面,在一般情况下,不明白如何进行这种设置。如果我在这里理解一点,我有它默认的32是

而我发现一些菜单上有一个设置。

所以我不知道这里是否默认为32。

 

你能告诉我为什么同样的代码在MT4中有效,而在MT5中却不行?在MT5中变量strNum总是=1,但在MT4中counter ++的工作原理是,strNum=文件中的行数。

int strNum;
void OnStart()
  {
 FileNum();
 Alert1();
  } 

  void FileNum()
{
      int handle=FileOpen("File.csv",FILE_CSV|FILE_READ,';');
      strNum=0; 
      while(!FileIsEnding(handle))
{
      FileReadString(handle);
      strNum++;
      if(FileIsEnding(handle)==true)
      break;
}
      FileClose(handle);
}

      void Alert1()
{
      Alert (strNum);
}
 
Seric29:

试图搜索这样的设置,搜索引擎给出的答案是喜欢从32到64的反面,一般来说,不明白如何进行这样的设置。如果我在这里理解一点,我有它的默认值是32

而我发现一些菜单上有一个设置。

所以我不知道这里是否默认为32。

对于图书馆,还有/MT或/MD的问题,我经常把它们搞混 :-)这也是在用户友好工作室的荒野中的某个地方

给我看整个项目,包括你在那里用C++和Mql所做的一切。我不认为这是一个激烈的版权 :-)
,我们会告诉你什么是错的,否则你会用心灵感应让大家紧张很久。


 
Maxim Kuznetsov:

还有/MT或/MD库的问题,我经常把它们弄混。)这也是在用户友好工作室的荒野中的某个地方

给我看看整个项目,包括你在C++和Mql中所做的一切。我不认为这是最糟糕的版权 :-)
我们会通过完整的代码告诉你什么是错的,否则你会用心灵感应让大家紧张很久。


以.def为扩展名的文件

以.cpp为扩展名的文件

到mql4中,我只是从终端图书馆的文件夹中拖出一个文件

#import "dllmt42.dll"
 int _add(int a=0, int b=0);
#import

然后愚蠢地调用这个函数,它只是返回18,不做其他事情,这就像一个实验,看看它是否有效。

 
Seric29:

以.def为扩展名的文件

以.cpp为扩展名的文件

我只是从终端文件夹Libraries复制了文件到mql4

然后我只是调用这个函数,它返回18,不做其他事情,这就像一个实验,看看它是否有效。

为什么要加一个破折号,去掉它。

所有文件中的所有标识符都应该是严格相同的,没有花哨的年龄 :-)

 
Alexey Viktorov:

不要再偷看用mql4写的垃圾代码了,你会更快得到它。

所有,正如你所说的,"垃圾代码 "是根据基本的语言帮助写的。https://www.mql5.com/ru/docs/basis/function/call

它还说:"一个函数不能在另一个函数内声明。"

这正是它所说的。这就是为什么它不起作用。

这就是为什么我想从专家那里了解如何调用这个函数(Deviation(Kanal))。当它依赖于函数的调用时(双 信封(...))

更新:该问题已得到部分解决。
 
Maxim Kuznetsov:

为什么要在添加处加一条__破折号线? 把它去掉。

所有文件中的所有标识符都应该是严格相同的,不要对年龄有任何幻想 :-)

好吧,大家都按照说明这么做了,我也这么做了,现在我把它拆下来看看。总而言之,它起作用了,它返回了18。 谢谢你,我会继续试验的。

 
Alexander Layzerevich:

所有,如你所说,"垃圾代码 "是根据基本的语言帮助写的。https://www.mql5.com/ru/docs/basis/function/call

它还说:"一个函数不能在另一个函数内声明。"

这正是它所说的。这就是为什么它不起作用。

这就是为什么我想从专家那里了解如何调用这个函数(Deviation(Kanal))。当它取决于指标函数的调用时(双 信封(...))

更新:该问题已得到部分解决。

你已经调用了偏差(Kanal)函数并将其返回的值传递给了包络(........) 函数。

而在Envelopes(........) 函数本身中,你声明了最后一个参数,它将采用这个值


是这样的

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

向大家问好。生活中的好运和工作中的利润。

我呼吁帮助(出乎意料,呵呵:))。

...................................................

而这正是我被卡住的地方:)。用什么来代替GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic)。The_failure_level(Symbol(),OP_BUY,Magic)应该被使用,但如何得到它呢?


如果你能帮助我,我将非常高兴。
Z.U.如果你给建议,我求你了,记住我还很嫩,不要懒得给我多一点细节,你知道,比如如果。FOREST THERE,别忘了指出方向<------ ||------>。

谢谢你的关注 :)。

早上好,下午,晚上,晚上(下划线)。

我无意冒犯,但我要问你一个问题。我一直在思考我的混乱....我应该需要最后的OP_BUY && OP_SELL,他的Magik || ticket || open_price.....我说的对吗?如果我找到了最后一个订单,理论上我可以计算出从它到当前ask/bid的距离。在这里下载了几个 "平均数",我认为应该有类似的东西,如果不是完全相同的话,.....,然后才意识到我找到了我要找的东西.....。:)

如果没有人介意的话:),我将继续希望得到您的建议,至少参考一下我需要的信息来源(如果不是科瓦廖夫的 书,我3天前就开始看了)。