ADX EFI 50 Pullback-Strategie für gleitende Durchschnittskanäle

Schriftsteller:ChaoZhang, Datum: 2023-09-19 17:10:51
Tags:

Übersicht

Diese Strategie verwendet eine Kombination aus dem 50-Perioden- gleitenden Durchschnittskanal, dem ADX-Richtungsindex und dem EFI-Energieindex für den Trendhandel. Wenn der EFI-Energieindex einen Trendstart zeigt, tritt er während eines Pullbacks innerhalb des Kanalbereichs von 50 MA in den Markt. Die Strategie eignet sich für den Zeitrahmen von 1 Minute.

Strategie Logik

  1. Berechnen Sie den 50-Perioden- gleitenden Durchschnittskanal, wobei der obere Bereich der gleitende Durchschnitt der hohen Preise und der untere Bereich der gleitende Durchschnitt der niedrigen Preise ist.

  2. Berechnen Sie den ADX-Richtungsindex zur Bestimmung der Trendstärke und berücksichtigen Sie den Handel nur während starker Trends (ADX>20).

  3. Berechnen Sie die langfristigen (120-Perioden-) und kurzfristigen (15-Perioden-) EFI-Energiedexzepte. Der langfristige Index über 0 zeigt eine allgemeine Aufwärtstrendentwicklung der Energie, während der kurzfristige Index unter 0 ein kurzfristiges Aufwärtstrendentwicklungsrückgang zeigt.

  4. Wenn die langfristigen und kurzfristigen EFI-Indizes ein Kaufsignal geben und der Preis zum 50 MA-Kanal zurückzieht, wird eine Long-Position eingegangen.

  5. Wenn die langfristigen und kurzfristigen EFI-Indizes ein Verkaufssignal geben und der Preis zum 50 MA-Kanal zurückzieht, wird eine Short-Position eingegangen.

Analyse der Vorteile

Diese Strategie kombiniert Trend-, Momentum- und Pullback-Signale, um die meisten falschen Ausbrüche effektiv auszufiltern.

  1. Der Kanal 50 MA bestimmt eindeutig die Haupttrendrichtung.

  2. Der ADX-Index sorgt dafür, dass der Handel nur bei klaren Trends stattfindet und damit Whipsaws in unterschiedlichen Märkten vermieden werden.

  3. Der EFI-Index erfasst Trend-Energie-Schwellen für Eingangspunkte mit geringem Risiko.

  4. Das Warten auf Rückzüge ermöglicht bessere Risiko-Rendite-Verhältnisse.

  5. Mehrfache Indikatorenkombinationen filtern das Risiko eines falschen Ausbruchs effektiv aus.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. Eine starke Tendenz kann auch größere Pullbacks mit sich bringen, was größere Stop-Loss-Bereiche erfordert.

  2. In den Märkten mit unterschiedlichen Märkten kann der EFI falsche Signale auslösen, so dass eine Kombination mit Trendfilterindikatoren wie ADX erforderlich ist.

  3. Zu tiefe Pullbacks können Einstiegspunkte verfehlen und möglicherweise eine MA-Abstimmung erfordern.

  4. Ein einziges Handelsinstrument versäumt es, die systematischen Risiken des Marktes zu diversifizieren.

Optimierungsrichtlinien

Diese Strategie kann in mehrfacher Hinsicht verbessert werden:

  1. Testen Sie auf mehr Instrumenten, um optimale universelle Parameter zu finden.

  2. Zusätzliche Gewinnübernahme über Trailing Stop-Losses.

  3. Parameteroptimierung von ADX, EFI-Einstellungen und mehr.

  4. Einbeziehen von maschinellem Lernen für eine robuste Trend-Versuchung gegen falsche Ausbrüche.

  5. Hinzufügen von Multi-Zeitrahmen-Analyse mit Positionsgrößen zwischen Zeitrahmen.

  6. Mehr Trendfilterindikatoren zu bewerten, um die Signalqualität zu verbessern.

Zusammenfassung

Insgesamt ist dies eine ausgezeichnete Trend-Pullback-Strategie für Anfänger, die Trend-, Momentum- und Pullback-Signale kombiniert, um falsche Ausbrüche zu filtern.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © trent777brown

//@version=5
// strategy("adx efi 50 ema channel, trend pullback", overlay=true, margin_long=100, margin_short=100, currency=currency.USD, initial_capital= 100000, close_entries_rule="ANY")

//bollingerbands
[basis, upperband, lowerband]= ta.bb(ohlc4, 50, 3) 
[basis2, upperband2, lowerband2]= ta.bb(ohlc4, 50, 2)
psar= ta.sar(.1, .1, .09)
ema50= ta.ema(hlc3, 50) 
ema50hi= ta.ema(high, 50) 
ema50lo= ta.ema(low, 50) 
ema18= ta.wma(hlc3, 15)
wma9= ta.wma(open, 9) 
wma5= ta.wma(ohlc4, 5) 
ema34= ta.rma(hlc3, 10)
[macdline, signalline, histline]= ta.macd(hlc3, 5, 34, 5) 
[macdline2, signalline2, histline2]= ta.macd(hlc3, 15,70, 24) 
[diplus, diminus, adx]= ta.dmi(20, 20) 
[diplus2, diminus2, adx2]= ta.dmi(12, 12)
rsi= ta.rsi(hlc3, 14)
rsisma= ta.sma(rsi, 10) 
stoch= ta.stoch(close, high, low, 21)
k= ta.wma(stoch, 3)
d= ta.wma(k, 3)
trendline5= ta.wma(hlc3, 300) 
trendline9= ta.wma(open, 540) 
trendline18= ta.wma(open, 1080)
atr=ta.atr(14)
plot(psar, color=color.red, style=plot.style_circles)
plot(ema50, color=color.white, linewidth=4) 
plot(ema50hi, color=color.yellow, linewidth=4)
plot(ema50lo, color=color.yellow, linewidth=4)
plot(ema34, color=color.aqua, linewidth=4)
plot(wma9, color=color.gray, linewidth=4) 
plot(wma5, color=color.lime, linewidth=4) 
plot(trendline18, color=color.orange, linewidth=4) 
plot(upperband, color=color.navy, linewidth=4) 
plot(lowerband, color=color.navy, linewidth=4)
plot(upperband2, color=color.navy, linewidth=4)
plot(lowerband2, color=color.navy, linewidth=4)
plot(trendline9, color=color.maroon, linewidth=4)
plot(trendline5, color=color.yellow, linewidth=4)


efi = ta.rma(ta.change(close) * volume, 15)
efi2= ta.rma(ta.change(close) * volume, 120)

buy= efi2 > 0 and efi < 0 and efi[1] < efi  and adx >= 20 and open < ema50hi
sell= efi2 < 0 and efi > 0 and efi[1] > efi and adx >= 20 and open > ema50lo

//ell= rsi > 50 and ta.crossunder(wma5, wma9) and psar > high and ema18 <= ema50hi and macdline > 0 and macdline < signalline
//buy= ta.crossunder(close, ema50) and rsi < 50 and adx2 < adx2[1] and k < 25 and psar > high
//uy= rsi < 60 and ta.crossover(wma5, wma9)  and psar < low and ema18 >= ema50 and macdline2 > 0 and diplus2 < 30 // and histline2 < 0  
//buy=  ema18 > ema50 and ta.crossunder(rsi, 45) and open < ema50hi and adx2[3] < adx2 and diplus2 < 25 and macdline < 0  and adx < 10
//sell= ta.crossover(close, ema50) and rsi > 50 and adx2 < adx2[1] and k > 75 and psar < low
//ell= ema18 < ema50 and ta.crossover(rsi, 60) and open > ema50lo and diminus2 < 30 and macdline2 < 0 and adx2[2] < adx2 
//buy sell conditions 1
//buy= ta.crossover(wma5, ema18) and ema18 > ema50lo and diplus > 22 and diminus < 22 and adx > 15
//ell= ta.crossover(psar, high) and macdline2 < signalline2 and rsi < rsisma
//when conditions
buytrig= ema34 >= ema50lo
selltrig= ema34 <= ema50hi
//strategy
sl= low - atr * 8
tp= high +  atr * 4
sellsl= high + atr * 8
selltp= low - atr * 4
if(buy)
    strategy.entry("buy", strategy.long, when= buytrig)
    strategy.exit("exit buy", "buy", limit= tp, stop= sl)
    strategy.close("close", when= ta.crossunder(ema34, ema50lo))
if(sell)
    strategy.entry("sell", strategy.short, when= selltrig)
    strategy.exit("exit sell", "sell", limit= selltp, stop= sellsl)


Mehr