This blog we will learn to build Candlestick chart for stocks using R. First thing we need to ensure that “plotly” is installed from the GitHub library


A Candlestick chart is frequently used in stocks, security, derivative or currency analysis to describe the price movement. Each candle indicates single day pattern with its open, high, low and close. Basically they look like box plot but they are not relevant to each other.


plot_ly(x = date, open = …, high = …, low = …, close = …, type = “candlestick”)


Lets take an example of Stock price movement of Infosys where green is increasing and red is decreasing movement in stock price.

## [1] "INFY"
# importing data into data frame and limiting to last 30 days
df <- data.frame(Date=index(INFY),coredata(INFY))
df <- tail(df,30)

Next step is to use plot_ly to plot the graph

p <- df %>%
plot_ly(x = ~Date, type="candlestick",
          open = ~INFY.Open, close = ~INFY.Close,
          high = ~INFY.High, low = ~INFY.Low) %>%
  layout(title="CandleStick Chart")

Create an sharable link for chart

# Create a shareable link to your chart
# Set up API credentials:
sharelink = api_create(p,filename="CandleStick")
## Found a grid already named: 'CandleStick Grid'. Since fileopt='overwrite', I'll try to update it
## Found a plot already named: 'CandleStick'. Since fileopt='overwrite', I'll try to update it

Please feel free to ask any questions πŸ™‚

Do subscribe to to keep receiving regular updates.

In this post, we will see how to plot candlestick chart in Tableau. We will use the same dataset which we used in previous article on stock analysis – using LOD function.

Here is the final candlestick dashboard for stocks:

Below are the steps to create:

Step 1: Import the stock prices into Tableau which I have in following format.

We will create first 2 calculated fields i.e. closeopendiff and highopendiff formula given below:

Step 2:Β Drag Low and Open in the rowΒ tab (covert into avg) and make avg(open) into dual axis

Step 3:Β Edit both the axis and uncheck the include zero checkbox

Step 4: Under tab of Marks, change the automatic to Gann chart for All option. Then under avg(low) in marks tab, drag highlowdiff field into size and make it slim as shown in below image

Step 5: Similarly, drag closeopendiff into avg(open) in marks tab into size and make it thick as shown in below image.

Step 6: Drag actual date from dimension and put into column then right click to change the setting to day as shown below

Step 7: Create one more calculated field to allocate color based on open and close

Step 8:Β Drag color to avg(open) in marks and put onto color to allocate green for True value and red for False value

Now your candlestick graph is ready to use. you can use date filter to play around with different dates and see the candlestick graphs for different stocks.

Comments and feedback are welcomed!!!

Do subscribe to my blog to keep receiving new posts πŸ™‚