Scripting in Think Or Swim #ToS

Implementing EMA Clouds in ThinkScript

#Multiple EMA Cloud

input ema1low = 5;
input ema1high = 13;
input ema2low = 34;
input ema2high = 50;
input ema3low = 72;
input ema3high = 89;
def ema5 = ExpAverage(close, ema1low);
 def ema13 = ExpAverage(close, ema1high);
AddCloud(ema5, ema13, Color.DARK_GREEN, Color.RED);
def ema34 = ExpAverage(close, ema2low);
def ema50 = ExpAverage(close, ema2high);
AddCloud(ema34, ema50, Color.green, Color.light_gray);
def ema72 = ExpAverage(close, ema3low);
def ema89 = ExpAverage(close, ema3high);
AddCloud(ema72, ema89, Color.blue, Color.yellow);

def buycross = (ema5 > ema13) and (ema34 crosses above ema50);
def buycrossAdditional = (ema72 crosses above ema89);

AddOrder(OrderType.BUY_TO_OPEN, buycross, tickColor = GetColor(1), arrowColor = GetColor(1), name = "Buy", tradeSize = floor(10000 / close));

def sellcross = ema5 crosses below ema13 and (ema34 < ema50);

AddOrder(OrderType.SELL_TO_CLOSE, sellcross, tickColor = GetColor(0), arrowColor = GetColor(0), name = "Sell");

AddLabel(yes, "EMA5 & EMA13 = Dark Green & Red", Color.DARK_GREEN);
AddLabel(yes, "EMA34 & EMA50 = Green & Light Grey", Color.GREEN);
AddLabel(yes, "EMA72 & EMA89 = Blue & Yellow", Color.BLUE);