//@version=6
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Sharp Modified Moving Average script may be freely distributed under the terms of the GPL-3.0 license.
const string MA_SHORT_TITLE = 'SHMMA'
indicator('Sharp Modified Moving Average', shorttitle = MA_SHORT_TITLE, overlay = true, behind_chart = false)
length = input.int(14, minval = 1, title = 'Length')
src = input.source(close, title = 'Source')
var highlightDirectionTooltip = 'Colors the ' + MA_SHORT_TITLE + ' according to its direction:\n• Green = rising\n• Pink = falling'
highlightDirection = input.bool(
true
, title = 'Highlight Direction'
, tooltip = highlightDirectionTooltip
)
var applyBarColorsTooltip = 'Colors price bars according to the ' + MA_SHORT_TITLE + ' direction:\n• Bullish color = rising ' + MA_SHORT_TITLE + '\n• Bearish color = falling ' + MA_SHORT_TITLE
applyBarColors = input.bool(
true
, title = 'Apply Bar Colors'
, tooltip = applyBarColorsTooltip
)
var applyBgColorsTooltip = 'Colors the chart background according to the ' + MA_SHORT_TITLE + ' direction:\n• Bullish color = rising ' + MA_SHORT_TITLE + '\n• Bearish color = falling ' + MA_SHORT_TITLE
applyBgColors = input.bool(
false
, title = 'Apply Background Colors'
, tooltip = applyBgColorsTooltip
)
//---
ma = 3 * ta.wma(src, length) - 2 * ta.sma(src, length)
//---
const color bullishColor = #09b71e
const color bearishColor = #e91e63
const color bullishBarColor = color.new(bullishColor, 50)
const color bearishBarColor = color.new(bearishColor, 50)
const color bullishWickColor = bullishColor
const color bearishWickColor = bearishColor
const color bullishBgColor = color.new(bullishColor, 88)
const color bearishBgColor = color.new(bearishColor, 88)
isBullishSlope = ma > ma[1]
maColor = highlightDirection
? (isBullishSlope ? bullishColor : bearishColor)
: #512da8
plot(ma, title = MA_SHORT_TITLE, linewidth = 2, color = maColor)
maBarColor = applyBarColors ? (isBullishSlope ? bullishBarColor : bearishBarColor) : na
maWickColor = applyBarColors ? (isBullishSlope ? bullishWickColor : bearishWickColor) : na
maBgColor = applyBgColors ? (isBullishSlope ? bullishBgColor : bearishBgColor) : na
barcolor(title = 'Bar Color', color = maBarColor)
plotcandle(open, high, low, close, title = 'Bar Color', color = na, wickcolor = maWickColor, bordercolor = na, display = display.pane)
bgcolor(title = 'Background Color', color = maBgColor)
//---
bullishColorChangeAlert = maColor[1] != bullishColor and maColor == bullishColor
bearishColorChangeAlert = maColor[1] != bearishColor and maColor == bearishColor
anyColorChangeAlert = maColor != maColor[1]
alertcondition(bullishColorChangeAlert, title = 'Bullish Color Change', message = MA_SHORT_TITLE + ' - Bullish Color Change\nSymbol: {{exchange}}:{{ticker}}\nPrice: {{close}}')
alertcondition(bearishColorChangeAlert, title = 'Bearish Color Change', message = MA_SHORT_TITLE + ' - Bearish Color Change\nSymbol: {{exchange}}:{{ticker}}\nPrice: {{close}}')
alertcondition(anyColorChangeAlert, title = 'Any Color Change', message = MA_SHORT_TITLE + ' - Any Color Change\nSymbol: {{exchange}}:{{ticker}}\nPrice: {{close}}')
Overview
Sharp Modified Moving Average calculates the line as three times a weighted moving average minus twice a simple moving average of the selected source. The line turns green when it rises and pink when it falls. Optional settings color price bars and the chart background by that slope. Alerts fire when the line switches to bullish, bearish, or any new color. Length and source are user inputs.
The inputs you can change from the gear icon on the chart. Defaults are the author's.
Setting
Type
Default
Variable
Length
int
14
length
Source
source
close
src
Highlight Direction
bool
true
highlightDirection
Apply Bar Colors
bool
true
applyBarColors
Apply Background Colors
bool
false
applyBgColors
Third-party code. ForexR did not write, test or endorse this script, and the summary above was generated automatically from its code and README. Indicators describe the past, and a strategy's backtest can look better than live trading, especially when a script repaints. Check it in the Strategy Tester and on a demo account before you rely on it.
This overlay indicator plots a Supertrend from an ATR length and factor, four exponential moving averages, and a selectable VWAP or TWAP taken from a chosen timeframe on the price chart. It also shows MACD and stochastic with adjustable lengths, smoothing, ver
This script plots three moving averages on the price chart: a fast EMA or SMA with 10 periods, a slow EMA or SMA with 20 periods, and a trend EMA or SMA with 100 periods. It signals trend changes by drawing a white cross when the fast moving average crosses ab
This indicator plots four customizable moving averages directly on the main price chart using default lengths of 3, 8, 21, and 50 periods. It fills the space between adjacent averages in green or maroon depending on trend alignment. Additionally, it computes B
Mean Reversion Study is an indicator that identifies trade setups combining exponential moving averages, RSI extremes, and engulfing candlestick patterns. It highlights bullish setups when a bullish engulfing candle forms below the EMA while RSI is oversold, a
This indicator plots three exponential moving averages and ATR volatility envelopes on the price chart. It compares the fast and slow EMAs to shade a trend ribbon and marks confirmed upward and downward crossovers with triangle labels. Settings change the thre
This indicator calculates an outlier-filtered moving average based on statistical filtering concepts. It stores close prices in a rolling array over a user-defined length, calculates the mean and standard deviation, and excludes values falling within a specifi