# SmartVisuals Candlestick for Power BI

> Candlestick and OHLC chart for Power BI with a volume pane, trading-day axis, Heikin-Ashi, Renko and a moving average. Offline, from four measures and a date.

- Page: https://www.smartvisuals.io/visuals/candlestick
- Fields and settings: https://www.smartvisuals.io/visuals/candlestick/settings
- Microsoft Marketplace: https://marketplace.microsoft.com/en-us/product/smartvisuals.smartvisuals-candlestick?tab=overview
- Package: https://www.smartvisuals.io/downloads/smartvisuals-candlestick-1.0.0.0.pbiviz
- Sample report (zipped .pbip): https://www.smartvisuals.io/samples/smartvisuals-candlestick-sample-1.0.0.0.zip
- Price: Free tier for every viewer; premium $1.99 per user per month or $19 per user per year on Microsoft Marketplace, with a 30-day free trial. Premium works in edit mode without a licence; unlicensed viewers see the free tier, never a blocked visual.
- Certified by Microsoft: no
- Version: 1.0.0.0
- GUID (visualType and publicCustomVisuals): `smartvisualsCandlestickF985EF292C630D0F21DE96AC286EF0EE`

## What is free

- **Seven styles**: Filled candles, hollow candles, OHLC bars, Heikin-Ashi, Renko bricks (a fixed brick size or one from the ATR), a close line and a close area.
- **A trading-day axis**: Weekends and other days without a bar do not leave gaps by default; Show Calendar Gaps puts them back.
- **Volume pane**: Volume bars under the price, coloured by direction; up and down candles are also told apart by hollow and filled bodies, never by colour alone.
- **One moving average**: A simple, exponential or weighted moving average over the candles, 20 periods by default.
- **Data integrity check**: A bar whose High or Low does not bracket its Open and Close is outlined and named in the tooltip, so a bad row in the source is visible.
- **Dense history and zoom**: Years of daily bars combined per pixel into true open, high, low and close, with the last close on the price axis and a range navigator to zoom and pan.
- **Power BI features**: A tooltip with open, high, low, close, change, change % and volume, report page tooltips, cross-filter with Ctrl multi-select, bookmarks, the context menu, dynamic format strings, four themes and 20 languages.
- **Accessibility**: One tab stop with the arrow keys walking the bars, a screen-reader live region that reads each bar, high contrast, Reduce Motion, focus outline and minimum text size settings.

## What premium adds

- **Indicator panes**: RSI with 30 / 70 bands, MACD with signal and histogram, Stochastic with 20 / 80, and ATR, in panes under the price.
- **More overlays and event flags**: Second and third moving averages, Bollinger bands and VWAP over the candles; annotations from a measure flag earnings and other events on their bars.
- **Pivot levels**: Classic floor-trader pivots (P, R1 to R3, S1 to S3) from the previous period, as dashed levels.
- **Forecast of the close and small multiples**: An ETS forecast of the closing value with its 95 % prediction interval, and one panel per value of the Small multiples field.

## Fields

| Field | Internal name | Takes | Needed | What it is for |
| --- | --- | --- | --- | --- |
| Axis (date) | `axis` | Column | Optional | The time axis: a date, a date hierarchy level, a number or text periods |
| Open | `open` | Measure | Optional | Opening value of each period (candles) |
| High | `high` | Measure | Optional | Highest value of each period (candles), or the top of a range band |
| Low | `low` | Measure | Optional | Lowest value of each period (candles), or the bottom of a range band |
| Close | `close` | Measure | Optional | Closing value of each period (candles) |
| Volume | `volume` | Measure | Optional | Traded volume per period (volume pane) |
| Annotation | `annotation` | Measure | Optional | Text measure: a non-blank value pins a note on that period |
| Small multiples | `facet` | Column | Optional | One panel per value (premium) |
| Tooltips | `tooltips` | Measure | Optional | Extra fields in tooltips |

## Format pane

Each card is a key under `visual.objects` in a PBIR visual.json; each setting is a property of it. Toggles take `true`/`false`, choices and text a value in single quotes (`'auto'`), numbers a `D` suffix (`12D`).

### Presets and Templates (`presets`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Apply Preset | `preset` | `none` ((choose to apply)), `executive` (Executive), `finance` (Finance (IBCS)), `trading` (Trading), `monitoring` (Monitoring), `print` (Print) |
| Style Template (copy or paste) | `template` | Text |

### Candles (`candles`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Style | `style` | `candle` (Candles), `hollow` (Hollow candles), `ohlc` (OHLC bars), `heikin` (Heikin-Ashi), `renko` (Renko), `line` (Close line), `area` (Close area) |
| Up Colour | `upColor` | Colour |
| Down Colour | `downColor` | Colour |
| Brick Size (0 = ATR) | `brickSize` | Number |
| Volume Pane | `showVolume` | On / off |
| Volume Pane Height (%) | `volumeHeight` | Number |
| Show Calendar Gaps | `calendarGaps` | On / off |
| Flag Invalid Bars | `validate` | On / off |

### Indicators (`indicators`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Moving Average 1 Periods (0 = off) | `ma1` | Number |
| Moving Average 1 Type | `ma1Type` | `sma` (SMA), `ema` (EMA), `wma` (WMA) |
| Moving Average 2 Periods (0 = off) | `ma2` | Number |
| Moving Average 2 Type | `ma2Type` | `sma` (SMA), `ema` (EMA), `wma` (WMA) |
| Moving Average 3 Periods (0 = off) | `ma3` | Number |
| Moving Average 3 Type | `ma3Type` | `sma` (SMA), `ema` (EMA), `wma` (WMA) |
| Bollinger Bands | `bollinger` | On / off |
| Bollinger Periods | `bollPeriod` | Number |
| Bollinger Width (σ) | `bollMult` | Number |
| VWAP | `vwap` | On / off |
| RSI Pane | `rsi` | On / off |
| MACD Pane | `macd` | On / off |
| Stochastic Pane | `stochastic` | On / off |
| ATR Pane | `atr` | On / off |
| Pivot Levels | `pivots` | On / off |

### Trend Line (`trend`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Type | `type` | `none` (None), `linear` (Linear), `poly2` (Polynomial (2nd order)), `poly3` (Polynomial (3rd order)), `poly4` (Polynomial (4th order)), `exponential` (Exponential), `logarithmic` (Logarithmic), `power` (Power), `loess` (LOESS (smooth)), `sma` (Simple moving average), `ema` (Exponential moving average), `wma` (Weighted moving average) |
| Moving Average Periods | `window` | Number |
| LOESS Span (%) | `span` | Number |
| For Every Series | `allSeries` | On / off |
| Line Style | `dash` | `solid` (Solid), `dashed` (Dashed), `dotted` (Dotted), `dashdot` (Dash-dot) |
| Equation and R² in Legend | `showEquation` | On / off |

### Forecast (`forecast`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Forecast | `show` | On / off |
| Periods Ahead (0 = one season) | `horizon` | Number |
| Or Forecast Through (yyyy-mm-dd) | `through` | Text |
| Model | `model` | `auto` (Automatic (lowest AICc)), `ANN` (Simple exponential smoothing), `AAN` (Holt linear trend), `AAdN` (Damped trend), `ANA` (Seasonal, no trend), `AAA` (Holt-Winters additive), `AAdA` (Holt-Winters damped) |
| Season Length (0 = from dates) | `season` | Number |
| Prediction Interval | `level` | `none` (None), `80` (80 %), `95` (95 %), `both` (80 % and 95 %) |
| Mark Anomalies | `anomalies` | On / off |
| For Every Series | `allSeries` | On / off |

### X-Axis (`xAxis`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | On / off |
| Title | `showTitle` | On / off |
| Font Size | `fontSize` | Number |
| Colour | `color` | Colour |
| Vertical Gridlines | `grid` | On / off |

### Y-Axis (`yAxis`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | On / off |
| Title | `showTitle` | On / off |
| Minimum (blank = auto) | `min` | Text |
| Maximum (blank = auto) | `max` | Text |
| Start At Zero | `zero` | `auto` (Automatic (columns and areas)), `always` (Always), `never` (Never) |
| Logarithmic Scale | `log` | On / off |
| Decimals (-1 = auto) | `decimals` | Number |
| Font Size | `fontSize` | Number |
| Colour | `color` | Colour |
| Align Zero Across Axes | `align` | On / off |

### Gridlines (`gridlines`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Style | `style` | `theme` (From theme), `solid` (Solid), `dashed` (Dashed), `dotted` (Dotted), `bands` (Zebra bands), `none` (None) |
| Colour | `color` | Colour |

### Legend (`legend`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | On / off |
| Position | `position` | `top` (Top), `bottom` (Bottom), `right` (Right) |
| Font Size | `fontSize` | Number |
| Text Colour | `color` | Colour |

### Reference Lines (`refLines`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Line 1 | `line1` | `none` (None), `value` (A value), `average` (Average), `median` (Median), `percentile` (Percentile), `min` (Minimum), `max` (Maximum) |
| Line 1 Value | `line1Value` | Number |
| Line 1 Percentile | `line1Pct` | Number |
| Line 1 Label | `line1Label` | Text |
| Line 1 Colour | `line1Color` | Colour |
| Line 2 | `line2` | `none` (None), `value` (A value), `average` (Average), `median` (Median), `percentile` (Percentile), `min` (Minimum), `max` (Maximum) |
| Line 2 Value | `line2Value` | Number |
| Line 2 Percentile | `line2Pct` | Number |
| Line 2 Label | `line2Label` | Text |
| Line 2 Colour | `line2Color` | Colour |
| For Every Series | `perSeries` | On / off |
| Vertical Line | `vertical` | `none` (None), `today` (Today), `date` (A date) |
| Vertical Line Date (yyyy-mm-dd) | `verticalDate` | Text |
| Vertical Line Label | `verticalLabel` | Text |

### Reference Bands (`refBands`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Value Band From | `valueFrom` | Text |
| Value Band To | `valueTo` | Text |
| Value Band Label | `valueLabel` | Text |
| Value Band Colour | `valueColor` | Colour |
| Period From (yyyy-mm-dd) | `timeFrom` | Text |
| Period To (yyyy-mm-dd) | `timeTo` | Text |
| Period Label | `timeLabel` | Text |
| Period Colour | `timeColor` | Colour |

### Annotations (`annotations`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Style | `style` | `pin` (Pin with label), `flag` (Flag on the axis), `numbered` (Numbered, listed in the footnote) |
| Shade Until the Next Annotation | `shadeUntilNext` | On / off |
| Font Size | `fontSize` | Number |
| Colour | `color` | Colour |

### Zoom (`navigator`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Range Navigator | `show` | On / off |
| Navigator Height | `height` | Number |
| Ctrl + Wheel Zooms, Drag Pans | `wheel` | On / off |

### Small Multiples (`smallMultiples`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Columns (0 = auto) | `columns` | Number |
| Shared Y-Axis | `sharedY` | On / off |

### Smart Caption (`caption`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | On / off |
| Position | `position` | `top` (Top), `bottom` (Bottom) |
| Font Size | `fontSize` | Number |
| Text Colour | `color` | Colour |

### Footnote (`footnote`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | On / off |
| Source | `source` | Text |
| State the Methods | `showMethod` | On / off |
| Font Size | `fontSize` | Number |
| Text Colour | `color` | Colour |

### Accessibility (`accessibility`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Distinguish Series Without Colour | `distinguish` | On / off |
| Focus Outline Colour | `focusColor` | Colour |
| Focus Outline Width | `focusWidth` | Number |
| Minimum Text Size (0 = off) | `minFontSize` | Number |

### Theme (`theme`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Theme | `selectedTheme` | `smartvisuals` (SmartVisuals), `dark` (Dark), `clean` (Clean (White)), `slate` (Slate) |
| Font | `font` | `inter` (Inter), `segoe` (Segoe UI), `arial` (Arial), `georgia` (Georgia) |
| Transparent Background | `transparentBg` | On / off |

### Series Colours (`seriesColors`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Colour | `fill` | Colour |

### Data Colours (`dataPoint`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Colour | `fill` | Colour |
