Here is how you can convert the four basic % Stochastic functions into JMA-smoothed versions. All 4 stochastics (FastK, SlowK, FastD, SlowD) are based on the same underlying function, FastK, as shown here... SlowK = AVERAGE ( FastK(FastKLen), length ); FastD = AVERAGE ( FastK(FastKLen), 3 ); SlowD = AVERAGE ( AVERAGE ( FastK(FastKLen), 3), length ); First, let's replace The AVERAGE function with JMA.... New_FastK = JRC.JMA.2k( FastK(FastKLen), 0, -50 ); New_SlowK = JRC.JMA.2k( FastK(FastKLen), length, -50 ); New_FastD = JRC.JMA.2k( FastK(FastKLen), 5 , 50 ); New_SLowD = JRC.JMA.2k( FastK(FastKLen), length+5, 50 ); Note that, except for the parameter values, all four functions are written the same way. We can therefore replace all four stochastic functions with one "all purpose" version, as follows... New_Stochastic = JRC.JMA.2k( FastK(FastKLen), length, phase ); Based on this concept, here is code for the new function "New_Stochastic"... ======================================================= { For TradeStation 2000i PowerEditor } Inputs: FastKLen(NumericSimple), Length(NumericSimple), Phase(NumericSimple); New_Stochastic = JRC.JMA.2k(FastK(FastKLen), Length, Phase); ======================================================= You can then plot various stochastics as follows: Plot1 ( New_Stochastic ( 14, 0, -50 ) ; { Fast % K } Plot2 ( New_Stochastic ( 14, 20, -50 ) ; { Slow % K } Plot3 ( New_Stochastic ( 14, 5, 50 ) ; { Fast % D } Plot4 ( New_Stochastic ( 14, 23, 50 ) ; { Slow % D } You are free to use any reasonable parameter values to create your own hybrid stochastic indicator.