コード例 #1
0
        private static bool IsTimeframesValid <TPeriod>(IEnumerable <IOhlcvData> candles, out IOhlcvData err)
            where TPeriod : IPeriod
        {
            var periodInstance = Activator.CreateInstance <TPeriod>();

            err = default(IOhlcvData);
            for (int i = 0; i < candles.Count() - 1; i++)
            {
                var candleEndTime = periodInstance.NextTimestamp(candles.ElementAt(i).DateTime);
                if (candleEndTime > candles.ElementAt(i + 1).DateTime)
                {
                    err = candles.ElementAt(i);
                    return(false);
                }
            }
            return(true);
        }
コード例 #2
0
 public static bool IsBear(this IOhlcvData candle) => candle.Open - candle.Close < 0;
コード例 #3
0
 public static bool IsBull(this IOhlcvData candle) => candle.Open - candle.Close > 0;
コード例 #4
0
 public static decimal GetBody(this IOhlcvData candle) => Math.Abs(candle.Open - candle.Close);
コード例 #5
0
 public static decimal GetLowerShadow(this IOhlcvData candle) => candle.Open < candle.Close ? candle.Open - candle.Low : candle.Close - candle.Low;
コード例 #6
0
 public static decimal GetUpperShadow(this IOhlcvData candle) => candle.Open < candle.Close ? candle.High - candle.Close : candle.High - candle.Open;