Vollständiges MQL-Einsteiger-Handbuch - Seite 3

 
8284 wrote >>

Oh CB, Oh CB!

Du bist ein harter Brocken. Du willst mir wirklich nicht die Hand halten. Dies ist das gleiche Buch, das in Griechisch, Latein und Mars-Sprache geschrieben ist, vor dem ich geflohen bin. Zugegeben, es gibt keine Möglichkeit, einen Beruf zu erlernen, ohne die Terminologie zu beherrschen, aber.....

Du erinnerst mich an meinen Logik-Dozenten Dr. Otakpor (mit Logik meine ich unter Philosophie). Man sollte ihm besser nie eine Frage stellen, wenn man keine Ahnung hat, was man fragen wollte. CB, das Buch über Arrays ist für mich ziemlich technisch (es war mein erster Versuch, zu programmieren). Ich habe eine vage Vorstellung davon, worum es geht, aber ich verstehe es nicht ganz. Ich sehe das aber als Herausforderung an!

Ich werde nach dem kleinen "..a" suchen, das mein "ah.." in ein "aha" verwandeln wird.

Ich werde nachlesen und aufschreiben und Ihnen dann mitteilen, was ich über Arrays weiß (eigentlich sind es ihre Anwendungen, die ich am meisten wissen muss).

Die einzige Sache ist, dass dies zu einem sehr langen Beitrag führen würde. Es gibt Codestücke, in denen ich sehe, dass Arrays verwendet werden [], aber ich verstehe die Logik nicht ganz. Ich hatte gehofft, dass ich nicht so viele Fragen haben würde, wenn man es mir erklären würde (wie ein fehlendes Puzzleteil).

Sie haben mich herausgefordert, und ich denke, das ist gut für meine Entwicklung, aber ich bitte Sie, ein bisschen sanfter mit mir umzugehen, denn ich bin wissenschaftlich behindert. Mein Hintergrund sind die Künste. Wenn ich mich mit den Damen unterhalte, sagen sie, ich rede wie ein Dichter. Ich hoffe nur, dass ich nicht wie einer kodiere!!!

Im Ernst, ich kann heute nicht schlafen, aber in 24 Stunden werde ich mein Verständnis von Arrays wiedergefunden haben. Ich hoffe, Sie werden mich korrigieren, wenn ich etwas falsch gemacht habe, und mir helfen, die Anwendung von Arrays in der Programmierung zu verstehen.

Oh CB, Oh CB!

Übrigens waren meine drei besten Dozenten Dr. Otakpor, Barr Richard Idubor und Barr Bob Osamor!!!

Dr. Otakpor (unterrichtete Logik und Philosophie) holte das Beste aus seinen Studenten heraus, indem er ihre Fragen mit seinen eigenen Fragen konterte, um sie dazu zu bringen, ihre eigenen Fragen zu beantworten.

Das machte die ganze Sache interaktiv. Wenn man nicht weiterkommt, stupst er einen sanft an, gibt Hinweise und deutet an, bis man die Antwort weiß!

Wenn man keine Ahnung hatte, hmm... ein anderes Spiel!

 

Geht es bei Ihrer Frage eher darum, WARUM Sie ein Array verwenden, als WIE?

Wenn ja, dann ist ein Array aus meiner Sicht ein besserer Weg, um eine Reihe von Instanzen derselben Variablen zu speichern, wobei jede Instanz durch die Beschreibung ihrer Position gefunden werden kann.

Wenn Sie zum Beispiel eine Anwendung schreiben, die eine sehr einfache Verschlüsselung implementiert, bei der A=1, B=2, C=3 usw. ist, könnten Sie die Buchstaben des Alphabets in einem eindimensionalen (1x26) String-Array speichern und jeden Buchstaben durch Einsetzen der Zahl lokalisieren. Wenn Sie (als Ausweichbeispiel) einen EA schreiben, der die Ask- und Bid-Preise ab dem ersten Tick nach 3 Minuten nach jeder neuen Stunde speichert und diese Werte rollierend für die letzten 5 Stunden speichert, dann könnten Sie ein 2-dimensionales (2x5) Doppel-Array verwenden.


CB

 
cloudbreaker wrote >>

Geht es bei Ihrer Frage eher darum, WARUM Sie ein Array verwenden, als WIE?

Wenn ja, dann ist ein Array aus meiner Sicht ein besserer Weg, um eine Reihe von Instanzen derselben Variablen zu speichern, wobei jede Instanz durch die Beschreibung ihrer Position gefunden werden kann.

Wenn Sie zum Beispiel eine Anwendung schreiben, die eine sehr einfache Chiffre implementiert, bei der A=1, B=2, C=3 usw. ist, könnten Sie die Buchstaben des Alphabets in einem eindimensionalen (1x26) String-Array speichern und jeden Buchstaben durch Einsetzen der Zahl lokalisieren. Wenn Sie (als überspitztes Beispiel) einen EA schreiben, der die Ask- und Bid-Preise ab dem ersten Tick nach 3 Minuten nach jeder neuen Stunde speichert und diese Werte rollierend für die letzten 5 Stunden speichert, dann könnten Sie ein 2-dimensionales (2x5) Doppel-Array verwenden.

CB

Ok CB, meine Frage konzentriert sich mehr auf das WIE als auf das WARUM. Ich weiß, warum; aus Bequemlichkeit. Ich verstehe das meiste von dem, was du oben geschrieben hast, aber nicht alles!

Du hast mich schon wieder mit Technik vollgequatscht, denn um uns mitzureißen, brauchst du Babysprache und Geduld. Wir werden Sie bestimmt stolz machen, aber es wird eine Weile dauern. In Anbetracht der Tatsache, dass Ihr obiger Beitrag vor 3 Tagen für mich keinen Sinn ergeben hätte, frage ich Sie respektvoll, was Sie mit "rollierender Basis" meinen!

Ich bin mir sicher, dass ich mich schlagen werde, wenn Sie es erklären, aber jetzt bin ich verwirrt!

Wie auch immer, ich verstehe das Warum, aber nicht das Wie.

Ich arbeite an einem Aufsatz über Arrays, den ich in den nächsten 24 Stunden hier vorstellen werde, und wenn ich etwas übersehe, erwarte ich eine Korrektur. Wenn nicht, werde ich nach dem Wie und Wann von Arrays fragen!

Herzlichen Dank!

ich schätze Ihre Hilfe!

 

Ok CB, ich bin mit meinem Aufsatz fertig. Ich bin mir sicher, dass ich ein oder zwei Fehler gemacht habe, und ich bin froh, wenn ich darauf hingewiesen werde. Ich denke, dass ich in gewisser Weise etwas technisch geklungen habe (wenn ich über Initialisierung und Deklarationen und andere Dinge rede). Durch das Schreiben dieses Textes habe ich die Dinge etwas anders gesehen, aber ich habe durch das Schreiben auch etwas gelernt.

Ich werde mich über mehrdimensionale Arrays informieren.

Ich würde mich über Ihre ehrliche Kritik (und die von allen anderen) freuen.

Wenn es einen Neuling gibt, der davon profitiert hat, würde ich auch gerne von Ihnen hören.

Vielleicht schreibe ich auch einen Aufsatz über Funktionen, denn wenn ich über diese Dinge schreibe, werden sie noch tiefer in mir verwurzelt!

 

Was ist ein Array?

Ein Array zu definieren, könnte für Neulinge zu schwierig sein, daher ist es besser, es zu beschreiben. Danach kann jeder seine technische Definition nachschlagen!

Ein Array kann man sich als eine Gruppe von ähnlichen Daten vorstellen.
Ein Beispiel.
Die Bevölkerungszahl ändert sich jedes Jahr.

2004 Bevölkerung = 4
2005 Bevölkerung = 5
2006 Bevölkerung = 6
2007 Bevölkerung = 7
2008 Bevölkerung = 8
2009 Bevölkerung = 9 und so weiter.

Wenn wir in mql4 programmieren würden, um diese Daten zu verwenden, könnten wir sie als Variablen deklarieren, z. B.
int 2004Bevölkerung = 4;
int 2005Bevölkerung = 5;
int 2006Bevölkerung = 6;
int 2007pop = 7; und so weiter, bis wir 2009 oder unendlich erreichen

Das kann funktionieren, ist aber ziemlich umständlich. An dieser Stelle kommen Arrays ins Spiel.
Die gesamten Bevölkerungsdaten sind ein Array.
Um Arrays zu verwenden, müssen Sie sie zunächst deklarieren.
Sie werden mit diesen "[ ]" deklariert.
Als Erstes müssen Sie dem Programm den Typ des Arrays mitteilen, also ob es sich um eine ganze Zahl, ein Double, usw. handelt.
Dann geben Sie dem Array einen beschreibenden Namen, wir nennen es yearpop (kurz für year population)
Nach dem beschreibenden Namen kommen die Klammern [ ], und innerhalb der Klammern geben wir an, mit was wir arbeiten. In unserem Fall haben wir 6 Daten, also setzen wir innerhalb der Klammer die Zahl 6 ein, etwa so [6].
Bis jetzt sieht unsere Array-Deklaration so aus
int yearpop [6];
Wir können weitergehen, um das Array zu initialisieren, indem wir die Werte der einzelnen Jahre wie folgt anzeigen

int yearpop [6] = {4,5,6,7,8,9};

Jetzt beginnt mql4 seine Zählung bei 0 statt bei eins. Hier haben wir sechs Werte, also zählt mql4 von 0 bis 5, anstatt von 1 bis 6. Um den Wert für das erste Jahr zu erhalten, müssen Sie 0 verwenden. Für das zweite Jahr müssen Sie 1 verwenden und so weiter.

Sehen Sie sich das noch einmal an
int yearpop [6] = {4,5,6,7,8,9} ;
Die Zahlen 4,5,6,7,8,9 werden als Elemente bezeichnet.
Den Wert der Elemente erhält man durch ihre Indizes (ich hoffe, ich bringe hier nichts durcheinander).
Die Indizes beginnen bei 0 bis wie auch immer (in unserem Fall 5)

Wenn Sie also den Wert für das erste Jahr erhalten möchten, verwenden Sie dessen Index, der 0 ist, wie folgt

yearpop [0] // dies würde die Bevölkerung des ersten Jahres ergeben
yearpop [1]// Bevölkerung des zweiten Jahres.
Auf diese Weise könnten Sie viele Berechnungen bequem durchführen (denke ich)
zum Beispiel
int Überbevölkerung ;
Überbevölkerung = yearpop[0] +yearpop [3] / yearpop [2];

Wie lässt sich dies auf mql4 anwenden?
Alles, was ich bisher weiß, ist, dass in mql4 der aktuelle Balken oder Zeitrahmen oder Symbol oder Chart immer 0 oder NULL ist.
Zweitens zählt mql4 rückwärts wie folgt
543210 (von rechts nach links).
Als Beispiel, in einem beliebigen Chart (sorry, ich kann keine Grafiken erstellen)
hat der aktuelle, noch zu bildende Balken den Wert 0.
Der Balken unmittelbar links davon hat den Wert 1, der nächste Balken links davon den Wert 2 und so weiter.
Sobald der Balken, der den Wert 0 hat, vollständig ist, nimmt er den Wert 1 an, während der neu entstehende Balken den Wert 0 annimmt und alle anderen sich entsprechend verschieben.
Angenommen, wir hätten ein Array mit den höchsten Kursniveaus für die Balken (was wir tatsächlich tun), könnten wir etwas wie folgt tun
double highlevels [200];// d.h. wir haben 200 Balken // im Wert von Daten in unserem Array
Es gibt tatsächlich eine Funktion in mql4, die uns die Höchst- und Tiefstwerte aller Balken anzeigen kann.
Angenommen, Sie möchten die Differenz zwischen dem 150. und dem ersten Balken wissen.
Wenn es keine Arrays gäbe, müssten Sie mindestens 150 Balken deklarieren und möglicherweise initialisieren, was sehr zeitaufwändig wäre (CB, das ist der Grund für die Arrays).
Da wir aber Arrays haben, brauchen wir uns nur über ihre Indexnummern auf sie zu beziehen und die Berechnung durchzuführen, etwa so
double Differenz;

difference = highlevels [0] - highlevels[149] // denk daran, wir //zählen von 0
Die 0 ist der sich gerade bildende Balken. Wenn wir einen abgeschlossenen Balken für die Berechnung verwenden wollen, verwenden wir stattdessen highlevel [1].

Bis jetzt habe ich nur von eindimensionalen Arrays gesprochen. Das ist wie eine Tabelle mit nur einer Zeile.

Mql4 erlaubt bis zu 4 dimensionalen Arrays, was ich noch nicht ganz verstanden habe.

 
Hat das schon jemand gesehen?
 

Hallo Leute!

Es ist schön zu sehen, dass es Beiträge in diesem Thread gegeben hat, nachdem ich verschwunden war. Ich habe mich in den Hintergrund zurückgezogen und arbeite an einer Strategie, die von jemandem aus diesem Forum ganz hervorragend betreut wird. Daher befürchte ich realistisch gesehen, dass ich in nächster Zeit nicht viel zu diesem Thread beitragen werde, zumindest nicht so "ausführlich" wie früher :)

In der Zwischenzeit an alle Neulinge da draußen: halten Sie die Leidenschaft für den Handel und denken Sie daran, wenn Sie jemandem helfen, wird Hilfe finden Sie, wenn Sie es brauchen :)

 
Hallo,

als Neuling möchte ich fragen, ob die eingebauten Metastock-Funktionen: ref() und stochmomentum() von einigen Funktionen in Metatrader implementiert werden

thnx
 
Huckleberry:

Hey Niko,

heute ist der 4. Juli. Bist du aus der Türkei zurück?

Viele Grüße

Huckleberry


Für diejenigen, die ein Dokument durchsuchen müssen, um etwas darin zu finden, gibt es hier eine PDF-Version der gesamten Dokumentation...

Es wurde aus einer kompilierten HTML-Hilfedatei in PDF konvertiert...

 
cloudbreaker:

8284 - Gute Programmierer streben nach Modularität - d.h. nach der Schaffung wiederverwendbarer Bausteine, die wiederholt zusammengefügt werden können, so dass bei jedem neuen Programm nur ein Minimum an neuem Code geschrieben werden muss. Sie müssen verstehen, dass dieser Ansatz auch für Schulungsmaterial geeignet ist. Es gibt viele Ressourcen, um die von Ihnen erwähnten Programmiergrundlagen zu erlernen, da sie für alle Technologien gleich sind. Es ist nicht effizient, diese Lernmaterialien für jede Programmiersprache zu duplizieren.


CB

Hallo CB,

seit den obigen Ausführungen hat sich viel getan. Ich beherrsche das Schreiben von Code inzwischen viel besser, als ich es je für möglich gehalten hätte (auch wenn noch viel Feinschliff zu tun ist). Ich finde dein obiges Zitat so aufschlussreich (was ich damals nicht zu schätzen wusste).

Ich möchte mich bei Ihnen für Ihre Hilfe bedanken (ich habe auch von Ihrer Hilfe für andere gelernt) und Ihnen zu Ihrer Ernennung zum Moderator gratulieren (die Sie meiner Meinung nach sehr verdient haben)!

Herzlichen Glückwunsch auch an Gordon und BB!