Diskussion zum Artikel "Schrittweiser Leitfaden für Anfänger zum Schreiben eines Expert Advisors in MQL5" - Seite 7

 
Renat:

Die Verwendung nicht initialisierter (oder unvollständiger) Variablen (insbesondere Strukturen) ist ein sehr häufiger Fehler beim Programmieren.

Mann, dies ist die einzige russischsprachige Ressource, bei der man (1) eine Gehirnwäsche bekommt und (2) dankbar dafür ist :))

Seit 1,5 Jahren weiß ich, dass Variablen initialisiert werden sollten; seit 1,5 Jahren verwende ich absichtlich den Ausdruck "Variable vom Typ Struktur"; aber seit 1,5 Jahren weise ich nur einzelnen (obligatorischen) Feldern der Variablen vom Typ Mqltraderequest Werte zu, weil im Referenzhandbuch steht, dass "obligatorische Felder für jede Handelsoperation angegeben werden sollten " ....

 
papaklass:
Renat, es wäre schön, wenn Sie (MQ) einen Artikel oder eine Reihe von Artikeln zum Thema "Arbeit mit Speicher und Variablen" veröffentlichen würden. Was ist im Allgemeinen der richtige Weg, um mit Speicher und Variablen zu arbeiten? Nach der Disqualifikation mehrerer EAs bei der Meisterschaft aufgrund des hohen Speicherverbrauchs wären diese Artikel angebracht. Rosh schrieb in irgendeinem Thread, dass die Benutzer die Artikel bestellen sollten, die sie interessieren, aber ich habe diesen Thread nicht gefunden, also schreibe ich hier.
Ja, es wäre interessant, einen Artikel zu diesem Thema zu lesen. Es ist sehr interessant, warum bei der Meisterschaft einige Teilnehmer Experten hatten, die so viel Speicher verbrauchten, und wie man eine solche Situation vermeiden kann. Ich hatte solche Probleme nicht, aber das ist alles Zufall. Ich meine, ich weiß nicht, warum es mir nicht passiert, aber ich würde gerne wissen, was zu tun ist, wenn es passiert.
 
Zunächst einmal hängt der Speicherverbrauch mit den Indikatoraufrufen zusammen. Bevor Sie Handles von Dutzenden von Indikatoren auf verschiedenen Symbolen/tpymframes erstellen, denken Sie darüber nach, was Sie dafür bezahlen werden. Ich kann den Artikel Reducing memory consumption for auxiliary indicators empfehlen und das Interview eines der disqualifizierten Teilnehmer lesen - Interview with Atsushi Yamanaka (alohafx).
Интервью с Ацуси Яманака (alohafx) - Automated Trading Championship 2011
  • championship.mql5.com
Что общего между трейдингом, скайдайвингом, фьючерсами, Гавайями, переводами и шпионами? Мы тоже не знали, пока не пообщались с дисквалифицированным участником Ацуси Яманака (alohafx). Его кредо - ''Life is Good! - Жизнь прекрасна!'', и с этим трудно не согласиться. Было интересно узнать, что расстояние между разными континентами - не помеха в общении участников нашего Чемпионата.
 

Warum, wenn ich die S/L auf 5 (angeblich 5 Pips) festsetze?

Ich habe die folgenden

Dateien:
Capture.PNG  8 kb
 
statarb:

Warum, wenn ich die S/L auf 5 (angeblich 5 Pips) festsetze?

Ich habe die folgenden

Sie sollten die Stop Levels(SYMBOL_TRADE_STOPS_LEVEL) für ein Symbol überprüfen, bevor Sie eine Handelsanfrage senden. Der SL/TP darf nicht näher als dieser Abstand zum aktuellen Preis sein, um zu schließen. Das Beispiel, um diese Eigenschaft zu erhalten:

int StopLevel_Distance=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);
double SL=... // neue SL durch Berechnung erhalten
//--- aktuelles berechnetes Stop-Loss-Niveau prüfen
if(SL>SymbolInfoDouble(_Symbol,SYMBOL_ASK)-StopLevel_Distance*_Point) 
   SL=SymbolInfoDouble(_Symbol,SYMBOL_ASK)-StopLevel_Distance*_Point;
//... SL für Position ändern
 

Danke, aber weder mein SL noch mein TP werden ausgeführt. Im Compiler "Terminal" werden sie als "0.00" oder "0.0" aufgeführt. Jedenfalls ist es unmöglich, einen allgemeinen Stoploss für alle Orders anzugeben. Und es ist mir noch nicht gelungen, die Parameterwerte von "außen", d.h. ohne Änderung des Codes im Editor, zu ändern.

Ansonsten funktioniert es super! Und die Kommentare sind eine große Hilfe!

Nochmals vielen Dank,

locan BBS

.locan.BBS:

 

Hallo Olowsam,

vielen Dank für diese Schritt-für-Schritt-Anleitung. Ich habe ein paar Fragen, bei denen ich hoffe, dass Sie mir helfen können.

Ich habe Ihre Anleitung genau befolgt, aber ich habe nicht das gewünschte Ergebnis erreicht. Zunächst einmal arbeite ich mit der neuesten Version von Meta Trader 5.00, Build 6.55 (6. Juni 2012). Ich habe mehrere Unterschiede festgestellt, wobei der erste darin besteht, dass die MQL5-Assistentenvorlage zusätzliche Optionen hat, die Sie in Ihren Hinweisen nicht zeigen. Wie auch immer, ich habe sichergestellt, dass das Programm genau so ist, wie Sie es beschrieben haben. Ich habe es kompiliert. Keine Probleme. Keine Fehler. Ich habe es geschafft, alle 5 Debug-Break-Points, wie in Ihren Hinweisen vorgeschlagen, in die OnTick-Subroutine einzufügen. Wenn ich auf die grüne Schaltfläche Ausführen klicke, passiert NICHTS. Die Programmausführung kommt nicht bis zu diesem Punkt. Warum ist das so? Was passiert da? Wenn ich die Debug-Haltepunkte am Anfang der OnInit-Subroutine einfüge, z. B. in der Zeile adzHandle=iADX9Null,0,ADX_Period), dann ist alles in Ordnung. Die Debug STEP-Registerkarten leuchten auf und ich kann dieses Steuerelement bis zum Ende des OnInit-Unterprogramms in Einzelschritten ausführen. Danach jedoch wieder nichts. Kurz gesagt, ich kann die OnTick-Untergruppe nicht erreichen. Was ist los und warum? Ist dies ein bekannter Fehler in der Funktionsweise des Meta Trader-Systems? Wie kann ich dieses Problem beheben und weitermachen?

Ich hoffe, dass die obigen Ausführungen das Problem erklären, das ich hatte, und hoffe, dass Sie sehen können, was los ist, und dass Sie mir helfen können.

Vielen Dank!

Mit besten Grüßen

Kishor

 

Hey Großer Artikel,

Tippte alle den Code aus, wie ich ging entlang und nicht erhalten keine Kompilierfehler am Ende so muss der gut erklärt. Eine gute Übung für das erste Mal mit dem metatrader5/mql5 System.

Might müssen einige Optimierung zu tun, um den Graphen gehen in eine Aufwärtsrichtung thou :D

Alles Gute und vielen Dank!

Mike

 

Hallo,

Ich habe nur eine Bitte, wenn es Ihnen nichts ausmacht, können Sie auch ein Beispiel dafür geben, wie man Trailing Stops mit diesem Beispiel implementiert?

Herzlichen Dank dafür!

 
Vielen Dank für diesen wunderbaren Leitfaden!