Spark
New member
Im trying to create a MTF that reference the colors on the chart based on the close of the current candles on each timeframe. However, the MTF seems to aggregate the current bar color for all the MTF labels on higher timeframe.
The 5m chart is currently green indicating acceleration but it highlights ALL the MTF labels green. The middle 15m chart shows Violet and the left 1H shows Cyan. I believe it has something to do with the aggregation period portion of the code. Im not entirely sure where but I think im missing something that tells the code current timeframe to aggregate the higher timeframe based on a certain input MA_AggPeriod.
The 5m chart is currently green indicating acceleration but it highlights ALL the MTF labels green. The middle 15m chart shows Violet and the left 1H shows Cyan. I believe it has something to do with the aggregation period portion of the code. Im not entirely sure where but I think im missing something that tells the code current timeframe to aggregate the higher timeframe based on a certain input MA_AggPeriod.
Code:
# MTF Candle Colors (Its based on where price closes in relation to the moving averages *Pictures does NOT show the moving averages)
# Input the aggregation period desired for the 50HMA
def timeFrame = GetAggregationPeriod();
input MA_AggPeriod = AggregationPeriod.WEEK;
# General length
input GlobalLength = 18;
# -- Pulse Inputs ----------
#input length = 8; # 3-8 is key range.
input pulseLength = 8; # 8 is a key Pulse Level!!
# -- General MA Inputs -------
input ShortMaLenght = 10; #10 is a key Level!!
#input VHMALength1 = 10; #10 is a key Level!!
input HMA50Length = 50; #50 is a key Level!!
input smalength = 200;
# Price inputs
input price = close;
input priceLow = low;
input priceHgh = High;
# -- Moving average types
input averageTypeHull = AverageType.HULL;
# --------------- END Spark's Super Trend Inputs ---------------
#--------------------------------- PULSE MA -------------------------------
# Variable Moving Average (VMA) is an exponential moving average that adjusts its smoothing constant on the basis of market volatility.
# Lets define variables that track the movement of px.
def pxUp = if price > price[1] then price - price[1] else 0;
def pxDown = if price < price[1] then price + price[1] else 0;
# Lets define some variables that tracks the movement of price between a number of bars.
def sumPXUpBars = Sum(pxUp, pulseLength);
def sumPXDownBars = Sum(pxDown, pulseLength);
def sumPXBars = sumPXUpBars + sumPXDownBars == 0;
def ad3 = if sumPXBars then 0 else (sumPXUpBars - sumPXDownBars) / (sumPXUpBars + sumPXDownBars) * 100;
def coeff = 2 / (pulseLength + 1) * AbsValue(ad3) / 100;
def asd = CompoundValue("visible data" = coeff * price + (if IsNaN(asd[1]) then 0 else asd[1]) * (1 - coeff), "historical data" = price);
#--------------------------------- END PULSE MA -------------------------------
# --------------- Volume & HULL Weighted Moving Avg (VHMA & VWMA) ------------------------------
# Lets create 4 MAs.
def HMA10Hgh = MovingAverage(averageTypeHull, priceHgh, ShortMaLenght); #White/Gray
def VWMA10Low = Sum(volume * priceLow, ShortMaLenght) / Sum(volume, ShortMaLenght); #White/Gray
def HMA_50 = MovingAverage(averageTypeHull, price, HMA50Length);
def Time_Frame_HMA_50 = if timeFrame == AggregationPeriod.TWO_MIN
then MovingAverage(averageTypeHull, close (period = MA_AggPeriod), HMA50Length)
else if timeFrame == AggregationPeriod.FIVE_MIN
then MovingAverage(averageTypeHull, close (period = MA_AggPeriod), HMA50Length)
else if timeFrame == AggregationPeriod.FIFTEEN_MIN
then MovingAverage(averageTypeHull, close (period = MA_AggPeriod), HMA50Length)
else if timeFrame == AggregationPeriod.THIRTY_MIN
then MovingAverage(averageTypeHull, close (period = MA_AggPeriod), HMA50Length)
else if timeFrame == AggregationPeriod.HOUR
then MovingAverage(averageTypeHull, close (period = MA_AggPeriod), HMA50Length)
else if timeFrame == AggregationPeriod.FOUR_HOURS
then MovingAverage(averageTypeHull, close (period = MA_AggPeriod), HMA50Length)
else if timeFrame == AggregationPeriod.DAY
then MovingAverage(averageTypeHull, close (period = MA_AggPeriod), HMA50Length)
else Double.NaN;
def SMA200 = Average(price, smalength);
#------- END Volume & HULL Weighted Moving Avg (VHMA & VWMA) ------------------------------
# --------------------------------- Plot the MAs to the Chart ------------------------------
def VMA = asd; # Pulse (Multi Colors)
#def Multi_TF_VMA = Time_frame_asd; # Pulse (Multi Colors)
plot HMA50 = HMA_50;
plot Time_Frame_HMA50 = Time_Frame_HMA_50;
def VWMA10 = VWMA10Low; #White/Gray
def HMA10 = HMA10Hgh; #White/Gray
plot SMA = SMA200; #Gold/Grey
# --- END Plot the MAs to the Chart ----------
# -------------- BB & KC Channel -------------------
input BBCloudsOn = yes;
input BBBandsOn = yes;
input KCBandsOn = yes;
#input KCFactor = 1.0;
# ----------- Plot Mid Upper and Lower BB Line ------------
def BB_Midline = BollingerBands().MidLine;
plot BBM = if BBBandsOn then BB_Midline else Double.NaN;
# Upper BB Line
def BB_Upperband = BollingerBands().UpperBand;
plot BBH = if BBBandsOn and priceHgh >= BB_Upperband then BB_Upperband else Double.NaN;
# Lower Bb Line
def BB_Lowerband = BollingerBands().LowerBand;
plot BBL = if BBBandsOn and priceLow <= BB_Lowerband then BB_Lowerband else Double.NaN;
# Assign direction to the BB bands
def BB_Midline_Up = BB_Midline > BB_Midline[1] and priceLow > BB_Midline;
def BB_Midline_DOWN = BB_Midline < BB_Midline[1] and priceHgh < BB_Midline;
def BB_Bands_UP = (BB_Upperband > BB_Upperband[1]) and (BB_Lowerband > BB_Lowerband[1]);
def BB_Bands_Down = (BB_Upperband < BB_Upperband[1]) and (BB_Lowerband < BB_Lowerband[1]);
BBH.SetLineWeight(3);
BBH.SetStyle(Curve.LONG_DASH);
BBH.AssignValueColor(if BB_Bands_UP
then Color.LIGHT_GREEN
else Color.LIGHT_RED);
# Set syle for BB Midline
BBM.SetLineWeight(1);
BBM.SetStyle(Curve.FIRM);
BBM.AssignValueColor(if BB_Midline_Up
then Color.LIGHT_GREEN
else Color.LIGHT_RED);
BBL.SetLineWeight(3);
BBL.SetStyle(Curve.LONG_DASH);
BBL.AssignValueColor(if BB_Bands_Down
then Color.LIGHT_RED
else Color.LIGHT_GREEN);
# -------------- Plot Mid upper and lower KC Line --------------
def KC_Midline = KeltnerChannels().Avg;
plot KCM = if KCBandsOn then KC_Midline else Double.NaN;
# Upper KC Line
def KC_Upperband = KeltnerChannels().Upper_Band;
plot KCH = if KCBandsOn and priceHgh >= KC_Upperband then KC_Upperband else Double.NaN;
# Lower KC Line
def KC_lowerband = KeltnerChannels().Lower_Band;
plot KCL = if KCBandsOn and priceLow <= KC_lowerband then KC_lowerband else Double.NaN;
# Assign direction to the kc bands
def KC_Midline_Up = KC_Midline > KC_Midline[1] and price > KC_Midline;
def KC_Bands_UP = (KC_Upperband > KC_Upperband[1]) and (KC_lowerband > KC_lowerband[1]);
def KC_Bands_Down = (KC_Upperband < KC_Upperband[1]) and (KC_lowerband < KC_lowerband[1]);
KCH.SetLineWeight(3);
KCH.SetStyle(Curve.SHORT_DASH);
KCH.AssignValueColor(if KC_Bands_UP
then Color.PLUM
else Color.BLUE);
# Style the mid line
KCM.SetLineWeight(4);
KCM.SetStyle(Curve.FIRM);
KCM.AssignValueColor(if KC_Midline_Up
then Color.DARK_GREEN
else Color.DARK_RED);
KCL.SetLineWeight(3);
KCL.SetStyle(Curve.SHORT_DASH);
KCL.AssignValueColor(if KC_Bands_Down
then Color.BLUE
else Color.PLUM);
# ---------------- BB&KC Indicator --------------
# ----------- BB & KC Bands Squeeze Clouds -------------
# When the BB upper and lower bands cross inside the KC's we are in a Squeeze. The code below should activate a certain color to indicate this.
DefineGlobalColor("BB Squeeze", Color.GREEN);
DefineGlobalColor("BB UnSqueezed", Color.CURRENT);
AddCloud(KC_Upperband, BB_Upperband, GlobalColor("BB Squeeze"), GlobalColor("BB UnSqueezed"));
AddCloud(BB_Lowerband, KC_lowerband, GlobalColor("BB Squeeze"), GlobalColor("BB UnSqueezed"));
# ------------ Bull/Bear ATR Trend ---------------------
# Average True Range Inputs
input ATRlength = 14; # 9-38 Key Level
#input ATRs = 2.5; #1 key Level
# Cacl EMA to be used as a point of reference.
def ATR_EMA = ExpAverage(close, ATRlength);
# ---------------------------- Identify Market Conditions, PX Action & Strategies ---------------------------
# ----------------- Px Action & MKT Structures ----------------
def Bull_Mkt = price > HMA50 and HMA50 >= Time_Frame_HMA_50;
#AddChartBubble (yes and Bull_Mkt and !Bull_Mkt[1], priceLow, "MKT", Color.DARK_GREEN);
def Bear_Mkt = price < HMA50 and HMA50 <= Time_Frame_HMA_50;
#AddChartBubble (yes and Bear_Mkt and !Bear_Mkt[1], priceHgh, "MKT", Color.DARK_RED);
# -------------- Bull/Bear Stacked Ma's -----------------
def Bull_Stack = HMA10 > VMA and VMA >= HMA50 and HMA50 > Time_Frame_HMA_50;
def Bear_Stack = VWMA10 < VMA and VMA < HMA50 and HMA50 < Time_Frame_HMA_50;
# ------- Bullish/Bearish Trend ------------
# Bullish Trend
def Trend_Bullish = VMA > ATR_EMA;
def Trend_Bullish_Invalid = VMA > ATR_EMA and price < HMA50 and price < Time_Frame_HMA50;
#AddChartBubble (Trend_Buy_Sell_Bubble_On and Trend_Bullish and ! Trend_Bullish[1], priceLow, "B", Color.GREEN);
# Bearish Trend
def Trend_Bearish = VMA < ATR_EMA;
def Trend_Bearish_Invalid = VMA < ATR_EMA and price > HMA50 and price > Time_Frame_HMA50;
#AddChartBubble (Trend_Buy_Sell_Bubble_On and Trend_Bearish and ! Trend_Bearish[1], priceHgh, "S", Color.RED);
#--------- Bull Pull Backs & Chart Bubbles --------
# Lets define a Bullish Pull back! (ALL GOOD)!!
def Bull_Pullbacks = (Trend_Bullish and priceLow <= priceLow[2] and price > Time_Frame_HMA50) or (priceLow <= VWMA10 and price > Time_Frame_HMA50);
plot Bull_Pullback = Bull_Pullbacks;
Bull_Pullback.SetPaintingStrategy(PaintingStrategy.BOOLEAN_WEDGE_DOWN);
Bull_Pullback.SetDefaultColor(Color.GREEN);
# ------------- Bear Pull Backs & Chart Bubbles -----------
# Lets define a Bearish Pull back! (ALL GOOD)!!
def Bear_Pullbacks = (Trend_Bearish and priceHgh > priceHgh[2] and price < Time_Frame_HMA50) or (priceHgh > HMA10 and price < Time_Frame_HMA50);
#(Trend_Bearish and priceHgh >= HMA10 and price < HMA50) or (Trend_Bearish and priceHgh >= VMA and price < HMA50) ;
plot Bear_Pullback = Bear_Pullbacks;
Bear_Pullback.SetPaintingStrategy(PaintingStrategy.BOOLEAN_WEDGE_UP);
Bear_Pullback.SetDefaultColor(Color.RED);
# -------- Bull/Bear Push ----
def BB_Bullish_Push = HMA10 >= KC_Upperband and priceHgh >= KC_Upperband;
def Bull_PX_Push = priceHgh > HMA10 and price > VMA and priceLow >= HMA50;
#AddChartBubble (PX_Buy_Sell_Bubbles_On and Bull_PX_Push and !Bull_PX_Push[1], priceLow, "B", Color.PLUM);
def BB_Bearish_Flush = VWMA10 < KC_lowerband and priceLow <= KC_lowerband;
def Bear_PX_Flush = priceLow < VWMA10 and price < VMA and priceHgh < HMA50;
#AddChartBubble (PX_Buy_Sell_Bubbles_On and Bear_PX_Flush and !Bear_PX_Flush[1], priceHgh, "S", Color.MAGENTA);
# ------------ Impusle Bar Candle ------------
def Impulse_Bar = high > KC_Upperband and low < KC_lowerband;
# ---- Define Market Phase -------
# Lets define areas of acceleration!! (ALL GOOD)!!
def acceleration = price >= VMA and priceLow > VWMA10 and VMA > VMA[1] and price > BB_Midline and priceLow >= Time_Frame_HMA50;
# Lets define areas of Deceleration!! (ALL GOOD)!!
def deceleration = price < VMA and priceHgh < HMA10 and VMA < VMA[1] and price < BB_Midline and priceHgh < Time_Frame_HMA50;
# Lets define areas of Accumulation!! (ALL GOOD)!!
def accumulation = priceLow < VMA and priceHgh > HMA10 and VMA > VMA[1] and price > Time_Frame_HMA50 and !acceleration;
# Lets define areas of Distribution!! (ALL GOOD)!!
def distribution = priceHgh > VMA and priceLow < VWMA10 and VMA < VMA[1] and price < Time_Frame_HMA50 and !deceleration;
def Bulls_Get_Ready = price > Time_Frame_HMA50 and price < HMA50 and !accumulation and !acceleration and !distribution and !deceleration;
def Bulls_Get_Ready_Trend = Trend_Bullish and price > Time_Frame_HMA50 and price < HMA50 and !accumulation and !distribution and !deceleration;
def Bulls_Get_Ready_Trend1 = Trend_Bullish and price < Time_Frame_HMA50 and price > HMA50 and !accumulation and !distribution;
def Bears_Get_Ready = price < Time_Frame_HMA50 and price > HMA50 and !accumulation and !acceleration and !distribution and !deceleration;
def Bears_Get_Ready_Trend = Trend_Bearish and price < Time_Frame_HMA50 and price > HMA50 and !accumulation and !acceleration and !distribution;
def Bears_Get_Ready_Trend1 = Trend_Bearish and price > Time_Frame_HMA50 and price < HMA50 and !accumulation and !distribution;
# --------------- Global Candle Logic ----------------------
DefineGlobalColor("Bullish", Color.GREEN);
DefineGlobalColor("Bull PullBack", Color.DARK_GREEN);
DefineGlobalColor("Bearish", Color.RED);
DefineGlobalColor("Bear PullBack", Color.DARK_RED);
DefineGlobalColor("Break Out", Color.GREEN);
DefineGlobalColor("Break Down", Color.RED);
DefineGlobalColor("Reject", Color.DARK_RED);
DefineGlobalColor("Bounce", Color.DARK_GREEN);
DefineGlobalColor("Overbought Bar", Color.YELLOW);
DefineGlobalColor("Oversold Bar", Color.YELLOW);
DefineGlobalColor("KC Power UP", Color.DARK_ORANGE);
DefineGlobalColor("KC Power Down", Color.DARK_ORANGE);
DefineGlobalColor("Impulse Bar", Color.PLUM);
DefineGlobalColor("Accel", Color.GREEN);
DefineGlobalColor("Accum", Color.WHITE);
DefineGlobalColor("Dist", Color.BLUE);
DefineGlobalColor("Decel", Color.RED);
DefineGlobalColor("Bulls Get Ready", Color.CYAN);
DefineGlobalColor("Bears Get Ready", Color.VIOLET);
# --------------- END Global Candle Logic ----------------------
def MTF_On = yes;
## Month Aggregation Period Variables
def monthAcceleration;
def monthDeceleration;
def monthDistribution;
def monthAccumulation;
def monthBulls_Get_Ready;
def monthBears_Get_Ready;
def monthBears_Get_Ready_Trend;
def monthBulls_Get_Ready_Trend;
def monthBears_Get_Ready_Trend1;
def monthBulls_Get_Ready_Trend1;
def monthBull_Pullbacks;
def monthBear_Pullbacks;
def monthTrend_Bearish_Invalid;
def monthTrend_Bullish_Invalid;
def monthTrend_Bearish;
def monthTrend_Bullish;
if GetAggregationPeriod() <= AggregationPeriod.MONTH {
monthAcceleration = acceleration;
monthDeceleration = deceleration;
monthDistribution = distribution;
monthAccumulation = accumulation;
monthBulls_Get_Ready = Bulls_Get_Ready;
monthBears_Get_Ready = Bears_Get_Ready;
monthBears_Get_Ready_Trend = Bears_Get_Ready_Trend;
monthBulls_Get_Ready_Trend = Bulls_Get_Ready_Trend;
monthBears_Get_Ready_Trend1 = Bears_Get_Ready_Trend1;
monthBulls_Get_Ready_Trend1 = Bulls_Get_Ready_Trend1;
monthBull_Pullbacks = Bull_Pullbacks;
monthBear_Pullbacks = Bear_Pullbacks;
monthTrend_Bearish_Invalid = Trend_Bearish_Invalid;
monthTrend_Bullish_Invalid = Trend_Bullish_Invalid;
monthTrend_Bearish = Trend_Bearish;
monthTrend_Bullish = Trend_Bullish;
}
else {
monthAcceleration = 0;
monthDeceleration = 0;
monthDistribution = 0;
monthAccumulation = 0;
monthBulls_Get_Ready = 0;
monthBears_Get_Ready = 0;
monthBears_Get_Ready_Trend = 0;
monthBulls_Get_Ready_Trend = 0;
monthBears_Get_Ready_Trend1 = 0;
monthBulls_Get_Ready_Trend1 = 0;
monthBull_Pullbacks = 0;
monthBear_Pullbacks = 0;
monthTrend_Bearish_Invalid = 0;
monthTrend_Bullish_Invalid = 0;
monthTrend_Bearish = 0;
monthTrend_Bullish = 0;
}
AddLabel(MTF_On,
if monthAcceleration
then "M"
else if monthDistribution
then "M"
else if monthBulls_Get_Ready
then "M"
else if monthBears_Get_Ready
then "M"
else if monthBears_Get_Ready_Trend
then "M"
else if monthBulls_Get_Ready_Trend
then "M"
else if monthBears_Get_Ready_Trend1
then "M"
else if monthBulls_Get_Ready_Trend1
then "M"
else if monthBull_Pullbacks
then "M"
else if monthBear_Pullbacks
then "M"
else if monthTrend_Bearish_Invalid
then "M"
else if monthTrend_Bullish_Invalid
then "M"
else if monthTrend_Bearish
then "M"
else if monthTrend_Bullish
then "M"
else ""
,
if monthAccumulation
then GlobalColor("Accum")
else if monthDistribution
then GlobalColor("Dist")
else if monthBulls_Get_Ready
then GlobalColor("Bulls Get Ready")
else if monthBears_Get_Ready
then GlobalColor("Bears Get Ready")
else if monthBears_Get_Ready_Trend
then GlobalColor("Bears Get Ready")
else if monthBulls_Get_Ready_Trend
then GlobalColor("Bulls Get Ready")
else if monthBears_Get_Ready_Trend1
then GlobalColor("Bulls Get Ready")
else if monthBulls_Get_Ready_Trend1
then GlobalColor("Bears Get Ready")
else if monthBull_Pullbacks
then GlobalColor("Bull PullBack")
else if monthBear_Pullbacks
then GlobalColor("Bear PullBack")
else if monthTrend_Bearish_Invalid
then GlobalColor("Bullish")
else if monthTrend_Bullish_Invalid
then GlobalColor("Bearish")
else if monthTrend_Bearish
then GlobalColor("Bearish")
else if monthTrend_Bullish
then GlobalColor("Bullish")
else Color.WHITE
);
## week Aggregation Period Variables
def weekAcceleration;
def weekDeceleration;
def weekDistribution;
def weekAccumulation;
def weekBulls_Get_Ready;
def weekBears_Get_Ready;
def weekBears_Get_Ready_Trend;
def weekBulls_Get_Ready_Trend;
def weekBears_Get_Ready_Trend1;
def weekBulls_Get_Ready_Trend1;
def weekBull_Pullbacks;
def weekBear_Pullbacks;
def weekTrend_Bearish_Invalid;
def weekTrend_Bullish_Invalid;
def weekTrend_Bearish;
def weekTrend_Bullish;
if GetAggregationPeriod() <= AggregationPeriod.WEEK {
weekAcceleration = acceleration;
weekDeceleration = deceleration;
weekDistribution = distribution;
weekAccumulation = accumulation;
weekBulls_Get_Ready = Bulls_Get_Ready;
weekBears_Get_Ready = Bears_Get_Ready;
weekBears_Get_Ready_Trend = Bears_Get_Ready_Trend;
weekBulls_Get_Ready_Trend = Bulls_Get_Ready_Trend;
weekBears_Get_Ready_Trend1 = Bears_Get_Ready_Trend1;
weekBulls_Get_Ready_Trend1 = Bulls_Get_Ready_Trend1;
weekBull_Pullbacks = Bull_Pullbacks;
weekBear_Pullbacks = Bear_Pullbacks;
weekTrend_Bearish_Invalid = Trend_Bearish_Invalid;
weekTrend_Bullish_Invalid = Trend_Bullish_Invalid;
weekTrend_Bearish = Trend_Bearish;
weekTrend_Bullish = Trend_Bullish;
}
else {
weekAcceleration = 0;
weekDeceleration = 0;
weekDistribution = 0;
weekAccumulation = 0;
weekBulls_Get_Ready = 0;
weekBears_Get_Ready = 0;
weekBears_Get_Ready_Trend = 0;
weekBulls_Get_Ready_Trend = 0;
weekBears_Get_Ready_Trend1 = 0;
weekBulls_Get_Ready_Trend1 = 0;
weekBull_Pullbacks = 0;
weekBear_Pullbacks = 0;
weekTrend_Bearish_Invalid = 0;
weekTrend_Bullish_Invalid = 0;
weekTrend_Bearish = 0;
weekTrend_Bullish = 0;
}
AddLabel(MTF_On,
if weekAcceleration
then "W"
else if weekDistribution
then "W"
else if weekBulls_Get_Ready
then "W"
else if weekBears_Get_Ready
then "W"
else if weekBears_Get_Ready_Trend
then "W"
else if weekBulls_Get_Ready_Trend
then "W"
else if weekBears_Get_Ready_Trend1
then "W"
else if weekBulls_Get_Ready_Trend1
then "W"
else if weekBull_Pullbacks
then "W"
else if weekBear_Pullbacks
then "W"
else if weekTrend_Bearish_Invalid
then "W"
else if weekTrend_Bullish_Invalid
then "W"
else if weekTrend_Bearish
then "W"
else if weekTrend_Bullish
then "W"
else ""
,
if weekAccumulation
then GlobalColor("Accum")
else if weekDistribution
then GlobalColor("Dist")
else if weekBulls_Get_Ready
then GlobalColor("Bulls Get Ready")
else if weekBears_Get_Ready
then GlobalColor("Bears Get Ready")
else if weekBears_Get_Ready_Trend
then GlobalColor("Bears Get Ready")
else if weekBulls_Get_Ready_Trend
then GlobalColor("Bulls Get Ready")
else if weekBears_Get_Ready_Trend1
then GlobalColor("Bulls Get Ready")
else if weekBulls_Get_Ready_Trend1
then GlobalColor("Bears Get Ready")
else if weekBull_Pullbacks
then GlobalColor("Bull PullBack")
else if weekBear_Pullbacks
then GlobalColor("Bear PullBack")
else if weekTrend_Bearish_Invalid
then GlobalColor("Bullish")
else if weekTrend_Bullish_Invalid
then GlobalColor("Bearish")
else if weekTrend_Bearish
then GlobalColor("Bearish")
else if weekTrend_Bullish
then GlobalColor("Bullish")
else Color.WHITE
);
## day Aggregation Period Variables
def dayAcceleration;
def dayDeceleration;
def dayDistribution;
def dayAccumulation;
def dayBulls_Get_Ready;
def dayBears_Get_Ready;
def dayBears_Get_Ready_Trend;
def dayBulls_Get_Ready_Trend;
def dayBears_Get_Ready_Trend1;
def dayBulls_Get_Ready_Trend1;
def dayBull_Pullbacks;
def dayBear_Pullbacks;
def dayTrend_Bearish_Invalid;
def dayTrend_Bullish_Invalid;
def dayTrend_Bearish;
def dayTrend_Bullish;
if GetAggregationPeriod() <= AggregationPeriod.DAY {
dayAcceleration = acceleration;
dayDeceleration = deceleration;
dayDistribution = distribution;
dayAccumulation = accumulation;
dayBulls_Get_Ready = Bulls_Get_Ready;
dayBears_Get_Ready = Bears_Get_Ready;
dayBears_Get_Ready_Trend = Bears_Get_Ready_Trend;
dayBulls_Get_Ready_Trend = Bulls_Get_Ready_Trend;
dayBears_Get_Ready_Trend1 = Bears_Get_Ready_Trend1;
dayBulls_Get_Ready_Trend1 = Bulls_Get_Ready_Trend1;
dayBull_Pullbacks = Bull_Pullbacks;
dayBear_Pullbacks = Bear_Pullbacks;
dayTrend_Bearish_Invalid = Trend_Bearish_Invalid;
dayTrend_Bullish_Invalid = Trend_Bullish_Invalid;
dayTrend_Bearish = Trend_Bearish;
dayTrend_Bullish = Trend_Bullish;
}
else {
dayAcceleration = 0;
dayDeceleration = 0;
dayDistribution = 0;
dayAccumulation = 0;
dayBulls_Get_Ready = 0;
dayBears_Get_Ready = 0;
dayBears_Get_Ready_Trend = 0;
dayBulls_Get_Ready_Trend = 0;
dayBears_Get_Ready_Trend1 = 0;
dayBulls_Get_Ready_Trend1 = 0;
dayBull_Pullbacks = 0;
dayBear_Pullbacks = 0;
dayTrend_Bearish_Invalid = 0;
dayTrend_Bullish_Invalid = 0;
dayTrend_Bearish = 0;
dayTrend_Bullish = 0;
}
AddLabel(MTF_On,
if dayAcceleration
then "D"
else if dayDistribution
then "D"
else if dayBulls_Get_Ready
then "D"
else if dayBears_Get_Ready
then "D"
else if dayBears_Get_Ready_Trend
then "D"
else if dayBulls_Get_Ready_Trend
then "D"
else if dayBears_Get_Ready_Trend1
then "D"
else if dayBulls_Get_Ready_Trend1
then "D"
else if dayBull_Pullbacks
then "D"
else if dayBear_Pullbacks
then "D"
else if dayTrend_Bearish_Invalid
then "D"
else if dayTrend_Bullish_Invalid
then "D"
else if dayTrend_Bearish
then "D"
else if dayTrend_Bullish
then "D"
else ""
,
if dayAccumulation
then GlobalColor("Accum")
else if dayDistribution
then GlobalColor("Dist")
else if dayBulls_Get_Ready
then GlobalColor("Bulls Get Ready")
else if dayBears_Get_Ready
then GlobalColor("Bears Get Ready")
else if dayBears_Get_Ready_Trend
then GlobalColor("Bears Get Ready")
else if dayBulls_Get_Ready_Trend
then GlobalColor("Bulls Get Ready")
else if dayBears_Get_Ready_Trend1
then GlobalColor("Bulls Get Ready")
else if dayBulls_Get_Ready_Trend1
then GlobalColor("Bears Get Ready")
else if dayBull_Pullbacks
then GlobalColor("Bull PullBack")
else if dayBear_Pullbacks
then GlobalColor("Bear PullBack")
else if dayTrend_Bearish_Invalid
then GlobalColor("Bullish")
else if dayTrend_Bullish_Invalid
then GlobalColor("Bearish")
else if dayTrend_Bearish
then GlobalColor("Bearish")
else if dayTrend_Bullish
then GlobalColor("Bullish")
else Color.WHITE
);
## Four_hours Aggregation Period Variables
def Four_hoursAcceleration;
def Four_hoursDeceleration;
def Four_hoursDistribution;
def Four_hoursAccumulation;
def Four_hoursBulls_Get_Ready;
def Four_hoursBears_Get_Ready;
def Four_hoursBears_Get_Ready_Trend;
def Four_hoursBulls_Get_Ready_Trend;
def Four_hoursBears_Get_Ready_Trend1;
def Four_hoursBulls_Get_Ready_Trend1;
def Four_hoursBull_Pullbacks;
def Four_hoursBear_Pullbacks;
def Four_hoursTrend_Bearish_Invalid;
def Four_hoursTrend_Bullish_Invalid;
def Four_hoursTrend_Bearish;
def Four_hoursTrend_Bullish;
if GetAggregationPeriod() <= AggregationPeriod.FOUR_HOURS {
Four_hoursAcceleration = acceleration;
Four_hoursDeceleration = deceleration;
Four_hoursDistribution = distribution;
Four_hoursAccumulation = accumulation;
Four_hoursBulls_Get_Ready = Bulls_Get_Ready;
Four_hoursBears_Get_Ready = Bears_Get_Ready;
Four_hoursBears_Get_Ready_Trend = Bears_Get_Ready_Trend;
Four_hoursBulls_Get_Ready_Trend = Bulls_Get_Ready_Trend;
Four_hoursBears_Get_Ready_Trend1 = Bears_Get_Ready_Trend1;
Four_hoursBulls_Get_Ready_Trend1 = Bulls_Get_Ready_Trend1;
Four_hoursBull_Pullbacks = Bull_Pullbacks;
Four_hoursBear_Pullbacks = Bear_Pullbacks;
Four_hoursTrend_Bearish_Invalid = Trend_Bearish_Invalid;
Four_hoursTrend_Bullish_Invalid = Trend_Bullish_Invalid;
Four_hoursTrend_Bearish = Trend_Bearish;
Four_hoursTrend_Bullish = Trend_Bullish;
}
else {
Four_hoursAcceleration = 0;
Four_hoursDeceleration = 0;
Four_hoursDistribution = 0;
Four_hoursAccumulation = 0;
Four_hoursBulls_Get_Ready = 0;
Four_hoursBears_Get_Ready = 0;
Four_hoursBears_Get_Ready_Trend = 0;
Four_hoursBulls_Get_Ready_Trend = 0;
Four_hoursBears_Get_Ready_Trend1 = 0;
Four_hoursBulls_Get_Ready_Trend1 = 0;
Four_hoursBull_Pullbacks = 0;
Four_hoursBear_Pullbacks = 0;
Four_hoursTrend_Bearish_Invalid = 0;
Four_hoursTrend_Bullish_Invalid = 0;
Four_hoursTrend_Bearish = 0;
Four_hoursTrend_Bullish = 0;
}
AddLabel(MTF_On,
if Four_hoursAcceleration
then "4H"
else if Four_hoursDistribution
then "4H"
else if Four_hoursBulls_Get_Ready
then "4H"
else if Four_hoursBears_Get_Ready
then "4H"
else if Four_hoursBears_Get_Ready_Trend
then "4H"
else if Four_hoursBulls_Get_Ready_Trend
then "4H"
else if Four_hoursBears_Get_Ready_Trend1
then "4H"
else if Four_hoursBulls_Get_Ready_Trend1
then "4H"
else if Four_hoursBull_Pullbacks
then "4H"
else if Four_hoursBear_Pullbacks
then "4H"
else if Four_hoursTrend_Bearish_Invalid
then "4H"
else if Four_hoursTrend_Bullish_Invalid
then "4H"
else if Four_hoursTrend_Bearish
then "4H"
else if Four_hoursTrend_Bullish
then "4H"
else ""
,
if Four_hoursAccumulation
then GlobalColor("Accum")
else if Four_hoursDistribution
then GlobalColor("Dist")
else if Four_hoursBulls_Get_Ready
then GlobalColor("Bulls Get Ready")
else if Four_hoursBears_Get_Ready
then GlobalColor("Bears Get Ready")
else if Four_hoursBears_Get_Ready_Trend
then GlobalColor("Bears Get Ready")
else if Four_hoursBulls_Get_Ready_Trend
then GlobalColor("Bulls Get Ready")
else if Four_hoursBears_Get_Ready_Trend1
then GlobalColor("Bulls Get Ready")
else if Four_hoursBulls_Get_Ready_Trend1
then GlobalColor("Bears Get Ready")
else if Four_hoursBull_Pullbacks
then GlobalColor("Bull PullBack")
else if Four_hoursBear_Pullbacks
then GlobalColor("Bear PullBack")
else if Four_hoursTrend_Bearish_Invalid
then GlobalColor("Bullish")
else if Four_hoursTrend_Bullish_Invalid
then GlobalColor("Bearish")
else if Four_hoursTrend_Bearish
then GlobalColor("Bearish")
else if Four_hoursTrend_Bullish
then GlobalColor("Bullish")
else Color.WHITE
);
## hour Aggregation Period Variables
def hourAcceleration;
def hourDeceleration;
def hourDistribution;
def hourAccumulation;
def hourBulls_Get_Ready;
def hourBears_Get_Ready;
def hourBears_Get_Ready_Trend;
def hourBulls_Get_Ready_Trend;
def hourBears_Get_Ready_Trend1;
def hourBulls_Get_Ready_Trend1;
def hourBull_Pullbacks;
def hourBear_Pullbacks;
def hourTrend_Bearish_Invalid;
def hourTrend_Bullish_Invalid;
def hourTrend_Bearish;
def hourTrend_Bullish;
if GetAggregationPeriod() <= AggregationPeriod.HOUR {
hourAcceleration = acceleration;
hourDeceleration = deceleration;
hourDistribution = distribution;
hourAccumulation = accumulation;
hourBulls_Get_Ready = Bulls_Get_Ready;
hourBears_Get_Ready = Bears_Get_Ready;
hourBears_Get_Ready_Trend = Bears_Get_Ready_Trend;
hourBulls_Get_Ready_Trend = Bulls_Get_Ready_Trend;
hourBears_Get_Ready_Trend1 = Bears_Get_Ready_Trend1;
hourBulls_Get_Ready_Trend1 = Bulls_Get_Ready_Trend1;
hourBull_Pullbacks = Bull_Pullbacks;
hourBear_Pullbacks = Bear_Pullbacks;
hourTrend_Bearish_Invalid = Trend_Bearish_Invalid;
hourTrend_Bullish_Invalid = Trend_Bullish_Invalid;
hourTrend_Bearish = Trend_Bearish;
hourTrend_Bullish = Trend_Bullish;
}
else {
hourAcceleration = 0;
hourDeceleration = 0;
hourDistribution = 0;
hourAccumulation = 0;
hourBulls_Get_Ready = 0;
hourBears_Get_Ready = 0;
hourBears_Get_Ready_Trend = 0;
hourBulls_Get_Ready_Trend = 0;
hourBears_Get_Ready_Trend1 = 0;
hourBulls_Get_Ready_Trend1 = 0;
hourBull_Pullbacks = 0;
hourBear_Pullbacks = 0;
hourTrend_Bearish_Invalid = 0;
hourTrend_Bullish_Invalid = 0;
hourTrend_Bearish = 0;
hourTrend_Bullish = 0;
}
AddLabel(MTF_On,
if hourAcceleration
then "H"
else if hourDistribution
then "H"
else if hourBulls_Get_Ready
then "H"
else if hourBears_Get_Ready
then "H"
else if hourBears_Get_Ready_Trend
then "H"
else if hourBulls_Get_Ready_Trend
then "H"
else if hourBears_Get_Ready_Trend1
then "H"
else if hourBulls_Get_Ready_Trend1
then "H"
else if hourBull_Pullbacks
then "H"
else if hourBear_Pullbacks
then "H"
else if hourTrend_Bearish_Invalid
then "H"
else if hourTrend_Bullish_Invalid
then "H"
else if hourTrend_Bearish
then "H"
else if hourTrend_Bullish
then "H"
else ""
,
if hourAccumulation
then GlobalColor("Accum")
else if hourDistribution
then GlobalColor("Dist")
else if hourBulls_Get_Ready
then GlobalColor("Bulls Get Ready")
else if hourBears_Get_Ready
then GlobalColor("Bears Get Ready")
else if hourBears_Get_Ready_Trend
then GlobalColor("Bears Get Ready")
else if hourBulls_Get_Ready_Trend
then GlobalColor("Bulls Get Ready")
else if hourBears_Get_Ready_Trend1
then GlobalColor("Bulls Get Ready")
else if hourBulls_Get_Ready_Trend1
then GlobalColor("Bears Get Ready")
else if hourBull_Pullbacks
then GlobalColor("Bull PullBack")
else if hourBear_Pullbacks
then GlobalColor("Bear PullBack")
else if hourTrend_Bearish_Invalid
then GlobalColor("Bullish")
else if hourTrend_Bullish_Invalid
then GlobalColor("Bearish")
else if hourTrend_Bearish
then GlobalColor("Bearish")
else if hourTrend_Bullish
then GlobalColor("Bullish")
else Color.WHITE
);
## Fifteen_Min Aggregation Period Variables
def Fifteen_MinAcceleration;
def Fifteen_MinDeceleration;
def Fifteen_MinDistribution;
def Fifteen_MinAccumulation;
def Fifteen_MinBulls_Get_Ready;
def Fifteen_MinBears_Get_Ready;
def Fifteen_MinBears_Get_Ready_Trend;
def Fifteen_MinBulls_Get_Ready_Trend;
def Fifteen_MinBears_Get_Ready_Trend1;
def Fifteen_MinBulls_Get_Ready_Trend1;
def Fifteen_MinBull_Pullbacks;
def Fifteen_MinBear_Pullbacks;
def Fifteen_MinTrend_Bearish_Invalid;
def Fifteen_MinTrend_Bullish_Invalid;
def Fifteen_MinTrend_Bearish;
def Fifteen_MinTrend_Bullish;
if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN {
Fifteen_MinAcceleration = acceleration;
Fifteen_MinDeceleration = deceleration;
Fifteen_MinDistribution = distribution;
Fifteen_MinAccumulation = accumulation;
Fifteen_MinBulls_Get_Ready = Bulls_Get_Ready;
Fifteen_MinBears_Get_Ready = Bears_Get_Ready;
Fifteen_MinBears_Get_Ready_Trend = Bears_Get_Ready_Trend;
Fifteen_MinBulls_Get_Ready_Trend = Bulls_Get_Ready_Trend;
Fifteen_MinBears_Get_Ready_Trend1 = Bears_Get_Ready_Trend1;
Fifteen_MinBulls_Get_Ready_Trend1 = Bulls_Get_Ready_Trend1;
Fifteen_MinBull_Pullbacks = Bull_Pullbacks;
Fifteen_MinBear_Pullbacks = Bear_Pullbacks;
Fifteen_MinTrend_Bearish_Invalid = Trend_Bearish_Invalid;
Fifteen_MinTrend_Bullish_Invalid = Trend_Bullish_Invalid;
Fifteen_MinTrend_Bearish = Trend_Bearish;
Fifteen_MinTrend_Bullish = Trend_Bullish;
}
else {
Fifteen_MinAcceleration = 0;
Fifteen_MinDeceleration = 0;
Fifteen_MinDistribution = 0;
Fifteen_MinAccumulation = 0;
Fifteen_MinBulls_Get_Ready = 0;
Fifteen_MinBears_Get_Ready = 0;
Fifteen_MinBears_Get_Ready_Trend = 0;
Fifteen_MinBulls_Get_Ready_Trend = 0;
Fifteen_MinBears_Get_Ready_Trend1 = 0;
Fifteen_MinBulls_Get_Ready_Trend1 = 0;
Fifteen_MinBull_Pullbacks = 0;
Fifteen_MinBear_Pullbacks = 0;
Fifteen_MinTrend_Bearish_Invalid = 0;
Fifteen_MinTrend_Bullish_Invalid = 0;
Fifteen_MinTrend_Bearish = 0;
Fifteen_MinTrend_Bullish = 0;
}
AddLabel(MTF_On,
if Fifteen_MinAcceleration
then "15M"
else if Fifteen_MinDistribution
then "15M"
else if Fifteen_MinBulls_Get_Ready
then "15M"
else if Fifteen_MinBears_Get_Ready
then "15M"
else if Fifteen_MinBears_Get_Ready_Trend
then "15M"
else if Fifteen_MinBulls_Get_Ready_Trend
then "15M"
else if Fifteen_MinBears_Get_Ready_Trend1
then "15M"
else if Fifteen_MinBulls_Get_Ready_Trend1
then "15M"
else if Fifteen_MinBull_Pullbacks
then "15M"
else if Fifteen_MinBear_Pullbacks
then "15M"
else if Fifteen_MinTrend_Bearish_Invalid
then "15M"
else if Fifteen_MinTrend_Bullish_Invalid
then "15M"
else if Fifteen_MinTrend_Bearish
then "15M"
else if Fifteen_MinTrend_Bullish
then "15M"
else ""
,
if Fifteen_MinAccumulation
then GlobalColor("Accum")
else if Fifteen_MinDistribution
then GlobalColor("Dist")
else if Fifteen_MinBulls_Get_Ready
then GlobalColor("Bulls Get Ready")
else if Fifteen_MinBears_Get_Ready
then GlobalColor("Bears Get Ready")
else if Fifteen_MinBears_Get_Ready_Trend
then GlobalColor("Bears Get Ready")
else if Fifteen_MinBulls_Get_Ready_Trend
then GlobalColor("Bulls Get Ready")
else if Fifteen_MinBears_Get_Ready_Trend1
then GlobalColor("Bulls Get Ready")
else if Fifteen_MinBulls_Get_Ready_Trend1
then GlobalColor("Bears Get Ready")
else if Fifteen_MinBull_Pullbacks
then GlobalColor("Bull PullBack")
else if Fifteen_MinBear_Pullbacks
then GlobalColor("Bear PullBack")
else if Fifteen_MinTrend_Bearish_Invalid
then GlobalColor("Bullish")
else if Fifteen_MinTrend_Bullish_Invalid
then GlobalColor("Bearish")
else if Fifteen_MinTrend_Bearish
then GlobalColor("Bearish")
else if Fifteen_MinTrend_Bullish
then GlobalColor("Bullish")
else Color.WHITE
);
## Five_Min Aggregation Period Variables
def Five_MinAcceleration;
def Five_MinDeceleration;
def Five_MinDistribution;
def Five_MinAccumulation;
def Five_MinBulls_Get_Ready;
def Five_MinBears_Get_Ready;
def Five_MinBears_Get_Ready_Trend;
def Five_MinBulls_Get_Ready_Trend;
def Five_MinBears_Get_Ready_Trend1;
def Five_MinBulls_Get_Ready_Trend1;
def Five_MinBull_Pullbacks;
def Five_MinBear_Pullbacks;
def Five_MinTrend_Bearish_Invalid;
def Five_MinTrend_Bullish_Invalid;
def Five_MinTrend_Bearish;
def Five_MinTrend_Bullish;
if GetAggregationPeriod() <= AggregationPeriod.FIVE_MIN {
Five_MinAcceleration = acceleration;
Five_MinDeceleration = deceleration;
Five_MinDistribution = distribution;
Five_MinAccumulation = accumulation;
Five_MinBulls_Get_Ready = Bulls_Get_Ready;
Five_MinBears_Get_Ready = Bears_Get_Ready;
Five_MinBears_Get_Ready_Trend = Bears_Get_Ready_Trend;
Five_MinBulls_Get_Ready_Trend = Bulls_Get_Ready_Trend;
Five_MinBears_Get_Ready_Trend1 = Bears_Get_Ready_Trend1;
Five_MinBulls_Get_Ready_Trend1 = Bulls_Get_Ready_Trend1;
Five_MinBull_Pullbacks = Bull_Pullbacks;
Five_MinBear_Pullbacks = Bear_Pullbacks;
Five_MinTrend_Bearish_Invalid = Trend_Bearish_Invalid;
Five_MinTrend_Bullish_Invalid = Trend_Bullish_Invalid;
Five_MinTrend_Bearish = Trend_Bearish;
Five_MinTrend_Bullish = Trend_Bullish;
}
else {
Five_MinAcceleration = 0;
Five_MinDeceleration = 0;
Five_MinDistribution = 0;
Five_MinAccumulation = 0;
Five_MinBulls_Get_Ready = 0;
Five_MinBears_Get_Ready = 0;
Five_MinBears_Get_Ready_Trend = 0;
Five_MinBulls_Get_Ready_Trend = 0;
Five_MinBears_Get_Ready_Trend1 = 0;
Five_MinBulls_Get_Ready_Trend1 = 0;
Five_MinBull_Pullbacks = 0;
Five_MinBear_Pullbacks = 0;
Five_MinTrend_Bearish_Invalid = 0;
Five_MinTrend_Bullish_Invalid = 0;
Five_MinTrend_Bearish = 0;
Five_MinTrend_Bullish = 0;
}
AddLabel(MTF_On,
if Five_MinAcceleration
then "5M"
else if Five_MinDistribution
then "5M"
else if Five_MinBulls_Get_Ready
then "5M"
else if Five_MinBears_Get_Ready
then "5M"
else if Five_MinBears_Get_Ready_Trend
then "5M"
else if Five_MinBulls_Get_Ready_Trend
then "5M"
else if Five_MinBears_Get_Ready_Trend1
then "5M"
else if Five_MinBulls_Get_Ready_Trend1
then "5M"
else if Five_MinBull_Pullbacks
then "5M"
else if Five_MinBear_Pullbacks
then "5M"
else if Five_MinTrend_Bearish_Invalid
then "5M"
else if Five_MinTrend_Bullish_Invalid
then "5M"
else if Five_MinTrend_Bearish
then "5M"
else if Five_MinTrend_Bullish
then "5M"
else ""
,
if Five_MinAccumulation
then GlobalColor("Accum")
else if Five_MinDistribution
then GlobalColor("Dist")
else if Five_MinBulls_Get_Ready
then GlobalColor("Bulls Get Ready")
else if Five_MinBears_Get_Ready
then GlobalColor("Bears Get Ready")
else if Five_MinBears_Get_Ready_Trend
then GlobalColor("Bears Get Ready")
else if Five_MinBulls_Get_Ready_Trend
then GlobalColor("Bulls Get Ready")
else if Five_MinBears_Get_Ready_Trend1
then GlobalColor("Bulls Get Ready")
else if Five_MinBulls_Get_Ready_Trend1
then GlobalColor("Bears Get Ready")
else if Five_MinBull_Pullbacks
then GlobalColor("Bull PullBack")
else if Five_MinBear_Pullbacks
then GlobalColor("Bear PullBack")
else if Five_MinTrend_Bearish_Invalid
then GlobalColor("Bullish")
else if Five_MinTrend_Bullish_Invalid
then GlobalColor("Bearish")
else if Five_MinTrend_Bearish
then GlobalColor("Bearish")
else if Five_MinTrend_Bullish
then GlobalColor("Bullish")
else Color.WHITE
);
Last edited: