Cette stratégie utilise l'indicateur RSI pour déterminer le moment de l'entrée à travers des jugements transversaux et adopte le mécanisme ATR profit et stop pour les stratégies de suivi des tendances. Il détermine le tournant de la tendance du marché à travers le croisement de l'indicateur RSI de différents cycles et combine le prix de clôture pour filtrer le moment des positions longues et courtes. Le mécanisme profit et stop contrôle efficacement les risques et les verrouillages des bénéfices.
La stratégie utilise d'abord la technologie de lissage SMA pour calculer la moyenne mobile de 26 semaines comme référence pour juger du marché haussier. Ensuite, calculez la valeur de l'indicateur RSI de 4 semaines, lorsqu'elle dépasse 30 dans la zone de survente, on considère que le marché peut rebondir. À ce moment-là, jugez si le nouveau sommet du paramètre shortdays peut franchir le nouveau sommet récent du paramètre longdays, indiquant que la tendance à court terme se renforce. Si les conditions ci-dessus sont remplies en même temps, un signal long est émis.
Après avoir pénétré sur le marché, utilisez les multiples de l'indicateur ATR comme plage de profit et arrêtez la perte à un certain pourcentage du prix de clôture.
La stratégie présente les avantages suivants:
Utilisez l'indicateur RSI pour déterminer les points d'inversion avec une bonne capacité de synchronisation.
Appliquer le nouveau mécanisme des hauts et des bas pour éviter les faux signaux.
Utilisez l'ATR pour réaliser des bénéfices et un stop-loss pour suivre automatiquement le point de sortie optimal.
Des paramètres flexibles peuvent être réglés à des niveaux optimaux.
L'idée stratégique est claire et facile à comprendre, avec une forte stabilité.
La stratégie comporte également les risques suivants:
L'indicateur RSI peut émettre un mauvais signal, ce qui entraîne un timing incorrect.
La fourchette de bénéfices ATR peut être réglée trop grande ou trop petite pour verrouiller le bénéfice maximum.
Le point de stop loss est trop proche et peut être cassé.
Les données insuffisantes sur les tests antérieurs peuvent surestimer le taux de rendement de la stratégie.
La stratégie peut être optimisée dans les aspects suivants:
Testez et optimisez les paramètres RSI et les multiples de profit et de perte pour trouver la meilleure combinaison de paramètres.
Augmenter d'autres indicateurs pour améliorer la précision de la stratégie, tels que MACD, KD, etc.
Optimiser le mécanisme d'arrêt des pertes et l'ajuster dynamiquement en fonction de la plage de fluctuation de l'ATR.
Testez l'effet du rendement sur différentes variétés de négociation.
Comparer les performances de différents types de stop loss, tels que le stop loss proportionnel, le stop loss mobile, etc.
L'opération globale de cette stratégie est claire et fluide, la sélection des indicateurs et les paramètres sont raisonnables, et elle a une grande praticité. Il y a encore de la place pour une amélioration supplémentaire grâce à l'optimisation des paramètres et l'amélioration du mécanisme.
/*backtest start: 2023-02-05 00:00:00 end: 2024-01-18 05:20:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //A translation from info found at http://backtestwizard.com/swing-trading-system-for-stocks/ strategy("Swing Trading System RSI", overlay=true) source = close[1] longperiod = input(26,"long week",minval=2,maxval=500,step=1) s = request.security(syminfo.tickerid, "W", sma(close[1], longperiod)) // 1 Day plot(s) shortdays = input(21,"short days high period",minval=2,maxval=500,step=1) longdays = input(50,"long days high period",minval=2,maxval=500,step=1) rsiperiod = input(4,"rsi period",minval=2,maxval=500,step=1) rsithresh = input(30,"rsi thresh",minval=2,maxval=500,step=1) highcheck = highest(source,shortdays) == highest(source,longdays) rsicheck = crossunder(rsi(source,rsiperiod),rsithresh) longCondition = (highcheck) and (rsicheck) and source > s if (longCondition) strategy.entry("My Long Entry Id", strategy.long) profittarget = input(3,"profit target",minval=2,maxval=500,step=1) stoploss = input(2,"stop target",minval=2,maxval=500,step=1) exitCondition1 = source > strategy.position_avg_price + (atr(50) * profittarget) exitCondition2 = source < strategy.position_avg_price - (atr(50) * stoploss) if (exitCondition1) strategy.close_all() if (exitCondition2) strategy.close_all()