//@version=4
strategy(title = “Stoch RSI + MACD + RSI”, overlay = true, initial_capital = 2000, commission_type = strategy.commission.percent, commission_value = 0.2)
//DATE AND TIME
fromMonth = input(defval = 10, title = “From month”, minval = 1)
fromDay = input(defval = 15, title = “From day”, minval = 1)
fromYear = input(defval = 2020, title = “From year”, minval = 2014)
toMonth = input(defval = 12, title = “To month”, minval = 1)
toDay = input(defval = 15, title = “To day”, minval = 1)
toYear = input(defval = 2020, title = “To year”, minval = 2014)
//DEFINITIONS
//–Stochastic RSI–
smoothK = input(3, “K”, minval=1)
smoothD = input(3, “D”, minval=1)
lengthRSI = input(14, “RSI Length”, minval=1)
lengthStoch = input(14, “Stochastic Length”, minval=1)
src = input(close, title=“RSI Source”)
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
//–MACD–
// Getting inputs
fast_length = input(title=“Fast Length”, type=input.integer, defval=12)
slow_length = input(title=“Slow Length”, type=input.integer, defval=26)
sorc = input(title=“Source”, type=input.source, defval=close)
signal_length = input(title=“Signal Smoothing”, type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title=“Simple MA (Oscillator)”, type=input.bool, defval=false)
sma_signal = input(title=“Simple MA (Signal Line)”, type=input.bool, defval=false)
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//–RSI–
r = rsi(close, 14)
//LOGIC
timeInRange = (time > timestamp(fromYear, fromMonth, fromDay, 00, 00)) and (time < timestamp(toYear, toMonth, toDay, 23, 59))
longSignal1 = crossover(k, d) and timeInRange
longSignal2 = crossover(macd, signal) and timeInRange
longSignal3 = r < 50 and timeInRange
shortSignal1 = crossover(d, k) and timeInRange
shortSignal2 = crossover(signal, macd) and timeInRange
shortSignal3 = r > 50 and timeInRange
//POSITIONS
strategy.entry(id = “longPosition”, long = true, qty = 0.1, when = longSignal1 and longSignal2 and longSignal3)
strategy.entry(id = “shortPosition”, long = false, qty = 0.1, when = shortSignal1 and shortSignal2 and shortSignal3)

//@version=4
strategy(title = “Stoch RSI + MACD + RSI”, overlay = true, initial_capital = 2000, commission_type = strategy.commission.percent, commission_value = 0.2)
//DATE AND TIME
fromMonth = input(defval = 1, title = “From month”, minval = 1)
fromDay = input(defval = 15, title = “From day”, minval = 1)
fromYear = input(defval = 2021, title = “From year”, minval = 2014)
toMonth = input(defval = 4, title = “To month”, minval = 1)
toDay = input(defval = 15, title = “To day”, minval = 1)
toYear = input(defval = 2021, title = “To year”, minval = 2014)
//DEFINITIONS
//–Stochastic RSI–
smoothK = input(3, “K”, minval=1)
smoothD = input(3, “D”, minval=1)
lengthRSI = input(14, “RSI Length”, minval=1)
lengthStoch = input(14, “Stochastic Length”, minval=1)
src = input(close, title=“RSI Source”)
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
//–MACD–
// Getting inputs
fast_length = input(title=“Fast Length”, type=input.integer, defval=12)
slow_length = input(title=“Slow Length”, type=input.integer, defval=26)
sorc = input(title=“Source”, type=input.source, defval=close)
signal_length = input(title=“Signal Smoothing”, type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title=“Simple MA (Oscillator)”, type=input.bool, defval=false)
sma_signal = input(title=“Simple MA (Signal Line)”, type=input.bool, defval=false)
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//–RSI–
r = rsi(close, 14)
//LOGIC
timeInRange = (time > timestamp(fromYear, fromMonth, fromDay, 00, 00)) and (time < timestamp(toYear, toMonth, toDay, 23, 59))
longSignal1 = crossover(k, d) and timeInRange
longSignal2 = crossover(macd, signal) and timeInRange
longSignal3 = r < 50 and timeInRange
shortSignal1 = crossover(d, k) and timeInRange
shortSignal2 = crossover(signal, macd) and timeInRange
shortSignal3 = r > 50 and timeInRange
//POSITIONS
strategy.entry(id = “longPosition”, long = true, qty = 0.1, when = longSignal1 and longSignal2 and longSignal3)
strategy.entry(id = “shortPosition”, long = false, qty = 0.1, when = shortSignal1 and shortSignal2 and shortSignal3)
