本页源码来自 TradingView 公开发布的开源脚本,版权归原作者所有, 请遵循其原始许可(Pine 脚本常见 CC BY-NC-SA / MPL-2.0 / MIT)。 本项目仅用于研究检索与许可范围内的移植。
//@version=3
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Stochastic Momentum Index indicator script may be freely distributed under the MIT license.
study("Stochastic Momentum Index", shorttitle="SMI")
q = input(title="Length (Stochastic Lookback)", type=integer, defval=13, minval=1)
r = input(title="First Smoothing Length", type=integer, defval=25, minval=1)
s = input(title="Second Smoothing Length", type=integer, defval=2, minval=1)
signalLength = input(title="Signal Length", type=integer, defval=12, minval=1)
overboughtLevel = input(title="Overbought Level", type=integer, defval=40)
oversoldLevel = input(title="Oversold Level", type=integer, defval=-40)
src = input(title="Source", type=source, defval=close)
hhq = highest(high, q)
llq = lowest(low, q)
numerator = ema(ema(src - 0.5 * (hhq + llq), r), s)
denominator = 0.5 * ema(ema(hhq - llq, r), s)
smi = 100 * numerator / denominator
signal = ema(smi, signalLength)
plot(smi, title="SMI", linewidth=2, color=#ff3e7d, transp=0)
plot(signal, title="Signal", linewidth=2, color=#3c78d8, transp=0)
overbought = hline(title="Overbought Level", price=overboughtLevel, linestyle=dotted, color=#e69138)
hline(title="Zero Level", price=0, linestyle=dashed, color=#989898)
oversold = hline(title="Oversold Level", price=oversoldLevel, linestyle=dotted, color=#e69138)