Strategie HODL für gleitende Durchschnittsoscillationen

Schriftsteller:ChaoZhang, Datum: 2023-09-12 16:02:24
Tags:

Diese Strategie beobachtet Preisschwankungen um langfristige gleitende Durchschnitte (z. B. 200-Tage) um Halte-Signale zu bestimmen, Handelsausbrüche für den Positionseintritt und die Verwendung von Break unterhalb als Stop-Loss.

Strategie Logik:

  1. Berechnen Sie einen langfristigen gleitenden Durchschnitt, typischerweise 200 Tage.

  2. Gehen Sie lang ein, wenn der Preis über den gleitenden Durchschnitt bricht.

  3. Verlassen Sie den Long, wenn der Preis wieder unter den gleitenden Durchschnitt fällt.

  4. Halten Sie die Long-Position, bis Sie unter dem Stop-Loss-Spiegel liegen.

Vorteile:

  1. Die langfristige MA identifiziert effektiv mittelfristige und langfristige Trends.

  2. Der Breakout-Handel erfasst langfristige Umkehrungen rechtzeitig.

  3. Eine geringere Handelshäufigkeit reduziert Kosten und Risiken.

Risiken:

  1. Längere Zulassungszeiten liegen erheblich zurück, was zu schlechten Eintrittszeiten führt.

  2. Keine Begrenzung für die Risiken nach dem Ausbruch.

  3. Häufige kleine Ausbrüche bringen nachhaltige kleine Verluste.

Zusammenfassend lässt sich sagen, dass diese HODL-Strategie eine lange MA-Oszillation verwendet, um die Haltezeit zu bestimmen und die Handelsfrequenz zu minimieren.


/*backtest
start: 2022-09-05 00:00:00
end: 2023-04-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("HODLBot", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_every_tick=true, overlay=true)
    
//// Time limits 
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(01, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2029, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true

maPeriod = input(200, "MA Period")
smoothing = input(defval="EMA", options=["EMA", "SMA"])

ma(smoothing, src, length) => 
    if smoothing == "EMA"
        ema(src, length)
    else
        if smoothing == "SMA"
            sma(src, length)
        
//// Main ////

movingAverage = ma(smoothing, close, maPeriod)

plot(movingAverage, color=orange, style = line, linewidth = 4)
 
// very simple, price over MA? Buy and HODL 
if (testPeriod() and close > movingAverage)
    strategy.entry("HODL", strategy.long)

// Price under, close long
if (testPeriod() and close < movingAverage)
    strategy.close("HODL")


Mehr