Hallo!
Im Programmierungsassistent möchte ich in einer Bedingung festlegen, dass der Kurs die EMA unterkreuzt. Jedoch wird dann beim Backtest angezeigt, dass die Bedinung bei allen möglichen Preisen ausgeführt wird.
Die Bedinung ist: close[1] CROSSES UNDER ExponentialAverage [9](Close)
Ich habe es schon mit allen möglichen Kombinationen ausprobiert, aber die Ergbnisse im BAcktest ergeben keinen Sinn. Gibt dafür irgendeinen Trick oder ein Tutorial für die Funktionen des Assitenten?
Ich freu mich über jede Hilfe! Vielen Dank!
Grüße Mo
Könnten Sie in Screenshots zeigen, was Sie sagen?
Sehr gerne, siehe anbei. Die Bedingung soll erfüllt sei, wenn der Preis die EMA 9, blaue Linie, von unten kreuzt und dann entsprechend eine Long Position eröffnet.
Ihr Text:
close[1] CROSSES UNDER ExponentialAverage[9](Close)
Es bedeutet „der gestrige Preis überschreitet den heutigen exponentiellen Durchschnitt nach unten“, Ist die Formulierung nicht etwas seltsam?
Die Einstellung steht auf “current period” bei Preis und EMA und “cross under”. Bedeutet dies nicht, dass wenn in der aktuellen Periode der Preis von unten nach oben die EMA kreuzt die Bedingung ausgelöst wird?
close[1] bedeutet „Preis des vorherigen Balkens“, während ExponentialAverage [9](Close) “9-Perioden-Exponential-Durchschnitt (berechnet bei CLOSE) des aktuellen Balkens” bedeutet.
Ich verstehe, close[1] würde keinen Sinn ergeben. Jedoch steht bei dem Preis und der EMA nur close und nicht close [1].
Ah , ich habe bei meiner Beschreibung close[1] angegeben, pardon. Die Einstellung entspricht close, also der aktuellen Periode, entsprechend dem Screenshot. Leider wird die Long Position wie auf dem Screenshot zu sehen ist auch ohne das Kreuzen der EMA ausgeführt….
Nach dem, was ich in Ihrem Screenshot sehe, programmieren Sie tatsächlich Folgendes:
close crosses under exponentialaverage[9](close)
Wenn Sie möchten, können wir den vom Assistenten generierten Code überprüfen. Bitte schauen Sie sich das beigefügte Bild an, um den Code anzuzeigen.
Bitte kopieren und fügen Sie den Codetext ein. Hängen Sie das Foto nicht an.
Danke 🙂
// Festlegen der Code-Parameter
DEFPARAM CumulateOrders = False // Kumulieren von Positionen deaktiviert
// Bedingungen zum Einstieg in Long-Positionen
indicator1 = ExponentialAverage[9](close)
c1 = (close CROSSES UNDER indicator1)
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Bedingungen zum Ausstieg von Long-Positionen
indicator2 = ExponentialAverage[9](close)
c2 = (close CROSSES OVER indicator2)
IF c2 THEN
SELL AT MARKET
ENDIF
Guten Morgen, wenn Sie wirklich eine Position eröffnen möchten, wenn der Schlusskurs den exponentiellen 9-Perioden-Durchschnitt nach unten kreuzt, und die Position schließen möchten, wenn das Kreuz nach oben kreuzt, ist der bereitgestellte Code korrekt. Bitte beachten Sie, dass das System die Position bei Eröffnung des nächsten Balkens öffnet/schließt.
Vielen Dank, das hat mir weitergeholfen! :o)