Stratégie de rotation du momentum à facteurs multiples

Auteur:ChaoZhang est là., Date: 2023-10-25 à 11h52 et 19h
Les étiquettes:

img

Résumé

Cette stratégie combine RSI, MACD, Bollinger Bands et limiter les facteurs de hausse/baisse pour mettre en œuvre le trading de rotation de l'élan multi-facteur. La stratégie juge d'abord si plusieurs indicateurs techniques donnent des signaux d'achat ou de vente simultanément. Si oui, les opérations d'achat ou de vente correspondantes seront exécutées. Pendant ce temps, la stratégie adopte un stop profit et un stop loss mobiles pour verrouiller les profits et contrôler les risques.

La logique de la stratégie

Les principales composantes de cette stratégie sont les suivantes:

  1. Juge des facteurs

    • RSI: Calculer le RSI à 14 périodes et juger s'il est inférieur à la ligne d'achat ou supérieur à la ligne de vente
    • Séquence TD: Calculer le nombre de jours de limite de hausse/baisse et juger si elle répond aux conditions d'achat/de vente
    • MACD: calculer le MACD et l'histogramme MACD pour juger des conditions d'achat/de vente
    • Bandes de Bollinger: Calculer les BB à 20 périodes et juger si le prix touche la bande supérieure ou inférieure des BB
  2. Entrée et sortie

    • Condition d'achat: RSI, MACD, TD Séquence donnent ensemble des signaux d'achat
    • Condition de vente: RSI, MACD, TD Séquence donnent ensemble des signaux de vente
    • Stop-profit: utiliser des points fixes ou des pourcentages comme stop-profit de suivi
    • Définition de la valeur maximale de la perte
  3. Optimisation de la stratégie

    • Ajustez les paramètres du RSI: Optimisez le paramètre de la période du RSI
    • Régler la période de mise à niveau: optimiser le paramètre de la période des moyennes mobiles
    • Ajuster les conditions d'entrée: ajouter ou réduire les signaux d'entrée
    • Ajouter d'autres facteurs: intégrer davantage d'indicateurs techniques et de facteurs statistiques

Analyse des avantages

  • Plusieurs facteurs améliorent la précision de la saisie

    La stratégie prend en compte plusieurs facteurs tels que le RSI et le MACD plutôt qu'un seul indicateur.

  • La caractéristique de l'élan capte les tendances

    Les indicateurs tels que le RSI et le MACD ont une caractéristique de dynamique évidente, qui capture les changements de tendance des prix.

  • Le mécanisme d'arrêt des pertes/profits contrôle les risques

    Le déménagement d'un stop profit peut bloquer les bénéfices en suivant dynamiquement le marché.

  • Une logique simple et claire

    La stratégie combine des indicateurs techniques communs et présente une certaine universalité.

Analyse des risques

  • Faible performance du marché haussier

    La stratégie se concentre sur le trading à inversion moyenne, ce qui peut déclencher des arrêts de perte fréquents sur un marché haussier.

  • Fréquence de négociation potentiellement trop élevée

    Si les paramètres sont fixés de manière trop sensible, la fréquence des transactions peut être trop élevée, ce qui augmente les coûts et les dérapages.

  • Risque de divergence entre les indicateurs

    La stratégie repose sur des signaux cohérents entre les indicateurs, mais des divergences peuvent parfois survenir, ce qui entraîne des signaux erronés.

  • Perte de freinage à pénétrer

    Des points de stop-loss fixes peuvent être pénétrés, un stop-loss dynamique ou un changement de stock peuvent aider à éviter ce risque.

Directions d'optimisation

  • Optimiser les paramètres pour réduire la fréquence des transactions

    Test des paramètres RSI et des périodes MA pour trouver des combinaisons avec une fréquence de négociation inférieure.

  • Ajouter des facteurs statistiques pour améliorer l'efficacité

    Incorporer des statistiques spécifiques aux actions comme la volatilité et la liquidité pour définir des paramètres et améliorer l'efficacité.

  • Combiner des indicateurs au niveau du marché tels que le VIX

    Ajustez les paramètres de stratégie basés sur des indicateurs de panique du marché comme le VIX pour réduire la fréquence des transactions pendant les crashs du marché.

  • Testez différentes périodes de détention

    Testez la détention à long terme par rapport à la rotation à court terme pour voir leur impact sur la performance de la stratégie.

  • Optimiser et tester le stop profit/perte

    Recherchez des techniques de stop profit/perte dynamiques plus avancées et testez-les.

Résumé

Cette stratégie combine plusieurs indicateurs techniques et adopte un stop profit/perte mobile pour verrouiller les profits et contrôler les risques tout en assurant une haute précision d'entrée. La logique est simple et claire. Les performances peuvent être améliorées grâce à l'optimisation des paramètres et à la sélection des indicateurs. Mais la stratégie est plus adaptée aux marchés à inversion moyenne et à plage. Elle peut sous-performer dans les tendances haussières persistantes. En résumé, il s'agit d'une stratégie de dynamique de conversion moyenne multi-facteurs typique qui fournit des idées et une référence pour le trading de rotation d'actions.


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

//@version=2
strategy("RSI, TD Seq, MACD, BB Strategy - Calculation Trailing Profit",overlay=true)


RSIDifference = input(-7, minval=-50, maxval=50, title="RSI Difference") 


TD = close > close[4] ?nz(TD[1])+1:0
TS = close < close[4] ?nz(TS[1])+1:0
TDUp = TD - valuewhen(TD < TD[1], TD , 1 )
TDDn = TS - valuewhen(TS < TS[1], TS , 1 )
TDcheckUP = iff(TD == 2, true, false)
TDCheckDOWN = iff(TS == 2, true, false)

[_, _, histLine] = macd(close, 12, 26, 9)
MACDCheckDown = iff(histLine > 0 and histLine[1] > 0 and histLine[2] > 0 and histLine[3] > 0  and histLine[4] > 0, true, false)
MACDCheckUp = iff(histLine < 0 and histLine[1] < 0 and histLine[2] < 0 and histLine[3] < 0 and histLine[4] < 0, true, false)

RSICal = rsi(close, 14)
RSICalNewUp = 50 + RSIDifference
RSICalNewDown = 50 - RSIDifference
RSICheckUp = iff(RSICal <= RSICalNewUp, true, false)
RSICheckDown = iff(RSICal >= RSICalNewDown, true, false)

basis = sma(close, 20)
dev = 2 * stdev(close, 20)
upperBB = basis + dev
lowerBB = basis - dev
BBCheckUp = iff(close > upperBB, true, false)
BBCheckDown = iff(close < lowerBB, true, false)
//BBCheckUp = false
//BBCheckDown = false


BuyCheck = iff(TDcheckUP == true and MACDCheckUp == true and RSICheckUp == true and BBCheckUp == false, true, false)
SellCheck = iff(TDCheckDOWN == true and MACDCheckDown == true and RSICheckDown == true and BBCheckDown == false, true, false)


ProfitStratA = input(50, minval=0, maxval=10000, title="Profit", step=0.5) 
ProfitTrailingA = input(10, minval=0, maxval=10000, title="Profit", step=0.5) 
useStopLoss = input(false, title="Use Stop Loss?")
LossstratA = input(145, minval=0, maxval=10000, title="Stop Loss", step=0.5) 
colB = input(100, minval=0, maxval=100, title="0-show / 100-hide Strategy", step=100) 

ProfitStrat = ProfitStratA * 10
ProfitTrailing = ProfitTrailingA * 10
Lossstrat = useStopLoss ? LossstratA * 10 : 1000000

if (strategy.position_size > 0)
    strategy.exit("BuyClose", "Buy", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
    
    
if (strategy.position_size < 0)   
    strategy.exit("SellClose", "Sell", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat) 
    

if (BuyCheck == true and strategy.position_size == 0)
    strategy.entry("Buy", strategy.long, comment="Long Entry")
    


if (SellCheck == true and strategy.position_size == 0)
    strategy.entry("Sell", strategy.short, comment="Short Entry")
    


plotshape(BuyCheck, color=blue, transp=colB, style=shape.arrowup, text="Buy\n", location=location.belowbar)
plotshape(SellCheck, color=orange, transp=colB, style=shape.arrowdown, text="Sell\n", location=location.abovebar)













Plus de