# Define aggregation periods for each time frame # 5-minute candle open and close def open5min = open(period = AggregationPeriod.FIVE_MIN); def close5min = close(period = AggregationPeriod.FIVE_MIN); def is5minGreen = close5min > open5min; # 15-minute candle open and close def open15min = open(period = AggregationPeriod.FIFTEEN_MIN); def close15min = close(period = AggregationPeriod.FIFTEEN_MIN); def is15minGreen = close15min > open15min; # 30-minute candle open and close def open30min = open(period = AggregationPeriod.THIRTY_MIN); def close30min = close(period = AggregationPeriod.THIRTY_MIN); def is30minGreen = close30min > open30min; # 1-hour candle open and close def open1H = open(period = AggregationPeriod.HOUR); def close1H = close(period = AggregationPeriod.HOUR); def is1HGreen = close1H > open1H; # 4-hour candle open and close def open4H = open(period = AggregationPeriod.FOUR_HOURS); def close4H = close(period = AggregationPeriod.FOUR_HOURS); def is4HGreen = close4H > open4H; # Separated vertical lines for each time frame # Adjusting start time to 9:00 AM Eastern Time (half an hour before market opens) # Dotted vertical lines with simplified labels for timeframes (no arrows or boxes) AddVerticalLine(SecondsFromTime(0900) % 300 == 0, "5M", if is5minGreen then Color.GREEN else Color.RED, Curve.POINTS); # 5 min AddVerticalLine(SecondsFromTime(0900) % 900 == 0, "15M", if is15minGreen then Color.GREEN else Color.RED, Curve.POINTS); # 15 min AddVerticalLine(SecondsFromTime(0900) % 1800 == 0, "30M", if is30minGreen then Color.GREEN else Color.RED, Curve.POINTS); # 30 min AddVerticalLine(SecondsFromTime(0900) % 3600 == 0, "1H", if is1HGreen then Color.GREEN else Color.RED, Curve.POINTS); # 1 hour AddVerticalLine(SecondsFromTime(0900) % 14400 == 0, "4H", if is4HGreen then Color.GREEN else Color.RED, Curve.POINTS); # 4 hour # Labels for the time frames with adjusted positions to avoid overlap AddLabel(yes, "5M", if is5minGreen then Color.GREEN else Color.RED); AddLabel(yes, "15M", if is15minGreen then Color.GREEN else Color.RED); AddLabel(yes, "30M", if is30minGreen then Color.GREEN else Color.RED); AddLabel(yes, "1H", if is1HGreen then Color.GREEN else Color.RED); AddLabel(yes, "4H", if is4HGreen then Color.GREEN else Color.RED);