I plotted out the two versions for TMA and they not the same. This leads me to believe the one from nanningbob indicator is not a standard TMA as jcl knows his stuff.

Anyway here is the code that plots them both and the TMASlope and RSI(2) of TMASlope for those interested.

Code:
//+------------------------------------------------------------------+
//| TMA by jcl double SMA                                            |
//+------------------------------------------------------------------+
double TMA(var *data,int period) 
{ 
	return SMA(series(SMA(data,period)),period); 
}

//+------------------------------------------------------------------+
//| calcTmaTrue()                                                    |
//+------------------------------------------------------------------+
double calcTmaTrue( int inx )
{
   // return ( iMA( symbol, tf, 21, 0, MODE_LWMA, PRICE_CLOSE, inx ) );
   vars Close = series(priceClose());
   double dblSum  = 0;
   double dblSumw = 0;
   int jnx, knx;
   int sundayCandles = 0;

   for ( jnx = 0, knx = 21; jnx < 21; jnx++, knx-- )
   {   
      dblSum  += Close[inx + jnx + sundayCandles] * knx;
      dblSumw += knx;
   }
   
   return ( dblSum / dblSumw );
}

//+------------------------------------------------------------------+
//| calcPrevTrue()                                                   |
//+------------------------------------------------------------------+
double calcPrevTrue( int inx )
{
   vars Close = series(priceClose());
   double dblSum  = Close[ inx ] * 20;
   double dblSumw = 20;
   int jnx, knx;
   int sundayCandles = 0;
   
   for ( jnx = 1, knx = 21; jnx < 22; jnx++, knx-- )
   {   
      dblSum  += Close[ inx + jnx + sundayCandles ] * knx;
      dblSumw += knx;
   }
   
   return ( dblSum / dblSumw );
}

//+------------------------------------------------------------------+
//| GetSlope()                                                                              |
//+------------------------------------------------------------------+
double GetSlope(int shift)
{
   int shiftWithoutSunday = shift;  
   double atr = ATR(100) / 10;
   double gadblSlope = 0.0;
   if ( atr != 0 )
   {
      double dblTma = calcTmaTrue( shiftWithoutSunday );
      double dblPrev = calcPrevTrue( shiftWithoutSunday );
      gadblSlope = ( dblTma - dblPrev ) / atr;
   }
   
   return ( gadblSlope );

}

function run()
{
   BarPeriod = 240;                                  // 4H Period
   StartDate = 20120101;
   EndDate = 20130701;
   LookBack = 500;
   set(PLOTNOW|PLOTPRICE);

   
   vars Price = series(price());
   vars TMATrue = series(calcTmaTrue(0));
   vars jclTMA = series(TMA(Price,10));  //not sure what period meant to be but none match TMATrue
   vars Slope = series(GetSlope(0));
   vars RSISlope = series(RSI(Slope,2));
   
   plot("TMATrue",TMATrue[0],0,BLUE);
   plot("jclTMA",jclTMA[0],0,RED);
   plot("SlopeTMATrue",Slope[0],NEW,RED);
   plot("RSISlopeTMATrue",RSISlope[0],NEW,GREEN);   
   
}



I do like the simplicity of Zorro.

Regards

Mike