Stratégie de trading RSI utilisant le jugement conditionnel bayésien


Date de création: 2023-12-18 17:09:00 Dernière modification: 2023-12-18 17:09:00
Copier: 0 Nombre de clics: 857
1
Suivre
1621
Abonnés

Stratégie de trading RSI utilisant le jugement conditionnel bayésien

Aperçu

Le présent article analyse principalement une stratégie de trading quantitative appelée “calcul de la probabilité de la hausse ou de la baisse de l’indicateur RSI” qui consiste à calculer la probabilité de la hausse ou de la baisse de l’indicateur RSI en appliquant la théorie de Bayes pour déterminer la tendance future des prix et réaliser des profits.

Principe de stratégie

La logique de cette stratégie est la suivante:

  1. Calculer la probabilité d’une hausse du cours de clôture sur une période donnée. Distribution A
  2. Calculer la distribution de probabilité de la poursuite de la hausse de l’indicateur RSI au cours de la période correspondante
  3. Appliquer la loi de Bayes pour calculer la probabilité que A et B se produisent simultanément
  4. Lorsque cette probabilité est supérieure à la marge, on juge que la tendance se poursuivra et on prend un signal de transaction.

Plus précisément, la stratégie définit d’abord le paramètre p comme paramètre de cycle pour calculer l’indicateur RSI, et r comme période de temps pour prédire les variations futures des prix. Ensuite, dans la période p, on calcule le nombre de fois où le cours de clôture a augmenté, en calculant la distribution de probabilité A. Parallèlement, dans la période p, on calcule le nombre de fois où le RSI a continué à augmenter après la fin de cette période, dans la période r.

Ensuite, appliquer la formule de la loi de Bayes pour calculer la probabilité de la hausse des cours de clôture et de la hausse du RSI, afin de déterminer la probabilité finale. Lorsque cette probabilité est supérieure à une valeur de seuil donnée, la tendance à la hausse est estimée et plusieurs transactions sont effectuées. Lorsque la probabilité est inférieure à la valeur de seuil, la tendance à la reprise est estimée et une position est prise.

Ainsi, la synthèse stratégique prend en compte l’information sur les prix et les indicateurs techniques, les statistiques de probabilité et les lois de Bayes, juge les tendances futures et génère des signaux de négociation.

Avantages stratégiques

Les principaux avantages de cette stratégie sont les suivants:

  1. Une combinaison d’informationsLa stratégie prend en compte non seulement les informations sur les prix, mais également les informations sur les indicateurs techniques tels que le RSI, afin de juger de manière globale des tendances futures et d’améliorer l’exactitude des jugements.

  2. Prévisions de probabilitéIl s’agit d’une approche qui utilise la probabilité d’une distribution statistique pour faire des prévisions probabilisées de la direction des variations des prix et du RSI, plutôt que de simples comparaisons numériques, pour rendre le jugement plus scientifique.

  3. Optimisation Bayésienne: utilisation de la loi de Bayes pour calculer la probabilité correspondante, optimiser la probabilité statistique initiale et rendre le jugement plus précis.

  4. Paramètres de souplesse: offre une variété de paramètres pour l’optimisation de l’ajustement, permettant l’adaptation des paramètres pour différents marchés et actifs, améliorant l’adaptabilité de la stratégie.

  5. Simple et efficaceLa stratégie est claire, les signaux de transaction sont faciles à comprendre et à optimiser, et les résultats sont évidents.

Risque stratégique

La stratégie présente également les principaux risques suivants:

  1. Dépendance des paramètres: les effets de la stratégie dépendent des paramètres, différents marchés nécessitent de modifier de nombreux paramètres pour obtenir des effets optimaux, ce qui augmente la difficulté de la stratégie.

  2. Erreur de probabilité: En raison du temps et de l’échantillonnage limités, les probabilités calculées peuvent ne pas correspondre à la tendance réelle, ce qui entraîne un biais de jugement.

  3. Événement spécialLes événements majeurs peuvent affecter la corrélation entre les prix du marché et le RSI et rendre la stratégie inefficace.

  4. Indicateur technique inefficaceDans certains cas de marché, des indicateurs techniques tels que le RSI peuvent générer des signaux d’échec, entraînant l’échec du jugement stratégique.

Les solutions pour répondre aux risques comprennent: optimiser le processus de paramétrage, ajuster le temps de statistique et le nombre d’échantillons, intégrer plus d’informations auxiliaires, des situations anormales d’intervention manuelle, etc.

Optimisation de la stratégie

Les principaux axes d’optimisation de la stratégie sont:

  1. Cadre temporel multipleLes stratégies peuvent être exécutées sur plusieurs périodes de temps (ligne solaire, orbite, etc.) pour améliorer la stabilité et le jugement global.

  2. Autres indicateurs: ajouter plus de signaux d’indicateurs techniques, tels que la forme de la ligne K, la moyenne de mouvement, etc., pour enrichir le jugement.

  3. Optimisation du modèle: Appliquer des méthodes telles que l’apprentissage automatique pour optimiser le modèle Bayesian et rendre les calculs plus précis.

  4. Paramètres dynamiques: module d’optimisation dynamique ajouté aux paramètres, permettant aux paramètres d’être ajustés en fonction des changements du marché en temps réel.

  5. Système de contrôle du ventLe but de la stratégie est de: définir un maximum de retraits, faire des retraits ponctuels, etc. afin d’éviter des pertes massives sur les marchés extrêmes.

  6. Améliorations intégréesLe but de ce projet est de créer un système de vote qui s’intègre à d’autres types de stratégies ou de modèles pour améliorer la stabilité des jugements.

Résumer

La stratégie commence par calculer la probabilité de distribution des prix et des RSI, puis utilise la loi de Bayes pour calculer la probabilité de composition, générant un signal de transaction lorsque la probabilité est supérieure à une valeur limite donnée, et réalisant un profit. La stratégie intègre des informations multi-sources, la prévision de la probabilité d’application et l’optimisation de Bayes, ce qui permet de mieux juger l’efficacité. Les principales directions d’optimisation comprennent l’extension du délai, l’augmentation de l’indicateur, la dynamique des paramètres.

Code source de la stratégie
/*backtest
start: 2022-12-11 00:00:00
end: 2023-03-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// Stealthy7 trading scripts are radikal. You have entered the mystical realm of demonic profit.
// If you like this script, check out my bots at cryptotrader.org/?r=51
// Let me know if you find any improvements to this script. It is beta. 
// Please subscribe.
strategy("Stealthy7 Bayes Conditional RSI Trader Strategy", overlay=true)
p = input(title="Period",  defval=30, minval=5, maxval=500)
t = input(title="Movement Thresh", type=float, defval=1.003, minval=1.001, maxval=1.5, step=0.001)
r = input(title="Look Range",  defval=7, minval=1,maxval=500, step=1)
RSIT = input(title="Jump",  defval=8, minval=1,maxval=99, step=1)
BAYEST = input(title="SM",  defval=3, minval=1,maxval=99, step=1)
RSIP = input(title="RSIP",  defval=14, minval=2,maxval=100, step=1)
countup = 1
countdn = 1
countupS = 1
countdnS = 1
for i = p to 1
    if close[i]/close[i + r] > t
        countup := countup + 1
    else
        countdn := countdn + 1
    if close[i]/close[i + r] < 2 - t
        countupS := countupS + 1
    else
        countdnS := countdnS + 1

rsi = rsi(open,RSIP)

countup2 = 1
countup3 = 1
countup2S = 1
countup3S = 1
for i = p to 1
    if close[i]/close[i + r] > t and rsi[i + r + 1] > rsi[i + r + 2] + RSIT
        countup2 := countup2 + 1
    else
        countup3 := countup3 + 1
    if close[i]/close[i + r] < 2 - t and rsi[i + r + 1] < rsi[i + r + 2] - RSIT
        countup2S := countup2S + 1
    else
        countup3S := countup3S + 1

countup2b = countup2 / p
countup3b = countup3 / p
countupb = countup / p
countdnb = countdn / p

countup2bS = countup2S / p
countup3bS = countup3S / p
countupbS = countupS / p
countdnbS = countdnS / p
bayes = 0
bayes := ((countupb * countup2b) / ((countupb * countup2b) + (countdnb * countup3b))) * 100
bayesS = 0
bayesS := ((countupbS * countup2bS) / ((countupbS * countup2bS) + (countdnbS * countup3bS))) * 100
SN1 = sma(bayes,BAYEST)
SN2 = sma(bayesS,BAYEST)
shortCondition = crossunder(bayesS, SN2) //and rsi < 49
longCondition = crossover(bayes, SN1) //and rsi > 59
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)