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

 

你为什么不能分享代码?

我得到一个错误:检测到DLL使用情况

请让我知道我如何才能分享代码。

我看到这个: https://www.mql5.com/en/code/7673

而我的代码也是类似的。

Period Converter Optimized
Period Converter Optimized
  • www.mql5.com
Lastest Version: 1.4 2005.12.24  1.4      faster to detect if data changed by removing float point  operations, added support to output CSV file in real time.                             OutputCSVFile = 0 means no CSV.                             OutputCSVFile = 1 means CSV + HST.                             OutputCSVFile = 2 CSV only, no HST...
 

你好。我做错了什么?

有一个直方图指标。它显示了向上和向下的刻度数的差异。

我正试图在我的EA中使用1、2、3条的指标值。

double tbs1=iCustom(Symbol(),0,"tickbs",1,1);

double tbs2=iCustom(Symbol(),0,"tickbs",1,2);

double tbs3=iCustom(Symbol(),0,"tickbs",1,3);

在测试器中,我得到一个错误:tickbs EURUSD,M1:'tickbs.mq4'中的数组超出了范围(26,19)。

#property copyright "tickbs"
#property link      ""
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers    1
#property indicator_color1     clrGreen
//--- input parameter
extern color   ClrUpUp        = clrGreen;
extern int     HistWidth      = 2;
//--- buffers
double BufB[];
double dOldPrice, dNewPrice;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   IndicatorBuffers(1);
   SetIndexBuffer(0,BufB);  
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,HistWidth,ClrUpUp);       
   SetIndexLabel(0,"Hs");
   
   dOldPrice=Close[0];
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   dNewPrice=Close[0];
   if (dNewPrice>dOldPrice){
      BufB[0]=BufB[0]+1;
      dOldPrice=dNewPrice;
   }
   else 
      if (dNewPrice<dOldPrice){
         BufB[0]=BufB[0]-1;
         dOldPrice=dNewPrice;
      }
   return(rates_total);
  }
//+------------------------------------------------------------------+

谢谢你。

 
Oleg Bondarev:

你好。我做错了什么?

有一个直方图指标。它显示了向上和向下的刻度数的差异。

我正试图在我的EA中使用1、2、3条的指标值。


在测试器中,我得到一个错误:tickbs EURUSD,M1:'tickbs.mq4'中的数组超出了范围(26,19)。

谢谢你。

缓冲区是从头开始索引的。
 
Igor Makanu:

再三....一个类首先是一个数据类型,如int、double......。

你想要一个该类型的数据数组?-声明一个数组,如果数组是动态的,那么就调整它的大小,然后用必要的数据初始化每个元素--你需要指针,那么就用指向类的指针初始化它们,你需要类的实例,那么数组的每个元素将不是一个指针,而是对象本身

这就是OOP的精髓,任何一个类首先都是一个用户数据类型....。我不知道该怎么说,但是方法和普通的数据类型是一样的,但是你在类里面写什么是个人的事情,但是新实例的初始化总是从构造函数开始的,什么构造函数--默认的,带参数的或者不带参数的--你可以选择如何初始化对象......,但是还是要看书,没有办法用这种方式做

请告诉我关于OOP的读物和MT4的例子。或在一般情况下,举例说明。语言的语法和逻辑很难理解,而且语言手册也不一定能清楚地说明问题。

 
Valeriy Yastremskiy:

请告知关于OOP的阅读内容,并附上MT4的例子。或者用一般的例子。语言的语法和逻辑很难掌握,而且语言手册也不一定完全清楚。

去这里的文章 部分浏览一下--这里有很多关于OOP的内容,包括为初学者准备的。

Статьи по MQL5
Статьи по MQL5
  • www.mql5.com
Статьи по программированию на языке MQL5
 
Artyom Trishkin:

请到这里的文章 部分浏览一下,这里有很多关于OOP的文章,包括那些为初学者准备的。

谢谢你。这很有帮助。有人可能需要它。

PLO

https://www.mql5.com/ru/articles/357

https://www.mql5.com/ru/articles/703

https://www.mql5.com/ru/articles/116

https://www.mql5.com/ru/articles/70

https://www.mql5.com/ru/articles/351

GA

https://www.mql5.com/ru/articles/55

MQL4

https://www.mql5.com/ru/articles/1483

我也喜欢它))))

https://www.mql5.com/ru/articles/1499


还有一个问题,当你点击文章时,会出现18页的文章和标题。

关于MQL4和MQL5编程的文章

当我点击第二页时,MQL4消失了。当我按下MT4的时候,会出现6个页面。而他们并不在最初的选择中。


Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей
Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей
  • www.mql5.com
В статье рассказывается о том, как объектно-ориентированный подход может быть использован для создания мультитаймфреймовых и мультивалютных индикаторов для MetaTrader 5. Главной целью является построение универсальной панели, которая может быть использована для отображения различных типов данных (цены, их изменения, значения индикаторов...
 
Alexey Viktorov:
缓冲区是从头开始索引的。

谢谢你。

 
请有人在论坛上回答我的疑问:https://www.mql5.com/ru/forum/336385
Как я могу скопировать symbols.raw и symgroups.raw в новый файл с дополнительной группой и символом в соответствующей группе MQL4/MT4?
Как я могу скопировать symbols.raw и symgroups.raw в новый файл с дополнительной группой и символом в соответствующей группе MQL4/MT4?
  • 2020.04.01
  • www.mql5.com
Я хочу знать, как я могу создать новый файл, скажем symbols_extra.raw и symgroups_extra.raw на MQL4, используя существующие symbols.raw и symgroups...
 
Valeriy Yastremskiy:

当点击MQL4的第二页时,就会消失。当你点击MT4时,会出现6个页面。而且他们不在最初的选择中。

MQL4和MQL5有99%是相同的(没有SQlITE、OpenCL、DirectX),所以你可以随意阅读MQL5的文章,但考虑到在终端4和5中,与订单的工作是不同的,而且与时间序列的工作也有细微差别。

 
Igor Makanu:

由于MQL4和MQL5有99%的相同之处(没有SQlITE、OpenCL和DirectX),你可以阅读关于MQL5的文章,但要考虑到在终端4和5中,订单的工作是不同的,在处理时间序列方面有细微的差别。

事实并非如此,在最初的选择中没有关于mql4的文章。这是一种误导。顺便说一下,kodobase中也有同样的逻辑。但是标题在那里就是没有变化。我不得不用肠道法来计算)。谢谢你,让我们读一读)))。