Professional Documents
Culture Documents
//@version=5
//Author=Cralin
strategy("MacD -Bollinger Bands %B -RSI-Stochastic With Combined volatility and
ticks V1-1", shorttitle="MBRS & VT V1-1", overlay=true )
// ADX settings
adxLength = input.int(title="ADX Length", defval=15, minval=1, maxval=200,group =
"ADX Settings")
adx_threshold = input.int(title="ADX Threshold", defval=20, minval=1,
maxval=50,group = "ADX Settings")
// Calculate ADX
adxUp = ta.change(high)
adxDown = ta.change(low)
adxClose = ta.change(close)
adxPlusDM = na(adxUp) ? na : (adxUp > adxDown and adxUp > 0 ? adxUp : 0)
adxMinusDM = na(adxDown) ? na : (adxDown > adxUp and adxDown > 0 ? adxDown : 0)
tr = math.max(high - low, math.abs(high - close[1]), math.abs(low - close[1]))
plusDI = fixnan(100 * ta.rma(adxPlusDM , adxLength) / ta.rma(tr, adxLength))
minusDI = fixnan(100 * ta.rma(adxMinusDM, adxLength) / ta.rma(tr, adxLength))
adx = 100 * ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI), adxLength)
// RSI settings
rsi_length = input.int(title="RSI Length ", defval=33,group = "RSI Settings")
rsi_overbought =input.int(title="RSI Over Bought", defval=33,group = "RSI
Settings")
rsi_oversold = input.int(title="RSI Over Sold", defval=21,group = "RSI Settings")
// MACD settings
fast_length = input(title="MACD Fast Length", defval=8,group = "MACD Settings")
slow_length = input(title="MACD Slow Length", defval=26,group = "MACD Settings")
src = input(title="Source", defval=ohlc4,group = "MACD Settings")
signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50,
defval = 9,group = "MACD Settings")
sma_source = input.string(title="Oscillator MA Type", defval="EMA",
options=["SMA", "EMA"],group = "MACD Settings")
sma_signal = input.string(title="Signal Line MA Type", defval="SMA",
options=["SMA", "EMA"],group = "MACD Settings")
// Calculate MACD
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd_line = fast_ma - slow_ma
signal_ma = sma_signal == "SMA" ? ta.sma(macd_line, signal_length) :
ta.ema(macd_line, signal_length)
macd_histogram = macd_line - signal_ma
// Stochastic settings
k_length = input(title="Stochastic K Length", defval=3,group = "Stochastic
Settings")
d_length = input(title="Stochastic D Length", defval=3,group = "Stochastic
Settings")
// Calculate Stochastic
stochastic_k = ta.stoch(close, high, low, k_length)
stochastic_d = ta.stoch(close, high, low, d_length)
if short_signal
strategy.entry("Short", strategy.short )