How To Plot Renko Charts With Python?5 min read
Renko charts are time independent and are efficient to trade as they eliminate noise. In this article we see how to plot renko charts of any instrument with OHLC data using Python.
First we need to calculate bricks from OHLC data. For brick size, we can choose a fixed value or calculate it based on ATR(Average True Range). Once brick size is selected, we can do diff on shifted close values to get the change in close price and divide it by brick size to get the bricks.
Once bricks are obtained, we need to assign the brick colors based on the direction of price movement and then plot rectangles for each available brick.
import pandas as pd from matplotlib.patches import Rectangle import matplotlib.pyplot as plt brick_size = 2 def plot_renko(data, brick_size): fig = plt.figure(1) fig.clf() axes = fig.gca() y_max = max(data) prev_num = 0 bricks =  for delta in data: if delta > 0: bricks.extend(*delta) else: bricks.extend([-1]*abs(delta)) for index, number in enumerate(bricks): if number == 1: facecolor='green' else: facecolor='red' prev_num += number renko = Rectangle( (index, prev_num * brick_size), 1, brick_size, facecolor=facecolor, alpha=0.5 ) axes.add_patch(renko) plt.show() df = pd.read_csv(file) df['cdiff'] = df['close'] - df['close'].shift(1) df.dropna(inplace=True) df['bricks'] = df.loc[:, ('cdiff', )] / brick_size bricks = df[df['bricks'] != 0]['bricks'].values plot_renko(bricks, brick_size)
Here is a sample renko chart plotted using the above code.