It is a simple price distribution. Fiddling with the parameters can create quite different results.
how many bars to use for the price distribution per column
how many rows to split the price distribution into
how many columns to generate... for some heavy computations you can reduce this number if performance suffers as you most likely need the recent price distribution
the higher the number the more blocks are skipped for each step it is still calculating cell_width number of bars. so if cell_step and cell_width are the same you will see a clear picture. if cell_width is significantly higher you will see data "blurred" in.
all cells are normalized with a value from 0 to 1 if you draw all of them it will be very resource intensive. so everything smaller than cut_off is just not drawn. (I put 0.8 sometimes to identify strong support/resistance areas)
and here is some magic... instead of counting the whole bar I have split it into
inside bar = ( Open - Close )
support = ( Low - Min(Open, Close )
resistance = ( Max(Open, Close) - High )
That way you can focus your study only on support or only on resistance areas.
Happy Neural Networking!!!