Hallo zusammen.
Könnt Ihr mir helfen? Ich möchte eine Strategie Backtesten und benötige den richtigen Code dafür. Mithilfe von Copilot habe ich die Strategie-Parameter in einen Code schreiben lassen. Jedoch funktioniert er nicht. Könnte jemand bitte mal rüber schauen?
Strategie:
Handelsstrategie für Brent Oil (5-Minuten-Chart) in ProRealTime
1. Basiswerte & Indikatoren
Instrument: Brent Oil
Zeiteinheit: 5-Minuten-Chart
Indikatoren:
Bollinger Bänder (Standard-Einstellungen)
SMA200 (Gleitender Durchschnitt mit Periode 200)
2. Einstiegskriterien (Order-Platzierung um 9:55 Uhr)
Long Order:
Bedingung: Schlusskurs des 9:50-Uhr-Kerzenbalkens liegt über dem SMA200.
Einstieg: Oberes Bollinger Band von 9:50 Uhr.
Ordertyp:
Limit Buy Order, falls der aktuelle Kurs um 9:55 Uhr unter dem oberen Bollinger Band liegt.
Stop Buy Order, falls der aktuelle Kurs um 9:55 Uhr über dem oberen Bollinger Band liegt.
Short Order:
Bedingung: Schlusskurs des 9:50-Uhr-Kerzenbalkens liegt unter dem SMA200.
Einstieg: Unteres Bollinger Band von 9:50 Uhr.
Ordertyp:
Limit Sell Order, falls der aktuelle Kurs um 9:55 Uhr über dem unteren Bollinger Band liegt.
Stop Sell Order, falls der aktuelle Kurs um 9:55 Uhr unter dem unteren Bollinger Band liegt.
3. Stop-Loss & Take-Profit (CRV 2:1)
Stop-Loss:
Long Order: Stop-Loss auf dem unteren Bollinger Band von 9:50 Uhr.
Short Order: Stop-Loss auf dem oberen Bollinger Band von 9:50 Uhr.
Take-Profit:
Berechnung der Bandbreite:
Bandbreite
=
Oberes Bollinger Band
−
Unteres Bollinger Band
Bandbreite=Oberes Bollinger Band−Unteres Bollinger Band
Long Order: Take-Profit = Einstiegspreis + (2 × Bandbreite).
Short Order: Take-Profit = Einstiegspreis – (2 × Bandbreite).
4. Ausstiegsregeln (Falls Trade oder Order noch offen ist)
Falls der Trade um 21:40 Uhr noch offen ist:
Market-Exit (Trade wird unabhängig vom Gewinn/Verlust geschlossen).
Falls die Order bis 18:00 Uhr nicht ausgeführt wurde:
Order wird storniert, inklusive Stop-Loss und Take-Profit.
Zusätzliche Punkte:
✔ Jeden Tag nur eine Order: Entweder Long oder Short, basierend auf der SMA200-Bedingung.
✔ Trading nach festen Uhrzeiten: Alle Berechnungen basieren auf den Daten von 9:50 Uhr, Orderplatzierung um 9:55 Uhr.
✔ Striktes Risikomanagement: Stop-Loss immer festgelegt, Take-Profit mit festem CRV von 2:1.
Der Code wurde erstellt aber leider mit Fehlermeldung:
// Indikatoren
indicator(“Handelsstrategie für Brent Oil”, shorttitle=”Brent Strategy”, overlay=true)
SMA200 = sma[close](200)
BollingerUp = bbands[close](20, 2)[1]
BollingerLow = bbands[close](20, 2)[2]
// Variablen für Zeit und Preis
var float entryPrice = na
var float stopLoss = na
var float takeProfit = na
var float bandWidth = na
// Bedingung für Long Order
if (hour(timenow) == 9 and minute(timenow) == 50)
if (close > SMA200)
entryPrice = BollingerUp
stopLoss = BollingerLow
bandWidth = BollingerUp – BollingerLow
takeProfit = entryPrice + 2 * bandWidth
if (close < BollingerUp)
buy 1 contract at limit entryPrice
else
buy 1 contract at stop entryPrice
// Bedingung für Short Order
if (hour(timenow) == 9 and minute(timenow) == 50)
if (close < SMA200)
entryPrice = BollingerLow
stopLoss = BollingerUp
bandWidth = BollingerUp – BollingerLow
takeProfit = entryPrice – 2 * bandWidth
if (close > BollingerLow)
sell 1 contract at limit entryPrice
else
sell 1 contract at stop entryPrice
// Exit Regeln
if (marketposition != 0)
if (time > timenow(21, 40, 0))
exitshort “Market Exit” from entry(“”), close
if (time > timenow(18, 0, 0))
exitshort “Cancel Order” from entry(“”), close
if (marketposition == 1)
exitlong from entry(“”), stoploss(“Stop Loss”, stopLoss)
exitlong from entry(“”), takeprofit(“Take Profit”, takeProfit)
else if (marketposition == -1)
exitshort from entry(“”), stoploss(“Stop Loss”, stopLoss)
exitshort from entry(“”), takeprofit(“Take Profit”, takeProfit)