
La stratégie utilise une combinaison d’indicateurs aléatoires comme les moyennes mobiles lisse (RSI) et les indices des bandes de Brent pour identifier les opportunités de vente potentielles. La stratégie utilise plusieurs conditions de filtrage pour distinguer les points de vente les plus avantageux. Cela lui permet d’identifier les opportunités de vente à forte probabilité dans des conditions de volatilité du marché.
La stratégie utilise deux ensembles d’indicateurs pour identifier les opportunités d’achat.
Tout d’abord, il utilise l’indicateur aléatoire des moyennes mobiles et des moyennes mobiles pour déterminer si le marché est en survente. L’indicateur, combiné à l’indicateur aléatoire et à sa moyenne mobile, est considéré comme un signal de survente lorsque la ligne% K traverse sa ligne% D à partir du bas.
Deuxièmement, la stratégie utilise l’indicateur de la bande de Brin pour identifier les variations de prix. La bande de Brin est un décalage calculé en fonction de l’écart standard du prix.
Après avoir obtenu le signal de survente pour les deux indicateurs ci-dessus, la stratégie ajoute plusieurs conditions de filtrage pour identifier davantage le moment de l’achat:
Le moment d’achat identifié après le jugement global est le signal d’achat.
Le filtrage à double indice présente plusieurs avantages:
Dans l’ensemble, la stratégie utilise un ensemble d’indicateurs techniques et de filtres qui permettent une identification plus précise et plus fiable du moment de l’achat, et donc une meilleure performance des transactions.
Bien que la stratégie de filtrage à double indice présente de nombreux avantages, elle comporte aussi des risques à éviter:
La stratégie peut être optimisée pour ces risques:
La stratégie de filtrage à double indice peut être optimisée dans les dimensions suivantes:
En introduisant des techniques et des méthodes plus avancées, la stratégie de filtrage du double indicateur permet d’obtenir une sélection plus précise des moments d’achat et une plus grande capacité de contrôle des risques. Cela permet d’obtenir des rendements plus stables et plus fiables sur le marché réel.
En résumé, la stratégie de signaux d’achat de doubles indicateurs utilise plusieurs indicateurs techniques tels que le RSI stochastique et les bandes de Brent, et combine plusieurs conditions de filtrage telles que la force des prix et le jugement de rebond pour identifier un moment de vente fiable à haute probabilité. Avec l’optimisation des paramètres, le paramétrage des arrêts-pertes, etc., la stratégie peut devenir l’une des stratégies de trading quantifiées pour la stabilité des gains.
Son principal avantage réside dans la combinaison efficace d’indicateurs et de conditions de filtrage, ce qui rend le jugement du moment d’achat plus précis. Les risques et les orientations d’optimisation sont également contrôlables et résolubles. Dans l’ensemble, c’est une stratégie de quantification très efficace qui peut être mise en œuvre.
/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("SORAN Buy and Close Buy", pyramiding=1, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, overlay=false)
////Buy and Close-Buy messages
Long_message = input("")
Close_message = input("")
///////////// Stochastic Slow
Stochlength = input(14, minval=1, title="lookback length of Stochastic")
StochOverBought = input(80, title="Stochastic overbought condition")
StochOverSold = input(20, title="Stochastic oversold condition")
smoothK = input(3, title="smoothing of Stochastic %K ")
smoothD = input(3, title="moving average of Stochastic %K")
k = sma(stoch(close, high, low, Stochlength), smoothK)
d = sma(k, smoothD)
///////////// RSI
RSIlength = input( 14, minval=1 , title="lookback length of RSI")
RSIOverBought = input( 70 , title="RSI overbought condition")
RSIOverSold = input( 30 , title="RSI oversold condition")
RSIprice = close
vrsi = rsi(RSIprice, RSIlength)
///////////// Double strategy: RSI strategy + Stochastic strategy
pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bolinger Band Length")
mult = input(2.0 , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
lb = input(50 , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
new = input(false, title="-------Text Plots Below Use Original Criteria-------" )
sbc = input(false, title="Show Text Plot if WVF WAS True and IS Now False")
sbcc = input(false, title="Show Text Plot if WVF IS True")
new2 = input(false, title="-------Text Plots Below Use FILTERED Criteria-------" )
sbcFilt = input(true, title="Show Text Plot For Filtered Entry")
sbcAggr = input(true, title="Show Text Plot For AGGRESSIVE Filtered Entry")
ltLB = input(40, minval=20, maxval=99, title="Long-Term Look Back Current Bar Has To Close Below This Value OR Medium Term--Default=40")
mtLB = input(14, minval=1, maxval=40, title="Medium-Term Look Back Current Bar Has To Close Below This Value OR Long Term--Default=14")
str = input(3, minval=1, maxval=9, title="Entry Price Action Strength--Close > X Bars Back---Default=3")
//Alerts Instructions and Options Below...Inputs Tab
new4 = input(false, title="-------------------------Turn On/Off ALERTS Below---------------------" )
new5 = input(false, title="----To Activate Alerts You HAVE To Check The Boxes Below For Any Alert Criteria You Want----")
sa1 = input(false, title="Show Alert WVF = True?")
sa2 = input(false, title="Show Alert WVF Was True Now False?")
sa3 = input(false, title="Show Alert WVF Filtered?")
sa4 = input(false, title="Show Alert WVF AGGRESSIVE Filter?")
//Williams Vix Fix Formula
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
rangeHigh = (highest(wvf, lb)) * ph
//Filtered Bar Criteria
upRange = low > low[1] and close > high[1]
upRange_Aggr = close > close[1] and close > open[1]
//Filtered Criteria
filtered = ((wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh))
filtered_Aggr = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and not (wvf < upperBand and wvf < rangeHigh)
//Alerts Criteria
alert1 = wvf >= upperBand or wvf >= rangeHigh ? 1 : 0
alert2 = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh) ? 1 : 0
alert3 = upRange and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered ? 1 : 0
alert4 = upRange_Aggr and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered_Aggr ? 1 : 0
//Coloring Criteria of Williams Vix Fix
col = wvf >= upperBand or wvf >= rangeHigh ? #00E676 : #787B86
isOverBought = (crossover(k,d) and k > StochOverBought) ? 1 : 0
isOverBoughtv2 = k > StochOverBought ? 1 : 0
filteredAlert = alert3 ? 1 : 0
aggressiveAlert = alert4 ? 1 : 0
plot(isOverBought, "Overbought / Crossover", style=plot.style_line, color=#FF5252)
plot(filteredAlert, "Filtered Alert", style=plot.style_line, color=#E040FB)
plot(aggressiveAlert, "Aggressive Alert", style=plot.style_line, color=#FF9800)
if (filteredAlert or aggressiveAlert)
strategy.entry("Buy", strategy.long, alert_message = Long_message)
if (filteredAlert or aggressiveAlert)
alert("Buy Signal", alert.freq_once_per_bar)
if (isOverBought)
strategy.close("Buy", alert_message = Close_message)