#averages_multi_crossings_arrows_02
#https://usethinkscript.com/threads/ma-cross-for-4-mas.21233/
# a signal when,
# ma10 crosses above ma13
# and ma5 > ma8
# and ma8 > ma10
def na = Double.NaN;
def bn = BarNumber();
def data = close;
input avg1_type = AverageType.SIMPLE;
input avg1_length = 5;
def len1b = if avg1_length == 0 then 1 else avg1_length;
def avg1 = MovingAverage(avg1_type, data, len1b);
#hint avg1_length: Enter a length of 0 to disable an average
input avg2_type = AverageType.SIMPLE;
input avg2_length = 8;
def len2b = if avg2_length == 0 then 1 else avg2_length;
def avg2 = MovingAverage(avg2_type, data, len2b);
input avg3_type = AverageType.SIMPLE;
input avg3_length = 10;
def len3b = if avg3_length == 0 then 1 else avg3_length;
def avg3 = MovingAverage(avg3_type, data, len3b);
input avg4_type = AverageType.SIMPLE;
input avg4_length = 13;
def len4b = if avg4_length == 0 then 1 else avg4_length;
def avg4 = MovingAverage(avg4_type, data, len4b);
#-----------------------------
# ma10 crosses above ma13
# and ma5 > ma8
# and ma8 > ma10
def xup = avg3 crosses above avg4;
def pair1 = avg1 > avg2;
def pair2 = avg2 > avg3;
def signal = xup and pair1 and pair2;
plot z1 = if signal then low * 0.999 else na;
z1.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
z1.SetDefaultColor(Color.CYAN);
z1.SetLineWeight(3);
z1.HideBubble();
#https://toslc.thinkorswim.com/center/reference/thinkScript/Constants/AverageType
#input avg1_type = AverageType.Simple;
#input avg1_type = AverageType.exponential;
#input avg1_type = AverageType.hull;
#input avg1_type = AverageType.weighted;
#input avg1_type = AverageType.wilders;
#