Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1109

 

Warum können Sie den Code nicht freigeben?

Ich erhalte eine Fehlermeldung: DLL-Verwendung erkannt

Bitte lassen Sie mich wissen, wie ich den Code weitergeben kann.

Ich habe dies gesehen: https://www.mql5.com/en/code/7673

Und mein Code ist ähnlich.

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...
 

Hallo. Was mache ich falsch?

Es gibt eine Histogramm-Anzeige. Sie zeigt den Unterschied in der Anzahl der Ticks nach oben und unten.

Ich versuche, Indikatorwerte auf 1, 2 und 3 Balken in meinem EA zu verwenden.

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

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

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

Im Testprogramm erhalte ich einen Fehler: tickbs EURUSD,M1: array out of range in '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);
  }
//+------------------------------------------------------------------+

Ich danke Ihnen.

 
Oleg Bondarev:

Hallo. Was mache ich falsch?

Es gibt eine Histogramm-Anzeige. Sie zeigt den Unterschied in der Anzahl der Ticks nach oben und unten.

Ich versuche, Indikatorwerte auf 1, 2 und 3 Balken in meinem EA zu verwenden.


Im Testprogramm erhalte ich einen Fehler: tickbs EURUSD,M1: array out of range in 'tickbs.mq4' (26,19)

Ich danke Ihnen.

Puffer werden von Grund auf indiziert.
 
Igor Makanu:

wieder und wieder.... Eine Klasse ist in erster Linie ein Datentyp, wie int, double...

Sie möchten ein Array mit diesem Datentyp? - ein Array deklarieren, wenn das Array dynamisch ist, dann die Größe ändern, dann JEDES ELEMENT mit den notwendigen Daten initialisieren - Sie brauchen Zeiger, dann initialisieren Sie sie mit Zeigern auf die Klasse, Sie brauchen Klasseninstanzen, dann wird jedes Element des Arrays kein Zeiger sein, sondern das Objekt selbst

das ist das Wesen von OOP, jede Klasse ist zunächst einmal ein Benutzerdatentyp.... Ich weiß nicht, wie viel darüber zu sagen, aber die Methodik ist die gleiche wie mit einem regulären Datentyp, aber was Sie innerhalb der Klasse schreiben werden, ist eine persönliche Angelegenheit, aber die Initialisierung einer neuen Instanz wird immer mit einem Konstruktor beginnen, und welcher Konstruktor - standardmäßig, mit Parametern oder ohne Parameter - Sie können wählen, wie das Objekt zu initialisieren...... ugh, aber immer noch Bücher lesen, gibt es keine Möglichkeit, es auf diese Weise zu tun

Bitte empfehlen Sie, was über OOP mit Beispielen für MT4 zu lesen. Oder ganz allgemein, mit Beispielen. Die Syntax und Logik der Sprache ist schwer zu verstehen, und das Sprachhandbuch ist nicht immer eindeutig.

 
Valeriy Yastremskiy:

Bitte empfehlen Sie mir, was ich über OOP mit Beispielen für MT4 lesen sollte. Oder mit Beispielen im Allgemeinen. Die Syntax und Logik der Sprache ist schwer zu verstehen, und das Sprachhandbuch ist nicht immer ganz klar.

Gehen Sie zum Abschnitt Artikel und stöbern Sie dort - es gibt eine Menge über OOP, auch für Anfänger.

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

Bitte gehen Sie zum Abschnitt Artikel und stöbern Sie dort - es gibt viele Artikel über OOP, auch für Anfänger.

Ich danke Ihnen. Das ist sehr hilfreich. Jemand könnte es brauchen.

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

Mir hat es auch gefallen)))

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


Außerdem eine Frage: Wenn Sie auf die Artikel klicken, erscheinen 18 Seiten mit Artikeln und dem Titel:

Artikel zur Programmierung in MQL4 und MQL5

Wenn ich auf die zweite Seite klicke, verschwindet MQL4. Wenn ich auf MT4 drücke, werden 6 Seiten angezeigt. Und sie sind nicht in der Vorauswahl.


Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей
Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей
  • www.mql5.com
В статье рассказывается о том, как объектно-ориентированный подход может быть использован для создания мультитаймфреймовых и мультивалютных индикаторов для MetaTrader 5. Главной целью является построение универсальной панели, которая может быть использована для отображения различных типов данных (цены, их изменения, значения индикаторов...
 
Alexey Viktorov:
Puffer werden von Grund auf indiziert.

Ich danke Ihnen.

 
Bitte beantwortet jemand meine Anfrage im Forum: 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:

beim Anklicken der zweiten Seite von MQL4 verschwindet. Wenn Sie auf MT4 klicken, erscheinen 6 Seiten. Und sie sind nicht in der Vorauswahl.

MQL4 und MQL5 sind zu 99% identisch (ohne SQlITE, OpenCL, DirectX), so dass Sie sich frei fühlen können, um Artikel in MQL5 zu lesen, aber in Anbetracht der Tatsache, dass in den Terminals 4 und 5 die Arbeit mit Aufträgen ist anders und es gibt Nuancen der Arbeit mit Zeitreihen

 
Igor Makanu:

Da MQL4 und MQL5 zu 99% identisch sind (ohne SQlITE, OpenCL und DirectX), können Sie die Artikel über MQL5 lesen, wobei zu berücksichtigen ist, dass in den Terminals 4 und 5 die Arbeit mit Aufträgen anders ist und es Nuancen bei der Arbeit mit Zeitreihen gibt.

Dies ist nicht der Fall, es gibt keine Artikel über mql4 in der ursprünglichen Auswahl. Dies ist irreführend. Die gleiche Logik gilt übrigens auch für kodobase. Aber die Kopfzeilen ändern sich dort einfach nicht. Ich musste die Bauchmethode anwenden, um es herauszufinden). Danke, lasst uns lesen)))

Grund der Beschwerde: