Die JBravo Quantitative Trend Strategie ist eine Trend-folgende Strategie, die auf gleitenden Durchschnitten basiert. Sie verwendet den 9-tägigen einfachen gleitenden Durchschnitt, den 20-tägigen exponentiellen gleitenden Durchschnitt und den 180-tägigen einfachen gleitenden Durchschnitt, um die Markttrendrichtung sowie die endgültigen Kauf- und Verkaufssignale zu bestimmen.
Der Name der Strategie ist inspiriert von der Zeichentrickfigur Johnny Bravo, die eine selbstbewusste und entscheidende Handelsentscheidung darstellt.
Ein Kaufsignal wird erzeugt, wenn der Schlusskurs über den 9-tägigen einfachen gleitenden Durchschnitt geht; ein Verkaufssignal wird erzeugt, wenn der Schlusskurs unter den 20-tägigen exponentiellen gleitenden Durchschnitt geht.
Wenn sich die 9-Tage-, 20-Tage- und 180-Tage- gleitenden Durchschnitte alle nach oben bewegen und der 9-Tage-gleitende Durchschnitt über dem 20-Tage-gleitenden Durchschnitt liegt, wird ein starkes Kaufsignal generiert.
Wenn sich die gleitenden 9-Tage-, 20-Tage- und 180-Tage-Durchschnitte alle nach unten bewegen und der 9-Tage-gleitende Durchschnitt unter dem 20-Tage-gleitenden Durchschnitt liegt, wird ein starkes Verkaufssignal erzeugt.
Wenn die Volumengewichtete Durchschnittspreislinie den 20-tägigen exponentiellen gleitenden Durchschnitt nach oben überschreitet, wird ein
Diese Strategie kombiniert die Ideen von Trendfolgen und Breakout-Strategien. Gleitende Durchschnitte können die Richtung des Markttrends klar bestimmen und die Wahrscheinlichkeit falscher Trades reduzieren. Gleichzeitig verwendet sie den VWAP-Indikator flexibel, um die Eintrittszeit zu bestimmen, Risiken zu kontrollieren und gleichzeitig Durchbrüche auf dem Markt zu begünstigen.
Im Vergleich zur Verwendung von gleitenden Durchschnitten allein ergänzt diese Strategie den aggressiven Einstiegsmechanismus von
Insgesamt hat diese Strategie geringe Abzüge und eine stabile Rentabilität.
Obwohl die Strategie die Stärke der Eintritte erhöht, können in seitlichen Märkten häufig Stop-Loss-Punkte ausgelöst werden.
Dies bedeutet, dass die Strategie eine gewisse Anzahl virtueller Trades erzeugen kann, die nicht tatsächlich die Marktpreisbewegungen widerspiegeln.
Um Risiken zu reduzieren, können wir den Zyklus der gleitenden Durchschnitte entsprechend anpassen; oder ein Stop-Loss-Modul hinzufügen, um Verluste zu stoppen, wenn die Verluste ein bestimmtes Niveau erreichen.
Die Strategie kann in folgenden Richtungen optimiert werden:
Anpassung der gleitenden Durchschnittsparameter und Optimierung der Zyklusparameter, um die optimale Parameterkombination zu finden
Hinzufügen von Volumenindikatoren, um falsche Signale in Zeiten heftiger Preisschwankungen zu vermeiden
Steigerung der Stop-Loss-Module und Festlegung von Exit-Regeln für die Kontrolle von Handelsverlusten
Kombination von Auswahlmöglichkeiten für die heißen Sektoren des Marktes, um Strategien zielgerichteter zu gestalten
Optimieren Sie die Öffnungsposition Proportionen, optimieren Sie verschiedene Skala für verschiedene Parameter
Die JBravo Quantitative Trend Strategie integriert gleitende Durchschnittsanalyse und VWAP-Trendbeurteilung. Sie verfolgt stabile langfristige Gewinne und verfügt gleichzeitig über ein gewisses Maß an aggressiven Handelsmechanismen. Die Strategie eignet sich für mittel-langfristige Beteiligungen mit mittel-hohen Risiken und hohen Renditen. Sie kann zu einem Teil von Portfoliohandelsstrategien mit sehr guter Marktanpassungsfähigkeit werden.
[/trans]
/*backtest start: 2022-12-20 00:00:00 end: 2023-12-26 00:00:00 period: 1d basePeriod: 1h 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/ // © bradvaughn //@version=4 strategy("JBravo Swing", overlay = false) var buy_in_progress = false //Moving Averages smaInput1 = input(title="Display SMA 9", type=input.bool, defval=true) smaInput2 = input(title="Display EMA 20", type=input.bool, defval=true) smaInput4 = input(title="Display SMA 180", type=input.bool, defval=true) colored_180 = input(false, title="Color-code 180 trend direction") vwapInput = input(title="Display VWAP", type=input.bool, defval=true) sma9 = sma(close, 9) ema20 = ema(close, 20) sma180 = sma(close, 180) //Plot Moving Averages plot(smaInput1 ? sma9 : na, color= color.red, title="SMA 9") plot(smaInput2 ? ema20 : na, color = color.yellow, title="EMA 20") // Plot VWAP vwap1 = vwap(hlc3) plot(vwapInput ? vwap1 : na, color = color.blue, title="VWAP") vwaplong = vwap1 > ema20 vwapshort = vwap1 < ema20 //Color SMA 180 trend direction if selected sma180_uptrend = sma(close, 180) > sma(close[2], 180) colr = sma180_uptrend == true or colored_180 == false ? color.white : colored_180 == true ? color.gray : na plot(smaInput4 ? sma180 : na, color = colr, title="SMA 180") //Get value of lower end of candle buyLow = iff(lowest(open, 1) < lowest(close, 1), lowest(open, 1), lowest(close, 1)) sellLow = lowest(close, 1) // Find the lower MA for crossover sell condition sellma = iff((sma9<ema20), sma9, ema20) //SMA 9 trend direction sma9_uptrend = sma(close, 9) > sma(close[2], 9) //EMA 20 trend direction ema20_uptrend = ema(close, 20) > sma(close[2], 20) //Buy or sell if conditions are met // Buy when the candle low is above the SMA9 // Sell when the candle low is below the lower of SMA9 and EMA20 Buy = iff(buy_in_progress == false and buyLow > sma9 == true, true, false) Sell = iff(buy_in_progress == true and sellLow < sellma == true, true, false) // Determine stong buy and strong sell conditions. // If moving averages are all up, then this will qualify a buy as a strong buy. // If the moving averages are not up (ie. down) then this will qualify a sell as a strong sell StrongBuy = iff (Buy and sma9_uptrend and sma180_uptrend and ema20_uptrend and (sma9 > ema20) and (ema20 > sma180), true, false) StrongSell = iff (Sell and not sma9_uptrend and not sma180_uptrend and not ema20_uptrend and (sma9 < ema20) and (ema20 < sma180), true, false) //Update Trading status if bought or sold if Buy buy_in_progress := true if Sell buy_in_progress := false // Clear Buy and Sell conditions if StrongBuy or StrongSell conditions exist. // This disables plotting Buy and Sell conditions if StrongBuy Buy := false if StrongSell Sell := false //Display BUY/SELL indicators plotshape(Buy,title="Buy", color=color.green, style=shape.arrowup,location=location.belowbar, text="Buy") plotshape(StrongBuy,title="Strong Buy", color=color.green, style=shape.arrowup,location=location.belowbar, text="Strong Buy") plotshape(Sell,title="Sell", color=color.red, style=shape.arrowdown,text="Sell") plotshape(StrongSell,title="Strong Sell", color=color.red, style=shape.arrowdown,text="Strong Sell") strategy.entry("GoGo Long", strategy.long, 1, when=vwaplong and vwapInput) strategy.entry("GoGo Short", strategy.short, 1, when=vwapshort and vwapInput) strategy.close("GoGo Long", when = vwapshort and vwapInput) strategy.close("GoGo Short", when = vwaplong and vwapInput) alertcondition(Buy, title="Buy Signal", message="Buy") alertcondition(Sell, title="Sell Signal", message="Sell")