Oszillierende Durchbruch-Tracking-Strategie für den gleitenden Durchschnitt


Erstellungsdatum: 2023-10-30 11:39:31 zuletzt geändert: 2023-10-30 11:39:31
Kopie: 1 Klicks: 629
1
konzentrieren Sie sich auf
1617
Anhänger

Oszillierende Durchbruch-Tracking-Strategie für den gleitenden Durchschnitt

Diese Strategie ermöglicht es, in einem wackligen Markt nachhaltige Gewinne zu erzielen, indem sie Durchbrüche in der Gleichgewichtlinie verfolgt.

Strategieprinzip

Die Strategie basiert hauptsächlich auf dem Prinzip des Durchbruchs der Durchschnittslinie, wobei die MA die Mehrfachdurchschnittslinie zusammenführt, um die Hauptdurchschnittslinie zu bilden. Es wird ein Handelssignal erzeugt, wenn der Preis die Hauptdurchschnittslinie durchbricht.

Insbesondere verwendet die Strategie einen 60-Zyklus-WMA-Doppelgleitenden Durchschnitt als Hauptmittellinie. Gleichzeitig wird der tatsächliche Umfang der Preisschwankungen berechnet und eine Auf- und Abwärtskanal erstellt.

Auf der Basis von Breakouts werden die RSI- und EMA-Indikatoren eingeführt, um zu vermeiden, dass ein Falschbruch vermieden wird.

Die Strategie nutzt außerdem die starken oder schwachen Positionen der Dreiecksgleichlinie, um eine Position zu beenden. Wenn die Dreiecksgleichlinie-Formationen schwach sind (−1), wählt man den Ausgangspunkt als einen umgekehrten Durchbruch.

Strategische Vorteile

  • Die Verwendung von MA Multiple Mean Lines, die Preisschwankungen effektiv ausgleichen und die Richtung der Trends erkennen können
  • Auf Basis von Channel-Break-Transactions können Sie in Krisensituationen mehr Geld verdienen
  • In Kombination mit RSI und EMA zur Unterstützung der Beurteilung und zur Filterung falscher Durchbruchsignale
  • Ausfallpunkte können mit Hilfe der dreifachen Mittellinie bestimmt werden, um einen Ausfall zu vermeiden.

Strategisches Risiko

  • Bei starken Erschütterungen kann der MA mehr Falschbrüche erzeugen
  • Der Zeitpunkt des Ausstiegs aus der Triple-A-Grenze-Richtlinie ist möglicherweise ungenau.
  • Die falsche Einstellung der RSI-Parameter kann zu einer zu hohen Handelsfrequenz führen

Risiken können durch Optimierung der MA-Zyklusparameter, Anpassung der Dreifach-Mittellinie-Einstellung und sorgfältige Verwendung der RSI-Parameter verringert werden.

Richtung der Strategieoptimierung

  • Optimierung der MA-Zyklusparameter und Suche nach geeigneteren Hauptmittelzyklus-Zyklen
  • Versuchen Sie, die RSI durch andere Hilfsindikatoren zu ersetzen, z. B. KDJ, MACD usw.
  • Anpassung der Dreifach-Durchschnittsparameter auf eine genauere Umkehrzeit
  • Die Einführung von Stop-Loss-Strategien, um das Risiko eines einzelnen Handels zu kontrollieren

Zusammenfassen

Diese Strategie ist eine brechende Strategie, die sich sehr gut für Erschütterungen eignet. Die Kernidee basiert auf der MA-Breakthrough-Position, unterstützt durch einen Trendfilter, der in Erschütterungen nachhaltig profitiert. Gleichzeitig wird mit der dreifachen Mittellinie entschieden, dass die Umkehrzeit vorzeitig ausfällt. Die Strategie hat viel Optimierungsraum und kann optimiert werden, indem sie Parameter anpasst, sich in den Einstieg und den Ausstieg ändert und möglicherweise in Erschütterungen besser funktioniert.

Strategiequellcode
/*backtest
start: 2022-10-23 00:00:00
end: 2023-03-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/



//@version=5

//exapple bot
strategy('RIPO BOT', shorttitle='RIPO BOT', overlay=true, process_orders_on_close=true, calc_on_order_fills=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
sl_inp = input(0.1, title='Stop Loss %') / 100
tp_inp = input(0.33, title='Take Profit %') / 100

length = input(defval=21)
upper = ta.highest(length)
lower = ta.lowest(length)

lengthChop = input.int(14, minval=1)
ci = 100 * math.log10(math.sum(ta.atr(1), lengthChop) / (ta.highest(lengthChop) - ta.lowest(lengthChop))) / math.log10(lengthChop)
offset = input.int(0, "Offset",  minval = -500, maxval = 500)
plot(ci, "CHOP", color=#2962FF, offset = offset)
band1 = hline(61.8, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
hline(50, "Middle Band", color=color.new(#787B86, 50))
band0 = hline(38.2, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
fill(band1, band0, color = color.rgb(33, 150, 243, 90), title = "Background")

rsi = ta.rsi(close, 14)

var float entry_price = na

output = 100 * (close - upper) / (upper - lower)
ema = ta.ema(output, input(defval=13, title='EMA'))

ma(src, len) =>
    ta.wma(2 * ta.wma(src, len / 2) - ta.wma(src, len), math.round(math.sqrt(len)))
BBMC = ma(close, 60)
rangema = ta.ema(ta.tr, 60)
upperk = BBMC + rangema * 0.2
lowerk = BBMC - rangema * 0.2
color_bar = close > upperk ? color.blue : close < lowerk ? color.fuchsia : color.gray

ExitHigh = ma(high, 15)
ExitLow = ma(low, 15)
Hlv3 = int(na)
Hlv3 := close > ExitHigh ? 1 : close < ExitLow ? -1 : Hlv3[1]
sslExit = Hlv3 < 0 ? ExitHigh : ExitLow
base_cross_Long = ta.crossover(close, sslExit)
base_cross_Short = ta.crossover(sslExit, close)
codiff = base_cross_Long ? 1 : base_cross_Short ? -1 : na
entry_long = false

entry_short = false

    
if ta.crossover(close, BBMC) and output > ema
    entry_long := true
    
if ta.crossunder(close, BBMC) and output < ema
    entry_short := true

if entry_long and strategy.position_size == 0
    entry_price := close
    strategy.entry('enter long', strategy.long, comment='ENTER-LONG_BYBIT_MATICUSDT_BOT-NAME_1M_85915e4dc80fb663')
if strategy.position_size > 0
    strategy.exit('Stop Loss/TP long', 'enter long', limit=entry_price * (1 + tp_inp), stop = color_bar == color.fuchsia ? BBMC : na, comment='EXIT-LONG_BYBIT_MATICUSDT_BOT-NAME_1M_85915e4dc80fb663')
plot(entry_price * (1 + tp_inp), color=color.new(color.green, 0))


//if entry_short and strategy.position_size == 0
    //entry_price := close
    //strategy.entry('enter short', strategy.short, comment='ENTER-SHORT_BYBIT_MATICUSDT_BOT-NAME_1M_85915e4dc80fb663')
if strategy.position_size < 0
    strategy.exit('Stop Loss/TP short', 'enter short', limit=entry_price * (1 - tp_inp), stop = color_bar == color.blue ? BBMC : na, comment='EXIT-SHORT_BYBIT_MATICUSDT_BOT-NAME_1M_85915e4dc80fb663')
plot(entry_price * (1 + tp_inp), color=color.new(color.green, 0))
// plot(entry_price * (1 - sl_inp), color=color.new(color.red, 0))

plot(rsi, color=color.yellow)

plot(output, title='%R', color=color.new(color.yellow, 0), linewidth=2)
plot(ema, title='EMA', color=color.new(color.aqua, 0), linewidth=2)

plotarrow(codiff, colorup=color.new(color.blue, 35), colordown=color.new(color.fuchsia, 35), title='Exit Arrows', maxheight=20, offset=0)
plot(BBMC, color=color_bar, linewidth=4, title='MA Trendline')