Category Volatility  Published on 18/12/2023

CHAIKIN VOLATILITY CANDLES

Description

THIS INDICATOR TELLS YOU WHEN VOLATILITY BEGINS AND ENDS DIRECTLY IN THE CANDLES


using cAlgo.API;
using cAlgo.API.Internals;
using cAlgo.API.Indicators;

namespace cAlgo
{
    [Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
    public class ChaikinVolatilityWithCandles : Indicator
    {
        private TextBlock tb = new TextBlock();
        private ChaikinVolatility chaikinVolatility;

        // Parameters
        [Parameter("Font Size", DefaultValue = 12)]
        public int FontSize { get; set; }

        [Parameter("Space to Corner", DefaultValue = 12)]
        public int Margin { get; set; }

        [Parameter("Horizontal Alignment", DefaultValue = HorizontalAlignment.Left)]
        public HorizontalAlignment HAlignment { get; set; }

        [Parameter("Vertical Alignment", DefaultValue = VerticalAlignment.Top)]
        public VerticalAlignment VAlignment { get; set; }

        [Parameter("Color", DefaultValue = "Black")]
        public Color Color1 { get; set; }

        [Parameter("Bull Market Color", DefaultValue = "Orange")]
        public string BullMarketColor { get; set; }

        [Parameter("Bear Market Color", DefaultValue = "Orange")]
        public string BearMarketColor { get; set; }

        [Parameter("Neutral Color", DefaultValue = "Black")]
        public string NeutralColor { get; set; }

        private Color bullMarketColor;
        private Color bearMarketColor;
        private Color neutralColor;

        protected override void Initialize()
        {
            // Initialize ChaikinVolatility indicator
            chaikinVolatility = Indicators.ChaikinVolatility(10, 10, MovingAverageType.Exponential);

            // Add TextBlock to the chart
            Chart.AddControl(tb);

            bullMarketColor = Color.FromName(BullMarketColor);
            bearMarketColor = Color.FromName(BearMarketColor);
            neutralColor = Color.FromName(NeutralColor);
        }

        public override void Calculate(int index)
        {
            double chaikinVolatilityValue = chaikinVolatility.Result[index];

            // Logica per individuare le giornate laterali
            if (chaikinVolatilityValue < 0)
                Chart.SetBarColor(index, neutralColor);
            else if (MarketSeries.Close[index] > MarketSeries.Open[index])
                Chart.SetBarColor(index, bullMarketColor);
            else
                Chart.SetBarColor(index, bearMarketColor);

            // Display Result of Chaikin Volatility
            string chaikinVolatilityText = " " + chaikinVolatilityValue.ToString("F2");

            // Set TextBlock properties
            tb.Text = chaikinVolatilityText;
            tb.FontSize = FontSize;

            // Color Chaikin Volatility text based on conditions
            tb.ForegroundColor = chaikinVolatilityValue > 0 ? Color.FromName("BLUE") : Color1;

            // Set the position of the text using specific parameters
            tb.HorizontalAlignment = HAlignment;
            tb.VerticalAlignment = VAlignment;
            tb.Margin = Margin;
        }
    }
}


DE
DELETED_USER

Joined on 28.06.2022 Blocked

  • Distribution: Free
  • Language: C#
  • Trading platform: cTrader Automate
  • File name: cvcandela.algo
  • Rating: 0
  • Installs: 237
  • Modified: 18/12/2023 17:21
Comments
Log in to add a comment.
No comments found.