@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);