Walter Bressert indicator

Forums ProRealTime English forum ProBuilder support Walter Bressert indicator

Viewing 7 posts - 1 through 7 (of 7 total)
  • #103735

    Dear generous programming souls,

    here is the Walter Bressert Indicator  which probably can be of great interest to many traders.

    The DSS Bressert indicator was developed by Walter Bressert. It is smoother than a regular stochastic indicator but can be interpreted in generally the same way with 30 considered oversold and 70 considered overbought.

    The calculations start with a normal raw stochastic. This stochastic is smoothed by an exponential moving averages before another raw stochastic is taken of the result. Then a second exponential moving average of the same period is applied to this second stochastic.

    its coding is available at https://ctrader.com/algos/indicators/show/1224  if someone is able to convert it for Protrader

    (another address is this one: https://www.tradingview.com/script/W9J3VZUu-DSS-Bressert-Double-Smoothed-Stochastic/ )

    thank you

    Language: C#
    Trading Platform: cAlgocTrader
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    using System;
    using cAlgo.API;
    using cAlgo.API.Internals;
    using cAlgo.API.Indicators;
    namespace cAlgo
    {
        [Levels(0, 20, 40, 60, 80, 100)]
        [Indicator(IsOverlay = false, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None, ScalePrecision = 2)]
        public class DSSBressert : Indicator
        {
            [Parameter("Stochastic period", DefaultValue = 13)]
            public int Stochastic_Period { get; set; }
            [Parameter("EMA period", DefaultValue = 8)]
            public int EMA_Period { get; set; }
            [Parameter("WMA period", DefaultValue = 8)]
            public int WMA_Period { get; set; }
            [Output("DSS", Color = Colors.White, Thickness = 1)]
            public IndicatorDataSeries DSS { get; set; }
            [Output("DSS Up", Color = Colors.DodgerBlue, PlotType = PlotType.Points, Thickness = 5)]
            public IndicatorDataSeries DSS_Up { get; set; }
            [Output("DSS Down", Color = Colors.Red, PlotType = PlotType.Points, Thickness = 5)]
            public IndicatorDataSeries DSS_Down { get; set; }
            [Output("WMA", Color = Colors.Gold, Thickness = 1)]
            public IndicatorDataSeries WmaResult { get; set; }
            [Output("L1", LineStyle = LineStyle.Solid, Color = Colors.LightGray)]
            public IndicatorDataSeries L1 { get; set; }
            [Output("L2", LineStyle = LineStyle.DotsRare, Color = Colors.LightGray)]
            public IndicatorDataSeries L2 { get; set; }
            [Output("L3", LineStyle = LineStyle.DotsRare, Color = Colors.LightGray)]
            public IndicatorDataSeries L3 { get; set; }
            [Output("L4", LineStyle = LineStyle.Solid, Color = Colors.LightGray)]
            public IndicatorDataSeries L4 { get; set; }
            private double Ln = 0;
            private double Hn = 0;
            private double LXn = 0;
            private double HXn = 0;
            private double alpha = 0;
            private IndicatorDataSeries mit;
            private WeightedMovingAverage WMA;
            protected override void Initialize()
            {
                mit = CreateDataSeries();
                alpha = 2.0 / (1.0 + EMA_Period);
                WMA = Indicators.WeightedMovingAverage(DSS, WMA_Period);
            }
            public override void Calculate(int index)
            {
                L1[index] = 20;
                L2[index] = 40;
                L3[index] = 60;
                L4[index] = 80;
                if (double.IsNaN(mit[index - 1]))
                {
                    mit[index - 1] = 0;
                }
                if (double.IsNaN(DSS[index - 1]))
                {
    #103751

    Did you try this version found in forums:

    https://www.prorealcode.com/topic/double-smoothed-stochastic/

    If it is not the same I will translate the code you have posted 🙂

     

    1 user thanked author for this post.
    #103816

    to be sincere I am not an expert. So looking through the link you provided me and the one I sent…. it looks different.  In addition… the output is really different.

    If you can translate it, it would be very kind of you.  I think that quire a few users will end up using it!

    thank you

    #103821

    ok, will code it asap!

    1 user thanked author for this post.
    #103971

    will be very welcome and help Prorealtime compete with other platforms

    #103976

    The DSS Bressert Stochastic oscillator is now available here: DSS Bressert (Double Smoothed Stochastic)

    Same as the one from TV.

    1 user thanked author for this post.
    #103978

    thanks very much.  I will definitively share this info with quite a few tarders and investors friends

Viewing 7 posts - 1 through 7 (of 7 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login