HiLo Range Fan indicator free

by mfejza in category Oscilator at 17/01/2023
Description

HiLo Range Fan indicator.

Trade long when all indicator components are above zero level, trade Short when all indicator components are below the zero level.

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 System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo
{
    [Levels(0, -100, +100)]
    [Indicator(AccessRights = AccessRights.None)]
    public class mHILOrangeFan : Indicator
    {
        [Parameter("Fast Range Bars (21)", DefaultValue = 21)]
        public int inpRangeBarsFast { get; set; }
        [Parameter("Medium Range Bars (55)", DefaultValue = 55)]
        public int inpRangeBarsMedium { get; set; }
        [Parameter("Slow Range Bars (144)", DefaultValue = 144)]
        public int inpRangeBarsSlow { get; set; }
        
        [Output("Fast High/Low Range", LineColor = "Black", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)]
        public IndicatorDataSeries outHILOrangeFast { get; set; }
        [Output("Medium High/Low Range", LineColor = "Red", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)]
        public IndicatorDataSeries outHILOrangeMedium { get; set; }
        [Output("Slow High/Low Range", LineColor = "CadetBlue", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)]
        public IndicatorDataSeries outHILOrangeSlow { get; set; }
        
        private IndicatorDataSeries _hhfast, _llfast, _hlfast, _hlrfast, _hhmedium, _llmedium, _hlmedium, _hlrmedium, _hhslow, _llslow, _hlslow, _hlrslow;
            

        protected override void Initialize()
        {
            _hhfast = CreateDataSeries();
            _llfast = CreateDataSeries();
            _hlfast = CreateDataSeries();
            _hlrfast = CreateDataSeries();            
            _hhmedium = CreateDataSeries();
            _llmedium = CreateDataSeries();
            _hlmedium = CreateDataSeries();
            _hlrmedium = CreateDataSeries();            
            _hhslow = CreateDataSeries();
            _llslow = CreateDataSeries();
            _hlslow = CreateDataSeries();
            _hlrslow = CreateDataSeries();
        }

        public override void Calculate(int i)
        {
            _hhfast[i] = i>inpRangeBarsFast ? Bars.HighPrices.Maximum(inpRangeBarsFast) : Bars.HighPrices[i];
            _llfast[i] = i>inpRangeBarsFast ? Bars.LowPrices.Minimum(inpRangeBarsFast) : Bars.LowPrices[i];
            _hlfast[i] = _hhfast[i] - _llfast[i];
            _hlrfast[i] = _hlfast[i] != 0 ? (200.0 * (((Bars.HighPrices[i] + Bars.LowPrices[i]) / 2.0) - _llfast[i]) / _hlfast[i]) - 100 : 0;            
            _hhmedium[i] = i>inpRangeBarsMedium ? Bars.HighPrices.Maximum(inpRangeBarsMedium) : Bars.HighPrices[i];
            _llmedium[i] = i>inpRangeBarsMedium ? Bars.LowPrices.Minimum(inpRangeBarsMedium) : Bars.LowPrices[i];
            _hlmedium[i] = _hhmedium[i] - _llmedium[i];
            _hlrmedium[i] = _hlmedium[i] != 0 ? (200.0 * (((Bars.HighPrices[i] + Bars.LowPrices[i]) / 2.0) - _llmedium[i]) / _hlmedium[i]) - 100 : 0;            
            _hhslow[i] = i>inpRangeBarsSlow ? Bars.HighPrices.Maximum(inpRangeBarsSlow) : Bars.HighPrices[i];
            _llslow[i] = i>inpRangeBarsSlow ? Bars.LowPrices.Minimum(inpRangeBarsSlow) : Bars.LowPrices[i];
            _hlslow[i] = _hhslow[i] - _llslow[i];
            _hlrslow[i] = _hlslow[i] != 0 ? (200.0 * (((Bars.HighPrices[i] + Bars.LowPrices[i]) / 2.0) - _llslow[i]) / _hlslow[i]) - 100 : 0;
            
            outHILOrangeFast[i] = _hlrfast[i];
            outHILOrangeMedium[i] = _hlrmedium[i];
            outHILOrangeSlow[i] = _hlrslow[i];
        }
    }
}
Comments

alissahnvfjrivas7797 - January 17, 2023 @ 09:31

It would be beneficial to distribute more of these educational articles to advance the cause. You provide some really good stuff. Keep hold of it. Keep up the blogging. I'll read your next post basketball stars

undermisko333 - January 17, 2023 @ 12:30

An official web portal created by Kroger is called feed.kroger.com. Employees connect securely to the feed.kroger.com portal using an employee user ID and a password.  Click here: feed Kroger login

alex.kotov774 - February 03, 2023 @ 16:59

Your mobile device can now play Vegasslots thanks to mybestcasino.ca and his Slots! Each slot machine is identical to its real-world equivalent in terms of appearance and feel, and playing them is free.

0