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