//@version=4
study(title="Polish", shorttitle="Polish", overlay=true)
// ### Four Smoothed Moving Averages
len1 = 21
//input(21, minval=1, title="Length 1", group = "Smoothed MA Inputs")
src1 = close
//input(close, title="Source 1", group = "Smoothed MA Inputs")
smma1 = 0.0
sma_1 = sma(src1, len1)
smma1 := (na(smma1[1]) or smma1[1]==0) ? sma_1 : (smma1[1] * (len1 - 1) + src1) / len1
plot(smma1, color=color.green, linewidth=2, title="21 SMMA")
len2 = 50
//input(50, minval=1, title="Length 2", group = "Smoothed MA Inputs")
src2 = close
//input(close, title="Source 2", group = "Smoothed MA Inputs")
smma2 = 0.0
sma_2 = sma(src2, len2)
smma2 := (na(smma2[1]) or smma2[1]==0) ? sma_2 : (smma2[1] * (len2 - 1) + src2) / len2
plot(smma2, color=color.yellow, linewidth=2, title="50 SMMA")
h100 = input(title="Show 100 Line", type=input.bool, defval=false, group = "Smoothed MA Inputs")
len3 = 100
//input(100, minval=1, title="Length 3", group = "Smoothed MA Inputs")
src3 = close
//input(close, title="Source 3", group = "Smoothed MA Inputs")
smma3 = 0.0
sma_3 = sma(src3, len3)
smma3 := (na(smma3[1]) or smma3[1]==0) ? sma_3 : (smma3[1] * (len3 - 1) + src3) / len3
sma3plot = plot(h100 ? smma3 : na, color=color.white, linewidth=2, title="100 SMMA")
len4 = 200
//input(200, minval=1, title="Length 4", group = "Smoothed MA Inputs")
src4 = close
//input(close, title="Source 4", group = "Smoothed MA Inputs")
smma4 = 0.0
sma_4 = sma(src4, len4)
smma4 := (na(smma4[1]) or smma4[1]==0) ? sma_4 : (smma4[1] * (len4 - 1) + src4) / len4
sma4plot = plot(smma4, color=color.red, linewidth=2, title="200 SMMA")
// Trend Fill
trendFill = input(title="Show Trend Fill", type=input.bool, defval=true, group = "Smoothed MA Inputs")
ema2 = ema(close, 2)
ema2plot = plot(ema2, color=#2ecc71, transp=100, style=plot.style_line, linewidth=1, title="EMA(2)", editable = false)
fill(ema2plot, sma4plot, color=ema2 > smma4 and trendFill ? color.green : ema2 < smma4 and trendFill ? color.red : na, transp=85, title = "Trend Fill")
// End ###
// ### 3 Line Strike
bearS = input(title="Show Bearish 3 Line Strike", type=input.bool, defval=true, group = "3 Line Strike")
bullS = input(title="Show Bullish 3 Line Strike", type=input.bool, defval=true, group = "3 Line Strike")
bearSig = close[3] > open[3] and close[2] > open[2] and close[1] > open[1] and close < open[2] and close < smma4
bullSig = close[3] < open[3] and close[2] < open[2] and close[1] < open[1] and close > open[2] and close > smma4
plotshape(bullS ? bullSig : na, style=shape.triangleup, color=color.green, location=location.belowbar, size = size.small, title="3 Line Strike Up")
plotshape(bearS ? bearSig : na, style=shape.triangledown, color=color.red, location=location.abovebar, size = size.small, title="3 Line Strike Down")
// End ###
//### Engulfing Candles
bearE = input(title="Show Bearish Big A$$ Candles", type=input.bool, defval=true, group = "Big A$$ Candles")
bullE = input(title="Show Bullish Big A$$ Candles", type=input.bool, defval=true, group = "Big A$$ Candles")
openBarPrevious = open[1]
closeBarPrevious = close[1]
openBarCurrent = open
closeBarCurrent = close
//If current bar open is less than equal to the previous bar close AND current bar open is less than previous bar open AND current bar close is greater than previous bar open THEN True
bullishEngulfing = openBarCurrent <= closeBarPrevious and openBarCurrent < openBarPrevious and closeBarCurrent > openBarPrevious and close > smma4
//If current bar open is greater than equal to previous bar close AND current bar open is greater than previous bar open AND current bar close is less than previous bar open THEN True
bearishEngulfing = openBarCurrent >= closeBarPrevious and openBarCurrent > openBarPrevious and closeBarCurrent < openBarPrevious and close < smma4
//bullishEngulfing/bearishEngulfing return a value of 1 or 0; if 1 then plot on chart, if 0 then don't plot
plotshape(bullE ? bullishEngulfing : na, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, title="Big Ass Candle Up" )
plotshape(bearE ? bearishEngulfing : na, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, title="Big Ass Candle Down")
alertcondition(bullishEngulfing, title="Bullish Engulfing", message="[CurrencyPair] [TimeFrame], Bullish candle engulfing previous candle")
alertcondition(bearishEngulfing, title="Bearish Engulfing", message="[CurrencyPair] [TimeFrame], Bearish candle engulfing previous candle")
// End ###
// ### Trading Session
ts = input(title="Show Trade Session", type=input.bool, defval=true, group = "Trade Session")
tz = input(title="Timezone", type=input.string, defval="Europe/London", options=["Asia/Sydney", "Asia/Tokyo", "Europe/Frankfurt", "Europe/London", "UTC", "America/New_York", "America/Chicago"], group = "Trade Session")
label = input(title="Label", type=input.string, defval="CME Open", tooltip="For easy identification", group = "Trade Session")
startHour = input(title="analysis Start hour", type=input.integer, defval=9, minval=0, maxval=23, group = "Trade Session")
startMinute = input(title="analysis Start minute", type=input.integer, defval=00, minval=0, maxval=59, group = "Trade Session")
startHour2 = input(title="Session Start hour", type=input.integer, defval=9, minval=0, maxval=23, group = "Trade Session")
startMinute2 = input(title="Session Start minute", type=input.integer, defval=30, minval=0, maxval=59, group = "Trade Session")
endHour2 = input(title="Session End hour", type=input.integer, defval=21, minval=0, maxval=23, group = "Trade Session")
endMinute2 = input(title="Session End minute", type=input.integer, defval=0, minval=0, maxval=59, group = "Trade Session")
rangeColor = input(title="Color", type=input.color, defval=#1976d21f, group = "Trade Session")
showMon = input(title="Monday", type=input.bool, defval=true, group = "Trade Session")
showTue = input(title="Tuesday", type=input.bool, defval=true, group = "Trade Session")
showWed = input(title="Wednesday", type=input.bool, defval=true, group = "Trade Session")
showThu = input(title="Thursday", type=input.bool, defval=true, group = "Trade Session")
showFri = input(title="Friday", type=input.bool, defval=true, group = "Trade Session")
showSat = input(title="Saturday", type=input.bool, defval=false, group = "Trade Session")
showSun = input(title="Sunday", type=input.bool, defval=false, group = "Trade Session")
tzYear = year(time, tz)
tzMonth = month(time, tz)
tzDay = dayofmonth(time, tz)
tzDayOfWeek = dayofweek(time, tz)
startTime = timestamp(tz, tzYear, tzMonth, tzDay, startHour, startMinute)
endTime = timestamp(tz, tzYear, tzMonth, tzDay, endHour2, endMinute2)
active = if startTime <= time and time <= endTime and ts
if tzDayOfWeek == dayofweek.monday and showMon
true
else if tzDayOfWeek == dayofweek.tuesday and showTue
true
else if tzDayOfWeek == dayofweek.wednesday and showWed
true
else if tzDayOfWeek == dayofweek.thursday and showThu
true
else if tzDayOfWeek == dayofweek.friday and showFri
true
else if tzDayOfWeek == dayofweek.saturday and showSat
true
else if tzDayOfWeek == dayofweek.sunday and showSun
true
else
false
else
false
bgcolor(color=active ? rangeColor : na, title = "Session Background")
startTime2 = timestamp(tz, tzYear, tzMonth, tzDay, startHour2, startMinute2)
endTime2 = timestamp(tz, tzYear, tzMonth, tzDay, endHour2, endMinute2)
active2 = if startTime2 <= time and time <= endTime2 and ts
if tzDayOfWeek == dayofweek.monday and showMon
true
else if tzDayOfWeek == dayofweek.tuesday and showTue
true
else if tzDayOfWeek == dayofweek.wednesday and showWed
true
else if tzDayOfWeek == dayofweek.thursday and showThu
true
else if tzDayOfWeek == dayofweek.friday and showFri
true
else if tzDayOfWeek == dayofweek.saturday and showSat
true
else if tzDayOfWeek == dayofweek.sunday and showSun
true
else
false
else
false
bgcolor(color=active2 ? rangeColor : na, title = "Session Background")
// End ###
// eof
Overview
Polish calculates 21, 50, optional 100, and 200-period smoothed moving averages alongside a short-term moving average trend fill. Pattern detection identifies three-line strike and engulfing setups filtered against the 200 SMMA trend baseline. Users can toggle specific candlestick signals, adjust session time parameters across chosen days of the week, and configure moving average visibility.
The inputs you can change from the gear icon on the chart. Defaults are the author's.
Setting
Type
Default
Variable
Show 100 Line
bool
false
h100
Show Trend Fill
bool
true
trendFill
Show Bearish 3 Line Strike
bool
true
bearS
Show Bullish 3 Line Strike
bool
true
bullS
Show Bearish Big A$$ Candles
bool
true
bearE
Show Bullish Big A$$ Candles
bool
true
bullE
Show Trade Session
bool
true
ts
Timezone
string
Europe/London
tz
Label
string
CME Open
label
analysis Start hour
int
9
startHour
analysis Start minute
int
00
startMinute
Session Start hour
int
9
startHour2
Show all 23 settings
Setting
Type
Default
Variable
Session Start minute
int
30
startMinute2
Session End hour
int
21
endHour2
Session End minute
int
0
endMinute2
Color
color
#1976d21f
rangeColor
Monday
bool
true
showMon
Tuesday
bool
true
showTue
Wednesday
bool
true
showWed
Thursday
bool
true
showThu
Friday
bool
true
showFri
Saturday
bool
false
showSat
Sunday
bool
false
showSun
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.
Donald SPX - Options Trading is an overlay indicator designed for intraday SPX analysis. It plots a 200-period Weighted Moving Average (WMA) on the price chart while evaluating multi-timeframe market structure across Daily, 15-minute, 5-minute, and 2-minute ba
This indicator identifies candlestick patterns on the price chart by combining price action with momentum factors and trend filters. It calculates one of four selectable oscillators: Karobein Oscillator, Money Flow Index, RSI, or Stochastic, alongside trend ru
This indicator overlays on the price chart and provides trend and momentum analysis. It calculates and plots three exponential moving averages with fixed periods of 20, 50, and 200 using yellow, orange, and blue colors respectively. The script also computes th
This overlay indicator marks a bearish hanging man candlestick on the price chart. It looks for a small real body sitting in the upper part of the range, a lower shadow at least twice the body, and no upper shadow, and only while an uptrend filter is active. T
Zen EMA Pullback Patterns identifies pullback formations relative to an Exponential Moving Average on the price chart. It detects 3-bar pullbacks consisting of three consecutive bearish bars above the EMA or bullish bars below it, as well as 4-bar micro channe
This indicator plots Bollinger Bands and smoothed HAMA candles on the price chart. It builds each candle from separate moving averages of open, high, low and close, using selectable EMA, SMA or WMA lengths. A simple moving average forms the band basis, and an