# DSS

Modified on 2008/04/14 10:07 by Administrator — Categorized as: Standard Indicators

### Syntax

public DSS(Bars bars, int period1, int period2, int stochP, string description)
public static DSS Series(Bars bars, int period1, int period2, int stochP)

### Parameter Description

 period1 1st Exponential Moving Average period period2 2nd Exponential Moving Average period stochP Stochastic %K period

### Description

The Double Smoothed Stochastic indicator was created by William Blau. It applies Exponential Moving Averages (EMAs) of two different periods to a standard Stochastic %K, StochK. The components that construct the Stochastic Oscillator are first smoothed with the two EMAs. Then, the smoothed components are plugged into the standard Stochastic formula to calculate the indicator.

### Interpretation

DSS ranges from 0 to 100, like the standard Stochastic Oscillator. The same rules of interpretation that you use for Stochastics can be applied to DSS, although DSS offers a much smoother curve than the raw Stochastic.

### Calculation

DSS = ( C-L1 / H-L1 ) * 100

where,
HH = Highest High in Lookback period
LL = Lowest Low in Lookback period
C-L = Close minus LL
H-L = HH minus LL
C-L2 = EMA( C-L, period2 )
H-L2 = EMA( H-L, period2 )
C-L1 = EMA( C-L2, period1 )
H-L1 + EMA( H-L2, period1 )

### Example

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;

namespace WealthLab.Strategies { public class MyStrategy : WealthScript { protected override void Execute() { // Buy when DSS turns up from an oversold level DataSeries dss = DSS.Series( Bars, 10, 20, 5 ); ChartPane DSSPane = CreatePane( 50, true, true ); PlotSeries( DSSPane, dss, Color.Crimson, LineStyle.Solid, 2 ); // DSS is considered "unstable" due to the inner use of EMA for(int bar = 60; bar < Bars.Count; bar++) { if (!IsLastPositionActive) { if( ( TurnUp( bar, dss ) ) & ( dss[bar-1] < 24 ) ) BuyAtMarket( bar+1, "DSS" ); } else { if( TurnDown( bar, dss ) ) SellAtMarket( bar+1, LastPosition, "DSS" ); } } } } }