const lcjsTrader = require('@lightningchart/lcjs-trader')
const { MovingAverageType, TechnicalAnalysisMethods } = lcjsTrader
lcjsTrader.trader(TRADER_LICENSE).then(async (trader) => {
const tradingChart = trader.tradingChart({ loadFromStorage: false })
const taMethods = new TechnicalAnalysisMethods(tradingChart)
// Reading data from a file.
await fetch(`${document.head.baseURI}examples/assets/0013/Alphabet Inc (GOOGL).csv`).then((res) => res.text()).then((text) => {
tradingChart.loadCsvString(text, 'Alphabet Inc (GOOGL)')
const dataset = tradingChart.getData(false)
const volumes = tradingChart.getVolumeData()
// Add a custom overlay.
const co = tradingChart.indicators().addCustomOverlay()
co.setLineColor('#30EE50')
co.setName('WWS + Z-Value')
co.setOffset(13)
// Create data for the custom overlay by combining Welles Wilder's Smoothing with Z-Value.
const wwsValues = taMethods.calculateWellesWilderSmoothing(dataset[4], 14)
const zvValues = taMethods.calculateZValue(dataset[4], 14, MovingAverageType.None)
const coValues = []
for (let i = 0; i < wwsValues.length; i++) {
coValues[i] = wwsValues[i] + zvValues[i]
}
co.setData(coValues)
// Add a custom study.
const cs = tradingChart.indicators().addCustomStudy()
cs.setLineColor('#EE3050')
cs.setName('WAD / SD')
cs.setOffset(13)
// Create data for the custom study by combining Williams AD with Standard Deviation.
const wadValues = taMethods.calculateWilliamsAccumulationDistribution(dataset[4], dataset[2], dataset[3], volumes, true)
const sdValues = taMethods.calculateStandardDeviation(dataset[4], 14, MovingAverageType.None)
const csValues = []
for (let i = 0; i < sdValues.length; i++) {
csValues[i] = wadValues[i + 12] / sdValues[i]
}
cs.setData(csValues)
})
tradingChart.setCurrency('USD')
})
Custom Indicators - Editor
Example of using custom indicators. Custom indicators allow users to create indicators based on their own data or calculations. -Custom Overlay draws a line on top of the price data. -Custom Study draws a line below the price chart in an own segment. -setData() and addData() methods assigns data to the custom indicators.
This example creates custom indicators by combining Welles Wilder's Smoothing with Z-Value, and Williams Accumulation/Distribution with Standard Deviation.