Divergence Relative Vigor Index (RVI) paid

by RV in category Trend at 11/12/2019
Description

The indicator recognizes the RVI divergences and shows it on your chart and RVI indicator. The RVI divergence recognition algorithm is very powerful and accurate. 

Required:

Divergence  [https://ctrader.com/algos/indicators/show/2067]

Relative Vigor Index [https://ctrader.com/algos/indicators/show/110]

Key Features

  • Marks divergence types: Regular, hidden and 0 divergences
  • Alerts: Sound and email
  • No Repaint: After divergence appeared and bar closed
  • Customization: Different colors for bullish and bearish divergences as well as line thickness
  • Easy to use in cBots: Support trading strategies for trend reversal and trend continuation
  • Filters: Easily add any filters for signals

Support:

If you have any question or issue with the product please contact me via telegram

 

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

namespace cAlgo
{
    [Indicator(TimeZone = TimeZones.UTC, IsOverlay = false, AutoRescale = true, ScalePrecision = 5)]
    public class DivergenceRVI : Divergence
    {
        [Parameter("RVI:  Period", Group = "Indicator", DefaultValue = 10)]
        public int RVI_Period { get; set; }

        [Parameter("Play sound", Group = "Alert: Sound", DefaultValue = false)]
        public override bool Allow_To_Play_Sound { get; set; }

        [Parameter("Media File", Group = "Alert: Sound", DefaultValue = "c:\\windows\\media\\Alarm02.wav")]
        public override string SoundFile { get; set; }

        [Parameter("Send Email", Group = "Alert: Email", DefaultValue = false)]
        public override bool Allow_To_Send_Email { get; set; }

        [Parameter("To", Group = "Alert: Email", DefaultValue = "your@email.com")]
        public override string Email { get; set; }

        [Parameter("Bearish Color", Group = "Drawing", DefaultValue = "#F05824")]
        public override string _BearishColor { get; set; }

        [Parameter("Bullish Color", Group = "Drawing", DefaultValue = "#009345")]
        public override string _BullishColor { get; set; }

        [Parameter("Thickness", Group = "Drawing", DefaultValue = 2, MaxValue = 5, MinValue = 0)]
        public override int Thickness { get; set; }

        [Parameter("Highlight Div Type", Group = "Drawing", DefaultValue = true)]
        public override bool Highlight_Divergence_Type { get; set; }

        [Parameter("Max Length <> Points", Group = "Check", DefaultValue = 200)]
        public override int Max_Length_Between_Points { get; set; }

        [Parameter("Proof Bars", Group = "Check", DefaultValue = 1, MinValue = 1)]
        public override int Proof_Bars { get; set; }

        [Parameter("Only Highest A Point", Group = "Check", DefaultValue = false)]
        public override bool Only_From_Highest_A_Point { get; set; }

        [Output("Main", PlotType = PlotType.Line, LineColor = "Gray", Thickness = 2)]
        public override IndicatorDataSeries Result { get; set; }

        public RelativeVigorIndex RVI;

        protected override void Initialize()
        {
            RVI = Indicators.GetIndicator<RelativeVigorIndex>(RVI_Period);
            IndicatorInfo = string.Format("RVI {0}", RVI_Period);
            SetupDivergence();
        }

        public override void Calculate(int index)
        {
            Result[index] = RVI.Result[index];

            Calculation(index);
        }

        public override bool Check(Label New, Kind K)
        {
            return K == Kind.High ? New.I.Value > 0 : 0 > New.I.Value;
        }

        public override bool Check(Model M)
        {
            return true;
        }
    }
}
Comments
0