RSI - Buy Sell Signals

Author: ChaoZhang, Date: 2022-05-09 14:35:23
Tags: RSI

This indicator is mainly based on Overbought and Oversold. Indicator for short-term trading. This way you can get small but acceptable signals. The main basis of the indicator is as follows: To buy, the indicator is waiting for the instrument to be oversold from the RSI point of view. Then, if the chart crosses the bottom line of the Envelope indicator from the bottom to the top, a buy signal is issued. For sell, the indicator waits for the instrument to be overbought from the RSI perspective. Then, if the chart crosses the top line of the Envelope indicator from top to bottom, a sell signal is issued. The general basis is the consonance of the price and the RSI indicator. The best settings I came up with myself: Time frame: 15 minutes Overbought: 80 Oversell: 25 RSI Length: 8 It can be done on different instruments. But always set your profit and loss limits. (Profit to loss ratio in this indicator can be 1: 1.)

Disclaimer: This information and trading indicators and tools provided neither is, nor should be construed, as an offer, or a solicitation of an offer, to buy or sell securities. You shall be fully responsible for any investment decision you make, and such decisions will be based solely on your evaluation of your financial circumstances, investment objectives, risk tolerance, and liquidity needs. I am not liable for any profit, financial improvement, losses or damages, monetary or other that may result from the application of information contained within this indicator. Individual traders must use their own due diligence in analyzing featured trading indicators, other trading tools, webinars and other educational materials to determine if they represent suitable and useable features and capabilities for the individual trader.



start: 2022-02-08 00:00:00
end: 2022-05-08 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]

// This source code is subject to the terms of the Mozilla Public License 2.0 at
// © Saleh_Toodarvari

indicator(title="ENVELOPE - RSI - Buy Sell Signals", shorttitle="ENVELOPE - RSI", overlay=true)
len =, title="Envelope Length", minval=1, group="Envelope Settings")
percent = input(0.22,title="Envelope Percent", group="Envelope Settings")
src = input(hl2, title="Envelope Source", group="Envelope Settings")
exponential = input(false)
basis = exponential ? ta.ema(src, len) : ta.sma(src, len)
k = percent/100.0
upper = basis * (1 + k)
lower = basis * (1 - k)
plot(basis, "Basis", color=#ED7300)
u = plot(upper, "Upper", color=#FF2424)
l = plot(lower, "Lower", color=#24FF24)
//fill(u, l, color=color.rgb(33, 150, 243, 95), title="Background")
// _________________RSI_________________
rsiLengthInput =, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(hl2, "RSI Source", group="RSI Settings")
up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
Overbought_RSI = input(title="RSI OverBought Limit(Recommended: 70-85)", defval=80, group="RSI Settings")
Oversold_RSI = input(title="RSI OverSold Limit(Recommended: 20-30)", defval=25, group="RSI Settings")
condition_buy= rsi<Oversold_RSI and (ta.cross(low,lower) or ta.cross(close,lower) or ta.cross(high,lower) or ta.cross(open,lower))
condition_sell= rsi>Overbought_RSI and (ta.cross(low,upper) or ta.cross(close,upper) or ta.cross(high,upper) or ta.cross(open,upper))
if cross_sell
    strategy.entry("Enter Long", strategy.long)
else if cross_buy
    strategy.entry("Enter Short", strategy.short)

// plotshape(cross_sell ? condition_sell:na, title="Sell Label", text="Sell", location=location.abovebar, style=shape.labeldown, size=size.tiny,, textcolor=color.white)
// sell_sig=plot(cross_sell ? high:na,,100))
// plotshape(cross_buy ? condition_buy:na, title="Buy Label", text="Buy", location=location.belowbar, style=shape.labelup, size=size.tiny,, textcolor=color.white)
// buy_sig=plot(cross_buy ? ohlc4:na,,100))
// tpColor = if(cross_sell[1] or cross_sell[2] or cross_buy[1] or cross_buy[2])
//, 30)
// else
// slColor = if(cross_sell[1] or cross_sell[2] or cross_buy[1] or cross_buy[2])
//, 30)
// else
// //_________________TP&SL_________________
// TP_Percent = input.float(0.15, "TP %")
// SL_Percent = input.float(0.15, "SL %")
// tp= if condition_sell
//     ohlc4-ohlc4*(TP_Percent/100)
// else if condition_buy
//     ohlc4+ohlc4*(TP_Percent/100)
// sl= if condition_sell
//     ohlc4+ohlc4*(SL_Percent/100)
// else if condition_buy
//     ohlc4-ohlc4*(SL_Percent/100)
// tp_sig=plot(tp,,100),title="tp")
// sl_sig=plot(sl,,100),title="tp")
// lower_plot=plot(lower,,100))
// fill(sell_sig,tp_sig, color=tpColor)
// fill(buy_sig,tp_sig, color=tpColor)
// fill(buy_sig,sl_sig, color=slColor)
// fill(sell_sig,sl_sig, color=slColor)