Code for william Fractal indicator

Hi, what is the code for William fractals?

Regards, Sobhit

sobhit, once go through this code


import pandas as pd
import numpy as np

def calculate_fractals(data, n):
    data['upFractal'] = np.nan
    data['downFractal'] = np.nan
    for i in range(n, len(data) - n):
        upflag_down = all(data['high'][i - j] < data['high'][i] for j in range(1, n + 1))
        upflag_up = all(data['high'][i + j] < data['high'][i] for j in range(1, n + 1))
        if upflag_down and upflag_up:
            data.loc[i, 'upFractal'] = data['high'][i]
        downflag_down = all(data['low'][i - j] > data['low'][i] for j in range(1, n + 1))
        downflag_up = all(data['low'][i + j] > data['low'][i] for j in range(1, n + 1))
        if downflag_down and downflag_up:
            data.loc[i, 'downFractal'] = data['low'][i]
    return data