Stratégie de rotation dynamique multifactorielle


Date de création: 2023-10-25 11:52:19 Dernière modification: 2023-10-25 11:52:19
Copier: 0 Nombre de clics: 754
1
Suivre
1617
Abonnés

Stratégie de rotation dynamique multifactorielle

Aperçu

Cette stratégie utilise le RSI, le MACD moyen, les bandes de Brin et les stop-loss pour réaliser des transactions rotatives dynamiques multifonctionnelles. La stratégie détermine d’abord si plusieurs indicateurs techniques émettent simultanément des signaux d’achat ou de vente, et si c’est le cas, elle effectue des opérations d’achat ou de vente correspondantes.

Principe de stratégie

La stratégie comprend principalement les éléments suivants:

  1. Facteurs de jugement

    • RSI: Calcule le RSI à 14 cycles pour déterminer s’il est inférieur ou supérieur à la ligne de vente définie
    • Séquence TD: calculer le nombre de jours de pause pour déterminer si les conditions d’achat et de vente sont remplies
    • MACD: Calcule le MACD et les valeurs historiques du MACD pour déterminer si les conditions d’achat et de vente sont remplies
    • Brines: Calculer la Brines de 20 jours pour voir si le prix a touché la Brines
  2. Entrée et sortie

    • Conditions d’achat: acheter lorsque les séquences RSI, MACD et TD émettent simultanément un signal d’achat
    • Conditions de vente: les séquences RSI, MACD et TD émettent simultanément un signal de vente et sont vendues
    • Arrêt: arrêt mobile avec un nombre fixe de points ou un pourcentage
    • Arrêt de perte: définissez le nombre de points de perte maximal toléré et effectuez un arrêt de perte
  3. Optimisation de la stratégie

    • Ajuster le paramètre RSI: optimiser le paramètre périodique du RSI
    • Adaptation de la période MA: paramètres de la période pour optimiser la moyenne
    • Ajustement des conditions d’entrée: augmentation ou diminution du signal d’entrée
    • Ajout d’autres facteurs: plus d’indicateurs techniques et de facteurs statistiques

Analyse des forces stratégiques

  • Une combinaison de facteurs pour assurer l’exactitude des inscriptions

Cette stratégie ne prend pas en compte un seul indicateur technique, mais combine plusieurs facteurs, tels que le RSI, le MACD et la séquence TD, afin de réduire les faux signaux causés par un seul indicateur et d’améliorer la précision de l’entrée.

  • Les caractéristiques dynamiques et la capture des tendances

Les indices RSI, MACD et autres ont des caractéristiques de dynamique plus évidentes et peuvent capturer les changements de tendance des cours des actions. Ces indicateurs sont plus sensibles au retournement que les indicateurs de suivi de tendance tels que la moyenne.

  • Les mécanismes d’arrêt et de contrôle des risques

Le stop-loss mobile permet de s’arrêter en fonction de la situation et de mieux bloquer les bénéfices. Le stop-loss permet de contrôler les pertes individuelles.

  • La stratégie est claire et simple

Cette stratégie, combinée à des indicateurs techniques couramment utilisés, a une certaine universalité. Les règles sont relativement simples, claires et faciles à comprendre et à utiliser.

Analyse stratégique des risques

  • La plupart des cas sont moins efficaces.

Cette stratégie est principalement basée sur la manipulation du marché rétrograde et appartient à la stratégie de retour. Dans un marché haussier, l’utilisation de cette stratégie peut entraîner des pertes fréquentes et un mauvais effet.

  • La fréquence des transactions pourrait être trop élevée

Si les paramètres sont trop sensibles, la fréquence des transactions peut être trop élevée, augmentant les coûts de transaction et la perte de points de glissement.

  • Indicateur de diffusion des risques

Cette stratégie repose sur plusieurs indicateurs de même direction, mais parfois les indicateurs peuvent diverger, ce qui émet un mauvais signal.

  • Le stop-loss est poursuivi par le risque.

Le risque d’une rupture du nombre de points d’arrêt fixes peut être contourné par un arrêt dynamique ou par un changement de position.

Orientation de l’optimisation de la stratégie

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

On peut tester les paramètres du RSI et les paramètres de la période de la ligne moyenne pour trouver des combinaisons de fréquences de négociation plus faibles.

  • Augmentation des facteurs statistiques et amélioration de l’efficacité

Il est possible de définir des paramètres qui améliorent l’efficacité de la stratégie en combinant les caractéristiques statistiques de l’action, telles que la volatilité, la liquidité, etc.

  • Les indicateurs globaux du marché tels que le VIX

Il est possible d’ajuster les paramètres de la stratégie en fonction de l’indice de panique du marché, comme le VIX, pour réduire la fréquence des transactions en cas de panique du marché.

  • Test de différentes périodes de tenue

Il est possible de tester différentes périodes de détention pour déterminer l’impact de la détention à long terme ou de la rotation à court terme sur l’efficacité de la stratégie.

  • Optimisation et test des stratégies de stop-loss

Des méthodes plus avancées d’arrêt de freinage dynamique peuvent être étudiées pour mesurer l’effet.

Résumer

Cette stratégie prend en compte un large éventail d’indicateurs techniques et utilise des stop-loss mobiles pour bloquer les bénéfices et contrôler les risques, en assurant une plus grande précision d’entrée. L’idée de la stratégie est simple et claire, facile à comprendre.

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