Cette stratégie utilise des indicateurs RSI doubles pour identifier les conditions de surachat et de survente, combinés à des ruptures de la bande de Bollinger pour générer des signaux de trading.
La stratégie utilise deux RSI avec des délais différents pour juger de l'état de surachat/survente à court et à long terme. Les signaux de trading ne sont générés que lorsque les deux RSI atteignent les valeurs seuil simultanément. Cela évite les faux signaux d'un seul RSI.
Les bandes de Bollinger sont également utilisées pour identifier les ruptures de prix.
Enfin, les MAs rapides et lents sont vérifiés pour la direction de la tendance.
L'utilisation combinée de multiples indicateurs aide à filtrer les faux signaux, en ne négociant que des tendances évidentes.
Le principal risque réside dans le fait de ne pas identifier rapidement les renversements de tendance. Des renversements brusques en forme de V peuvent entraîner des pertes significatives sans stop loss en temps opportun.
Ajoutez des stratégies de stop-loss pour sortir rapidement en cas de renversement.
Incorporer d'autres filtres comme le volume pour éviter les fausses fuites.
Optimisez les paramètres pour trouver la meilleure combinaison.
Ajouter des modèles d'apprentissage automatique pour mieux identifier les régimes de marché.
Améliorer la gestion des risques, y compris la taille des positions, le contrôle des pertes.
Cette stratégie combine le double RSI et les bandes de Bollinger pour tirer profit des tendances à court terme. Bien que simple et simple, des limitations existent comme les signaux d'inversion retardés. L'ajout de stop loss, de filtrage des signaux, d'optimisation des paramètres peut encore améliorer sa robustesse et sa rentabilité.
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-12 04:00:00 period: 2m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Madrugada strat copy", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, currency = currency.USD) // === GENERAL INPUTS === // RSI 1 RSIlength = input(10,title="RSI") RSIoverSold = input(65,title="OSold") RSIoverBought = input(35,title="OBought") price = close vrsi = rsi(price, RSIlength) // RSI 2 RSIlength2 = input(6,title="RSI2") RSIoverSold2 = input(65,title="OSold2") RSIoverBought2 = input(35,title="OBought2") price2 = close vrsi2 = rsi(price2, RSIlength2) //Bollinger Bands source = close Bollinger = input(20, minval=1), Desv = input(1.7, minval=0.001, maxval=50) basis = sma(source, Bollinger) dev = Desv * stdev(source, Bollinger) upper = basis + dev lower = basis - dev plot(basis, color=red, title="BB ma") p1 = plot(upper, color=blue, title="BBajo") p2 = plot(lower, color=blue, title="BAlto") fill(p1, p2) //Media movil short = input(3, minval=1, title="Media corta") long = input(10, minval=1, title="Media larga") src = close plot(sma(src, short), color=#00FF00, transp=0, linewidth=1, title="Media rapida") plot(sma(src, long), color=white, transp=0, linewidth=2, title="Media lenta") // === STRATEGY - LONG POSITION EXECUTION === enterLong() => vrsi < 30 and vrsi2 < 27 and cross(lower, price) exitLong() => short < long strategy.entry(id = "Long", long = true, when = enterLong()) // use function or simple condition to decide when to get in // === STRATEGY - SHORT POSITION EXECUTION === enterShort() => vrsi > 70 and vrsi2 > 70 and cross(upper, price) strategy.entry(id = "Short", long = false, when = enterShort()) // Definición señales de compra buy_signals = vrsi < 30 and vrsi2 < 27 and cross(lower, price) // Definición señales de venta sell_signals = vrsi > 70 and vrsi2 > 70 and cross(upper, price) // Dibuja las señales de compra venta en franjas de color b_color = (sell_signals) ? color(red,65) : (buy_signals) ? color(green,65) : na bgcolor(b_color) // Dibuja las señales de compra venta coloreando las velas barcolor(buy_signals ? white : sell_signals ? white : na) plot(vrsi, color=white, linewidth=1) plot(vrsi, color=white, linewidth=2) // Crea alarmas usables desde el desplegable para poder enviar mails a haas alertcondition(buy_signals, title='Buy-Signal', message='compra') alertcondition(sell_signals, title='Sell-Signal', message='vende')