Stratégies de swing trading pour le week-end


Date de création: 2023-11-16 10:53:01 Dernière modification: 2023-11-16 10:53:01
Copier: 0 Nombre de clics: 601
1
Suivre
1617
Abonnés

Stratégies de swing trading pour le week-end

Aperçu

La stratégie impose des conditions d’entrée pour les positions longues et vides en fonction du prix de clôture du vendredi, en effectuant un effet de levier supplémentaire lors de l’ouverture du samedi et du dimanche, et un effet de levier minimal avant l’ouverture du lundi. La stratégie permet de réaliser un profit en capturant les fluctuations de prix à proximité du prix de clôture du vendredi.

Le principe

  1. Les prix de clôture du vendredi sont enregistrés comme prix de référence
  2. Les horaires sont les suivants, du samedi au dimanche:
    • Si le prix est supérieur à 4,5% du prix de clôture du vendredi, faites une faillite
    • Si le prix est inférieur à 4,5% de la clôture du vendredi, faites plus
  3. Le stop est fixé à 3% du capital initial.
  4. Le lundi, toutes les positions ont été liquidées avant l’ouverture.

Analyse des avantages

  1. Les traders peuvent profiter des fluctuations de prix provoquées par le faible volume des transactions le samedi et le dimanche pour réduire les risques de marché.
  2. Des conditions d’entrée et de sortie claires, réduisant la difficulté de mise en œuvre de la stratégie
  3. Les opérations de raccourcis, pour un petit profit stable
  4. Le cycle est court, le financement rapide.

Analyse des risques

  1. Les cours pourraient être moins fluctuants que prévu samedi et dimanche, et il est impossible d’ouvrir une position.
  2. Une fluctuation excessive entraîne des pertes
  3. L’événement majeur de lundi a fait exploser les prix et empêché la récession de s’arrêter à temps.

Les solutions au risque:

  1. Adaptation de l’ampleur des fluctuations des conditions d’admission
  2. Il est raisonnable d’établir un point d’arrêt.
  3. Il y a aussi des gens qui ne sont pas d’accord avec le fait qu’il y ait une limite de temps.

Direction d’optimisation

  1. Adaptation de l’entrée en fonction des caractéristiques des différentes variétés
  2. Optimisation des conditions d’arrêt en fonction des résultats des tests de retour
  3. Le choix d’un levier différent en fonction de la taille du capital
  4. Temps d’entrée combiné avec le filtre de l’indicateur linéaire

Résumer

Cette stratégie est une stratégie de trading en ligne courte, avec une logique de trading très claire et des mesures de contrôle des risques. Grâce à une configuration de paramètres raisonnable et à une optimisation de test en continu, il est possible d’obtenir des rendements d’investissement stables. Il est également nécessaire de prêter attention au risque de perte causé par des fluctuations excessives des prix non hebdomadaires.

Code source de la stratégie
/*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()