예제 #1
0
        CandleChartData.CandleValue NormalizeCandle(CandleChartData.CandleValue candle, DoubleVector3 min, DoubleVector3 range)
        {
            CandleChartData.CandleValue res = new CandleChartData.CandleValue();
            res.Open  = ChartCommon.normalizeInRangeY(candle.Open, min, range);
            res.Close = ChartCommon.normalizeInRangeY(candle.Close, min, range);
            res.High  = ChartCommon.normalizeInRangeY(candle.High, min, range);
            res.Low   = ChartCommon.normalizeInRangeY(candle.Low, min, range);

            double duration = candle.Duration;
            double start    = candle.Start;

            if (ThicknessMode == CandleThicknessMode.Fill)
            {
                Deflate(ref start, ref duration, ThicknessConstant);
            }
            else if (thicknessMode == CandleThicknessMode.Proportional)
            {
                Deflate(ref start, ref duration, ThicknessConstant / duration);
            }
            double candleEnd = start + duration;

            candleEnd = ChartCommon.normalizeInRangeX(candleEnd, min, range);

            res.Start    = ChartCommon.normalizeInRangeX(start, min, range);
            res.Duration = candleEnd - res.Start;
            return(res);
        }