Diskussion zum Artikel "Benutzerdefinierte Indikatoren in MQL5 für Anfänger"

 

Neuer Artikel Benutzerdefinierte Indikatoren in MQL5 für Anfänger :

Als Anfänger erscheint einem jedes neue Thema immer kompliziert und schwer. Bekannte Themen sind uns klar und stellen kein Problem mehr dar. Dabei vergessen wir jedoch oft, dass jeder immer mal wieder komplett bei Null anfangen muss, das gilt selbst für unsere Muttersprache. Und nicht anders ist mit der MQL5 Programmiersprache, die eine große Auswahl bietet, wie man seine ganz persönlichen Handelsstrategien entwickeln kann - man kann sie ausgehend von grundlegenden Konzepten und einfachsten Beispielen erlernen. Dieser Beitrag erklärt die Interaktion eines technischen Indikators mit dem MetaTrader 5 Client-Terminal am Beispiel des einfachen, benutzerdefinierten SMA-Indikators (einfacher gleitender Mittelwert).

Autor: Nikolay Kositsin

 
Sehr interessanter Artikel für diejenigen, die..... starten. Ich hoffe, dass andere wie diese.... danke
 
Geschrieben und erzählt mit einer Eins. Nachdem Sie es gelesen haben, werden Sie etwas Eigenes schaffen wollen. Es ist nicht sehr interessant, den Code jedes Mal neu zu schreiben, und die MQL5-Autoren haben dies erkannt und eine große Bibliothek mit eingebauten Funktionen erstellt. Hier ist eine von ihnen:

int iMA(
string symbol, // symbol name
ENUM_TIMEFRAMES period, // period
int ma_period, // averaging period
int ma_shift, // Indikator horizontale Verschiebung
ENUM_MA_METHOD ma_method, // Glättungsart
ENUM_APPLIED_PRICE applied_price // Preistyp oder Griff
);
womit Sie das gleiche Ergebnis erzielen können. Aber. Wie erhält man applied_price bei Verwendung der Kurzform int OnCalculate(). Mit anderen Worten, wie kommt man bei der Initialisierung des Indikators zu den Werten auf der Registerkarte "Parameter"?

Vielen Dank!

 
Vielen Dank. sehr klare Erklärung für Neuling wie mich. warten auf den nächsten Artikel ...
 

Vielen Dank, es ist sehr klar und nützlich für Anfänger.

 
In dem Artikel " Custom Indicators in MQL5 for Newbies" heißt es: "Es ist besser, bei Indikatoren die aufsteigende Reihenfolge [statt der "umgekehrten Reihenfolge"] zu verwenden." Aber wenn das Programm immer weiter läuft, würde es irgendwann gegen unendlich tendieren, d.h. der (ganzzahlige) Puffer für die Indexnummern würde bald überlaufen, oder? Wie handhaben Sie das?
Custom Indicators in MQL5 for Newbies
  • 2010.03.03
  • Nikolay Kositsin
  • www.mql5.com
Any new subject seems complicated and hard-to-learn for a newbie. Subjects that we know seem very simple and clear to us. But we simply do not remember, that everyone has to study something from scratch, and even our native language. The same is with the MQL5 programming language that offers wide possibilities of developing one's own trading strategies - you can start learning it from basic notions and simplest examples. Interaction of a technical indicator with the MetaTrader 5 client terminal is consider in this article on the example of the simple custom indicator SMA.
 

Vielen Dank für diesen Artikel! Sehr nützliches Material für einen Anfänger und
für jemanden, der aus einer anderen Sprache umsteigt.

 

Computer übersetzt? Machen Sie es.

Im Vergleich zu MQL4 werden die Subscripts der Metrikfelder aus der Vergangenheit berechnet und sind fest, nicht dynamisch. Ich frage mich, was passiert, wenn Sie es eine Woche oder einen Monat lang laufen lassen? Befinden sich die Daten alle im Speicher? Wenn alles im Speicher ist, wird es dann nicht immer langsamer?

Wie auch immer, unter https://www.mql5.com/zh/articles/31中又说:

  1. "Die Einstellung des Index eines Elements als Sequenz ist die gleiche wie in MQL4" - Was bedeutet das? In unserem Beispiel verwenden wir den Elementindex als Zeitreihe. Mit anderen Worten, die aktuelle (noch nicht gebildete) Spalte hat immer den Index [0], die vorhergehende (bereits gebildete) hat den Index [1] und so weiter.

Achten Sie also darauf, welcher Fall tatsächlich verwendet wird. Die meisten MQL4-Beispiele verwenden ein Index-Array mit current als 0, die meisten MQL5-Beispiele verwenden ein Index-Array mit past als 0.

MQL5 初学者:EA 交易技术指标使用指南
MQL5 初学者:EA 交易技术指标使用指南
  • 2013.09.04
  • Sergey Pavlov
  • www.mql5.com
为在EA 交易中获得内置或自定义指标的值,首先应使用相应函数创建指标的处理函数。本文中的示例说明了在创建自己的程序时如何使用技术指标。在本文中说明的指标使用 MQL5 语言构建。本文的目标受众是那些在交易策略开发上不具备太多经验的读者,并旨在通过使用提供的函数库提供简单明了的指标使用方式。
 
DxdCn:

Computer übersetzt? Mach was draus.

Im Vergleich zu MQL4 werden die Subscripts der Metrikfelder aus der Vergangenheit berechnet und sind fest, nicht dynamisch. Ich frage mich, was passiert, wenn Sie es eine Woche oder einen Monat lang laufen lassen? Befinden sich die Daten alle im Speicher? Wenn alles im Speicher ist, wird es dann nicht immer langsamer?

Aber unter https://www.mql5.com/zh/articles/31中又说:

  1. "Die Einstellung des Index eines Elements als Sequenz ist die gleiche wie in MQL4" - was bedeutet das? In unserem Beispiel verwenden wir den Elementindex als Zeitreihe. Mit anderen Worten, die aktuelle (noch nicht gebildete) Spalte hat immer den Index [0], die vorhergehende (bereits gebildete) den Index [1] und so weiter.

Seien Sie also vorsichtig, welcher Fall tatsächlich verwendet wird. Die meisten MQL4-Beispiele verwenden ein Array von Indizes mit dem aktuellen als 0, und die meisten MQL5-Beispiele verwenden ein Array von Index-Subscripts mit der Vergangenheit als 0.

Die Funktion ArraySetAsSeries() ist in MQL5 zu verwenden, um dynamische Arrays (Zuweisung von Speicher zum Speichern der neuesten Werte in Richtung des größeren Index) in eine Zeitreihenform umzuwandeln, d.h. die neuesten Daten werden bei Index 0 gespeichert, die nächstneuesten Daten bei Index 1 usw., wobei die neuesten Daten für immer bei Index 0 gespeichert werden.

Lesen Sie mit der Funktion copybuffer (), von der Position des Index 0, um das Lesen rückwärts Elemente des Arrays, lesen, wie viele ihrer eigenen Definition auf der Linie.

 

Nicholas!

Können Sie mir sagen, warum, wenn ich versuche, ein Indikator-Array in einer Schleife mit der Formel Masse[ i ]= Masse[ i+1]+A; zu füllen, wobei A eine Variable ist, die Kompilierung ohne Fehler verläuft, aber wenn sie an das Fenster angehängt wird, die Meldung Array out of range (out of array size) erscheint?


 
serg7771959:

Nicholas!

Können Sie mir sagen, warum, wenn ich versuche, ein Indikator-Array in einer Schleife mit der Formel Masse[ i ]= Masse[ i+1]+A; zu füllen, wobei A eine Variable ist, die Kompilierung ohne Fehler verläuft, aber wenn ich dem Fenster beitrete, erhalte ich die Meldung array out of range (Array außerhalb des Bereichs)?


Weil die Schleife unter Berücksichtigung der Zelle, in der die letzte Eingabe erfolgt, ausgeführt werden sollte. Wenn die Größe des Arrays Mass[], sagen wir, 10 ist, die Schleife von Null bis 9 (dies ist der Index der letzten Zelle des Arrays), dann bei i==9, versuchen Sie, in die Zelle mit dem Index 9+1 zu schreiben. Das Array hat keine Zelle 10. Sie erhalten also eine Ausgabe außerhalb des Arrays.