/// <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)); }
/// <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)); }
/// <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)); }