При использовании доступного API нет возможности иметь динамический порог, который будет следовать за линией P для разных значений для разных точек.
Вместо этого вы можете создать два индикатора точки поворота, которые будут генерировать несколько линий одного цвета- один цвет для каждого индикатора.Чтобы предотвратить наложение, вы можете предоставить собственные алгоритмы для расчета линий, установив нулевые значения для всех строк, которые не должны быть видны для каждого из индикаторов.P-строка (средняя) должна быть рассчитана для каждого алгоритма, чтобы корректно отображать метки данных.
Вот демонстрационная версия (и копия в JSFiddle ):
(function(H){
H.seriesTypes.pivotpoints.prototype['std-topPlacement'] = function (values) {
var diff = values[1] - values[2],
avg = [
null,
null,
values[0] + diff,
values[0] * 2 - values[2],
values[0], // middle
null, //values[0] * 2 - values[1],
null, //values[0] - diff,
null,
null
];
return avg;
};
H.seriesTypes.pivotpoints.prototype['std-bottomPlacement'] = function (values) {
var diff = values[1] - values[2],
avg = [
null,
null,
null, //values[0] + diff,
null, //values[0] * 2 - values[2],
values[0], // middle
values[0] * 2 - values[1],
values[0] - diff,
null,
null
];
return avg;
};
}(Highcharts))
$.getJSON('https://www.highcharts.com/samples/data/aapl-ohlc.json', function (data) {
Highcharts.stockChart('container', {
rangeSelector: {
selected: 2
},
title: {
text: 'AAPL Stock Price'
},
legend: {
enabled: true
},
plotOptions: {
series: {
showInLegend: true
}
},
series: [{
type: 'ohlc',
id: 'aapl',
name: 'AAPL Stock Price',
data: data,
zIndex: 1
}, {
showInLegend: false,
type: 'pivotpoints',
linkedTo: 'aapl',
zIndex: 0,
lineWidth: 3,
color: 'red',
params: {
algorithm: 'std-bottom'
},
dataLabels: {
overflow: 'none',
crop: false,
y: 4,
style: {
fontSize: 9
}
}
}, {
type: 'pivotpoints',
linkedTo: 'aapl',
zIndex: 0,
lineWidth: 3,
color: 'black',
params: {
algorithm: 'std-top'
},
dataLabels: {
overflow: 'none',
crop: false,
y: 4,
style: {
fontSize: 9
}
}
}]
});
});
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>
<script src="https://code.highcharts.com/stock/indicators/indicators.js"></script>
<script src="https://code.highcharts.com/stock/indicators/pivot-points.js"></script>
<div id="container" style="height: 400px; min-width: 310px"></div>