Cette stratégie permet de filtrer les doubles signaux en combinant la stratégie de retournement de la forme 123 et la stratégie de dynamique RSI, permettant des entrées à haute probabilité à des points de retournement de tendance.
Cette stratégie est tirée du livre de Ulf Jensen Comment obtenir un triple rendement sur le marché à terme page 183. Le principe est de juger des opportunités potentielles de renversement de tendance à la phase de consolidation.
Plus précisément, lorsque le prix de clôture est supérieur au prix de clôture du jour précédent pendant 2 jours consécutifs et que la ligne Slow K est inférieure à 50 le 9e jour, faites plus; lorsque le prix de clôture est inférieur au prix de clôture du jour précédent pendant 2 jours consécutifs et que la ligne Fast K est supérieure à 50 le 9e jour, faites moins.
Ainsi, la stratégie consiste essentiellement à évaluer les opportunités de reprise potentielles à l’aide de l’indicateur stochastique.
La stratégie utilise la fonction ROC pour calculer le taux de variation des prix, puis construit un indicateur RSI basé sur le taux de variation des prix afin de déterminer la dynamique tendancielle.
Lorsque le RSI est en dessous de la zone d’achat, il indique une accélération de la dynamique haussière des prix, faisant plus; lorsque le RSI est supérieur à la zone de vente, il indique une accélération de la dynamique baissière des prix, faisant moins.
Les points suivants peuvent être considérés pour réduire le risque:
La stratégie est facile à optimiser et à ajuster les paramètres, les utilisateurs peuvent tester en fonction des différentes variétés et des préférences de négociation. Cependant, il convient également de prendre en compte le risque que les signaux doubles puissent manquer le moment d’entrée.
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 17/06/2021
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
// The strategy sells at market, if close price is lower than the previous close price
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This is the new-age indicator which is version of RSI calculated upon
// the Rate-of-change indicator.
// The name "Relative Strength Index" is slightly misleading as the RSI
// does not compare the relative strength of two securities, but rather
// the internal strength of a single security. A more appropriate name
// might be "Internal Strength Index." Relative strength charts that compare
// two market indices, which are often referred to as Comparative Relative Strength.
// And in its turn, the Rate-of-Change ("ROC") indicator displays the difference
// between the current price and the price x-time periods ago. The difference can
// be displayed in either points or as a percentage. The Momentum indicator displays
// the same information, but expresses it as a ratio.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
vFast = sma(stoch(close, high, low, Length), KSmoothing)
vSlow = sma(vFast, DLength)
pos = 0.0
pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0)))
pos
RSI_ROC(RSILength,ROCLength,BuyZone,SellZone) =>
pos = 0.0
xPrice = close
nRes = rsi(roc(xPrice,ROCLength),RSILength)
pos := iff(nRes < BuyZone, -1,
iff(nRes > SellZone, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & RSI based on ROC", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- RSI based on ROC ----")
RSILength = input(20, minval=1)
ROCLength = input(20, minval=1)
BuyZone = input(30, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRSI_ROC = RSI_ROC(RSILength,ROCLength,BuyZone,SellZone)
pos = iff(posReversal123 == 1 and posRSI_ROC == 1 , 1,
iff(posReversal123 == -1 and posRSI_ROC == -1, -1, 0))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1 )
strategy.entry("Long", strategy.long)
if (possig == -1 )
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )