Attachments forums

List of attachments posted on this forum.


All files on forums: 137631

Re: Already Converted TradingView Indicators to MT4 Indicators

opita, Fri Dec 08, 2023 11:33 am

Request:
Engulfing Detector https://www.tradingview.com/script/ENKp ... nd-Demand/

This is a unique engulfing indicator, which I believe catches the essence of how to trade engulfing candles.
Creating this indicator can inspire additional indicators with similar strategies.

Code: Select all

//@version=4
study("Engulfing Detector", overlay=true, max_bars_back=500)

maxBarsBack = 500

previousRange = open[1] - close[1]

line bullEngulfOpen = na
line bullEngulfLow = na

line bearEngulfOpen = na
line bearEngulfHigh = na

isBullEngulf = previousRange > 0 and close > open[1]
isBearEngulf = previousRange < 0 and close < open[1]

if isBullEngulf
    bullEngulfOpen := line.new(bar_index - 1, open[1], bar_index, open[1], extend=extend.right, color=color.green)
    bullEngulfLow := line.new(bar_index - 1, low < low[1] ? low : low[1], bar_index, low < low[1] ? low : low[1], extend=extend.right, color=color.red)

if isBearEngulf
    bearEngulfOpen := line.new(bar_index - 1, open[1], bar_index, open[1], extend=extend.right, color=color.green)
    bearEngulfHigh := line.new(bar_index - 1, high > high[1] ? high : high[1], bar_index, high > high[1] ? high : high[1], extend=extend.right, color=color.red)


var maxNumberOfEngulfings = 10
bullEngulfingCount = 0
for i = 1 to maxBarsBack
    if not na(bullEngulfOpen[i])
        if low < line.get_y1(bullEngulfLow[i])
            line.delete(bullEngulfOpen[i])
            line.delete(bullEngulfLow[i])
            continue
        if low < line.get_y1(bullEngulfOpen[i])
            //line.set_x2(bullEngulfOpen[i], bar_index)
            line.set_color(bullEngulfOpen[i], color.gray)
            //line.set_extend(bullEngulfOpen[i], extend.none)
            //line.set_x2(bullEngulfLow[i], bar_index)
            line.set_color(bullEngulfLow[i], color.gray)
            //line.set_extend(bullEngulfLow[i], extend.none)
            
        bullEngulfingCount := bullEngulfingCount + 1
        if bullEngulfingCount > maxNumberOfEngulfings
            line.delete(bullEngulfOpen[i])
            line.delete(bullEngulfLow[i])
            
bearEngulfingCount = 0
for i = 1 to maxBarsBack   
    if not na(bearEngulfOpen[i])
        if high > line.get_y1(bearEngulfHigh[i])
            line.delete(bearEngulfOpen[i])
            line.delete(bearEngulfHigh[i])
            continue
        
        if high > line.get_y1(bearEngulfOpen[i])
            //line.set_x2(bearEngulfOpen[i], bar_index)
            line.set_color(bearEngulfOpen[i], color.gray)
            //line.set_extend(bearEngulfOpen[i], extend.none)
            //line.set_x2(bearEngulfHigh[i], bar_index)
            line.set_color(bearEngulfHigh[i], color.gray)
            //line.set_extend(bearEngulfHigh[i], extend.none)
            
        bearEngulfingCount := bearEngulfingCount + 1
        if bearEngulfingCount > maxNumberOfEngulfings
            line.delete(bearEngulfOpen[i])
            line.delete(bearEngulfHigh[i])
All files in topic