
Cette stratégie utilise une combinaison d’indicateurs de ligne de parité, de force relative (RSI) et de parallaxe (PSAR) pour déterminer le point de revers du cours. Elle consiste à acheter et à vendre à l’occasion d’un revers.
La stratégie utilise principalement les indicateurs techniques suivants pour déterminer le point de basculement des prix:
Double moyenne: calculer la moyenne mobile rapide (MA rapide) et la moyenne mobile lente (MA lente). Lorsque la ligne rapide traverse la ligne lente, elle est considérée comme un marché à capitaux multiples, faisant plus; lorsque la ligne rapide traverse la ligne lente, elle est considérée comme un marché à capitaux vides, faisant moins.
Indicateur RSI: Le RSI est utilisé pour juger si une position est en sur-achat ou en sur-vente en calculant la hausse et la baisse moyennes de la clôture sur une période donnée. Un RSI supérieur à 70 est une zone de sur-achat et un RSI inférieur à 30 est une zone de sur-vente.
Indicateur PSAR: L’indicateur SAR parallèle détermine la direction de la tendance. Le point SAR est le marché à plusieurs têtes au-dessous et le marché à tête nue au-dessus.
Indicateur ADX: l’ADX détermine la force de la tendance en calculant l’intensité directionnelle des variations de prix. Une valeur ADX supérieure à 20 indique une tendance, inférieure à 20 indique un rebond.
La logique des signaux d’achat et de vente selon les indicateurs ci-dessus est la suivante:
Signaux d’achat: sur les lignes rapides, le RSI est inférieur à 30 (zone de survente), le point SAR est au-dessus du prix, l’ADX est supérieur à 20 et un signal d’achat est émis.
Signal de vente: le RSI est supérieur à 70 (zone de survente), le SAR est en dessous du prix, l’ADX est supérieur à 20 et le signal de vente est émis.
Lorsque des signaux d’achat et de vente se produisent, établir des positions en plus et en moins de 10% respectivement. Lorsque le signal de renversement est invalide, cesser la position en moins en temps opportun.
L’utilisation d’une double ligne d’équilibre pour déterminer la direction de la tendance générale et l’ajout d’indicateurs tels que le RSI et le SAR pour éliminer les signaux erronés permet de déterminer avec plus de précision le point de basculement.
Il est possible d’utiliser plusieurs combinaisons d’indicateurs pour éviter les signaux erronés causés par un seul indicateur technique.
Les conditions d’arrêt permettent de contrôler efficacement les risques.
Les opérations stratégiques sont simples, claires et faciles à mettre en œuvre.
La stratégie a été conçue pour faire face aux fluctuations du marché et s’applique à différentes situations.
Lorsque des lignes doubles génèrent un signal de tête vide, des fausses ruptures peuvent survenir et doivent être jugées en combinaison avec d’autres indicateurs. Le cycle de la ligne moyenne peut être allongé de manière appropriée, ou l’indicateur de la bande de Brin peut être ajouté pour juger de la véracité de la rupture.
L’indicateur RSI peut produire un signal erroné en raison d’une mauvaise configuration des paramètres. Il convient d’ajuster les paramètres RSI de manière appropriée, tout en ajoutant d’autres indicateurs pour confirmer le signal RSI.
Si la valeur de l’ADX est inférieure à 20, il est recommandé de suspendre la négociation afin d’éviter le renversement des marchés sans direction. Ou de réduire de manière appropriée le paramètre de cycle de l’ADX.
Le stop loss de SetStringry est trop petit et peut entraîner des pertes inutiles. Le stop loss doit être raisonnablement réglé en fonction de la volatilité du marché.
La fréquence des transactions peut être trop élevée, et les cycles bi-médianes peuvent être ajustés de manière appropriée pour réduire la fréquence des transactions.
Tester les combinaisons de lignes moyennes de différentes longueurs de cycle pour trouver le paramètre optimal.
Tester les différents paramètres du RSI pour optimiser les jugements de sur-achat et de sur-vente
Essayez d’ajouter d’autres indicateurs, tels que les bandes de Brin, le KDJ, etc., pour enrichir la logique de jugement des signaux d’achat et de vente.
La mise en place d’un mécanisme de stop-loss dynamique en fonction des variétés et des conditions du marché.
Ajout d’une stratégie de gestion de position pour permettre aux bénéfices de mieux suivre la tendance.
Testez différents paramètres ADX pour trouver la valeur qui détermine le mieux la force de la tendance.
L’ajout d’un module d’arrêt automatique permet à la stratégie de s’arrêter automatiquement.
La stratégie utilise la double ligne d’équilibre pour déterminer la direction générale, combinée à des indicateurs tels que le RSI, le SAR et le filtrage des signaux de retournement. Après la définition des paramètres d’optimisation, il est possible de déterminer efficacement le point de retournement du prix, afin de capturer la tendance avant et après le retournement.
/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//Based on Senpai BO 3
strategy(title="Senpai_Strat_3", shorttitle="Senpai_Strat_3", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
src = close
//psar
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
psar = sar(start, increment, maximum)
//ADX Init
adxlen = input(30, title="ADX Smoothing")
dilen = input(30, title="DI Length")
dirmov(len) =>
up = change(high)
down = -change(low)
truerange = rma(tr, len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
[adx, plus, minus]
[sig, up, down] = adx(dilen, adxlen)
// BB Init
source = close
length = input(50, minval=1)
mult = input(0.5, title="Mult Factor", minval=0.001, maxval=50)
alertLevel=input(0.1)
impulseLevel=input(0.75)
showRange = input(false, type=bool)
//RSI CODE
up1 = rma(max(change(src), 0), 14)
down1 = rma(-min(change(src), 0), 14)
rsi = down1 == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up1 / down1))
//BB CODE
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.05
bbi = bbr - nz(bbr[1])
//////////////////// Algo
//if (rsi>50 and n1>n2)
//strategy.exit("Close", "Short")
// strategy.entry("Long", strategy.long)
//if (rsi<50 and n2>n1)
//strategy.exit("Close", "Long")
// strategy.entry("Short", strategy.short)
//col = ma30 > ma50 > ma200 and rsi <=53?lime: ma50 < ma200 and rsi >= 60?red : silver
//short1 = sig<18.5 and high>=upper and rsi>=70 and psar<close = 100%
//long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close = 100%
short1 = sig<18.5 and high>=upper and rsi>=70 and psar<close
long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close
//Entry
long = long1[1] == 0 and long1 == 1
short = short1[1] == 0 and short1 == 1
longclose = long[3] == 1
shortclose = short[3] == 1
strategy.entry("short", strategy.short,qty = 10, when=short)
strategy.entry("long", strategy.long,qty=10, when=long)
strategy.close("long",when=longclose)
strategy.close("short",when=shortclose)
/////////////////////
///PLOT
plot(long,"long",color=green,linewidth=1)
plot(short,"short",color=red,linewidth=1)
plot(longclose,"close",color=blue,linewidth=1)
plot(shortclose,"close",color=orange,linewidth=1)
//plot(short,"short",color=red,linewidth=1)
//
//strategy.exit(id="long",qty = 100000,when=longclose)
//strategy.exit(id="short",qty = 100000,when=shortclose)
//strategy.exit(id="Stop", profit = 20, loss = 100)