D Three Ten Oscillator

D Three Ten Oscillator was authored by Bill Mars. The difference in magnitude of a three and ten period moving average maps this oscillator’s path. A signal line, which is an EMA of the D Three Ten, is also plotted to help trigger trading signals. Adjustable guides are added to fine tune these signals. The user may change the input (close), method (EMA), period lengths and guide values. This indicator’s definition is further expressed in the condensed code given in the calculation below.

D Three Ten Oscillator1

How To Trade Using D Three Ten Oscillator

Fine tune the top and bottom guides to control the number and quality of the trading signals. If the D Three Ten (V1) is above the top guide and crosses below the signal line (V2) a sell signal will be generated. Conversely, if the V1 is below the bottom guide and crosses above the signal line (V2) a buy signal will be given. The 0 line divides the bulls (above) from the bears (below).

D Three Ten Oscillator2

How To Access in MotiveWave

Choose Study -> Add Study from the top menu bar, start typing in this study name until you see it appear in the list, click on the study name, click OK.

Important Disclaimer: The information provided on this page is strictly for informational purposes and is not to be construed as advice or solicitation to buy or sell any security. Please see our Risk Disclosure and Performance Disclaimer Statement.


//input = price, user defined, default is midpoint
//method = moving average, user defined, default is EMA
//period1 = user defined, default is 3
//period2 = user defined, default is 10
//period3 = user defined, default is 16
//ma = moving average, index = current bar number

ma3Day = ma(method, index, period1, key);
ma10Day = ma(method, index, period2, ma3Day);
Plot1: v1 = ma3Day - ma10Day;
Plot2: v2 = ma(method, index, period3, v1);
highSell = v1 for last sell signal, reset to max_negative at each  buy signal;
lowBuy = v1 for last buy signal, reset to max_positive at each sell signal;
sell = crossedBelow(v1, v2) AND (v1 moreThan topGuide)  AND (v1 moreThan highSell);
buy = crossedAbove(v1, v2) AND (v1 lessThan bottGuide) AND (v1 lessThan lowBuy);