
Cette stratégie utilise le principe de l’indicateur RSI de sur-achat et de survente, en combinaison avec le RSI à plusieurs périodes, pour effectuer des opérations intercycliques. La stratégie détermine les signaux de survente et de survente en fonction de la configuration cyclique du RSI et utilise la moyenne mobile du RSI pour filtrer et éviter les signaux erronés.
La stratégie génère des signaux de transaction principalement par le biais de jugements de survente et de survente de l’indicateur RSI. L’indicateur RSI représente un indice relativement faible. Sa formule de calcul est: RSI = 100 - (100 / (1 + RS)), où RS est le rapport entre le nombre moyen de gains de clôture et le nombre moyen de pertes de clôture sur une période donnée.
Cette stratégie a un paramètre élevé de surcompra et un paramètre bas de survente, qui est jugé en survente lorsque le RSI est supérieur à la surcompra et en survente lorsque le RSI est inférieur à la survente. La valeur par défaut de la surcompra est de 70 et la valeur par défaut de la surcompta est de 30.
Pour générer des signaux d’achat et de vente, la stratégie utilise les moyennes mobiles de l’indicateur RSI pour filtrer. Lorsque l’indicateur RSI traverse sa moyenne mobile, il génère un signal d’achat Es_compra et un signal de vente Es_venta.
Après avoir généré des signaux d’achat et de vente, la stratégie ouvre des positions pour des transactions à plusieurs niveaux ou à vide. En outre, la stratégie définit un stop loss et un stop loss, “%”, pour empêcher l’expansion des pertes et le blocage des bénéfices.
L’indicateur RSI est utilisé pour juger de l’excédent d’achat et d’achat, afin d’éviter de courir après les hauts et les bas.
Le RSI est utilisé pour filtrer les fluctuations et éviter les faux signaux.
Le réglage de l’indicateur RSI à plusieurs périodes permet un signal de négociation plus stable.
La mise en place d’un mécanisme d’arrêt des dommages et de contrôle des risques.
La logique de la stratégie est simple et claire, facile à comprendre et à modifier.
Paramètres personnalisables pour différentes variétés et périodes.
L’indicateur RSI est en retard et peut manquer le meilleur moment pour inverser le cours.
Les moyennes mobiles retardent les signaux de négociation et empêchent la capture en temps opportun d’une inversion de tendance.
Les paramètres fixes de survente et de survente ne sont pas assez flexibles et doivent être ajustés selon les périodes et les variétés.
Une mauvaise configuration du stop loss peut entraîner des pertes ou des pertes de profit.
Les positions à tête nue à tête nue sont limitées à une seule main et ne permettent pas d’utiliser pleinement les fonds pour les échanges de différence de prix.
Les signaux de négociation sont évalués en combinaison avec d’autres indicateurs tels que MACD, KD, etc.
Appliquer une moyenne mobile adaptée pour suivre les tendances.
Il est possible de définir des paramètres de survente dynamique, en fonction de la volatilité du marché.
Optimisation des algorithmes de stop-loss, tels que le suivi des stop-loss.
Augmentation des mécanismes de gestion des positions et adaptation dynamique des positions en fonction de la taille des fonds.
Il est possible d’ajouter des filtres de tendance afin d’éviter des transactions fréquentes dans les marchés en perpétuel mouvement.
Les paramètres d’optimisation sont testés en arrière-plan et les combinaisons optimales sont sélectionnées.
Cette stratégie est basée sur l’indicateur RSI de sur-achat et de survente, utilise des moyennes mobiles pour filtrer et générer des signaux de négociation, pour réaliser une méthode de négociation intercyclique typique. La stratégie a une structure logique claire et une configuration de paramètres, qui peut s’appliquer à différentes variétés et périodes en ajustant les paramètres.
/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-30 23:59:59
period: 3m
basePeriod: 1m
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/
// © samuelkanneman
//@version=4
strategy("RSI KANNEMAN")
//////Entrada///////
i_startTime = input(title="Start Date Filter", defval=timestamp("01 Nov 2020 13:30 +0000"), type=input.time, tooltip="Date & time to begin trading from")
i_endTime = input(title="End Date Filter", defval=timestamp("1 Nov 2022 19:30 +0000"), type=input.time, tooltip="Date & time to stop trading")
sobrecompra= input(70, title="Sobre Compra", type=input.integer ,minval=50, maxval=100 )
sobreventa= input(30, title="Sobre Venta", type=input.integer ,minval=0, maxval=50 )
l1=hline(sobrecompra)
l2=hline(sobreventa, color=color.purple)
periodos= input(14, title="Periodos", type=input.integer ,minval=1, maxval=50 )
periodos_media= input(14, title="Logintud media movil", type=input.integer ,minval=1, maxval=200 )
var SL =0.0
var TP=0.0
StopLoss = input(2.0, title="SL %", step=0.2)
TakeProfit = input(5.0, title="TP %", step=0.2)
//////Proceso///////
mi_rsi=rsi(close,periodos)
mm_rsi=sma(mi_rsi,periodos_media)
Es_compra= crossover(mm_rsi,sobreventa)
Es_venta= crossunder(mm_rsi,sobrecompra)
comprado= strategy.position_size > 0
vendido = strategy.position_size < 0
//time to test
dateFilter = true
//timePeriod = time >= timestamp(syminfo.timezone, 2020, 11, 1, 0, 0)
// long
if (not comprado and Es_compra and dateFilter )
// realizar long
cantidad = strategy.equity/hlc3
strategy.entry ("compra", strategy.long , cantidad)
SL := close*(1-(StopLoss/100))
TP := close*(1+(TakeProfit/100))
if close >= TP
strategy.close ("compra" , comment="Salto TP")
if (comprado and Es_venta )
strategy.close ("compra" , comment="Sobre Venta")
if close <= SL
strategy.close ("compra" , comment="Salto SL")
// short
if (not vendido and Es_venta and dateFilter )
// realizar short
cantidad = strategy.equity/hlc3
strategy.entry ("venta", strategy.short , cantidad)
SL := close*(1+(StopLoss/100))
TP := close*(1-(TakeProfit/100))
if close <= TP
strategy.close ("venta" , comment="Salto TP")
if (vendido and Es_compra )
strategy.close ("venta" , comment="Sobre Compra")
if close >= SL
strategy.close ("venta" , comment="Salto SL")
///////Salida//////
fill(l1,l2)
plot(mi_rsi)
plot(mm_rsi, color=color.yellow)
bgcolor(Es_compra ? color.blue : na , transp=0)
bgcolor(Es_venta ? color.red : na , transp=0)
// 1d 70 22 5 4 3 15 6 meses
//1h 70 20 6 4 5 7 1 mese
//15m 70 20 5 4 4 7 1 semana