I did not know that. Here is the code. input indicator = { T1, T2, default T3, T4, T5, T6 }; input price = close; input period = 10; input volumeFactor = 0.70; input displace = 0; input sign = { default plus, minus }; input Label = Yes; input paintbars = No; script _gd { input _price = close; input _period = 10; input _v = 0.70; input _sign = { default plus, minus }; def _ema = ExpAverage( _price, _period ); plot _gd = ( _ema * ( 1 + _v ) ) – ( ExpAverage( _ema, _period ) * _v ); } def _t1 = _gd( price[-displace], period, volumeFactor, sign ); def _t2 = _gd( _t1, period, volumeFactor, sign ); def _t3 = _gd( _t2, period, volumeFactor, sign ); def _t4 = _gd( _t3, period, volumeFactor, sign ); def _t5 = _gd( _t4, period, volumeFactor, sign ); def _t6 = _gd( _t5, period, volumeFactor, sign ); plot T3; switch( indicator ) { case T1: T3 = _t1; case T2: T3 = _t2; case T3: T3 = _t3; case T4: T3 = _t4; case T5: T3 = _t5; case T6: T3 = _t6; } T3.AssignValueColor(if T3 > T3[1] then Color.White else Color.Red); T3.SetLineWeight(3); T3.HideBubble(); AddLabel(Label, if T3 > T3[1] then ” T3-10 Up ” else ” T3-10 Down “, if T3 > T3[1] then color.green else color.red); assignPriceColor(if paintbars and T3 T3[1] then color.green else color.CURRENT); def t3CrossesUp = T3 > T3[1] and T3[1] < T3[2]; def t3CrossesDown = T3 < T3[1] and T3[1] > T3[2]; Alert(t3CrossesUp, "T3 Crossing Up", Alert.BAR, Sound.RING); Alert(t3CrossesDown, "T3 Crossing Down", Alert.BAR, Sound.RING);