Exemplo n.º 1
0
        /// <summary>
        /// Vérifie si une bougie traverse une frontière
        /// </summary>
        /// <param name="marketSeries">L'instance de MarketSeries actuel</param>
        /// <param name="index">index de la bougie à tester (ordre inversé)</param>
        /// <param name="frontier">frontière horizontale à tester par rapport à la bougie</param>
        /// <returns>true si la bougie est sur la frontière, false sinon</returns>
        public static bool isCandleOver(this MarketSeries marketSeries, int index, double frontier)
        {
            int count = marketSeries.bars();

            if (index >= 0 && index < count)
            {
                return(frontier.between(marketSeries.Low[count - 1 - index], marketSeries.High[count - 1 - index]));
            }
            else
            {
                throw new ArgumentException(string.Format("Valeur de l'indice {0} en dehors des valeurs permises", index));
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Teste si une bougie est en dessous d'une bougie
        /// </summary>
        /// <param name="marketSeries">L'instance de MarketSeries actuel</param>
        /// <param name="index">index de la bougie à tester (ordre inversé)</param>
        /// <param name="limit">limite horizontale à tester par rapport à la bougie</param>
        /// <returns>true si la bougie est au dessous de la limite, false sinon</returns>
        public static bool iscandleBelow(this MarketSeries marketSeries, int index, double limit)
        {
            int count = marketSeries.bars();

            if (index >= 0 && index < count)
            {
                return(marketSeries.High[count - 1 - index] <= limit);
            }
            else
            {
                throw new ArgumentException(string.Format("Valeur de l'indice {0} en dehors des valeurs permises", index));
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Détermine si la bougie est haussière (Bullisk) ou baissière (Bearish)
        /// </summary>
        /// <param name="marketSeries">L'instance de MarketSeries actuel</param>
        /// <param name="robot">instance of the current robot</param>
        /// <param name="index">index de la bougie à tester (ordre inversé)</param>
        /// <returns>true si la bougie est haussière, false sinon</returns>
        public static bool?isBullCandle(this MarketSeries marketSeries, int index)
        {
            int count = marketSeries.bars();

            if (index >= 0 && index < count)
            {
                double open   = marketSeries.Open[count - 1 - index];
                double close  = marketSeries.Close[count - 1 - index];
                double median = marketSeries.Median[count - 1 - index];
                double variation;

                if (double.IsNaN(close))
                {
                    variation = median - open;
                }
                else
                {
                    variation = close - open;
                }

                if (variation > 0)
                {
                    return(true);
                }
                else
                if (variation < 0)
                {
                    return(false);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                throw new ArgumentException(string.Format("Valeur de l'indice {0} en dehors des valeurs permises", index));
            }
        }