Stratégie RSI et stochastique multi-périodes


Date de création: 2024-02-21 15:56:37 Dernière modification: 2024-02-21 15:56:37
Copier: 1 Nombre de clics: 924
1
Suivre
1617
Abonnés

Stratégie RSI et stochastique multi-périodes

Aperçu

La stratégie RSI à plusieurs périodes est une stratégie qui utilise une combinaison de RSI et d’indicateurs aléatoires pour juger du marché en plusieurs périodes. Cette stratégie combine les RSI et les indicateurs aléatoires de 4 périodes, en utilisant leur moyenne pour juger de l’évolution globale du marché et des situations de survente et de survente, afin de tirer parti des avantages des indicateurs de chaque période.

Principe de stratégie

1. Indicateur du RSI

L’indicateur RSI est un puissant indicateur de sur-achat et de survente, basé sur la hausse et la baisse d’une action sur une période donnée. Les valeurs RSI oscillent entre 0 et 100. En général, un RSI supérieur à 70 est un sur-achat et un RSI inférieur à 30 est un sur-vente.

Cette stratégie utilise un RSI de 14 longueurs et obtient des valeurs RSI pour 1 mois, 1 jour, 4 heures et 1 heure sur 4 périodes.

2. Indicateur aléatoire %K

L’indicateur aléatoire %K est un indicateur qui indique si le marché est en survente ou en survente, et ses valeurs oscillent entre 0 et 100. En général, un indicateur aléatoire supérieur à 80 est en survente et inférieur à 20 est en survente.

Dans cette stratégie, la longueur de l’indicateur aléatoire %K est de 14, et la fluidité est de 3, obtenant également les valeurs des 4 périodes de temps ci-dessus.

3. La composition de la moyenne

La clé de la stratégie est de calculer la moyenne des deux indicateurs ci-dessus sur les 4 périodes de temps afin de tirer parti des avantages de chaque période de temps et de déterminer la tendance globale du marché. La formule de calcul spécifique est la suivante:

Le RSI moyen est égal à (RSI mois + RSI jour + RSI 4 heures + RSI 1 heure) / 4

La moyenne des indicateurs aléatoires = (ligne lunaire aléatoire + ligne solaire aléatoire + indicateur aléatoire 4 heures + indicateur aléatoire 1 heure) / 4

4. Signaux de négociation

Faire plus lorsque la moyenne du RSI est inférieure à 30 et que la moyenne de l’indicateur aléatoire est inférieure à 20; faire moins lorsque la moyenne du RSI est supérieure à 70 et que la moyenne de l’indicateur aléatoire est supérieure à 80.

Après avoir effectué un plus, la position est en équilibre lorsque la moyenne de l’indicateur aléatoire est supérieure à 70 et que la moyenne du RSI est supérieure à 50; après avoir effectué un déficit, la position est en équilibre lorsque la moyenne de l’indicateur aléatoire est inférieure à 30 et que la moyenne du RSI est inférieure à 50

Analyse des avantages

Le plus grand avantage de cette stratégie réside dans la combinaison de deux indicateurs et de plusieurs périodes de temps, ce qui améliore considérablement la fiabilité des signaux de trading et évite au maximum les faux signaux. Les avantages spécifiques sont les suivants:

  1. L’indicateur RSI et l’indicateur aléatoire sont mutuellement vérifiables. Il est facile de générer de faux signaux en s’appuyant uniquement sur un seul indicateur, tandis que cette stratégie peut améliorer l’exactitude du signal en combinant les deux indicateurs.

  2. L’analyse de plusieurs périodes permet d’améliorer l’exactitude des jugements. Par exemple, les lignes lunaire et solaire montrent un surachat, mais 4 heures et 1 heure ne sont pas complètement surachat, ce qui indique que la tendance peut se poursuivre. Si toutes les périodes sont cohérentes, le signal est plus fiable.

  3. Une meilleure compréhension des points de basculement structurels. Une rupture de support/résistance critique simultanée sur plusieurs périodes permet de juger si une tendance actuelle est en train de basculer.

  4. Le calcul automatique de la moyenne des indicateurs simplifie l’opération. Il n’est pas nécessaire de calculer manuellement, le code effectue automatiquement l’extraction des données, le calcul des indicateurs et la recherche de la moyenne, ce qui réduit le travail.

Analyse des risques

Les principaux risques de cette stratégie résident dans le fait que, comme toutes les stratégies d’analyse technique, il n’est pas possible d’éviter complètement la probabilité d’être piégé et de produire de faux signaux. Les principaux risques sont:

  1. Un revirement de tendance à court terme entraîne une prise de position. Par exemple, pendant les positions multiples, la courte ligne de prix rebondit à nouveau après avoir franchi les supports vers le bas. La logique de la stratégie de levée de position nécessite alors un arrêt immédiat des pertes, mais elle peut entraîner des pertes à court terme.

  2. La rupture d’un support ou d’une résistance clé entraîne une rupture d’un stop tracking. Si un support ou une résistance clé est rompu, le prix d’arrêt initial peut être franchi directement, ce qui entraîne des pertes plus importantes.

  3. Un mauvais réglage du temps peut entraîner des erreurs de jugement. Un réglage du temps trop long ou trop court peut entraîner des erreurs de jugement.

  4. La dispersion des indices entraîne l’effet de Dunkerque: les indices des périodes plus élevées montrent une survente et ceux des périodes plus basses une survente. L’indicateur moyen ne reflète pas la réalité.

Les solutions pour faire face au risque incluent: optimiser les stratégies de stop loss, suivre les niveaux de support/résistance dynamiques, ajuster les paramètres du temps-frame et ajouter des mécanismes de filtrage.

Direction d’optimisation

Compte tenu des risques mentionnés ci-dessus, la stratégie peut également être optimisée dans les directions suivantes:

  1. Optimisation des mécanismes d’arrêt des pertes, réalisation du suivi des pertes et de l’arrêt des pertes par lots. Cela permet de contrôler le risque de perte individuelle tout en garantissant la rentabilité.

  2. Ajouter des périodes plus longues comme les trimestres. Cela permet de filtrer les signaux de tendance à un niveau plus élevé. Si les indicateurs divergent, donner la priorité aux périodes plus longues.

  3. Augmentation de la vérification multifonctionnelle du trafic. La combinaison des variations de trafic permet de déterminer le décalage inférieur et supérieur et d’éviter d’être induit en erreur par les mouvements des zombies.

  4. Optimiser le timing de l’entrée. Vous pouvez attendre une entrée de rupture à proximité d’importants supports/résistances historiques, ou attendre un point d’achat de rappel optimal.

  5. Augmentation de l’arrêt d’adaptation. Le point d’arrêt dynamique peut être calculé et ajusté en fonction de la volatilité et de l’ATR des périodes récentes.

Résumer

La stratégie RSI multi-cadres et les indicateurs aléatoires est une stratégie de négociation claire et fiable. Son plus grand avantage est que la combinaison des indicateurs et des cadres temporels se vérifie mutuellement, ce qui permet d’éviter au maximum le risque de piège et de faux signaux. Bien sûr, la stratégie présente également des risques similaires à ceux des stratégies d’analyse technique, qui nécessitent des améliorations et des optimisations constantes en termes d’optimisation des heures d’arrêt, des options de cadres, etc., pour en faire une stratégie de négociation algorithmique stable et rentable.

Code source de la stratégie
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

////////////////////////////////////////// MTF Stochastic & RSI Strategy 🚥 ©️ bykzis /////////////////////////////////////////
//

// *** Inspired by "Binance CHOP Dashboard" from @Cazimiro and "RSI MTF Table" from @mobester16 *** and LOT OF COPY of Indicator-Jones MTF Scanner
// 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//@version=5
strategy('MTF RSI & STOCH Strategy🚥 by kzi', overlay=false,initial_capital=100, currency=currency.USD, commission_value=0.01, commission_type=strategy.commission.percent)


// Pair list
var string GRP1       = '══════════    General    ══════════'
overbought = input.int(80, 'Overbought Level', minval=1, group=GRP1)
oversold = input.int(20, 'Oversold Level', minval=1, group=GRP1)


/// Timeframes
var string GRP2       = '══════════   Timeframes   ══════════'
timeframe1 = input.timeframe(title="Timeframe 1", defval="W", group=GRP2)
timeframe2 = input.timeframe(title="Timeframe 2", defval="D", group=GRP2)
timeframe3 = input.timeframe(title="Timeframe 3", defval="240", group=GRP2)
timeframe4 = input.timeframe(title="Timeframe 4", defval="60", group=GRP2)

// RSI settings
var string GRP3       = '══════════   RSI settings   ══════════'
rsiLength = input.int(14, minval=1, title='RSI length', group=GRP3)
rsiSource = input(close, 'RSI Source', group=GRP3)
rsioverbought = input.int(70, 'RSI Overbought Level', minval=1, group=GRP3)
rsioversold = input.int(30, 'RSI Oversold Level', minval=1, group=GRP3)


/// Get RSI values of each timeframe /////////////////////////////////////////////////////
rsi = ta.rsi(rsiSource, rsiLength)
callRSI(id,timeframe) =>
    rsiValue = request.security(id, str.tostring(timeframe), rsi, gaps=barmerge.gaps_off)
    rsiValue

RSI_TF1 = callRSI(syminfo.tickerid, timeframe1)
RSI_TF2 = callRSI(syminfo.tickerid, timeframe2)
RSI_TF3 = callRSI(syminfo.tickerid, timeframe3)
RSI_TF4 = callRSI(syminfo.tickerid, timeframe4)




/////// Calculate Averages /////////////////////////////////////////////////////////////////
calcAVG(valueTF1, valueTF2, valueTF3, valueTF4) =>
    math.round((valueTF1 + valueTF2 + valueTF3 + valueTF4) / 4, 2)

AVG=calcAVG(RSI_TF1, RSI_TF2, RSI_TF3, RSI_TF4)



// Stochastic settings
var string GRP4       = '══════════   Stochastic settings   ══════════'
periodK = input.int(14, '%K length', minval=1, group=GRP4)
smoothK = input.int(3, 'Smooth K', minval=1, group=GRP4)
stochSource = input(close, 'Stochastic Source', group=GRP4)
stochoverbought = input.int(70, 'Stochastic Overbought Level', minval=1, group=GRP4)
stochoversold = input.int(30, 'Stochastic Oversold Level', minval=1, group=GRP4)


/// Get Stochastic values of each timeframe ////////////////////////////////////////////////
stoch = ta.sma(ta.stoch(stochSource, high, low, periodK), smoothK)
getStochastic(id,timeframe) =>
    stochValue = request.security(id, str.tostring(timeframe), stoch, gaps=barmerge.gaps_off)
    stochValue

Stoch_TF1 = getStochastic(syminfo.tickerid, timeframe1)
Stoch_TF2 = getStochastic(syminfo.tickerid, timeframe2)
Stoch_TF3 = getStochastic(syminfo.tickerid, timeframe3)
Stoch_TF4 = getStochastic(syminfo.tickerid, timeframe4)


AVG_STOCH=calcAVG(Stoch_TF1, Stoch_TF2, Stoch_TF3, Stoch_TF4)


plot(AVG, color = color.blue, title='RSI')
plot(AVG_STOCH, color = color.yellow,title='STOCH')
hline(rsioverbought,color=color.red)
hline(rsioversold, color=color.lime)
hline(50, color=color.white)

//============ signal Generator ==================================//

if AVG <= rsioversold and AVG_STOCH <=stochoversold 
    strategy.entry('Buy_Long', strategy.long)

    
strategy.close("Buy_Long",when=(AVG_STOCH >=70 and AVG >=50 and close >=strategy.position_avg_price),comment="Long_OK")

if AVG >=rsioverbought and AVG_STOCH >=stochoverbought
    strategy.entry('Buy_Short', strategy.short)


strategy.close("Buy_Short",when=(AVG_STOCH <=30 and AVG <=50 and close <=strategy.position_avg_price),comment="Short_OK")


///////////////////////////////////////////////////////////////////////////////////////////