makes a Kagi chart with prices pi at date datei.


makes a Kagi chart of closing prices for the financial entity "name" over the date range daterange.


makes a Kagi chart with reversal threshold rt.

Details and Options

  • A Kagi chart is drawn as a series of vertical lines connected by horizontal lines. Prices are drawn in a column until the price reverses by more than the threshold rt, when a new column is started with a horizontal line connecting to the previous column.
  • The style of the lines changes when the price rises above the high of the previous column or drops below the low of the previous column.
  • KagiChart[] is equivalent to KagiChart[,{"Relative",0.02}] for a reversal threshold of 2% of the average price.
  • The following arguments can be used to specify the reversal threshold rt:
  • {"Percent",p}percent of previous price
    {"Relative",p}fraction of price range (default)
    {"Absolute",p}absolute price change
  • The dates datei are considered an ordered sequence of events and are not shown on an absolute time scale.
  • The date formats for datei are the same as used in DateListPlot.
  • The "name" and daterange are the same as used in FinancialData.
  • Data elements for KagiChart can be given in the following forms:
  • {datei,pi}a pure date-price pair
    {datei,Quantity[pi,ui]}a date-price pair with a unit
    wi[{datei,pi},]a date-price pair and wrapper wi
    formi->mia date-price pair with metadata mi
  • A line segment may represent several date-price pairs, and the corresponding wrappers will apply to the entire line segment.
  • Data not given in these is taken to be missing and typically is excluded when generating the chart.
  • Data for KagiChart can be given in the following forms:
  • {e1,e2,}list of elements with or without wrappers
    TimeSeries[],EventSeries[],TemporalData[]time series, event series, and temporal data
    w[{e1,e2,}]wrapper applied to the whole data
  • The following wrappers can be used for data elements:
  • Annotation[e,label]provide an annotation
    Button[e,action]define an action to execute when the element is clicked
    EventHandler[e,]define a general event handler for the element
    Hyperlink[e,uri]make the element act as a hyperlink
    Labeled[e,]display the element with labeling
    PopupWindow[e,cont]attach a popup window to the element
    StatusArea[e,label]display in the status area when the element is moused over
    Style[e,opts]show the element using the specified styles
    Tooltip[e,label]attach an arbitrary tooltip to the element
  • In KagiChart, Labeled and Placed allow the following positions:
  • Above, Below, Before, Afterpositions outside point or figure
    {lx,ly}scaled position {lx,ly} in the label
  • KagiChart has the same options as Graphics with the following additions and changes:
  • AspectRatio1/GoldenRatiooverall ratio of height to width
    AxesTruewhether to draw axes
    ChartBaseStyle Automaticoverall style for bars
    DateFunctionAutomatichow to convert dates to standard form
    EventLabels Noneevents to label
    GridLines Automaticgrid lines to draw
    GridLinesStyle Automaticstyle for grid lines
    PerformanceGoal $PerformanceGoalaspects of performance to try to optimize
    PlotTheme $PlotThemeoverall theme for the chart
    ScalingFunctionsNonehow to scale the y axis
    TargetUnitsAutomaticunits to display in the chart
    TrendStyle Automatichow to style up and down trends
  • With ScalingFunctions->sy, the function sy is applied to the prices. ScalingFunctions only affects the display and none of the controls.
  • Style and other specifications from options and other constructs in KagiChart are effectively applied in the order TrendStyle, Style and other wrappers, with later specifications overriding earlier ones.


open allclose all

Basic Examples  (2)

Chart the prices from a list of values:

Use three months of prices from FinancialData entities:

Specify a date range:

Scope  (25)

Data and Wrappers  (16)

Automatically get quarterly data for a financial entity:

Get data for a specific date range:

Get data from FinancialData:

Reversal threshold by default is a fraction of the price range:

Use thresholds relative to the overall price range:

Use thresholds that are a percentage of the current price:

Use absolute thresholds:

The data may include units:

Specify the units to use:

Data can be TimeSeries, EventSeries, or TemporalData:

Use wrappers on individual data:

Use wrappers on entire datasets:

Wrappers can be nested:

Override the default tooltips:

Use PopupWindow to provide additional drilldown information:

Button can be used to trigger any action:

Styling and Appearance  (6)

Specify styles for up and down trends:

Use preset styles:

ChartBaseStyle can be used to set a style for the entire chart:

Style can be used to override styles:

Use a theme with simple ticks and grid lines in a bright color scheme:

Use a theme with a dark background in a high-contrast color scheme:

Labeling  (3)

Use Labeled to add a label to a candlestick:

Use symbolic positions for label placement:

Label a list of date events:

Use Placed to control the positioning of labels, using the same positions as for Labeled:

Options  (25)

ChartBaseStyle  (1)

Use ChartBaseStyle to apply overall styles to lines:

EventLabels  (3)

Events are labeled at the price by default:

Use Placed to control label placement:

Use Placed to control label appearance:

GridLines  (4)

Grid lines are used by default:

Turn off date grid lines:

Turn off price grid lines:

Place grid lines at month or year boundaries:

Use dotted grid lines for months and red grid lines for years:

GridLinesStyle  (4)

By default, GridLinesStyle uses dotted grid lines:

Year grid lines are emphasized:

Style grid lines:

GridLines overrides GridLinesStyle:

PerformanceGoal  (3)

Generate a KagiChart with interactive highlighting:

Emphasize performance by disabling interactive behaviors:

Typically, less memory is required for non-interactive charts:

PlotRange  (3)

KagiChart automatically draws all price dates:

Limit to a specific date range:

PlotRange only includes dates for which there is data:

PlotTheme  (2)

Use a theme with simple ticks and grid lines in a bright color scheme:

Change the trend style:

ScalingFunction  (1)

Show prices on a logarithmic scale:

TrendStyle  (4)

Style up and down trends:

Use additional named styles:

TrendStyle combines with ChartBaseStyle:

With TrendStyle set to None, ChartBaseStyle is used:

Properties & Relations  (7)

Larger thresholds filter out more noise:

KagiChart only shows time periods with significant change in price:

Use CandlestickChart to visualize the financial data:

Use TradingChart to visualize and analyze financial data:

Use InteractiveTradingChart to visualize and interactively analyze financial data:

Use PointFigureChart, LineBreakChart, and RenkoChart to analyze the relation of financial prices and time:

Use DateListPlot to visualize financial data:

Wolfram Research (2010), KagiChart, Wolfram Language function, https://reference.wolfram.com/language/ref/KagiChart.html (updated 2014).


Wolfram Research (2010), KagiChart, Wolfram Language function, https://reference.wolfram.com/language/ref/KagiChart.html (updated 2014).


Wolfram Language. 2010. "KagiChart." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/KagiChart.html.


Wolfram Language. (2010). KagiChart. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/KagiChart.html


@misc{reference.wolfram_2022_kagichart, author="Wolfram Research", title="{KagiChart}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/KagiChart.html}", note=[Accessed: 20-March-2023 ]}


@online{reference.wolfram_2022_kagichart, organization={Wolfram Research}, title={KagiChart}, year={2014}, url={https://reference.wolfram.com/language/ref/KagiChart.html}, note=[Accessed: 20-March-2023 ]}