A estratégia é chamada de
A estratégia constrói sinais de negociação comparando um RSI de período rápido (default 55 dias) e um RSI de período lento (default 126 dias). Quando o RSI rápido cruza acima do RSI lento, um sinal de compra é gerado. Quando o RSI rápido cai abaixo do RSI lento, um sinal de venda é acionado. Comparando a força relativa entre dois prazos diferentes, detecta oportunidades quando as tendências de curto e longo prazo se invertem.
Após a entrada de uma posição, a meta de lucro e o stop loss serão definidos. A meta de lucro padrão é 0,9 vezes o preço de entrada. A perda de stop default é 3% abaixo do preço de entrada. As posições também serão fechadas se um sinal reverso for ativado.
A estratégia
/*backtest start: 2022-11-29 00:00:00 end: 2023-12-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="Relative Strength Index", shorttitle="RSI") slen = input(55, title="Short length") llen = input(126, title="Long length") sup = ema(max(change(close), 0), slen) sdown = ema(-min(change(close), 0), slen) rsi1 = sdown == 0 ? 100 : sup == 0 ? 0 : 100 - (100 / (1 + sup / sdown)) lup = ema(max(change(close), 0), llen) ldown = ema(-min(change(close), 0), llen) rsi2 = ldown == 0 ? 100 : lup == 0 ? 0 : 100 - (100 / (1 + lup / ldown)) ob = input(55, title="Overbought") os = input(45, title="Oversold") tp = input(.9, title="Take profit level %")*.01 sl = input(3, title="Stoploss level %")*.01 mid = avg(ob,os) plot (mid, color=#4f4f4f, transp=0) hline (ob, color=#4f4f4f) hline (os, color=#4f4f4f) long = crossover(rsi1,rsi2) short = crossunder(rsi1,rsi2) vall = valuewhen(long,close,0) lexit1 = high>=(vall*tp)+vall lexit2 = low<=vall-(vall*sl) vals = valuewhen(short,close,0) sexit1 = low<=vals - (vals*tp) sexit2 = high>=vals + (vals*sl) bgcolor (color=long?lime:na,transp=50) bgcolor (color=short?red:na, transp=50) strategy.entry("Long", strategy.long, when=long) strategy.close("Long", when=lexit1) strategy.close("Long", when=lexit2) strategy.close("Long", when=short) strategy.entry("Short", strategy.short, when=short) strategy.close("Short", when=sexit1) strategy.close("Short", when=sexit2) strategy.close("Short", when=long) plot (rsi1, color=orange, transp=0,linewidth=1, title="Short period RSI") plot (rsi2, color=aqua , transp=0,linewidth=1, title="Long period RSI")