# StochasticFullDiff
# TD Ameritrade IP Company, Inc. (c) 2017-2019
#
declare lower;
input priceH = high;
input priceL = low;
input priceC = close;
input kPeriod = 10;
input kSlowingPeriod = 3;
input dPeriod = 10;
input averageType = AverageType.SIMPLE;
input showBreakoutSignals = yes;
plot StochasticHistogram = reference StochasticFull(0, 0, kPeriod, dPeriod, priceH, priceL, priceC, kSlowingPeriod, averageType).FullK - reference StochasticFull(0, 0, kPeriod, dPeriod, priceH, priceL, priceC, kSlowingPeriod, averageType).FullD;
plot ZeroLine = 0;
plot UpSignal = if StochasticHistogram crosses above ZeroLine then ZeroLine else Double.Nan;
plot DownSignal = if StochasticHistogram crosses below ZeroLine then ZeroLine else Double.Nan;
UpSignal.SetHiding(!showBreakoutSignals);
DownSignal.SetHiding(!showBreakoutSignals);
StochasticHistogram.SetDefaultColor(GetColor(5));
StochasticHistogram.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
StochasticHistogram.SetLineWeight(3);
StochasticHistogram.DefineColor("Positive and Up", Color.GREEN);
StochasticHistogram.DefineColor("Positive and Down", Color.DARK_GREEN);
StochasticHistogram.DefineColor("Negative and Down", Color.RED);
StochasticHistogram.DefineColor("Negative and Up", Color.DARK_RED);
StochasticHistogram.AssignValueColor(if StochasticHistogram >= 0 then if StochasticHistogram > StochasticHistogram[1] then StochasticHistogram.Color("Positive and Up") else StochasticHistogram.Color("Positive and Down") else if StochasticHistogram < StochasticHistogram[1] then StochasticHistogram.Color("Negative and Down") else StochasticHistogram.Color("Negative and Up"));
StochasticHistogram.SetDefaultColor(GetColor(3));
ZeroLine.SetDefaultColor(GetColor(7));
UpSignal.SetDefaultColor(Color.UPTICK);
UpSignal.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
DownSignal.SetDefaultColor(Color.DOWNTICK);
DownSignal.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN