Stratégie de négociation de la volatilité du week-end

Auteur:ChaoZhang est là., Date: 2023-11-16 10:53:01 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie fixe des conditions d'entrée longues et courtes en fonction du prix de clôture du vendredi, et va long ou court après l'ouverture des samedis et dimanches, en quittant toutes les positions avant l'ouverture du lundi.

Principaux

  1. Enregistrer le prix de clôture du vendredi comme prix de référence
  2. Le samedi et le dimanche:
    • Si le prix est supérieur à 105% de la clôture du vendredi, allez court
    • Si le prix est inférieur à 95% de la clôture du vendredi, allez long
  3. Les bénéfices sont fixés à 3% du capital initial
  4. Fermez toutes les positions avant l' ouverture du lundi.

Analyse des avantages

  1. Le volume et la volatilité des transactions le week-end sont faibles pour réduire le risque de marché
  2. Des règles d'entrée et de sortie claires simplifient l'exécution de la stratégie
  3. Poursuite de petits profits stables avec des transactions à court terme
  4. Tournée de capitaux élevée avec cycle court

Analyse des risques

  1. La fluctuation des prix le week-end peut être plus faible que prévu, incapable d'ouvrir des positions
  2. La volatilité excessive peut entraîner un stop loss
  3. Des événements importants le lundi peuvent entraîner des écarts de prix, incapables d'arrêter les pertes à temps.

Solution au risque:

  1. Ajustez la plage de fluctuation des entrées
  2. Définir les points de stop-loss appropriés
  3. Fermez les positions tôt, évitez de les maintenir pendant les week-ends

Lignes directrices d'optimisation

  1. Ajuster les seuils d'entrée en fonction des différentes caractéristiques des produits
  2. Optimiser les règles de prise de profit basées sur les résultats des tests antérieurs
  3. Sélectionnez l'effet de levier en fonction de la taille du capital
  4. Ajouter des filtres d'indicateurs tels que la moyenne mobile aux entrées temporelles

Résumé

Cette stratégie de trading à court terme a une logique très claire et des mesures de contrôle des risques. Avec un ajustement approprié des paramètres et des tests et optimisations continus, elle peut générer des rendements d'investissement stables. Dans le même temps, le risque de pertes importantes le week-end en raison d'une volatilité excessive doit être géré par un contrôle des risques approprié.


/*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()
 






Plus de