Vico

2.4. CandlestickCartesianLayer

2.4.1. Overview

Use CandlestickCartesianLayer to create candlestick charts. Each candle’s style is defined by its corresponding Candle. The Candles are provided by a CandleProvider:

At the CandlestickCartesianLayer level, you can set the minimum body height, change the candle spacing, and toggle wick scaling.

For more, see 5.3.1 (Compose) and 8.3.1 (views).

2.4.2. Transaction.candlestickSeries

CandlestickCartesianLayers use CandlestickCartesianLayerModels. When using a CartesianChartModelProducer, add CandlestickCartesianLayerModels via candlestickSeries:

cartesianChartModelProducer.runTransaction {
    candlestickSeries(
        x = listOf(1, 2, 3, 4),
        opening = listOf(2, 4, 6, 3),
        closing = listOf(4, 5, 3, 3),
        low = listOf(1, 4, 2, 2),
        high = listOf(5, 6, 7, 4),
    )
    // ...
}

candlestickSeries also has an overload with no x parameter, which uses the indices of the prices as the x values:

candlestickSeries(
    opening = listOf(2, 4, 6, 3),
    closing = listOf(4, 5, 3, 3),
    low = listOf(1, 4, 2, 2),
    high = listOf(5, 6, 7, 4),
)

2.4.3. Manual CandlestickCartesianLayerModel creation

When creating a CartesianChartModel directly, you can add a CandlestickCartesianLayerModel by using build:

CartesianChartModel(
    ColumnCartesianLayerModel.build(
        x = listOf(1, 2, 3, 4),
        opening = listOf(2, 4, 6, 3),
        closing = listOf(4, 5, 3, 3),
        low = listOf(1, 4, 2, 2),
        high = listOf(5, 6, 7, 4),
    ),
    // ...
)

This function also has an overload with no x parameter:

ColumnCartesianLayerModel.build(
    opening = listOf(2, 4, 6, 3),
    closing = listOf(4, 5, 3, 3),
    low = listOf(1, 4, 2, 2),
    high = listOf(5, 6, 7, 4),
)