JBravo Quantitative Trend Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-27 14:53:07
Tags:

Strategieübersicht

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.

Strategieprinzip

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 GoGo Long-Signal generiert; Wenn die Volumengewichtete Durchschnittspreislinie den 20-tägigen exponentiellen gleitenden Durchschnitt nach unten überschreitet, wird ein GoGo Short-Signal generiert.

Analyse der Vorteile

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 GoGo Juice, der bei starken Trends höhere Renditen erzielen kann.

Insgesamt hat diese Strategie geringe Abzüge und eine stabile Rentabilität.

Risikoanalyse

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.

Optimierungsrichtlinien

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Anpassung der gleitenden Durchschnittsparameter und Optimierung der Zyklusparameter, um die optimale Parameterkombination zu finden

  2. Hinzufügen von Volumenindikatoren, um falsche Signale in Zeiten heftiger Preisschwankungen zu vermeiden

  3. Steigerung der Stop-Loss-Module und Festlegung von Exit-Regeln für die Kontrolle von Handelsverlusten

  4. Kombination von Auswahlmöglichkeiten für die heißen Sektoren des Marktes, um Strategien zielgerichteter zu gestalten

  5. Optimieren Sie die Öffnungsposition Proportionen, optimieren Sie verschiedene Skala für verschiedene Parameter

Schlussfolgerung

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")

Mehr