RSI Oscillateur Turtle Trading Stratégie à court terme

Auteur:ChaoZhang est là., Date: le 14 novembre 2023 à 15 h 59 min 25 s
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading à court terme qui utilise l'indicateur RSI basé sur les règles de trading de la tortue. Il combine l'indicateur RSI et l'indicateur Williams Alligator pour effectuer des transactions contre-tendance lorsque l'indicateur RSI entre dans la zone de surachat ou de survente.

La logique de la stratégie

La stratégie repose principalement sur les principes suivants:

  1. En utilisant les règles de négociation des tortues, n'entrez sur le marché que lorsqu'il y a un renversement évident, en adoptant une approche commerciale relativement conservatrice.

  2. L'utilisation de l'indicateur RSI pour juger des conditions de surachat/survente. Lorsque la ligne RSI entre dans la zone de surachat (défaut supérieur à 60) ou la zone de survente (défaut inférieur à 40), elle indique que le marché est au point d'inversion, puis effectue des transactions contre-tendance.

  3. Combiner l'indicateur Williams Alligator pour déterminer la tendance du marché. Aller court uniquement lorsque l'Alligator montre les trois lignes (Lips, Teeth, Jaw) alignées dans une tendance à la baisse; aller long uniquement lorsque les trois lignes alignées dans une tendance à la hausse.

  4. Utiliser le RSI du RSI pour juger des conditions de surachat/survente de l'indicateur RSI lui-même, créant un effet de double filtre.

  5. Fermez la position pour le profit ou le stop loss lorsque le prix inverse pour atteindre les lignes de profit ou de stop loss.

Analyse des avantages

La stratégie présente les avantages suivants:

  1. L'adoption de règles strictes en matière de commerce des tortues, qui permettent d'entrer sur le marché uniquement lorsqu'il y a un renversement évident, peut éviter d'énormes risques lorsque le marché varie.

  2. L'utilisation de l'indicateur RSI pour déterminer les points d'inversion du marché, l'indicateur est simple et clair, facile à utiliser.

  3. La combinaison de l'indicateur Alligator pour déterminer la direction de la tendance évite de négocier contre la tendance.

  4. La mise en place d'un stop-loss et d'une prise de bénéfices bloque les bénéfices et contrôle les risques.

  5. Les paramètres RSI et les critères d'entrée/sortie peuvent être ajustés pour différents marchés afin d'optimiser la stratégie.

Analyse des risques

La stratégie comporte également certains risques:

  1. Il y a une probabilité de faux signaux de l'indicateur RSI. L'indicateur RSI peut donner des signaux incorrects de surachat/survente. La combinaison d'Alligator peut réduire les faux signaux.

  2. Un stop loss trop large peut entraîner une augmentation des pertes.

  3. Il est possible que les revers ne se produisent pas exactement dans les zones de surachat/survente du RSI.

  4. Le nombre de transactions peut être faible, face à des périodes d'absence de transactions.

  5. Les marchés en tendance prolongée peuvent rendre difficile la négociation à court terme. La période de détention doit être ajustée en temps opportun, ce qui allonge ou raccourcit le délai de négociation.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres du RSI, ajuster les zones de surachat/survente pour s'adapter aux différents marchés.

  2. Ajustez les paramètres d'Alligator pour améliorer la précision de la détermination de la direction de la tendance.

  3. Optimisez les paramètres de stop loss et de profit pour maximiser le contrôle du retrait et obtenir plus de bénéfices.

  4. Combinez avec d'autres indicateurs tels que KDJ, MACD, etc. pour améliorer la précision du signal.

  5. Ajoutez un stop-loss automatique, un stop-loss de suivi pour mieux contrôler les pertes d'une seule transaction.

  6. Optimiser la taille des positions dans différentes conditions de marché pour gérer les risques.

  7. Optimisez les séances de trading, négociez à des moments où la tendance est plus évidente.

Résumé

En résumé, il s'agit d'une stratégie de trading à court terme relativement robuste. Elle adopte une approche de trading conservatrice, utilise l'indicateur RSI pour déterminer les points d'inversion et intègre l'indicateur Alligator pour juger de la direction de la tendance, ce qui peut efficacement éviter les transactions à haut risque comme la poursuite de sommets et de fonds, et verrouiller des bénéfices relativement stables. En optimisant les paramètres, en supprimant les pertes / en obtenant des bénéfices, en combinant d'autres indicateurs, etc., la stratégie peut être continuellement améliorée.


/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-07 20:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4

strategy(title="RSI of Ultimate Oscillator [SHORT Selling] Strategy",  shorttitle="RSIofUO" , overlay=false, pyramiding=1,     default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed,

	
//Ultimate Oscillator logic copied from  TradingView   builtin indicator
/////////////////////////////////////////////////////////////////////////////////
length1 = input(5, minval=1), length2 = input(10, minval=1), length3 = input(15, minval=1)


rsiUOLength = input(5, title="RSI UO length", minval=1)

sellLine = input (60, title="Sell at RSIofUO")
coverLine = input (75, title="Cover at RSIofUO")

riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(3,title="Stop Loss",minval=1)


showUO=input(false, "show Ultimate Oscialltor")



average(bp, tr_, length) => sum(bp, length) / sum(tr_, length)
high_ = max(high, close[1])
low_ = min(low, close[1])
bp = close - low_
tr_ = high_ - low_
avg7 = average(bp, tr_, length1)
avg14 = average(bp, tr_, length2)
avg28 = average(bp, tr_, length3)
out = 100 * (4*avg7 + 2*avg14 + avg28)/7
//Ultimate Oscillator 
/////////////////////////////////////////////////////////////////////////////////

//Willimas Alligator  copied from  TradingView built in Indicator
/////////////////////////////////////////////////////////////////////////////////
smma(src, length) =>
	smma =  0.0
	smma := na(smma[1]) ? sma(src, length) : (smma[1] * (length - 1) + src) / length
	smma

//moving averages logic copied from Willimas Alligator -- builtin indicator in TradingView
sma1=smma(hl2,10)
sma2=smma(hl2,20)
sma3=smma(hl2,50)

//Willimas Alligator
/////////////////////////////////////////////////////////////////////////////////


//drawings
/////////////////////////////////////////////////////////////////////////////////
hline(sellLine, title="Middle Line 60  [Short Here]", color=color.red , linestyle=hline.style_solid)

obLevelPlot = hline(75, title="Overbought",  color=color.blue , linestyle=hline.style_dashed)
osLevelPlot = hline(25, title="Oversold", color=color.blue, linestyle=hline.style_dashed)

fill(obLevelPlot, osLevelPlot, title="Background", color=color.blue, transp=90)
rsiUO = rsi(out,rsiUOLength)

ultPlot=plot(showUO==true? out : na, color=color.green, title="Oscillator")

plot(rsiUO, title = "rsiUO" ,  color=color.purple)
//drawings
/////////////////////////////////////////////////////////////////////////////////




//Strategy Logic 
/////////////////////////////////////////////////////////////////////////////////

//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity  * riskCapital / 100 ) /  (close*stopLoss/100)  

//check if cash is sufficient  to buy qty1  , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1


strategy.entry(id="SERSIofUO", long=false,   qty=qty1, when = sma1<=sma2 and sma2 < sma3 and close<sma2 and crossunder(rsiUO,sellLine) )

//strategy.entry(id="SERSiofUO", long=false, when = sma1< sma2  and crossunder(rsiUO,60) )

barcolor(abs(strategy.position_size)>=1 ? color.purple : na )
bgcolor(abs(strategy.position_size)>=1 ? color.purple : na , transp=70)


//partial exit
strategy.close(id="SERSIofUO", comment="PExit",  qty=strategy.position_size/3, when=abs(strategy.position_size)>=1 and close< strategy.position_avg_price and crossover(rsiUO,30) )

strategy.close(id="SERSIofUO", comment="CloseAll", when=abs(strategy.position_size)>=1 and crossover(rsiUO,coverLine) )

//Strategy Logic 
/////////////////////////////////////////////////////////////////////////////////



Plus de