Stratégie d'inversion basée sur le RSI rapide et les couleurs des chandeliers

Auteur:ChaoZhang est là., Date: 2023-09-13 17h24 et 54 min
Les étiquettes:

Cette stratégie s'appelle Reversal Strategy Based on Fast RSI and Candlestick Colors. Elle utilise le RSI rapide pour juger des niveaux de surachat/survente et les couleurs des bougies pour déterminer la direction de la tendance, en entrant dans des transactions d'inversion lorsque les deux donnent des signaux concurrents.

Le RSI rapide a des paramètres plus petits et peut détecter plus rapidement les conditions de surachat/survente des prix.

Les couleurs des chandeliers montrent que les prix blancs se ferment près de l'ouverture, le vert représente la hausse et les drapeaux rouges la baisse des prix.

La logique de négociation est la suivante:

Lorsque le RSI rapide montre une survente et que 4 bougies rouges consécutives apparaissent, il est considéré comme un fort signal d'inversion pour aller long.

Lorsque le RSI est rapidement suracheté et que 4 bougies vertes apparaissent, cela indique une forte opportunité d'inversion pour un short.

Si vous détenez déjà des positions longues, quittez lorsque 1 bougie verte apparaît.

L'avantage de cette stratégie est d'utiliser des combinaisons d'indicateurs pour déterminer avec précision les signaux d'inversion.

En résumé, le trading d'inversion repose sur des indicateurs permettant d'identifier avec précision le timing. L'application raisonnable du RSI plus les informations du chandelier peut améliorer les performances de la stratégie. Mais aucune stratégie unique n'est parfaite. Les traders doivent toujours maintenir une mentalité de trading flexible.


/*backtest
start: 2022-09-06 00:00:00
end: 2023-01-20 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Hundred Strategy v1.0", shorttitle = "Hundred str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
lev = input(5, defval = 5, minval = 1, maxval = 100, title = "leverage")
onlyprofit = input(true, defval = true, title = "Only Profit")
fast = input(7, defval = 7, minval = 2, maxval = 50, title = "Fast RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rsibars = input(1, defval = 1, minval = 1, maxval = 20, title = "RSI Bars")
cbars = input(4, defval = 4, minval = 1, maxval = 20, title = "Color Bars")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), fast)
fastdown = rma(-min(change(rsisrc), 0), fast)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit

//RSI Bars
upsignal = fastrsi > uplimit ? 1 : 0
dnsignal = fastrsi < dnlimit ? 1 : 0
uprsi = sma(upsignal, rsibars) == 1
dnrsi = sma(dnsignal, rsibars) == 1

//Signals
long = strategy.position_size >= 0
short = strategy.position_size <= 0
up = sma(bar, cbars) == -1 and long and dnrsi
dn = sma(bar, cbars) == 1 and short and uprsi
profit = (strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price) or onlyprofit == false
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and profit
lot = strategy.position_size == 0 ? strategy.equity / close * lev : lot[1]

//Trading
if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

Plus de