napi-talib
Version:
Node API for TA-Lib
586 lines • 69.9 kB
text/typescript
/* This file is automatically generated by gencodes.js */
import { execute } from './index.js'
const fillNaN = (count: number, array: number[]) =>
Array(count).fill(NaN).concat(array);
export function ADD (inReal0: number[], inReal1: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ADD", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal0.length - 1, params: Object.assign({inReal0: inReal0, inReal1: inReal1}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function DIV (inReal0: number[], inReal1: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "DIV", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal0.length - 1, params: Object.assign({inReal0: inReal0, inReal1: inReal1}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function MAX (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MAX", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function MAXINDEX (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MAXINDEX", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function MIN (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MIN", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function MININDEX (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MININDEX", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function MINMAX (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): [number[], number[]] {
const results = execute({name: "MINMAX", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outMin, outMax} = results.results;
return [fillNaN(results.begIndex, outMin!), fillNaN(results.begIndex, outMax!)];
}
export function MINMAXINDEX (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): [number[], number[]] {
const results = execute({name: "MINMAXINDEX", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outMinIdx, outMaxIdx} = results.results;
return [fillNaN(results.begIndex, outMinIdx!), fillNaN(results.begIndex, outMaxIdx!)];
}
export function MULT (inReal0: number[], inReal1: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MULT", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal0.length - 1, params: Object.assign({inReal0: inReal0, inReal1: inReal1}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function SUB (inReal0: number[], inReal1: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "SUB", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal0.length - 1, params: Object.assign({inReal0: inReal0, inReal1: inReal1}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function SUM (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "SUM", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ACOS (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ACOS", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ASIN (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ASIN", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ATAN (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ATAN", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function CEIL (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CEIL", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function COS (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "COS", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function COSH (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "COSH", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function EXP (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "EXP", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function FLOOR (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "FLOOR", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function LN (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "LN", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function LOG10 (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "LOG10", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function SIN (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "SIN", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function SINH (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "SINH", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function SQRT (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "SQRT", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function TAN (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "TAN", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function TANH (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "TANH", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ACCBANDS (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): [number[], number[], number[]] {
const results = execute({name: "ACCBANDS", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outRealUpperBand, outRealMiddleBand, outRealLowerBand} = results.results;
return [fillNaN(results.begIndex, outRealUpperBand!), fillNaN(results.begIndex, outRealMiddleBand!), fillNaN(results.begIndex, outRealLowerBand!)];
}
export function BBANDS (inReal: number[], opts?: {optInTimePeriod?: number; optInNbDevUp?: number; optInNbDevDn?: number; optInMAType?: number; startIdx?: number; endIdx?: number}): [number[], number[], number[]] {
const results = execute({name: "BBANDS", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outRealUpperBand, outRealMiddleBand, outRealLowerBand} = results.results;
return [fillNaN(results.begIndex, outRealUpperBand!), fillNaN(results.begIndex, outRealMiddleBand!), fillNaN(results.begIndex, outRealLowerBand!)];
}
export function DEMA (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "DEMA", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function EMA (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "EMA", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function HT_TRENDLINE (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "HT_TRENDLINE", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function KAMA (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "KAMA", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function MA (inReal: number[], opts?: {optInTimePeriod?: number; optInMAType?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MA", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function MAMA (inReal: number[], opts?: {optInFastLimit?: number; optInSlowLimit?: number; startIdx?: number; endIdx?: number}): [number[], number[]] {
const results = execute({name: "MAMA", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outMAMA, outFAMA} = results.results;
return [fillNaN(results.begIndex, outMAMA!), fillNaN(results.begIndex, outFAMA!)];
}
export function MAVP (inReal: number[], inPeriods: number[], opts?: {optInMinPeriod?: number; optInMaxPeriod?: number; optInMAType?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MAVP", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal, inPeriods: inPeriods}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function MIDPOINT (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MIDPOINT", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function MIDPRICE (inHigh: number[], inLow: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MIDPRICE", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function SAR (inHigh: number[], inLow: number[], opts?: {optInAcceleration?: number; optInMaximum?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "SAR", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function SAREXT (inHigh: number[], inLow: number[], opts?: {optInStartValue?: number; optInOffsetOnReverse?: number; optInAccelerationInitLong?: number; optInAccelerationLong?: number; optInAccelerationMaxLong?: number; optInAccelerationInitShort?: number; optInAccelerationShort?: number; optInAccelerationMaxShort?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "SAREXT", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function SMA (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "SMA", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function T3 (inReal: number[], opts?: {optInTimePeriod?: number; optInVFactor?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "T3", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function TEMA (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "TEMA", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function TRIMA (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "TRIMA", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function WMA (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "WMA", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ATR (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ATR", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function NATR (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "NATR", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function TRANGE (inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "TRANGE", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ADX (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ADX", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ADXR (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ADXR", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function APO (inReal: number[], opts?: {optInFastPeriod?: number; optInSlowPeriod?: number; optInMAType?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "APO", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function AROON (inHigh: number[], inLow: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): [number[], number[]] {
const results = execute({name: "AROON", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow}, opts ?? {})});
const {outAroonDown, outAroonUp} = results.results;
return [fillNaN(results.begIndex, outAroonDown!), fillNaN(results.begIndex, outAroonUp!)];
}
export function AROONOSC (inHigh: number[], inLow: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "AROONOSC", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function BOP (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "BOP", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function CCI (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CCI", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function CMO (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CMO", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function DX (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "DX", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function IMI (inOpen: number[], inClose: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "IMI", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function MACD (inReal: number[], opts?: {optInFastPeriod?: number; optInSlowPeriod?: number; optInSignalPeriod?: number; startIdx?: number; endIdx?: number}): [number[], number[], number[]] {
const results = execute({name: "MACD", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outMACD, outMACDSignal, outMACDHist} = results.results;
return [fillNaN(results.begIndex, outMACD!), fillNaN(results.begIndex, outMACDSignal!), fillNaN(results.begIndex, outMACDHist!)];
}
export function MACDEXT (inReal: number[], opts?: {optInFastPeriod?: number; optInFastMAType?: number; optInSlowPeriod?: number; optInSlowMAType?: number; optInSignalPeriod?: number; optInSignalMAType?: number; startIdx?: number; endIdx?: number}): [number[], number[], number[]] {
const results = execute({name: "MACDEXT", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outMACD, outMACDSignal, outMACDHist} = results.results;
return [fillNaN(results.begIndex, outMACD!), fillNaN(results.begIndex, outMACDSignal!), fillNaN(results.begIndex, outMACDHist!)];
}
export function MACDFIX (inReal: number[], opts?: {optInSignalPeriod?: number; startIdx?: number; endIdx?: number}): [number[], number[], number[]] {
const results = execute({name: "MACDFIX", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outMACD, outMACDSignal, outMACDHist} = results.results;
return [fillNaN(results.begIndex, outMACD!), fillNaN(results.begIndex, outMACDSignal!), fillNaN(results.begIndex, outMACDHist!)];
}
export function MFI (inHigh: number[], inLow: number[], inClose: number[], inVolume: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MFI", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose, volume: inVolume}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function MINUS_DI (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MINUS_DI", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function MINUS_DM (inHigh: number[], inLow: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MINUS_DM", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function MOM (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "MOM", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function PLUS_DI (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "PLUS_DI", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function PLUS_DM (inHigh: number[], inLow: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "PLUS_DM", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function PPO (inReal: number[], opts?: {optInFastPeriod?: number; optInSlowPeriod?: number; optInMAType?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "PPO", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ROC (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ROC", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ROCP (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ROCP", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ROCR (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ROCR", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ROCR100 (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ROCR100", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function RSI (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "RSI", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function STOCH (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInFastK_Period?: number; optInSlowK_Period?: number; optInSlowK_MAType?: number; optInSlowD_Period?: number; optInSlowD_MAType?: number; startIdx?: number; endIdx?: number}): [number[], number[]] {
const results = execute({name: "STOCH", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outSlowK, outSlowD} = results.results;
return [fillNaN(results.begIndex, outSlowK!), fillNaN(results.begIndex, outSlowD!)];
}
export function STOCHF (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInFastK_Period?: number; optInFastD_Period?: number; optInFastD_MAType?: number; startIdx?: number; endIdx?: number}): [number[], number[]] {
const results = execute({name: "STOCHF", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outFastK, outFastD} = results.results;
return [fillNaN(results.begIndex, outFastK!), fillNaN(results.begIndex, outFastD!)];
}
export function STOCHRSI (inReal: number[], opts?: {optInTimePeriod?: number; optInFastK_Period?: number; optInFastD_Period?: number; optInFastD_MAType?: number; startIdx?: number; endIdx?: number}): [number[], number[]] {
const results = execute({name: "STOCHRSI", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outFastK, outFastD} = results.results;
return [fillNaN(results.begIndex, outFastK!), fillNaN(results.begIndex, outFastD!)];
}
export function TRIX (inReal: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "TRIX", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ULTOSC (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInTimePeriod1?: number; optInTimePeriod2?: number; optInTimePeriod3?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ULTOSC", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function WILLR (inHigh: number[], inLow: number[], inClose: number[], opts?: {optInTimePeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "WILLR", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function HT_DCPERIOD (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "HT_DCPERIOD", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function HT_DCPHASE (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "HT_DCPHASE", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function HT_PHASOR (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): [number[], number[]] {
const results = execute({name: "HT_PHASOR", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outInPhase, outQuadrature} = results.results;
return [fillNaN(results.begIndex, outInPhase!), fillNaN(results.begIndex, outQuadrature!)];
}
export function HT_SINE (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): [number[], number[]] {
const results = execute({name: "HT_SINE", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outSine, outLeadSine} = results.results;
return [fillNaN(results.begIndex, outSine!), fillNaN(results.begIndex, outLeadSine!)];
}
export function HT_TRENDMODE (inReal: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "HT_TRENDMODE", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function AD (inHigh: number[], inLow: number[], inClose: number[], inVolume: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "AD", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose, volume: inVolume}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function ADOSC (inHigh: number[], inLow: number[], inClose: number[], inVolume: number[], opts?: {optInFastPeriod?: number; optInSlowPeriod?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "ADOSC", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inHigh.length - 1, params: Object.assign({high: inHigh, low: inLow, close: inClose, volume: inVolume}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function OBV (inReal: number[], inVolume: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "OBV", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inReal.length - 1, params: Object.assign({inReal: inReal, volume: inVolume}, opts ?? {})});
const {outReal} = results.results;
return fillNaN(results.begIndex, outReal!);
}
export function CDL2CROWS (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDL2CROWS", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDL3BLACKCROWS (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDL3BLACKCROWS", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDL3INSIDE (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDL3INSIDE", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDL3LINESTRIKE (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDL3LINESTRIKE", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDL3OUTSIDE (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDL3OUTSIDE", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDL3STARSINSOUTH (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDL3STARSINSOUTH", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDL3WHITESOLDIERS (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDL3WHITESOLDIERS", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLABANDONEDBABY (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {optInPenetration?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLABANDONEDBABY", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLADVANCEBLOCK (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLADVANCEBLOCK", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLBELTHOLD (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLBELTHOLD", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLBREAKAWAY (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLBREAKAWAY", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLCLOSINGMARUBOZU (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLCLOSINGMARUBOZU", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLCONCEALBABYSWALL (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLCONCEALBABYSWALL", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLCOUNTERATTACK (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLCOUNTERATTACK", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLDARKCLOUDCOVER (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {optInPenetration?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLDARKCLOUDCOVER", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLDOJI (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLDOJI", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLDOJISTAR (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLDOJISTAR", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLDRAGONFLYDOJI (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLDRAGONFLYDOJI", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLENGULFING (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLENGULFING", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLEVENINGDOJISTAR (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {optInPenetration?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLEVENINGDOJISTAR", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLEVENINGSTAR (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {optInPenetration?: number; startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLEVENINGSTAR", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLGAPSIDESIDEWHITE (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLGAPSIDESIDEWHITE", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLGRAVESTONEDOJI (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLGRAVESTONEDOJI", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLHAMMER (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLHAMMER", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLHANGINGMAN (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLHANGINGMAN", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLHARAMI (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLHARAMI", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLHARAMICROSS (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLHARAMICROSS", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLHIGHWAVE (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLHIGHWAVE", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLHIKKAKE (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLHIKKAKE", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLHIKKAKEMOD (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({name: "CDLHIKKAKEMOD", startIdx: opts?.startIdx ?? 0, endIdx: opts?.endIdx ?? inOpen.length - 1, params: Object.assign({open: inOpen, high: inHigh, low: inLow, close: inClose}, opts ?? {})});
const {outInteger} = results.results;
return fillNaN(results.begIndex, outInteger!);
}
export function CDLHOMINGPIGEON (inOpen: number[], inHigh: number[], inLow: number[], inClose: number[], opts?: {startIdx?: number; endIdx?: number}): number[] {
const results = execute({na