
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.
La logique de cette stratégie est la suivante:
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.
Les principaux avantages de cette stratégie sont les suivants:
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.
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.
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.
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.
Simple et efficaceLa stratégie est claire, les signaux de transaction sont faciles à comprendre et à optimiser, et les résultats sont évidents.
La stratégie présente également les principaux risques suivants:
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.
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.
É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.
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.
Les principaux axes d’optimisation de la stratégie sont:
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.
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.
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.
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.
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.
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.
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.
/*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)