Da ist er:
// 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))
ResR4 = (2 * Pivot) + high - (3 * low)
SupS1 = Pivot - (high - Pivot)
SupS2 = Pivot - (high - low)
SupS3 = low - (2 * (high - Pivot))
SupS4 = (2 * Pivot) + low - (3 * high)
//
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
IF LongOnMarket AND high > ResR4 THEN
SELL AT ResR4 STOP
ENDIF
Es müssen keine Short-Trades geschlossen werden.
Hi Roberto,
danke für die Anpassung:
- Die Long-Position wird aber leider nicht direkt bei überschreiten des ResR4 geschlossen. Siehe Bild 1.
2. Ich habe meinen Code für Short erweitert.
s1 = close < ExponentialAverage[8](totalPrice)
IF s1 and TradeOn = 1 and Not OnMarket THEN
SELLSHORT 4 CONTRACT AT MARKET
TradeOn =0
ENDIF
Wie würde hierzu der Code lauten, wenn der Short-Trade geschlossen werden soll, wenn das High der Vor-Vor-Kerze überschritten wird? (siehe Bild 2)
3. Ist es möglich, den Code so zu optimieren, dass nach einem Gewinn-Trade, während der nächsten zwei Kerzen keine neue Order in die gleiche Handelsrichtung ausgeführt werden darf?
Danke dir vorab.
Hi Roberto,
könntest Du mir hier nochmal behilflich sein ?
Danke.
Ja, ich denke, ich schaffe es am Wochenende.
1. Die LONG-Position wird geschlossen, wenn der Preis auf RES4 fällt, NACHDEM die Kerze geschlossen wurde
2. Welches ist die Kerze, verglichen mit der Eintragskerze, in der Sie den KURZ schließen möchten?
3. Ich habe die 2-Kerzen-Zählung hinzugefügt, wenn es einen Gewinn gibt.
// MatzeDue system
//
// 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))
ResR4 = (2 * Pivot) + high - (3 * low)
SupS1 = Pivot - (high - Pivot)
SupS2 = Pivot - (high - low)
SupS3 = low - (2 * (high - Pivot))
SupS4 = (2 * Pivot) + low - (3 * high)
//
Timeframe(default) // 15min
ONCE Flag = 0
ONCE TradeOnL = 1
ONCE TradeOnS = 1
ONCE HIbar = 0
ONCE LONGtype = 1
ONCE SHORTtype = 2
ONCE TradeType = 0
ONCE LongCount = 0
ONCE ShortCount = 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
//
IF IntraDayBarIndex = 0 THEN
TradeOnL = 1
TradeOnS = 1
TradeType = 0
LongCount = 0
ShortCount = 0
ENDIF
//
IF StrategyProfit > StrategyProfit[1] THEN
IF TradeType = LONGtype THEN
TradeOnL = 0
LongCount = 2
ELSIF TradeType = SHORTtype THEN
TradeOnS = 0
ShortCount = 2
ENDIF
ENDIF
//
IF Not OnMarket THEN
TradeType = 0
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 TradeOnL THEN
BUY 1 CONTRACT AT MARKET
TradeType = LONGtype
Flag = 1
TradeOnL = 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
//
//Short
s1 = close < ExponentialAverage[8](totalPrice)
IF s1 and TradeOnS = 1 and Not OnMarket THEN
//SELLSHORT 4 CONTRACT AT MARKET
TradeOnS = 0
ENDIF
//
IF c2 THEN
Flag = 0
ENDIF
IF LongOnMarket AND close > low[BarIndex-HIbar] THEN
SELL AT low[BarIndex-HIbar] STOP
ENDIF
IF LongOnMarket AND high > ResR4 THEN
SELL AT ResR4 STOP
ENDIF
//
LONGcount = max(0,LONGcount -1)
SHORTcount = max(0,SHORTcount -1)
IF LONGcount = 0 AND LONGcount[1] > 0 THEN
TradeOnL = 1
ENDIF
IF SHORTcount = 0 AND SHORTcount[1] > 0 THEN
TradeOnS = 1
ENDIF
graph StrategyProfit > StrategyProfit[1]
graph ShortCount
graph LongCount
graph TradeOnL
graph TradeOnS
Hi Roberto, danke
zu 1.) kann man auch sofort die Kerze verkaufen, die das ResR4 crossed?
zu 2.) Es soll die Kerze die Short-Position schließen, die von der Vor-Vor-Kerze das High überschreitet. (siehe Bild gelbe Linie)
Lässt sich das noch anpassen?
1. Möchten Sie, dass es herauskommt, wenn RES4 berührt, aber sollte es herauskommen, wenn der Preis von unter oder über RES4 kommt?
2. vielleicht gibt es ein Problem mit der Übersetzung, aber ich kann nicht verstehen, welche Kerze Sie meinen, in Bezug auf den Eintrag SHORT; zeigt diejenige an, in die SHORT eintritt, und diejenige, die es verlassen sollte.
Ich sehe, es gibt wahrscheinlich ein Übersetzungsproblem.
Versuchen Sie, sich Fragen auf andere Weise zu stellen.
Frage Nummer 1:
. Der Handel muss geschlossen werden, wenn der Preis Res4 berührt. Möchten Sie, dass es geschlossen wird, wenn der Preis steigt und Res4 berührt, oder wenn der Preis fällt und Res4 berührt,
. oder es egal ist, ob er steigt oder fällt?
Frage Nummer 2:
. Geben Sie mir ein Beispiel mit einem Pfeil, wo eine SHORT-Operation eintritt; dann sagen Sie mir, bei welcher NÄCHSTEN Kerze sie ausgehen muss (und warum sie ausgehen muss).
zu 1. Long Position schließen, wenn der Preis steigt und Res4 berührt.
zu 2. Short Position schließen, wenn Kerze #4 das High von Kerze #2 berührt, siehe Bild im Anhang.
Dies verlässt LONG, wenn ResR4 erreicht ist.
Und es verlässt SHORT, wenn das Maximum der Kerze nach dem Eintrag (Nummer 2) erreicht ist:
// MatzeDue system
//
// 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))
ResR4 = (2 * Pivot) + high - (3 * low)
SupS1 = Pivot - (high - Pivot)
SupS2 = Pivot - (high - low)
SupS3 = low - (2 * (high - Pivot))
SupS4 = (2 * Pivot) + low - (3 * high)
//
Timeframe(default) // 15min
ONCE Flag = 0
ONCE TradeOnL = 1
ONCE TradeOnS = 1
ONCE HIbar = 0
ONCE LONGtype = 1
ONCE SHORTtype = 2
ONCE TradeType = 0
ONCE LongCount = 0
ONCE ShortCount = 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
//
IF IntraDayBarIndex = 0 THEN
TradeOnL = 1
TradeOnS = 1
TradeType = 0
LongCount = 0
ShortCount = 0
ENDIF
//
IF StrategyProfit > StrategyProfit[1] THEN
IF TradeType = LONGtype THEN
TradeOnL = 0
LongCount = 2
ELSIF TradeType = SHORTtype THEN
TradeOnS = 0
ShortCount = 2
ENDIF
ENDIF
//
IF Not OnMarket THEN
TradeType = 0
ShortBAR = 0
ShortEXIT = 0
ENDIF
IF ShortOnMarket THEN
IF BarIndex = ShortBAR THEN
ShortEXIT = high
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 TradeOnL THEN
BUY 1 CONTRACT AT MARKET
TradeType = LONGtype
Flag = 1
TradeOnL = 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
//
//Short
s1 = close < ExponentialAverage[8](totalPrice)
IF s1 and TradeOnS = 1 and Not OnMarket THEN
SELLSHORT 4 CONTRACT AT MARKET
TradeOnS = 0
ShortBAR = BarIndex + 2
ShortEXIT = 0
ENDIF
//
IF c2 THEN
Flag = 0
ENDIF
IF LongOnMarket AND close > low[BarIndex-HIbar] THEN
SELL AT low[BarIndex-HIbar] STOP
ENDIF
IF LongOnMarket AND high > ResR4 THEN
SELL AT ResR4 STOP
ENDIF
//
IF LongOnMarket THEN
IF close < ResR4 THEN
SELL AT ResR4 LIMIT
ELSIF close > ResR4 THEN
SELL AT ResR4 STOP
ENDIF
ENDIF
//
IF ShortOnMarket AND ShortEXIT > 0 THEN
IF close > ShortEXIT THEN
EXITSHORT AT ShortEXIT STOP
ELSIF close > ShortEXIT THEN
EXITSHORT AT ShortEXIT LIMIT
ENDIF
ENDIF
//
LONGcount = max(0,LONGcount -1)
SHORTcount = max(0,SHORTcount -1)
IF LONGcount = 0 AND LONGcount[1] > 0 THEN
TradeOnL = 1
ENDIF
IF SHORTcount = 0 AND SHORTcount[1] > 0 THEN
TradeOnS = 1
ENDIF
graph StrategyProfit > StrategyProfit[1]
graph ShortCount
graph LongCount
graph TradeOnL
graph TradeOnS
graphonprice ShortEXIT coloured(255,0,0,255)
Hi Roberto,
Long Exit im ResR4 funktioniert 🙂
aber der SHORT-Exit, wenn das Maximum der Kerze (Nummer 2) erreicht ist, funktioniert nicht. Kannst Du mir die notwendigen Bedingungen im Code farblich markieren?
Möglicherweise habe ich etwas übersehen.
Danke.