PivotPoints R & S альтернативные цвета в Highstock - PullRequest
0 голосов
/ 21 июня 2019

Используя PivotPoint в HighStock и хотел бы, чтобы сопротивление (R1, R2, R3) отличалось от линий поддержки (S1, S2, S3).

Рассматривается использование пороговых и отрицательных цветов, ноне уверен, как программно добавить порог, чтобы соответствовать линии P.

{
               type: 'pivotpoints',
               linkedTo: 'MV1',
               zIndex: 0,
               lineWidth: 1,
               color:'#707073',
               negativeColor: 'red',
               threshold: 180,
               visible: false,
               clip: true,
               //color: red,
              dataLabels: {
                   overflow: 'none',
                   crop: false,
                   y: 4,
                   style: {
                       fontSize: 9
                   }
               },
               params: {
                  //period: 90
               }
           }

Понятно, что это не сработает, поскольку оно должно адаптироваться при изменении данных.

Конечный результат, если это возможно

1 Ответ

0 голосов
/ 23 июня 2019

При использовании доступного 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...