hey,
leider ändert es nichts.
Hier mal anbei ein Screenshot: Der Kauf sollte in der 5min-Kerze mit dem weißen Pfeil ausgeführt werden.
Wie müsste ich den Code ändern?
Wenn Sie möchten, dass nur CLOSE über dem Durchschnitt liegt, müssen Sie CLOSE in Zeile 7 und vielleicht auch in den Zeilen 16 und 17 verwenden, je nachdem, was Sie bevorzugen.
Hi Roberto,
das klappt danke Dir.
Ich hätte noch einmal zwei Fragen, um mein Setup zu optimieren.
- wie kann ich Pivot in mein System programmieren? Ich möchte, dass meine Position im 15 min Chart bei dem R2 des 2-Stunden-Pivots geschlossen wird, sobald eine Kerze den PivotPunkt R2 während ihrer Periode überschreitet.
- ich möchte nur einen Kauf auslösen, wenn zwei EMA’s (20 und 50) maximal 20 Punkte, bspw. beim S&P 500 von einander entfernt liegen.
Wie würde für diese beiden Bedingungen der Code lauten?
Es wäre fantastisch, wenn mir hier jemand weiterhelfen kann. Besten Dank im Voraus.
Ich werde es Ihnen so schnell wie möglich zukommen lassen.
Hi Roberto,
wie sieht es denn aus?
Hättest Du schon eine Rückmeldung?
Möchten Sie einen neuen Code oder möchten Sie einen bestehenden Code ändern? Wenn es bereits existiert, posten Sie bitte den Code, den Sie ändern möchten.
Gerne kann der folgende Code mit den oben genannten Bedingungen erweitert werden.
- Long Exit im Pivot R2
- nur Long Entry, wenn EMA 20 und EMA 50 max 20 Punkte voneinander entfernt
- Stopp-Loss bei Open < low[2]
Vielen Dank vorab
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
// Festlegen der Code-Parameter
DEFPARAM CumulateOrders = False // Kumulieren von Positionen deaktiviert
TimeFrame(5 minute)
ONCE Flag = 0
// Bedingungen zum Einstieg in Long-Positionen
indicator1 = ExponentialAverage[8](totalPrice)
c1 = (open > indicator1)
IF c1 AND Not OnMarket AND Flag = 0 THEN
BUY 1 CONTRACT AT MARKET
Flag = 1
ENDIF
// Bedingungen zum Ausstieg von Long-Positionen
indicator2 = ExponentialAverage[8](totalPrice)
c2 = (open < indicator2)
c3 = (open < low[2])
IF c2 OR c3 AND LongOnMarket THEN
SELL AT MARKET
ENDIF
IF c2 THEN
Flag = 0
ENDIF
//
Timeframe(default)
|
Los geht’s:
// Festlegen der Code-Parameter
DEFPARAM CumulateOrders = False // Kumulieren von Positionen deaktiviert
Timeframe(2h,UpdateOnClose) //2h
// Pivot calculations
Pivot = (High + Low + Close) / 3 //Pivot
ResR1 = Pivot + (Pivot - low)
ResR2 = Pivot + (high - low)
ResR3 = high + (2 * (Pivot - low))
SupS1 = Pivot - (high - Pivot)
SupS2 = Pivot - (high - low)
SupS3 = low - (2 * (high - Pivot))
//
Timeframe(default) // 15min
ONCE Flag = 0
// Bedingungen zum Einstieg in Long-Positionen
indicator1 = ExponentialAverage[8](totalPrice)
c1 = (open > indicator1)
Ema20 = average[20,1](close)
Ema50 = average[50,1](close)
Distance = (abs(Ema20 - Ema50) <= 20 * pipsize)
IF c1 AND Not OnMarket AND Flag = 0 AND Distance THEN
BUY 1 CONTRACT AT MARKET
Flag = 1
ENDIF
// Bedingungen zum Ausstieg von Long-Positionen
indicator2 = ExponentialAverage[8](totalPrice)
c2 = (open < indicator2)
c3 = (open < low[2])
c4 = close CROSSES OVER ResR2
IF (c2 OR c3 OR c4) AND LongOnMarket THEN
SELL AT MARKET
ENDIF
IF c2 THEN
Flag = 0
ENDIF
Hi Roberto,
ich bräuchte nochmal deine Hilfe.
Wie kann ich es programmieren, dass nach einer Positionsschließung, nicht sofort der nächste CS erneut eine Position eröffnet, sondern eine Kerze ablaufen muss?
Geht das mit einer Flag? Wenn wie würde dann der Code lauten?
Danke Dir.
Ich habe die TradeON-Flagge hinzugefügt:
// Festlegen der Code-Parameter
DEFPARAM CumulateOrders = False // Kumulieren von Positionen deaktiviert
Timeframe(2h,UpdateOnClose) //2h
// Pivot calculations
Pivot = (High + Low + Close) / 3 //Pivot
ResR1 = Pivot + (Pivot - low)
ResR2 = Pivot + (high - low)
ResR3 = high + (2 * (Pivot - low))
SupS1 = Pivot - (high - Pivot)
SupS2 = Pivot - (high - low)
SupS3 = low - (2 * (high - Pivot))
//
Timeframe(default) // 15min
ONCE Flag = 0
ONCE TradeON = 1
// Bedingungen zum Einstieg in Long-Positionen
indicator1 = ExponentialAverage[8](totalPrice)
c1 = (open > indicator1)
Ema20 = average[20,1](close)
Ema50 = average[50,1](close)
Distance = (abs(Ema20 - Ema50) <= 20 * pipsize)
IF c1 AND Not OnMarket AND Flag = 0 AND Distance AND TradeON THEN
BUY 1 CONTRACT AT MARKET
Flag = 1
TradeON = 0
ENDIF
// Bedingungen zum Ausstieg von Long-Positionen
indicator2 = ExponentialAverage[8](totalPrice)
c2 = (open < indicator2)
c3 = (open < low[2])
c4 = close CROSSES OVER ResR2
IF (c2 OR c3 OR c4) AND LongOnMarket THEN
SELL AT MARKET
ENDIF
IF c2 THEN
Flag = 0
ENDIF
IF Not OnMarket AND TradeON[1] = 0 THEN
TradeON = 1
ENDIF
Hi Roberto,
danke Dir.
Ich werde noch ein wenig ausprobieren. Bisher hat es nicht zu der gewünschten Verbesserung geführt.
Ich habe noch ein weiteres Anliegen:
Wie kann ich eine Verkaufsbedingung schreiben, dass die große rote Kerze während sie das Low der höchsten grünen Kerze (gelbe Linie aus dem Bild) nach unten crossed sofort einen Verkauf auslöst. – Nicht erst bei der nächsten Kerze.
Danke vorab.
Hier ist es (habe ich noch nicht probiert):
// Festlegen der Code-Parameter
DEFPARAM CumulateOrders = False // Kumulieren von Positionen deaktiviert
Timeframe(2h,UpdateOnClose) //2h
// Pivot calculations
Pivot = (High + Low + Close) / 3 //Pivot
ResR1 = Pivot + (Pivot - low)
ResR2 = Pivot + (high - low)
ResR3 = high + (2 * (Pivot - low))
SupS1 = Pivot - (high - Pivot)
SupS2 = Pivot - (high - low)
SupS3 = low - (2 * (high - Pivot))
//
Timeframe(default) // 15min
ONCE Flag = 0
ONCE TradeON = 1
ONCE HIbar = 0
Bullish = close > open
Bearish = close < open
IF Bullish THEN
IF Bearish[1] THEN
HIbar = BarIndex
ELSE
IF high > high[BarIndex-HIbar] THEN
HIbar = BarIndex
ENDIF
ENDIF
ENDIF
// Bedingungen zum Einstieg in Long-Positionen
indicator1 = ExponentialAverage[8](totalPrice)
c1 = (open > indicator1)
Ema20 = average[20,1](close)
Ema50 = average[50,1](close)
Distance = (abs(Ema20 - Ema50) <= 20 * pipsize)
IF c1 AND Not OnMarket AND Flag = 0 AND Distance AND TradeON THEN
BUY 1 CONTRACT AT MARKET
Flag = 1
TradeON = 0
ENDIF
// Bedingungen zum Ausstieg von Long-Positionen
indicator2 = ExponentialAverage[8](totalPrice)
c2 = (open < indicator2)
c3 = (open < low[2])
c4 = close CROSSES OVER ResR2
IF (c2 OR c3 OR c4) AND LongOnMarket THEN
SELL AT MARKET
ENDIF
IF c2 THEN
Flag = 0
ENDIF
IF Not OnMarket AND TradeON[1] = 0 THEN
TradeON = 1
ENDIF
IF OnMarket AND close > low[BarIndex-HIbar] THEN
SELL AT low[BarIndex-HIbar] STOP
ENDIF
Hi Roberto,
es klappt!
Kannst du mir das ebenfalls noch für Long programmieren, dass die Position geschlossen wird, sobald das High der Vor-Vor-Kerze überschritten wird. (siehe Bild)
Außerdem wollte ich noch einen Verkauf einbauen, sobald eine Kerze den Pivot ResR4 überschreitet. Mit folgendem Code klappt es nicht.
Was ist hier falsch:
if longonmarket and high > ResR4 then
sell at ResR4 stop
endif
Es wäre toll, wenn Du beide Punkte in den Code integrieren könntest.
Danke.
<!–more–>
Soll ich eine LONG-Position schließen, weil sie ein Maximum überschreitet?