Dynamische Mark-Average-Trend-Strategie


Erstellungsdatum: 2023-11-15 17:45:13 zuletzt geändert: 2023-11-15 17:45:13
Kopie: 0 Klicks: 621
1
konzentrieren Sie sich auf
1617
Anhänger

Dynamische Mark-Average-Trend-Strategie

Überblick

Die Strategie basiert auf dynamischen Mark-Even-Indikatoren, kombiniert mit Bollinger Bands und RSI für die Filterung von Handelssignalen und ermöglicht eine Trendverfolgungsstrategie, bei der nur mehr getan wird und keine Leerstände gemacht werden. Die Strategie beurteilt die Trends durch Berechnung der Veränderungen der dynamischen Mark-Even-Linie des Hike-Line-Abschlusspreises und sendet Handelssignale im Vergleich zu den Bollinger Bands. In Kombination mit dem RSI-Filter können die Ausbrüche der Trends effektiv identifiziert werden, um eine Trendverfolgung zu ermöglichen.

Strategieprinzip

Der Kern dieser Strategie ist die Berechnung der Veränderung der dynamischen Mark-Mittellinie für den Heck-Linien-Schlusskurs. Konkret wird die Differenz zwischen der aktuellen K-Linie und den Mark-Mittellinien der beiden vorherigen K-Linien berechnet und mit dem Sensitivitätsfaktor multipliziert, um den genauen Mark-Mittellinien-Wandel zu erhalten.

Dann wird der Wert der Veränderung mit der Differenz zwischen den oberen und unteren Bahnen im Brin-Band verglichen. Wenn die Mark-Even-Linie sich größer als die Brin-Band-Differenz ändert, wird der Trend zu einem Antennenbruch angesehen. Wenn der Ausbruch positiv ist, d. h. wenn die Mark-Even-Linie sich positiv ändert, erzeugt dies ein Multi-Signal und eine grüne Säulenlinie.

Darüber hinaus hat die Strategie einen RSI-Filter, der nur mehrere Signale sendet, wenn der RSI über der Schwelle liegt, um das Risiko einer Trendwende zu vermeiden.

Strategische Vorteile

  • Die Dynamische Mark-Even-Linie wird verwendet, um Trends zu beurteilen und Trends zu verfolgen.
  • Die Brin-Band als dynamischer Indikator, in Kombination mit der Mark-Even-Linie, kann Trend-Ausbrüche besser erkennen
  • RSI-Filter verhindern falsche Signale durch Niedrig-Reball
  • Das ist eine gute Idee, um den steigenden Markt zu unterstützen, wenn man mehr arbeitet und nicht weniger.
  • Anpassbare Parameter, die flexibel und für verschiedene Sorten und Zyklen optimiert werden können

Strategisches Risiko

  • “Wenn man nur mehr macht und nicht weniger, profitiert man nicht von den rückläufigen Märkten”.
  • Übermäßige Abhängigkeit von Parameteroptimierungen, Re-Tests für verschiedene Sorten und Zyklen
  • Der Trend könnte sich umkehren, was zu größeren Verlusten führen könnte.
  • Ein falscher RSI-Filter kann zu verpassten Handelschancen führen
  • Hohe Parameter-Sensitivität kann zu Noise-Transactions führen

Risikominderungsmaßnahmen umfassen: die richtige Anpassung der Parameter, um sie stabiler zu machen, in Kombination mit anderen Indikatoren, um eine Trendwende zu beurteilen, die nur bei klaren Trends in der langen Linie verwendet werden, usw.

Richtung der Strategieoptimierung

Die Strategie kann noch optimiert werden:

  • Versuchen Sie mit verschiedenen Preisquellen, z. B. Schlusskurs, Durchschnittspreis, um bessere Gleitwerte zu erhalten.

  • Anpassung der Periodiparameter für die Mark-Gleichlinie und den Brin-Band, optimiert für verschiedene Sorten

  • Versuchen Sie, die Proportionsbeziehungen anstelle des Sensitivitätskoeffizienten zu verwenden, um die Ergebnisse des Indikators intuitiver zu machen

  • Hinzufügen von anderen Filtern, wie z. B. Trendmittellinien, Transaktionsvolumen, um die Signalqualität zu verbessern

  • Entwicklung einer Strategie für die Rückwärtsbewegung basierend auf der Form der Kennziffer

  • Ein Stop-Loss-Mechanismus zur besseren Risikokontrolle

Zusammenfassen

Diese Strategie ist insgesamt eine eher stabile Trend-Tracking-Strategie. Sie nutzt die dynamische Gleichung, um die Trendrichtung zu bestimmen, Brin-Band-Explosionspunkte zu identifizieren, RSI-Filter-Falschsignale, um ein Trendsystem zu realisieren, das nur mehr tut. Es besteht jedoch ein gewisses Risiko, dass Parameteroptimierungen für verschiedene Sorten und Zyklen erforderlich sind und keine Abwärtsbewegungen profitieren können.

Strategiequellcode
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

///////////Original Script Courtesy of Lazy_Bear.... Absolute Legend\\\\\\\\\\\\\\\

strategy('SmoothedWaddah', overlay=false, initial_capital=1)
sensitivity = input(150, title='Sensitivity')
fastLength = input(20, title='MacD FastEMA Length')
slowLength = input(40, title='MacD SlowEMA Length')
channelLength = input(20, title='BB Channel Length')
mult = input(1.5, title='BB Stdev Multiplier')
RSI14filter = input(40, title='RSI Value trade filter')

////////////MacD Calculation of price//////////////////////////////
calc_macd(source, fastLength, slowLength) =>
    fastMA = ta.ema(source, fastLength)
    slowMA = ta.ema(source, slowLength)
    fastMA - slowMA

/////////BolingerBand Calculation of Price///////////////////////
calc_BBUpper(source, length, mult) =>
    basis = ta.sma(source, length)
    dev = mult * ta.stdev(source, length)
    basis + dev

calc_BBLower(source, length, mult) =>
    basis = ta.sma(source, length)
    dev = mult * ta.stdev(source, length)
    basis - dev

//////heinkenashi chart call for closing price "smoothing mechanism"\\\\\\\\\\\\\\\\\\\\\\\\\\\
point = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close)

////////////////////T1 is change in MacD current  candle from previous candle Sensitivy amplifies calculation/////////////////////
t1 = (calc_macd(point, fastLength, slowLength) - calc_macd(point[1], fastLength, slowLength)) * sensitivity
//////////////////////T2 is  T1 from two candles prior\\\\\\\\\\\\\\\\\\\\\\\\\\\
t2 = (calc_macd(point[2], fastLength, slowLength) - calc_macd(point[3], fastLength, slowLength)) * sensitivity

////////////////E1 is difference in bolinger band upper and lower...E2 is E1 from one candle prior not needed//////////////
e1 = calc_BBUpper(ohlc4, channelLength, mult) - calc_BBLower(ohlc4, channelLength, mult)
//e2 = (calc_BBUpper(close[1], channelLength, mult) - calc_BBLower(close[1], channelLength, mult))

//////signal bar printing.. Up if MacD positive .. Down if MacD negative//////////
trendUp = t1 >= 0 ? t1 : 0
trendDown = t1 < 0 ? -1 * t1 : 0

///////plots difference in macD*Sensitivity, color change if increasing or decreasing. 
//////color is green/lime if explosion is up \ color is red/orange if explosion is down/////////
plot(trendUp, style=plot.style_columns, linewidth=1, color=trendUp < trendUp[1] ? color.new(color.lime,45) : color.new(color.green,45), title='UpTrend')
plot(trendDown, style=plot.style_columns, linewidth=1, color=trendDown < trendDown[1] ? color.new(color.orange,45) : color.new(color.red,45), title='DownTrend')
plot(e1, style=plot.style_line, linewidth=2, color=color.new(#A0522D, 0), title='ExplosionLine')


////////////Entry conditions and Concept/////////////////////
////////////Long Only System. T1 is measuring the distance between MACD EMA's. This is Multiplied
////////////by the sensitivity so that it can be compared to the difference between BollingerBand. 
/////////////{this could have been a ratio maybe i will work with that in a different script.} 
/////////////I found that 135-175 sensitivy allows for values to be compared on most charts.....
////////////If the (difference between the EMA)*(Sensitivity) is greater than (BB upper line- BB lower line)
////////////it is considered an explosion in either the downside or the upside.The indicator will print
///////////a bar higher than the trigger line either green or red (up or down respectively)//////////////////

longCondition = trendUp > e1 and ta.rsi(close, 14) > RSI14filter
if longCondition
    strategy.entry('up', strategy.long)

strategy.close('up', trendDown > e1)