MMA_Breakout_strategy_volume I (ohne MM oder MF) - codiert von WhooDoo22

 
Ich dachte, es wäre hilfreich für neue Programmierer (und erfahrene Programmierer), eine aktualisierte Version von MMA_Breakout_strategy_Volume I zu posten, so dass Anfänger/erfahrene Programmierer gleichermaßen eine Chance haben, die beiden wichtigen Updates zu verstehen, die für diesen EA (Volume I) erforderlich sind, um reibungsloser und effizienter zu laufen. Diese Version enthält weder Geldmanagement noch Marktfilterung und gilt immer noch als Volume I. (Ich bin immer noch am Überlegen, wie ich sowohl Geldmanagement- als auch Marktfilterungsfunktionen in Volume I implementieren kann, um Volume I letztendlich zu Volume II weiterzuentwickeln. Ich werde einen Teil meiner Überlegungen zur Erfüllung der beiden Aufgaben von MM (Geldmanagement) und MF (Marktfilterung) mit Ihnen teilen. MM: Wie Sie wissen, verwendet Volume I eine einzige Order und schließt diese teilweise, wenn sich die gleitenden Durchschnitte kreuzen. Das Ziel von MM ist es, die Losgröße zu erhöhen, wenn der Kontostand wächst (Beispiel: Der Kontostand steigt um 1.000 $, der Codeblock passt die aktuelle Losgröße an und verdoppelt die aktuelle Losgröße. Dieser Codeblock verringert auch die Losgröße auf die Hälfte der aktuellen Losgröße, wenn der Kontostand um 1.000 $ sinkt. Dies ist das derzeitige Ziel für MM. Was MF anbelangt, so ziehe ich alle Optionen in Betracht, bevor ich diese Tür für mein unerfahrenes Programmierergebiet öffne. Ich kann mir mehrere Möglichkeiten vorstellen, um diese Aufgabe zu bewältigen. Für mich stellt sich die Frage, welche Option ich wählen soll. Ich habe damit begonnen, Versionen von Band II mit der MF-Funktion zu kodieren, um mich mit neuen und anderen Techniken vertraut zu machen. Die Wiederholung von Versuch und Irrtum wird mich zur Vollendung dieses Projekts führen. Achten Sie darauf, von 1999-2012.10 auf M15 Zeitrahmen EURUSD laufen, um die neuesten Backtest von Band I gepostet zu überprüfen (es ist auch als teilweise Band II). Am Rande bemerkt, ich bin weggeblasen Volumen I wurde 10.000 Mal innerhalb von zwei oder so Monate heruntergeladen! WOW! :) Ich bin so froh, dass sich meine Arbeit für Programmierer/Händler als wertvoll erwiesen hat. Ich danke Ihnen. - WhooDoo22.
 
Wie können Sie ein Ticket mit einer Nummer von 0 auf einem Live- oder Demo-Konto auswählen? Was passiert, wenn einer Ihrer OrderSelect()-Aufrufe fehlschlägt? Warum überprüfen Sie nicht die Rückgabewerte und melden Fehler?

Was sind Funktionsrückgabewerte? Wie verwende ich sie?
 
Hallo Simon, soweit ich weiß, gibt es derzeit kleinere Themen, die weniger Priorität haben als MM und MF. Ich plane, Band II zu überarbeiten, nachdem ich MM und MF hinzugefügt habe. Ich werde es durch Hinzufügen von Code zur Auswahl von Aufträgen nach der magischen Zahl, Code zur Ausführung von Band II bei 4-5-stelligen Brokern usw. optimieren. Ich weiß, dass es viele kleine Details zu beachten gibt, aber im Moment werden die schwierigeren Arbeiten zuerst in Angriff genommen. Ihre Anregung kommt gut an, und ich habe vor, diese Brücke zu überqueren, wenn ich sie erreiche. Ich werde den von Ihnen angegebenen Link besuchen. Ich danke Ihnen.
 
WhooDoo22:
Hallo Simon, ich verstehe, dass es kleinere Probleme gibt, die im Moment weniger Priorität haben als MM und MF. Ich plane, Band II nach dem Hinzufügen von MM und MF zu durchforsten. Ich werde es durch Hinzufügen von Code zur Auswahl von Aufträgen nach der magischen Zahl, Code zur Ausführung von Band II bei 4-5-stelligen Brokern usw. optimieren. Ich weiß, dass es viele kleine Details zu beachten gibt, aber im Moment werden die schwierigeren Arbeiten zuerst in Angriff genommen. Ihre Anregung kommt gut an, und ich habe vor, diese Brücke zu überqueren, wenn ich sie erreiche. Ich werde den von Ihnen angegebenen Link besuchen. Ich danke Ihnen.
Wenn ich denken würde, dass das, was ich in diesem Link geschrieben habe, eine Kleinigkeit oder eine Option wäre oder etwas, das man zu einem späteren Zeitpunkt hinzufügen könnte, wenn es die Zeit erlaubt, hätte ich mir nicht die Zeit genommen, es zu schreiben ... es ist IMO unerlässlich! Wie viele Beiträge gibt es, in denen nach Fehler 130 gefragt wird? oder Fehler 138? überprüfen Sie die Rückgabewerte, wenn Sie ein Problem haben, drucken Sie den Fehler und alle relevanten Variablen aus . ... dann haben Sie, wenn Sie ein Problem haben, die Informationen, die Sie brauchen, um die Ursache zu bestimmen.

Sie können nicht zurückgehen, um herauszufinden, wie die Frage lautete, als Sie versuchten, einen Auftrag zu erteilen und dieser fehlschlug ... .
 

Was ist variabel , und wie kann es eine Ticketnummer sein, wenn man das damit macht?

i++;

Ich habe im Moment 4 Live-Trades, deren Ticketnummern nicht fortlaufend sind.

 

Simon,

Wenn ich denken würde, was ich geschrieben hatte...

RE: Ich verstehe, dass dieser Fix eine Notwendigkeit ist. Ich werde das Problem beheben, und zwar schneller, als ich dachte, denn du scheinst sehr hartnäckig darauf zu bestehen, dass dieses Problem behoben wird. Ich stimme zu, dass dieser Fix angewendet werden sollte und werde Tests mit der Fehlerprüfungsfunktion durchführen, um die Fehlerquelle zu isolieren. Ich werde auf diesen Simon zurückkommen. Ich danke Ihnen.

Was ist die Variable i...

RE: Die Variable i ist eine Dummy-Ticket-Variable, aber ;) i ist eigentlich kein Ticket; i wird vom EA als einfache Variable betrachtet. Der EA zählt die Variable i, anstatt die tatsächliche Ticketnummer zu zählen (alternative Methode zur Zählung des aktuellen Tickets).

Wie kann es eine Ticketnummer sein, wenn man das damit macht?...

RE: Die Variable i ist eigentlich keine Ticketnummer. i ist eine Dummy-Ticketvariable, die vom EA gezählt wird, um mit der aktuellen Ticketnummernzählung Schritt zu halten. Unterm Strich wird die Variable i nicht als Ticketnummer betrachtet.


Ich möchte so schnell wie möglich auf Ihre Beiträge antworten, kann aber erst dann ausführliche Antworten geben, wenn ich Zeit für Erklärungen und Diskussionen habe.

Vielen Dank für Ihren wichtigen Beitrag!

 
WhooDoo22:

Simon,

Ich wollte so schnell wie möglich auf Ihre Beiträge antworten, kann aber keine ausführlichen Antworten geben, bevor ich nicht Zeit habe, sie zu erklären und zu diskutieren.

Vielen Dank für Ihren wichtigen Beitrag!

Du kannst antworten, wenn du Zeit hast, das ist in Ordnung :-)

Wenn"i" eine Dummy-Ticketnummer ist, wozu dann das Ganze?

OrderClose( i,  0.01,Ask,30,CLR_NONE); 

Ist das nicht garantiert ein Fehlschlag?

 
Ich glaube, es gibt mehrere Möglichkeiten, Aufträge auszuwählen. Alle Methoden zur Auswahl von Aufträgen sollten die Funktion OrderSelect() verwenden. Davon abgesehen, sehe ich nicht, warum dies fehlschlagen würde, da der EA eindeutig die OrderClose()-Funktion für alle Aufträge ohne Fehler im Strategie-Tester ausführt. Es ist möglich, dass Fehler auftreten, aber ich habe in letzter Zeit keine bemerkt. Ich möchte dies genauer formulieren: "Variable i" ist ein Ersatz für die Ticketnummer UND die Variable i wird von den OrderClose() Funktionsblöcken verwendet. Es ist nun schon einige Zeit her, aber ich glaube, der Grund, warum ich den Code so geschrieben habe, wie er geschrieben wurde, war, dass ich das Programm im ersten OrderSend()-Codeblock beginne, WENN die OrdersHistoryTotal() == 0 ist. Ich musste ein Ticket auswählen, nicht die Variable i, damit die OrdersHistoryTotal()-Funktion erkennen konnte, welches Ticket ich auswählte, so dass sie "grünes Licht" zum Senden einer Bestellung geben konnte. Es fällt mir manchmal schwer, dies klar in Worte zu fassen. Ich danke Ihnen.
 
WhooDoo22:
Ich glaube, es gibt mehrere Möglichkeiten, Aufträge auszuwählen. Alle Methoden zur Auswahl von Aufträgen sollten die Funktion OrderSelect() verwenden. Mit dieser sagte, ich sehe nicht, warum dies fehlschlagen würde, weil die EA eindeutig führt die OrderClose() Funktion für alle Aufträge ohne Fehler in der Strategie-Tester.
Wie funktioniert es auf einem Demokonto, wo Sie Ticketnummern haben, die nicht bei 1 beginnen und schrittweise nach oben gehen?
 
Ich kenne die Unterschiede zwischen Demo und Live nicht, abgesehen von dem Konzept der virtuellen und tatsächlichen Mittel für Konten. Ich bin mir dieses Unterschieds nicht bewusst. Derzeit glaube ich, dass OrdersHistoryTotal() bei 0 beginnt, bevor eine Order eingereicht UND beendet wird. Ich glaube, dass die Funktion OrderClose() nicht ausgeführt wird, es sei denn ;) es gibt eine Variable zur Auswahl. Hier wird die Variable i im ersten Codeblock in der Ausführung unter "i++" dargestellt. Sobald die Variable i den Wert 1 aka i++ hat, prüft die Funktion OrderClose() die 1. Die Funktion OrderClose() sagt: "Ja, ich sehe i, wir können diese Bestellung jetzt schließen. Vielen Dank.
 
WhooDoo22:
Ich kenne die Unterschiede zwischen Demo und Live nicht, abgesehen von dem Konzept der virtuellen und tatsächlichen Mittel für Konten.
OK, ich spreche über den Unterschied zwischen dem Strategy Tester und Demo/Live ... im ST ist die erste Order Ticket 1 ... Ich habe gerade einen Demo-Handel platziert und meine Ticket-Nummer ist 46322730 ... wenn ich einen zweiten Handel platziere, wird die Ticket-Nummer nicht46322731 sein. Wie funktioniert in dieser Situation das Inkrementieren der Variablen, die Sie für die Ticket-Nummer verwenden?