Diese Strategie heißt
Die Kernindikatoren dieser Strategie sind die schnellen und langsamen gleitenden Durchschnittslinien. Die Strategie verwendet die Crossover-Beziehung zwischen den schnellen und langsamen gleitenden Durchschnittslinien, um Preistrends zu bestimmen und auf dieser Grundlage Handelsentscheidungen zu treffen.
Insbesondere wird der schnell gleitende Durchschnittslinie-Parameter auf 24 Perioden und der langsam gleitende Durchschnittslinie-Parameter auf 100 Perioden gesetzt. Wenn die schnellgleitende Durchschnittslinie über die langsam gleitende Durchschnittslinie von unten geht, zeigt sie an, dass die Preise einen Aufwärtstrend betreten, und die Strategie wird zu diesem Zeitpunkt ein Kaufsignal ausstellen. Wenn die schnellgleitende Durchschnittslinie unter die langsam gleitende Durchschnittslinie von oben geht, zeigt sie an, dass die Preise einen Abwärtstrend betreten, und die Strategie wird zu diesem Zeitpunkt ein Verkaufssignal ausstellen.
Durch die Beurteilung der Kreuzungsrichtung der schnellen und langsamen gleitenden Durchschnittslinien können Preisentwicklungsänderungen wirksam erfasst werden, um bei Kauf- und Verkaufsentscheidungen zu helfen.
Diese Strategie hat folgende Vorteile:
Das Prinzip ist einfach und leicht zu verstehen, leicht umzusetzen.
Die Parameter der schnellen und langsamen gleitenden Durchschnitte können an die tatsächlichen Bedingungen angepasst werden, wodurch die Strategie flexibler wird.
Eine starke Fähigkeit, Trendveränderungen zu erfassen.
Sie kann die Konsolidierung effektiv filtern und ungültige Geschäfte reduzieren.
Diese Strategie birgt auch einige Risiken:
Als Trend-Tracking-Indikatoren liegen Crossover-Signale von Doppel gleitenden Durchschnitten oft um einen bestimmten Zeitraum zurück, was zu einem gewissen Grad an Opportunitätskosten führen kann.
Es ist leicht, falsche Signale in schwankenden Märkten zu erzeugen. Doppel gleitende Durchschnitte funktionieren am besten, wenn die Preise einen klaren Trend zeigen.
Die falsche Einstellung der Parameter kann die Strategieleistung beeinträchtigen. Wenn die Parameter des schnellen und langsamen gleitenden Durchschnitts falsch eingestellt werden, beeinträchtigt dies die Empfindlichkeit bei der Erfassung von Trend-Kreuzungen.
Entsprechende Lösungen
Der gleitende Durchschnittszeitraum wird angemessen verkürzt, um die Empfindlichkeit der Crossover-Signale zu erhöhen.
Hinzufügen von Volatilitäts- oder Volumenindikatoren zur Filtration, um ungültige Trades in schwankenden Märkten zu reduzieren.
Parameteroptimierung, um die besten Parameterkombinationen zu finden.
Die Strategie kann in folgenden Aspekten optimiert werden:
Verwenden Sie fortschrittlichere gleitende Durchschnittstechnische Indikatoren wie den linearen gewichteten gleitenden Durchschnitt anstelle des einfachen gleitenden Durchschnitts, um die Nachverfolgungs- und Vorhersagefähigkeit der Indikatoren zu verbessern.
Zusätzliche Hilfsindikatoren wie Volumen- und Volatilitätsindikatoren für die gemeinsame Filterung hinzufügen, um ungültige Signale zu reduzieren.
Optimieren Sie schnelle und langsame gleitende Durchschnittsparameter, um die Anpassungsfähigkeit der Parameter zu verbessern.
Nach dem Markteintritt der Strategie können Stop-Loss-Punkte und Trailing-Stop-Loss so konzipiert werden, dass einzelne Verluste kontrolliert werden.
Neue Technologien wie Deep Learning können verwendet werden, um komplexere Preismuster zu identifizieren, um bewegte Durchschnittsquerschnitte bei der Kauf- und Verkaufsentscheidung zu unterstützen, um bessere Ergebnisse zu erzielen.
Im Allgemeinen ist diese Strategie relativ klassisch und einfach. Sie bestimmt Preistrends auf der Grundlage von doppelten gleitenden Durchschnittsindikatoren, um Chancen zu erkennen, wenn sich die Preise von der Konsolidierung zum Trend bewegen. Die Vorteile sind klare Logik und Einfachheit, die für die Verfolgung von Trending-Märkten geeignet sind. Es gibt aber auch einige Mängel wie Signalverzögerung, die durch Parameter-Tuning und Optimierung verbessert werden müssen, um die Stabilität und Effizienz der Strategie zu erhöhen. Insgesamt ist dies als Grundstrategie ziemlich geeignet, muss aber kontinuierlich optimiert werden, um sich an komplexere Marktumgebungen anzupassen.
/*backtest start: 2024-01-21 00:00:00 end: 2024-02-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Pine Script Tutorial Example Strategy 1', overlay=true, initial_capital=100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity) //OBV src = close obv = ta.cum(math.sign(ta.change(src)) * volume) ma(source, length, type) => switch type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing") smoothingLength = input.int(title = "Length", defval = 20, minval = 1, maxval = 100, group="Smoothing") Limit = input.float(title = "Limit", defval = 1, minval = 0.1, maxval = 10, group="Smoothing") smoothingLine_ma = ma(obv,smoothingLength, typeMA) obv_diff = (obv-smoothingLine_ma)*100/obv //PVT var cumVolp = 0. cumVolp += nz(volume) if barstate.islast and cumVolp == 0 runtime.error("No volume is provided by the data vendor.") srcp = close vt = ta.cum(ta.change(srcp)/srcp[1]*volume) smoothingLine_map = ma(vt,smoothingLength, typeMA) pvt_diff = (vt-smoothingLine_map)*100/vt // plot(obv_diff+close+100 ,title="OBV_DIFF", color = color.rgb(255, 118, 54)) // plot(pvt_diff+close+80 ,title="PVT_DIFF", color = color.rgb(223, 61, 255)) indicator = (pvt_diff+obv_diff)/2 goLongCondition1 = ta.crossover(indicator,Limit) timePeriod = time >= timestamp(syminfo.timezone, 2023,1, 1, 0, 0) // Backtesting Time notInTrade = strategy.position_size <= 0 if goLongCondition1 and timePeriod and notInTrade stopLoss = low * 0.99 // -2% takeProfit = high * 1.05 // +5% strategy.entry('long', strategy.long ) strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit) // fastEMA = ta.ema(close, 24) // slowEMA = ta.ema(close, 100) // goLongCondition1 = ta.crossover(fastEMA, slowEMA) // timePeriod = time >= timestamp(syminfo.timezone, 2018, 12, 15, 0, 0) // notInTrade = strategy.position_size <= 0 // if goLongCondition1 and timePeriod and notInTrade // stopLoss = low * 0.97 // takeProfit = high * 1.12 // strategy.entry('long', strategy.long) // strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit) // plot(fastEMA, color=color.new(color.blue, 0)) // plot(slowEMA, color=color.new(color.yellow, 0))