Как придать одной строке ser ie несколько цветов с диаграммами Tradingview Lightweight в Javascript? - PullRequest
0 голосов
/ 21 апреля 2020

Это изображение ниже того, что у меня есть в данный момент. enter image description here Это изображение ниже, что я хочу. (1-е изображение из моего кода, второе из торговой точки). enter image description here

Для ясности: я хочу, чтобы в одной строке было несколько цветов. Для моей ситуации мне нужны только два цвета. Мне нужна каждая новая линия, которую я создаю изменяемым цветом. Это хорошо, если цена справа также изменится на цвет линии, которая попадает в правую часть графика.

Это мой код:

var chart = LightweightCharts.createChart(document.getElementById("Chart"), {width: 1500, height: 700});

/**
 * Creates startline and adds extra options to the lineSeries.
 */
function initChartSettings() {
    // Init lines
    priceArea = chart.addAreaSeries();
    buySellLine = chart.addLineSeries();   //LINE THAT NEEDS TWO COLORS

    // Set start position of lines
    priceArea.setData([{time: '2019-04-11', value: startPrice}]);
    buySellLine.setData([{time: '2019-04-11', value: startPrice}]);

    // Visualization edits
    priceArea.applyOptions({
        topColor: 'rgba(70, 130, 180, 0.5)',
        bottomColor: 'rgba(70, 130, 180, 0.1)',
        lineColor: '#4682B4'
    });

    // Buy sell line
    buySellLine.applyOptions({
        color: '#42f54b',               //CHANGES COLOR OF THE COMPLETE LINE, FROM BEGIN TO END.
        priceLineVisible: true,
        lastValueVisible: true
    });

    updateChartStatic();
}


/**
 * Updates the chart its lines.
 */
function updateChartStatic() {
    setTimeout(() => {
        priceArea.update({
            time: yearMonthDay,   //How this works should not matter for question
            value: newPrice,      //Same as above
        });

        // Updates the price line of the chart.
        buySellLine.update({
            time: yearMonthDay,
            value: currentMovingAverage       //Even though it would be nice to do the below commented thing...
            // color: 'red or green (example)'
        });

        buySellLine.applyOptions({
            color: changeLineColor(currentMovingAverage, lastMovingAverage)  // CHANGES COMPLETE LINE :(
        });
    }, 1);
}

Функция changeLineColor () выполняет оператор if, который не имеет ничего общего с установкой цвета для линии.

1 Ответ

1 голос
/ 28 апреля 2020

Сейчас это невозможно, но есть проблема для этой функции https://github.com/tradingview/lightweight-charts/issues/195. Вы можете подписаться на уведомление о том, что это будет исправлено (или даже сделать предложение и / или предоставить PR с изменениями).

...