Trend Confirmation - 3x EMA on OBV free

by o6h58zs in category Trend at 28/08/2022

Note: if you are the owner of the original indicator and would like me to remove this port, please feel free to message me and I will be happy to do so.

This is a port of Lancelot_Augur (a.k.a. daichiyea)'s indicator (originally designed for Crypto pairs) to confirm trends in cTrader. All credit goes to the original author - the original indicator can be found here.

Since it uses exponential moving averages, it is a lagging indicator, and thus should not be used in attempts to predict reversals. However, I have found this technical to be very reliable at confirming trends and aiding trade set-ups.


- 28/08/2022: Removed unnecessary imports of directives and fixed OnBalanceVolume dependency.



Notification Publishing copyrighted material is strictly prohibited. If you believe there is copyrighted material in this section you may use the Copyright Infringement Notification form to submit a claim.
Formula / Source Code
Language: C#
Trading Platform: cAlgocTrader
using cAlgo.API;
using cAlgo.API.Indicators;

namespace cAlgo
    [Cloud("EMA3", "EMA26", FirstColor ="Green", Opacity = 0.6, SecondColor ="Red")]
    [Indicator(AccessRights = AccessRights.None)]
    public class TrendConfirmationTripleOBVOnBalanceVolume : Indicator
        public DataSeries Source { get; set; }

        public IndicatorDataSeries Result { get; set; }
        [Output("EMA3", Color = Colors.Tomato, Thickness = 2)]
        public IndicatorDataSeries EMA3 { get; set; }
        [Output("EMA9", Color = Colors.Goldenrod, Thickness = 2)]
        public IndicatorDataSeries EMA9 { get; set; }
        [Output("EMA26", Color = Colors.White, Thickness = 2)]
        public IndicatorDataSeries EMA26 { get; set; }
        private OnBalanceVolume obv { get; set; }
        private ExponentialMovingAverage ema3 { get; set; }
        private ExponentialMovingAverage ema9 { get; set; }
        private ExponentialMovingAverage ema26 { get; set; }

        protected override void Initialize() 
            obv = Indicators.OnBalanceVolume(Source);
            ema3 = Indicators.ExponentialMovingAverage(Result, 3);
            ema9 = Indicators.ExponentialMovingAverage(Result, 9);
            ema26 = Indicators.ExponentialMovingAverage(Result, 26);

        public override void Calculate(int index) 
            Result[index] = obv.Result[index];
            EMA3[index] = ema3.Result[index];
            EMA9[index] = ema9.Result[index];
            EMA26[index] = ema26.Result[index];

samarakh22 - August 30, 2022 @ 08:33

I will be interested in more similar topics. i see you got really very useful topics , i will be always checking your blog thanks. acim

joyeuxnye - August 30, 2022 @ 11:49

cladder The information is very special, I will have to follow you.

josephpeterschar - August 31, 2022 @ 14:28

Every company needs and uses software, and some of it is essential to its success. However, as small organizations grow into mid-sized businesses, software performance gaps may emerge. You may engage websitedesignservice to aid teams in solving issues and inefficiencies while also supporting the development of innovative products and services.

nobit2021 - September 06, 2022 @ 10:36

Thank you for your post. I have read through several similar topics! However, your article gave me a very special impression, unlike other articles. I hope you continue to have valuable articles like this or more to share with everyone! crossword puzzles

connermullins3418060 - September 08, 2022 @ 10:17

Your article is very amazing. It is very helpful for newcomers. It really makes me happy. Thank you for this great article. slope 2 unblocked

junealexis001 - September 12, 2022 @ 12:01

Awesome  site i love it keep posting more!

albinamuro2 - November 15, 2022 @ 11:02

Thanks for your insight for your fantastic posting. I’m glad I have taken the time to see this. diamond dog food compared to blue buffalo