Beta-Version des Online-Buchs über MQL4-Programmierung - von Sergey Kovalev (SK.) - Seite 9
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich habe diesen großartigen Artikel über komplexe Auftragsbuchungen von SK 'Order Bookings in a Large Program' gefunden.
Ehrlich gesagt, frage ich mich, ob das Ganze ein Betrug ist.
Aber im Gegensatz zu der Figur, die in dem Artikel über den Gral beschrieben wird, denke ich nicht wie er: "Nur ich!". Ich glaube, hier stimmt etwas nicht, oder es ist im Moment einfach nur Glück. Wenn man sich die Ergebnisse der Meisterschaften anschaut, kann man allerdings feststellen, dass in drei Monaten ein viel besseres Ergebnis erzielt wurde, was im Grunde genommen bedeutet, dass nichts unmöglich ist. Und doch muss man sich fragen, wer eine solche "rasante" Entwicklung in der realen Welt vorantreiben wird?
Und doch fragt man sich, wer eine solche "rasante" Entwicklung in der realen Welt zulassen wird?
Es ist eine einfache Frage. Und die Antwort liegt auf der Hand: derjenige, der ehrlich arbeitet (Makler werden hier nicht behandelt).
Die schwierigere Frage ist, ob der Expert Advisor stabile, hohe Ergebnisse liefert? Oder ist es nur eine passende Geschichte oder ein Glücksfall?
Die schwierigere Frage ist, ob der Berater tatsächlich konsequent handelt,
hohe Ergebnisse? Oder passt es nur zur Geschichte oder ist es ein Zufall?
Ich habe nur schon viel bescheidenere Ergebnisse erzielt. Und im Allgemeinen habe ich während des Studiums Ihres Buches (fast einen Monat lang) und der ganzen Sprache im Allgemeinen viel über den Handel gelernt, was ich nicht wusste und nicht vermutet habe, während ich 2 Jahre lang Forex studierte. Ich überlege gerade, wie ich etwas verdienen könnte, ohne so viel zu wissen)) Ich denke, dass ich auch jetzt noch so viel verdienen könnte, ohne irgendetwas zu wissen. Es ist nur so, dass ich beim ersten Mal, als ich versucht habe, mit der Demo zu handeln, das Gefühl hatte, dass ich nicht mehr als 300 Dollar pro Monat verdienen könnte. Was auch nicht schlecht ist, vor allem, wenn man meine Allergie gegen Chefs aller Art berücksichtigt:) Ich habe meinen ersten Expert Advisor in meinem Blog geschrieben, und ich habe noch nie davon gehört.
Ich schrieb meinen ersten Berater innerhalb einer Woche, nachdem ich das Buch zum ersten Mal gelesen hatte. Aber ich habe es nicht geschrieben, ich habe es kopiert und nur den Block mit den Handelskriterien ersetzt, und der Rest wurde aus dem Beispiel des EA mit MA übernommen. Aber als ich es schrieb, wollte ich nur wissen, was wäre, wenn ich es so machen würde. Ich wollte einfach nur die Möglichkeiten des Testers nutzen, ohne lange manuell nachzuprüfen. Ich hatte keine Ideen wie in dem Artikel über den Gral. Ich bin in dieser Hinsicht eher bodenständig:) Ich bin mit dem Ergebnis zufrieden, da ich meine Einlage vollständig verloren habe (eine Variante weniger). Die Idee war so einfach, dass es eine Sünde war, sie nicht zu prüfen. Aber die letzte Strategie ist (für mich) schwieriger mit MQL4-Tools zu beschreiben, daher muss ich meine eigenen Hände benutzen. Die Ergebnisse im manuellen Modus erfordern jedoch eine Weiterentwicklung des Expert Advisors. Also versuche ich langsam, aber sicher, es zu schreiben.
Ich hatte vorher nur viel bescheidenere Ergebnisse. Und im Allgemeinen, während ich Ihr Buch (fast einen Monat) und die ganze Sprache im Allgemeinen studierte, lernte ich eine Menge über den Handel, die ich nicht wusste und nicht während meiner 2 Jahre der Bekanntschaft mit Forex vermutete. Ich überlege sogar jetzt schon, wie ich etwas verdienen könnte, ohne viel zu wissen).
Aber die letzte Strategie ist komplizierter (für mich) in Bezug auf die Beschreibung mit Hilfe von MQL4, so muss ich manuell arbeiten. Aber seine Ergebnisse im manuellen Modus bedürfen noch der Weiterentwicklung des Expert Advisors. Ich versuche es also, langsam, aber schriftlich.
an SK
Variablen, .
Sie haben das Folgende geschrieben:
"Alle Arrays sind von Natur aus statisch, d. h. sie haben eine statische Form, auch wenn dies bei der Initialisierung nicht ausdrücklich angegeben wird.
Allerdings
Angenommen, ein Indikator, das aufrufende Unterprogramm hat ein Array:
1)
double summ[]; //die Standardfunktion .................................... .......... wird aufgerufen
i=ArrayMinimum(summ,iter,0); // Fehler beim zweiten Aufruf: <Inkorrierte Startposition 0 für ArrayMinimum-Funktion>
2) Variante des Fehlers
static double summ[];
//..............................................
i=ArrayMinimum(summ,iter,0); // Derselbe Fehler beim zweiten Aufruf: <Inkorrierte Startposition 0 für ArrayMinimum-Funktion>
3) fehlerfreie Variante
double summ[1000];
..............................................
i=ArrayMinimum(summ,iter,0); // Normale Ausführung
4) fehlerfreie Variante
static double summ[1000];
..............................................
i=ArrayMinimum(summ,iter,0); // Normale Ausführung
Aus den Beispielen 1 und 2 geht hervor, dass Arrays dynamisch zugewiesen werden.
Beispiel 2 legt nahe, dass ein Array ohne Dimension nicht als statisches Array initialisiert wird (was offensichtlich ist), aber dies zeigt sich nicht in Compiler-Fehlern ((
Beispiel 3 4 impliziert, dass nur vordefinierte Arrays eine statische Verteilung haben.
Interessanterweise fängt das ausführende System den Fehler auf und ermittelt aus Beispiel 1 und 2, was auf ein gut durchdachtes Echtzeit-Terminalsystem schließen lässt. D.h. das Array verhält sich wie ein Objekt. Großes Lob an die Entwickler.
Allerdings läuft nicht alles so gut mit einfachen Variablen
double instik(int &t) // diese Funktion ändert die Variable im aufrufenden Programm
{
t++;
}
Dieser Aufruf zählt bei jedem Tick, wenn
//...........................................
static int tik;
instik(tik);
Drucken (" tick=",tik);
//...............................
Und das zählt nicht, weil die Speicherzuweisung dynamisch ist und die verknüpfte Adresse beim zweiten Aufruf nicht übereinstimmt.
................
int tik;
instik(tik);
Drucken (" tick=",tik);
// instik subroutine gibt inkrement an unbekanntes byte, aber terminal stürzt nicht ab!!!! Nochmals: Hut ab vor den Entwicklern.
Aber um fair zu sein
es sollte auch gesagt werden, dass die Einzelheiten der Programmierung
ein Händler beginnt, sich mit dem gesamten Phänomen des Markthandels und der Handelsstrategie zu befassen
mit einer klareren Sicht. Und je mehr Erfahrung sie sammeln, desto besser können sie
Und mit zunehmender Erfahrung werden falsche Gedankengänge eliminiert und vielversprechende Gedankengänge identifiziert.
an SK
Variablen, statische Variablen.
...Ich glaube, Sie übersehen die Tatsache, dass spezielle Funktionen bei jedem Tick neu ausgeführt werden. Statische Variablen behalten ihre Werte bei und werden nicht initialisiert, während nicht-statische Variablen entsprechend dem Code initialisiert werden. In Ihrem Code ist die Integer-Variable tik standardmäßig auf Null initialisiert.
In instik() geschieht alles wie vorgesehen. In start() ist zum Zeitpunkt von Alert() der Wert der Variable tik 1, was Alert() ausgibt.
Aber das ist nicht die ganze Wahrheit. Da die Variable tik nicht als statisch deklariert ist, wird ihr Wert nicht gespeichert. Mit anderen Worten, wenn die Spezialfunktion start() das nächste Mal zur Ausführung aufgerufen wird, wird die Variable tik wieder mit Null initialisiert. Und alles beginnt wieder von vorne. Daher gibt Alert sicher eine Ausgabe nach der anderen aus.
Die Veröffentlichung des MQL4-Sprachtutorials ist für den 1. Februar geplant und ist bereits in die MQL4.community-Website integriert. Die Übersetzung ins Englische ist in vollem Gange.
Wie kann man im Expert Advisor die Möglichkeit implementieren, eine Order zu schließen - durch eine Gegenorder? Ich habe es im Tutorial nicht gefunden...