Goldener Schnitt und Relative-Stärke-RSI-Strategie


Erstellungsdatum: 2024-01-03 16:54:32 zuletzt geändert: 2024-01-03 16:54:32
Kopie: 0 Klicks: 852
1
konzentrieren Sie sich auf
1621
Anhänger

Goldener Schnitt und Relative-Stärke-RSI-Strategie

Überblick

Die Gold- und Relativ-Schwache-Gold-Split-Strategie (RSI) ist eine Intraday-Handelsstrategie. Sie kombiniert die Fibonacci-Gold-Split-Regel mit dem RSI-Indikator, um zu beurteilen, ob der RSI überkauft oder verkauft ist, um ein Kauf- oder Verkaufssignal zu senden, wenn der Preis nahe am Gold-Kritikpunkt ist.

Strategieprinzip

  1. Die mittlere Achse, auf der der Preis berechnet wird, basierend auf einer K-Linie einer bestimmten Länge.

  2. Die Goldspaltungskriterien werden berechnet anhand der Mittellachse und der Standarddifferenz, einschließlich der Stufen 0.618 und 1 ◦.

  3. Wenn der Goldpreis nahe an der Goldspaltungskritik ist, überprüfen Sie, ob der RSI in eine Überkauf- oder Überverkaufszone eingetreten ist.

  4. Wenn die Goldspaltung und die RSI-Bedingungen gleichzeitig erfüllt sind, wird ein Kauf- oder Verkaufssignal ausgesendet.

  5. Setzen Sie Stop Loss und Stop Stop, um das Risiko zu kontrollieren.

Analyse der Stärken

  1. In Kombination mit mehreren Indikatoren kann die Signalqualität verbessert und falsche Signale reduziert werden.

  2. Die Unterstützung/Widerstandseigenschaften der goldenen Teilung werden genutzt, um die Einstiegsqualität zu verbessern.

  3. Der RSI-Indikator kann die psychologische Seite des Marktes beurteilen, um eine Umkehrung der Extremsituation zu vermeiden.

  4. Bei hochfrequenten Intraday-Trades können die Gewinne durch mehrere kleinere Transaktionen kumuliert werden.

Risikoanalyse

  1. Die Goldspaltung ist keine hundertprozentige Garantie dafür, dass sich die Preise umkehren.

  2. Der RSI kann ein falsches Signal sein und muss in Verbindung mit der Preisentwicklung beurteilt werden.

  3. Ein zu niedriger Stop-Loss kann durch Preisschwankungen beeinträchtigt werden.

  4. Hochfrequente Transaktionen erfordern höhere Transaktionskosten und strengere Risikokontrollen.

Die Lösung:

  1. Die Einhaltung der Stop-Loss-Regeln und die Kontrolle der Einzelschäden.

  2. Der RSI-Parameter wurde entsprechend gelockert, um Fehlverständnisse zu vermeiden.

  3. Optimierung der Stop-Loss-Punkte, um die Wahrscheinlichkeit, dass ein Stop-Loss erfolgt, zu verringern, während gleichzeitig die Stop-Loss-Garantie gewährleistet wird.

Optimierungsrichtung

  1. Die Parameteroptimierung für die Testphase mit unterschiedlicher Länge wird getestet.

  2. Versuchen Sie, die Signalqualität in Verbindung mit anderen Indikatoren wie MACD und Brinband zu verbessern.

  3. Das ist eine gute Idee, um die Optimierung zu ermitteln.

  4. Die Bewertung ermittelt die optimale Haltedauer, um die Kosten und Gewinne auszugleichen.

Zusammenfassen

Die Goldspaltung mit der RSI-Strategie filtert durch die Doppelbestätigung einige Noise-Tradings. Sie kann ein hochwertigeres Handelssignal erzeugen, verglichen mit der Verwendung eines einzigen Indikators. Durch die Optimierung der Parameter und die strikte Einhaltung der Regeln kann die Strategie zu einem effektiven Intraday-Handelsinstrument werden.

Strategiequellcode
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 1m
basePeriod: 1m
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/
// © MohamedYAbdelaziz

// Intraday Trading
// Best used for Short Timeframes [1-30 Minutes]
// If you have any modifications please tell me to update it

//@version=4
strategy(title="Fibonacci + RSI - Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD)

// Inputs
timeFilter = year >= 2000
    // Stop Loss %
loss_percent = input(title="Stop Loss (%)", minval=0.0, step=0.1, defval=2) * 0.001
    // RSI Inputs
len = input(title="[RSI] Length", minval=0, step=1, defval=14)
overSold = input(title="[RSI] Over Sold %", defval=30)
overBought = input(title="[RSI] Over Bought %", defval=70)
    // Fibonacci Levels
length = input(title="[Fibonacci] Length", defval=200, minval=1)
src = input(hlc3, title="[Fibonacci] Source")
mult = input(title="[Fibonacci] Multiplier", defval=3.0, minval=0.001, maxval=50)
level = input(title="[Fibonacci] Level", defval=764)


// Calculate Fibonacci
basis = vwma(src, length)
dev = mult * stdev(src, length)
fu764= basis + (0.001*level*dev)
fu1= basis + (1*dev)
fd764= basis - (0.001*level*dev)
fd1= basis - (1*dev)

// Calculate RSI
vrsi = rsi(close, len)

// Calculate the Targets
targetUp = fd764
targetDown = fu764
    // Actual Targets
bought = strategy.position_size[0] > strategy.position_size[1]
exit_long = valuewhen(bought, targetUp, 0)
sold = strategy.position_size[0] < strategy.position_size[1]
exit_short = valuewhen(sold, targetDown, 0)

// Calculate Stop Losses
stop_long = strategy.position_avg_price * (1 - loss_percent)
stop_short = strategy.position_avg_price * (1 + loss_percent)

// Conditions to Open Trades
openLong = low < fd1 and crossover(vrsi[1], overSold)
openShort = high > fu1 and crossunder(vrsi[1], overBought)

// Conditions to Close Trades
closeLong = high > exit_long
closeShort = low < exit_short 


// Plots
plot(basis, color=color.blue, linewidth=2, title="[Fibonacci Level] Basis")
plot(fu764, color=color.white, linewidth=1, title="[Fibonacci Level] Short Target")
plot(fu1, color=color.red, linewidth=2, title="1", title="[Fibonacci Level] Top")
plot(fd764, color=color.white, linewidth=1, title="[Fibonacci Level] Long Target")
plot(fd1, color=color.green, linewidth=2, title="1", title="[Fibonacci Level] Bottom")


// Strategy Orders
if timeFilter
    // Entry Orders
    strategy.entry(id="Long", long=true, when=openLong and high < targetUp, limit=close)
    strategy.entry(id="Short", long=false, when=openShort and low > targetDown, limit=close)

    // Exit Orders
    strategy.exit(id="Long", when=closeLong and strategy.position_size > 0, limit=exit_long, stop=stop_long)
    strategy.exit(id="Short", when=closeShort and strategy.position_size < 0, limit=exit_short, stop=stop_short)