Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 614
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 danke Ihnen für Ihre Antwort. Wenn es Ihnen nichts ausmacht, senden Sie mir bitte den EA, über den Sie sprechen (oder einen Teil davon, der mit dem Kanal ist) - es wäre interessant, eine andere Implementierung zu sehen.
Ich kann mir keinen Reim auf etwas machen, das ich vor ein paar Jahren gemacht habe. Aus irgendeinem Grund funktioniert es nicht, obwohl ich mich daran erinnere, dass es früher funktionierte und handelte. Lassen Sie mich zuerst den Code sortieren, ihn korrigieren und dann veröffentlichen. Vielleicht morgen. Ich möchte mich nur nicht blamieren, wenn es ein paar kindische Fehler gibt.
Der Grundgedanke ist natürlich der folgende. Und wie bestimmen Sie die Breite des Kanals (in Ihrem Fall den Bereich)? Ich mache es über die Größe der Durchschnittskerze und es ist alles an die Länge des Kanals gebunden, denn das Vorhandensein des Kanals wird nicht an einer starren Anzahl von Balken geprüft, sondern zum Beispiel an einer Länge von 10 bis 30 Balken.
Was mich interessiert, ist die Frage der Auswahl der Breite aus der Länge...
Sie können mehrere externe Parameter für die Kanalbreite in einem Kennzeichen festlegen. Führen Sie für jeden Parameter eine eigene Berechnung durch.
Das Gleiche gilt für die Länge.
Hallo. Der Basket Expert Advisor sollte alle Aufträge schließen, wenn die Bedingung eintritt, aber er schließt den Auftrag zuerst, dann versucht er, ihn erneut zu schließen (der Server gibt eine Fehlermeldung "Ungültiges Ticket" aus) und erst dann geht er weiter. Hier ist ein Beispielcode und der EA selbst.
In Ihrer Funktion CloseOrders(), wenn der Auftrag geschlossen ist, wird der while(cnt<=5 ) Zyklus noch einmal den Code senden, um den Auftrag zu schließen, und ein Fehler wird auftreten, natürlich, dann durch if() beenden. Pause;
In der Funktion ProtectionClose() haben Sie bereits Zeilen mit dem korrekten while exit hinzugefügt.
Versuchen Sie hier zu graben.In Ihrer Funktion CloseOrders(), wenn der Auftrag geschlossen ist, wird der while(cnt<=5) Zyklus noch einmal den Code senden, um den Auftrag zu schließen, und ein Fehler wird auftreten, natürlich, dann durch if() beenden. Pause;
In der Funktion ProtectionClose() haben Sie bereits Zeilen mit dem korrektenwhile-Exit hinzugefügt
Versuchen Sie, hier etwas zu recherchieren.In dem von mir beschriebenen Fall ist es jedoch die Funktion ProtectionClose(), die den Auftrag abschließt. Ich werde diesen Fehler korrigieren.
In dem von mir beschriebenen Fall werden die Aufträge jedoch durch die Funktion ProtectionClose() geschlossen. Ich werde diesen Fehler beheben.
Ich habe mich nicht tief in den Code eingegraben, ich konnte ihn nicht im Testprogramm ausführen, es gibt keinen Indikator.
Aber zum Beispiel sind Ihre Funktionen OpenUsdbuy(); OpenSellusd() aufeinander folgend.
OpenSellusd() öffnet GBPUSD, EURUSD, AUDUSD, NZDUSD, usw. Sie werden der erste sein, der sie in umgekehrter Reihenfolge von NZDUSD, AUDUSD usw. schließt.
Nur drei Paare in der Funktion ProtectionClose() haben einen while exit in zwei Varianten: USDCAD, USDCHF und USDJPY.
In anderen Währungen können Sie while() nur mit einem Fehler if(!Ergebnis[...]) beenden.
Es ist möglich, mehrere externe Parameter für die Kanalbreite in einem Indikator festzulegen. Führen Sie für jeden Parameter eine eigene Berechnung durch.
Der Punkt ist, dass ich die Kanalbreite nicht zwangsweise festlegen möchte - der Expert Advisor/Indikator muss das Vorhandensein des Kanals unabhängig von dem Währungspaar und/oder der aktuellen Volatilität erkennen. Dementsprechend setze ich nur die minimale und maximale Länge des Kanals aus externen Parametern fest, und das auch nur während des Debuggens des Algorithmus - danach werden diese Parameter in ihn eingenäht. In diesem Stadium gibt es einige Beschwerden. Obwohl ich die Kanäle im Allgemeinen abfangen kann (das Bild wurde aus dem Arbeitscode entnommen), würde ich gerne andere Lösungen für dieses Problem sehen.
Ich habe mich nicht tief in den Code eingegraben, ich konnte ihn nicht im Testprogramm ausführen, es gibt keinen Indikator.
Aber zum Beispiel sind Ihre Funktionen OpenUsdbuy(); OpenSellusd() aufeinander folgend.
OpenSellusd() öffnet GBPUSD, EURUSD, AUDUSD, NZDUSD, usw. Sie werden der erste sein, der sie in umgekehrter Reihenfolge von NZDUSD, AUDUSD usw. schließt.
Nur drei Paare in der Funktion ProtectionClose() haben einen while exit in zwei Varianten: USDCAD, USDCHF und USDJPY.
In anderen Währungen können Sie while() nur mit einem Fehler beenden if(!Ergebnis[...])
Danke für den Tipp, ich habe vergessen, die Schleife in diesem Fall zu verlassen, es sollte jetzt funktionieren. Wenn Sie möchten, kann ich den Indikator als Dankeschön einfügen.
Der Grundgedanke ist natürlich der folgende. Und wie bestimmen Sie die Breite des Kanals (in Ihrem Fall den Bereich)? Ich tue es durch die Größe einer durchschnittlichen Kerze und es ist alles mit der Länge des Kanals verbunden, weil das Vorhandensein des Kanals nicht auf eine starre Anzahl von Bars geprüft wird, sondern zum Beispiel auf eine Länge von 10 bis 30 Bars.
Was mich interessiert, ist die Frage der Auswahl der Breite aus der Länge...
Nun, in meinem Fall habe ich eine leichtere Option aus der Laterne vorgeschlagen, um die Kanalhöhe und die Mindestanzahl der Balken zuzuweisen.
Der Punkt ist, dass ich die Kanalbreite nicht zwangsweise festlegen möchte - der Expert Advisor/Indikator muss das Vorhandensein des Kanals unabhängig von dem Währungspaar und/oder der aktuellen Volatilität erkennen. Dementsprechend setze ich nur die minimale und maximale Länge des Kanals aus externen Parametern, und das auch nur im Prozess der Fehlersuche im Algorithmus - danach werden diese Parameter in diesen eingenäht. In diesem Stadium gibt es einige Beschwerden. Obwohl ich die Kanäle im Allgemeinen abfangen kann (das Bild wurde aus dem Arbeitscode entnommen), würde ich gerne andere Lösungen für dieses Problem sehen.
Der Punkt ist, dass ich die Kanalbreite nicht zwangsweise festlegen möchte - der Expert Advisor/Indikator muss das Vorhandensein des Kanals unabhängig vom Währungspaar und/oder der aktuellen Volatilität feststellen. Dementsprechend setze ich nur die minimale und maximale Länge des Kanals aus externen Parametern fest, und das auch nur während des Debuggens des Algorithmus - danach werden diese Parameter in ihn eingenäht. In diesem Stadium gibt es einige Beschwerden. Obwohl ich die Kanäle im Allgemeinen abfangen kann (das Bild stammt aus dem Arbeitscode), würde ich gerne andere Lösungen für dieses Problem sehen.
Nun, es gibt eine Idee, um 2 aufeinanderfolgende Top-Fraktale oder 2 iHighest, die aus, sagen wir, 5-10 Candlesticks bestehen, zu fangen. Wir fangen diesen Fall innerhalb eines bestimmten Längenbereichs ab. Wenn die Werte dieser Spitzen nahe beieinander liegen, finden wir zwischen diesen beiden Spitzen den iLowest.
Suchen Sie in ähnlicher Weise zuerst nach zwei unteren Spitzen und dann nach der oberen Spitze zwischen ihnen.
Dann werden wir von diesen gefundenen Gipfeln aus tanzen. Zunächst ziehen wir Ebenen durch sie. Dann bringen wir dem Code bei, weiter zu denken.
Mit dieser Option werden die externen Parameter wie Channel_width entfernt.
Wie auch immer man es betrachtet, ich denke, wir brauchen zumindest einige Parameter für die Länge.