
La stratégie de doubles alertes historiques RSI inverse permet de générer des signaux de négociation plus précis en combinant la stratégie de 123 inverse et la stratégie d’alertes historiques RSI. La stratégie de 123 inverse détermine les points de reprise des prix et la stratégie d’alertes historiques RSI détermine les points de survente.
La stratégie de revers est basée sur l’hypothèse suivante: les signaux de revers du cours d’une action apparaissent généralement deux jours avant le revers du cours d’une action.
Les règles de jugement sont les suivantes:
La stratégie utilise les relations de prix des 2 jours précédant le renversement des cours pour déterminer les points de renversement possibles. En même temps, l’indicateur de ligne K supprime certains signaux de bruit.
La stratégie d’alerte historique du RSI a été modifiée en fonction de l’indicateur RSI:
Cette stratégie consiste à déterminer la taille de la valeur absolue de l’indicateur RSI pour indiquer un état de sur-achat et de survente, générant ainsi un signal de transaction.
Cette stratégie combine deux types de stratégies différentes qui peuvent se compléter et produire des signaux plus fiables. Les avantages spécifiques sont:
Les principaux risques de cette stratégie sont les suivants:
La solution est la suivante:
Cette stratégie peut être optimisée dans les directions suivantes:
La stratégie d’alerte historique RSI à double inversion peut produire un signal de négociation plus fiable en combinant une stratégie de réversion des prix et une stratégie de jugement de surachat et de survente. Comparée à la stratégie unique, elle présente un risque de faux signaux plus faible et un jugement plus complet. La stratégie a une grande marge d’optimisation.
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 28/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 simple indicator modified RSI
//
// 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_Hist(RSIPeriod,BuyAlertLevel,SellAlertLevel,RSIHistoModify) =>
pos = 0.0
xPrice = close
RSIMain = (rsi(xPrice, RSIPeriod) - 50) * RSIHistoModify
pos:= iff(RSIMain > BuyAlertLevel, 1,
iff(RSIMain < SellAlertLevel, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & RSI HistoAlert", 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 HistoAlert ----")
RSIPeriod = input(13, minval=1)
BuyAlertLevel = input(-10)
SellAlertLevel = input(10)
RSIHistoModify = input(1.5)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRSI_Hist = RSI_Hist(RSIPeriod,BuyAlertLevel,SellAlertLevel,RSIHistoModify)
pos = iff(posReversal123 == 1 and posRSI_Hist == 1 , 1,
iff(posReversal123 == -1 and posRSI_Hist == -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 )