Hallo,
wie kann ich in einem Code den ATR(14) einer bestimmten Uhrzeit festlegen und später in einer Kauf Order benutzen?
time= 080000
ATR(14)
Los geht's:
If time = 080000 then
MyATR = AverageTrueRange[14](Close)
Endif
Wann immer Sie möchten , können Sie MyATR verwenden , um einen Trade abzuschließen .
Ok, das funktioniert.
Jetzt habe ich aber ein anderes Problem. Meine Sellstop und Buystop Orders werden nur auf die 8:00 Kerze gesetzt. Sollten aber innerhalb meiner definierten Handelsspanne gesetzt werden. Also von 08:00 bis 17:00 mit dem ATR-Wert von 08:00.
Ich finde den Fehler nicht. Kann mir einer helfen?
//ATR Breakout Morning EurUsd
DEFPARAM CumulateOrders = false // Kumulieren von Positionen deaktiviert
// Stornieren aller pending Orders und Schließen aller Positionen zur "FLATAFTER"-Zeit
DEFPARAM FLATAFTER = 220000
// Verhindert das Trading an bestimmten Wochentagen
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
//Ein Trade pro Tag
ONCE TradeLong = 1
ONCE TradeShort = 1
IF IntraDayBarIndex = 0 THEN
TradeLong = 1
TradeShort = 1
ENDIF
positionsize = 1
If time = 080000 then
MyATR = AverageTrueRange[24](Close)
Endif
//ATRmax = myATR < 10*pipsize
// trading window
ONCE BuyTime = 080000 //083000
ONCE SellTime = 170000 //110000
// position management
IF Time >= BuyTime AND Time <= SellTime THEN
//Long
IF not onmarket and tradelong AND not daysForbiddenEntry THEN
BUY positionsize CONTRACT AT (close + (myATR*1.5)) stop
// Stops und Targets
SET STOP loss myATR*3
SET TARGET PROFIT myATR*1.5
tradelong=0
ENDIF
//short
IF not onmarket and tradeshort AND not daysForbiddenEntry THEN
SELLSHORT positionsize CONTRACT AT (close - (myATR*1.5)) stop
// Stops und Targets
SET STOP loss myATR*3
SET TARGET PROFIT myATR*1.5
tradeshort=0
ENDIF
ENDIF
Entfernen Sie die Zeilen 40 und 49 und fügen Sie diese wenigen Zeilen vor Zeile 18 hinzu:
IF LongOnMarket THEN
TradeLong = 0
ENDIF
IF ShortOnMarket THEN
TradeShort = 0
ENDIF
Ok, danke.
Ich bemerkte eben ein nächstes Problem. Der Schlusskurs muss natürlich auch von 08:00 sein.
Ich habs jetzt jetzt so geschrieben und dann long und short für die StopOrders benutzt. Funktioniert das zuverlässig?
If time = 080000 then
MyATR = AverageTrueRange[24](Close)
long = (close + (myATR*ein))
short = (close - (myATR*ein))
Endif
Ja das ist korrekt. Ich glaube wirklich, dass es funktionieren wird!
Hallo,
ich habe ein ähnliches Problem und möchte mit der 14 Uhr Kerze meinen Einstieg definieren. Leider kauft das System aktuell immer zum 14 Uhr Eröffnungskurs und nicht zum vordefinierten Einstieg E1. Was muss ich ändern, damit es klappt? Vielen Dank für ihre Hilfe vorab!
timeframe(1 hour, updateonclose)
If time = 140000 AND DayOfWeek = 1 then
E1 = CLOSE - (3/10000)
Endif
timeframe(15 minute, updateonclose)
// Bedingungen zum Einstieg in Long-Positionen
IF NOT LONGONMARKET AND (hour >= 14 AND hour < 21 AND DayOfWeek = 1) THEN
BUY 1 CONTRACTS AT E1 Stop
ENDIF
// Bedingungen zum Ausstieg von Long-Positionen
IF LONGONMARKET AND (hour = 21 AND DayOfWeek = 1) THEN
SELL AT MARKET
ENDIF
// Bedingungen zum Einstieg in Short-Positionen
//IF NOT ShortOnMarket AND hour = x AND DayOfWeek = y THEN
//SELLSHORT 1 CONTRACTS AT MARKET
//ENDIF
// Bedingungen zum Ausstieg aus Short-Positionen
//IF ShortOnMarket AND hour = (x + 1) THEN
//EXITSHORT AT MARKET
//ENDIF
// Stops und Targets: Legen Sie hier schützende Stops und Profit Targets fest
SET STOP PLOSS 100
SET TARGET PPROFIT 130
GRAPHONPRICE E1
Versuchen Sie, diese Zeilen zwischen den Zeilen 6 und 7 zu schreiben:
If hour >= 21 then
E1 = 0
Endif
Außerdem verwenden Sie einen STOP-Befehl.
Wie können Sie sicher sein, dass der Preis von E1 höher ist als der aktuelle?
Hat leider nicht funktioniert. Vielleicht nochmal etwas klarer, was ich erreichen möchte. Bei meinem ursprünglichen Handelssystem habe ich zum Eröffnungskurs um 14 Uhr (hour = 14) gekauft. Jetzt möchte ich das System gerne so modifizieren, dass ich erst kaufe, wenn der Kurs zum Beispiel 3 Pips tiefer ist als der Eröffnungskurs um 14 Uhr. Dafür definiere ich den Kurs auf Stundenbasis, um dann später auf 15 Minuten-Basis ggfs. noch einen Training Stop einzufügen. Vorher würde ich aber gerne testen, inwieweit sich die Ergebnisse des Backtest verbessern, wenn ich nicht stumpf zum Eröffnungskurs um 14 Uhr kaufe, sondern erst einsteige, sobald der Kurs etwas tiefer ist. Vielen Dank für ihre Hilfe vorab!
Tut mir leid, aber ich kann deine Erklärung nicht verstehen. Ich denke, es ist der Übersetzer, der bestimmte Wörter in die klassische Sprache übersetzt, nicht die spezifische Sprache des Handels. Wenn Sie ein praktisches Beispiel geben könnten, könnte ich es vielleicht besser verstehen.
Ich füge mal meinen Original Code an, vielleicht wird es dann klarer. Ich möchte nicht mehr zur Eröffnung um 14 Uhr einsteigen, sondern erst, wenn der Kurs x Pips niedriger als der Eröffnungskurs um 14 Uhr ist. Wie kann man das umsetzen?
In case the translator did not work properly again, my issue in English as well. My original trade system foresees to buy at 2pm. I don’t want to buy at the opening anymore, but if the price is e.g. 3 Pips lower than the opening price of the 2pm candle. How does this work?
// Bedingungen zum Einstieg in Long-Positionen
IF NOT LONGONMARKET AND hour = 14 AND DayOfWeek = 1 THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
// Bedingungen zum Ausstieg von Long-Positionen
IF LONGONMARKET AND hour = 21 AND DayOfWeek = 1 THEN
SELL AT MARKET
ENDIF
// Stops und Targets: Legen Sie hier schützende Stops und Profit Targets fest
SET STOP PLOSS 100
SET TARGET PPROFIT 130
Ersetzen Sie Zeile 3 durch diese, die eine ausstehende Order verwendet:
BUY 1 CONTRACT AT close - 3*PipSize LIMIT
Beachten Sie, dass der Broker einen Mindestabstand zum aktuellen Preis verlangt. 3 Pips sind im Allgemeinen wenig. Schauen Sie auf der IG-Website nach.
Danke, es kann so einfach sein. Allerdings funktioniert es noch nicht wie gewünscht. Die Berechnung soll immer auf Basis der Schlusskurs der 13 Uhr Kerze sein oder der Eröffnung der 14 Uhr Kerze. Wenn ich das so im Backtest verwende, z.B. auf 15-Minuten Basis, dann nimmt er immer den Schlusskurs der letzten Kerze als Einstiegskriterium. Der Einstiegskurs sollen sich aber nicht verändern und immer auf die 14 Uhr Eröffnung beziehen. Wie muss man das definieren?
In case the translator works not properly. Thanks, it can be so simple. But it doesn’t work properly yet. The calculation should be always based on the closing of the 1pm candle respectively the opening of the 2pm candle. By using this formula in my backtest, e.g. on a 15 minute basis than the last close is always used as criteria for the entry. However, the trade entry should not change, it should always relate to the opening of the 2pm candle. How to define that?
Das ist okay. STUNDE = 14 ist das Ende der 13:00 Uhr. Bitte nur auf Deutsch schreiben.