Strategie für den Handel mit Volatilität am Wochenende

Schriftsteller:ChaoZhang, Datum: 2023-11-16 10:53:01
Tags:

img

Übersicht

Diese Strategie setzt lange und kurze Einstiegsbedingungen auf der Grundlage des Freitagsschlusskurses und geht nach Samstags- und Sonntagsöffnung lang oder kurz, wobei alle Positionen vor Montagsöffnung verlassen werden.

Grundsätze

  1. Der Schlusskurs am Freitag wird als Referenzpreis erfasst
  2. Samstag und Sonntag:
    • Wenn der Preis über 105% des Freitags liegt, gehen Sie kurz.
    • Wenn der Preis unter 95% des Freitagsschlusses liegt, gehen Sie lang
  3. Der Gewinn wird auf 3% des Anfangskapitals festgesetzt.
  4. Schließen Sie alle Positionen vor der Eröffnung am Montag.

Analyse der Vorteile

  1. Handel am Wochenende mit geringem Volumen und Volatilität zur Verringerung des Marktrisikos
  2. Klare Ein- und Ausstiegsregeln vereinfachen die Strategieausführung
  3. Verfolgen Sie mit kurzfristigen Geschäften stetige kleine Gewinne
  4. Hoher Kapitalumsatz mit kurzem Zyklus

Risikoanalyse

  1. Wochenendpreisschwankungen können geringer sein als erwartet und keine Positionen eröffnen
  2. Übermäßige Volatilität kann zum Stop-Loss führen
  3. Wichtige Ereignisse am Montag können zu Preisunterschieden führen, die nicht in der Lage sind, den Verlust rechtzeitig zu stoppen

Risikolösungen:

  1. Anpassung des Schwankungsbereichs für Einträge
  2. Richtige Stop-Loss-Punkte festlegen
  3. Schließen Sie Positionen frühzeitig, vermeiden Sie das Halten am Wochenende

Optimierungsrichtlinien

  1. Anpassung der Eintrittsschwellenwerte anhand der verschiedenen Merkmale der Erzeugnisse
  2. Optimieren Sie die Gewinnregelung basierend auf den Backtest-Ergebnissen
  3. Auswahl der Hebelwirkung nach Kapitalgröße
  4. Hinzufügen von Indikatorfiltern wie gleitendem Durchschnitt zu Zeiteinträgen

Zusammenfassung

Diese kurzfristige Handelsstrategie verfügt über sehr klare Logik und Risikokontrollmaßnahmen. Mit angemessener Parameter-Ausrichtung und kontinuierlichem Testen und Optimieren kann sie eine stetige Anlagerendite erzielen. Gleichzeitig muss das Risiko großer Wochenendverluste aufgrund übermäßiger Volatilität durch eine angemessene Risikokontrolle gesteuert werden.


/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Copyright Boris Kozak 
strategy("XBT Weekend Trade Strategy", overlay=true, default_qty_type=strategy.percent_of_equity,initial_capital=20000)
leverage = input(1,"Leverage")
profitTakingPercentThreshold = input(0.03,"Profit Taking Percent Threshold")

//****Code used for setting up backtesting.****///
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(12, "Backtest Start Month")
testStartDay = input(10, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2025, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FFFF : na
bgcolor(testPeriodBackgroundColor, transp=50)

testPeriod() => true
    
//****END Code used for setting up backtesting.****///


//*** Main entry point is here***//
// Figure out how many days since the Friday close 
days_since_friday = if dayofweek == 6
    0
else 
    if dayofweek == 7
        1
    else
        if dayofweek == 1
            2
        else
            if dayofweek == 2
                3
            else
                if dayofweek == 3
                    4
                else
                    if dayofweek == 4
                        5
                    else
                        6
    
// Grab the Friday close price
fridaycloseprice = request.security(syminfo.tickerid,'D',close[days_since_friday])
plot(fridaycloseprice)
strategy.initial_capital = 50000
// Only perform backtesting during the window specified 
if testPeriod()
    // If we've reached out profit threshold, exit all positions 
    if ((strategy.openprofit/strategy.initial_capital) > profitTakingPercentThreshold)
        strategy.close_all()
    // Only execute this trade on saturday and sunday (UTC)
    if (dayofweek == 7.0 or dayofweek == 1.0)
        // Begin - Empty position (no active trades)
        if (strategy.position_size == 0)
            // If current close price > threshold, go short 
            if ((close>fridaycloseprice*1.045))
                strategy.entry("Short Entry", strategy.short, leverage)
            else
                // If current close price < threshold, go long
                if (close<(fridaycloseprice*0.955))
                    strategy.entry("Long Entry",strategy.long, leverage)
        // Begin - we already have a position
        if (abs(strategy.position_size) > 0)
            // We are short 
            if (strategy.position_size < 0)
                if ((close>strategy.position_avg_price*1.045))
                    // Add to the position
                    strategy.entry("Adding to Short Entry", strategy.short, leverage)
            else
                strategy.entry("Long Entry",strategy.long,leverage)
    // On Monday, if we have any open positions, close them 
    if (dayofweek==2.0)
        strategy.close_all()
 






Mehr