//@version=4 study(title="TMA Overlay", shorttitle="TMA Overlay", 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]) ? sma_1 : (smma1[1] * (len1 - 1) + src1) / len1 plot(smma1, color=color.white, 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]) ? sma_2 : (smma2[1] * (len2 - 1) + src2) / len2 plot(smma2, color=color.new(#6aff00,0), linewidth=2, title="50 SMMA") h100 = input(title="Show 100 Line", type=input.bool, defval=true, 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]) ? sma_3 : (smma3[1] * (len3 - 1) + src3) / len3 sma3plot = plot(h100 ? smma3 : na, color=color.new(color.yellow,0), 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]) ? sma_4 : (smma4[1] * (len4 - 1) + src4) / len4 sma4plot = plot(smma4, color=color.new(#ff0500,0), 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[1] bullSig = close[3] < open[3] and close[2] < open[2] and close[1] < open[1] and close > open[1] plotshape(bullS ? bullSig : na, style=shape.triangleup, color=color.green, location=location.belowbar, size = size.small, text="3s-Bull", title="3 Line Strike Up") plotshape(bearS ? bearSig : na, style=shape.triangledown, color=color.red, location=location.abovebar, size = size.small, text="3s-Bear", 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 //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 //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="America/Chicago", 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=7, 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=8, 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=12, 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