@PT_Scalper This is a huge help! I would have no idea what to do without the this, thank you!

I did make some edits (I can modify code fine, I just can't figure out how to write it LOL) BTW, I love the labels up top, great idea!

I edited it down to 3 Signals. 3x8, price x20 and 3x20, in that order. It helped cut down the many signals on the 1 Min.

There are several places where 3x8 and price x20 and the signals overlap, so I made the signal arrows smaller on Arrow 1 than Arrow 3.

I can't wait to try this out Monday morning!

#My3820EMACrossover

declare upper;

input price = close;

input Length1 = 3;

input Length2 = 8;

input Length3 = 20;

input displace = 0;

input showBreakoutSignals = no;

plot AvgExp1 = ExpAverage(price[-displace], length1);

plot AvgExp2 = ExpAverage(price[-displace], length2);

plot AvgExp3 = ExpAverage(price[-displace], length3);

def emaValue1 = movavgExponential (close, Length1);

def emaValue2 = movavgExponential (close, Length2);

def emaValue3 = movavgExponential (close, Length3);

def CrossoverUp1 = emaValue1 [1] < emaValue2 [1] and emaValue1 > emaValue2;

def CrossoverDn1 = emaValue1 [1] > emaValue2 [1] and emaValue1 < emaValue2;

def Diff1 = emavalue1 - emavalue2;

def CrossoverUp2 = emaValue1 [1] < emaValue3 [1] and emaValue1 > emaValue3;

def CrossoverDn2 = emaValue1 [1] > emaValue3 [1] and emaValue1 < emaValue3;

def Diff2 = emavalue1 - emavalue3;

# EMA3 and EMA8 Crossover

Plot ArrowUp1 = if emaValue1 crosses above emaValue2

then low

else double.nan;

ArrowUP1.SetPaintingStrategy(PaintingStrategy.Arrow_UP);

ArrowUP1.SetLineWeight(3);

ArrowUP1.SetDefaultColor(Color.Cyan);

plot ArrowDN1 = if emaValue1 crosses below emaValue2

then high

else double.nan;

ArrowDN1.SetPaintingStrategy(PaintingStrategy.Arrow_DOWN);

ArrowDN1.SetLineWeight(3);

ArrowDN1.SetDefaultColor(Color.Orange);

AddLabel(emavalue1 > emavalue2, "3up|$" + Round(Diff1,3), Color.Green);

AddLabel(emavalue1 < emavalue2, "8up|$" + Round(Diff1,3), Color.Red);

# EMA3 and EMA8 Crossover bubbles

#def condup1 = if emaValue1 [1] < emaValue2 [1] and emaValue1 > emaValue2 then BarNumber() else Double.NaN;

#input bubblemover_up1 = 3;#Moves bubbles up or down away from other candles

#AddChartBubble(BarNumber() == condup1,

# emaValue2 - bubblemover_up1 * TickSize(),

# "3up",

# Color.uptick, no);

#def conddown1 = if emaValue1 [1] > emaValue2 [1] and emaValue1 < emaValue2 then BarNumber() else Double.NaN;

#input bubblemover_down1 = 3;#Moves bubbles up or down away from other candles

#AddChartBubble(BarNumber() == conddown1,

# emaValue2 - bubblemover_up1 * TickSize(),

# "8up",

# Color.downtick, no);

# EMA20 and Price Crossover

def Diff3 = emavalue3 - price;

Plot ArrowDN2 = if emaValue3 crosses above price

then high

else double.nan;

ArrowDN2.SetPaintingStrategy(PaintingStrategy.Arrow_DOWN);

ArrowDN2.SetLineWeight(3);

ArrowDN2.SetDefaultColor(Color.Yellow);

plot ArrowUP2 = if emaValue3 crosses below price

then low

else double.nan;

ArrowUP2.SetPaintingStrategy(PaintingStrategy.Arrow_UP);

ArrowUP2.SetLineWeight(3);

ArrowUP2.SetDefaultColor(Color.magenta);

AddLabel(emavalue3 < Price, "Priceup|$" + Round(Diff3,3), Color.Green);

AddLabel(emavalue3 > Price, "20up|$" + Round(Diff3,3), Color.Red);

# EMA20 and Price Crossover bubbles

#def condup2 = if emaValue3 [1] < price [1] and emaValue3 > price then BarNumber() else Double.NaN;

#input bubblemover_up3 = 3;#Moves bubbles up or down away from other candles

#AddChartBubble(BarNumber() == condup2,

# price - bubblemover_up3 * TickSize(),

# "Priceup",

# Color.uptick, no);

#def conddown2 = if emaValue1 [1] > price [1] and emaValue1 < price then BarNumber() else Double.NaN;

#input bubblemover_down3 = 3;#Moves bubbles up or down away from other candles

#AddChartBubble(BarNumber() == conddown2,

# price - bubblemover_up3 * TickSize(),

# "20up",

# Color.downtick, no);

# EMA3 and EMA20 Crossover

Plot ArrowUp3 = if emaValue1 crosses above emaValue3

then low

else double.nan;

ArrowUP3.SetPaintingStrategy(PaintingStrategy.Arrow_UP);

ArrowUP3.SetLineWeight(3);

ArrowUP3.SetDefaultColor(Color.Green);

plot ArrowDN3 = if emaValue1 crosses below emaValue3

then high

else double.nan;

ArrowDN3.SetPaintingStrategy(PaintingStrategy.Arrow_DOWN);

ArrowDN3.SetLineWeight(3);

ArrowDN3.SetDefaultColor(Color.Red);

AddLabel(emavalue1 > emavalue3, "3up|$" + Round(Diff2,3), Color.Green);

AddLabel(emavalue1 < emavalue3, "20up|$" + Round(Diff2,3), Color.Red);

# EMA3 and EMA20 Crossover bubbles

#def condup3 = if emaValue1 [1] < emaValue3 [1] and emaValue1 > emaValue3 then BarNumber() else Double.NaN;

#input bubblemover_up2 = 3;#Moves bubbles up or down away from other candles

#AddChartBubble(BarNumber() == condup2,

# emaValue3 - bubblemover_up2 * TickSize(),

# "3up",

# Color.uptick, no);

#def conddown3 = if emaValue1 [1] > emaValue3 [1] and emaValue1 < emaValue3 then BarNumber() else Double.NaN;

#input bubblemover_down2 = 3;#Moves bubbles up or down away from other candles

#AddChartBubble(BarNumber() == conddown2,

# emaValue3 - bubblemover_up2 * TickSize(),

# "8up",

# Color.downtick, no);