/* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ /* auto-generated by NAPI-RS */ const { existsSync, readFileSync } = require('fs') const { join } = require('path') const { platform, arch } = process let nativeBinding = null let localFileExisted = false let loadError = null function isMusl() { // For Node 10 if (!process.report || typeof process.report.getReport !== 'function') { try { const lddPath = require('child_process').execSync('which ldd').toString().trim() return readFileSync(lddPath, 'utf8').includes('musl') } catch (e) { return true } } else { const { glibcVersionRuntime } = process.report.getReport().header return !glibcVersionRuntime } } switch (platform) { case 'android': switch (arch) { case 'arm64': localFileExisted = existsSync(join(__dirname, 'wickra.android-arm64.node')) try { if (localFileExisted) { nativeBinding = require('./wickra.android-arm64.node') } else { nativeBinding = require('wickra-android-arm64') } } catch (e) { loadError = e } break case 'arm': localFileExisted = existsSync(join(__dirname, 'wickra.android-arm-eabi.node')) try { if (localFileExisted) { nativeBinding = require('./wickra.android-arm-eabi.node') } else { nativeBinding = require('wickra-android-arm-eabi') } } catch (e) { loadError = e } break default: throw new Error(`Unsupported architecture on Android ${arch}`) } break case 'win32': switch (arch) { case 'x64': localFileExisted = existsSync( join(__dirname, 'wickra.win32-x64-msvc.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.win32-x64-msvc.node') } else { nativeBinding = require('wickra-win32-x64-msvc') } } catch (e) { loadError = e } break case 'ia32': localFileExisted = existsSync( join(__dirname, 'wickra.win32-ia32-msvc.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.win32-ia32-msvc.node') } else { nativeBinding = require('wickra-win32-ia32-msvc') } } catch (e) { loadError = e } break case 'arm64': localFileExisted = existsSync( join(__dirname, 'wickra.win32-arm64-msvc.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.win32-arm64-msvc.node') } else { nativeBinding = require('wickra-win32-arm64-msvc') } } catch (e) { loadError = e } break default: throw new Error(`Unsupported architecture on Windows: ${arch}`) } break case 'darwin': localFileExisted = existsSync(join(__dirname, 'wickra.darwin-universal.node')) try { if (localFileExisted) { nativeBinding = require('./wickra.darwin-universal.node') } else { nativeBinding = require('wickra-darwin-universal') } break } catch {} switch (arch) { case 'x64': localFileExisted = existsSync(join(__dirname, 'wickra.darwin-x64.node')) try { if (localFileExisted) { nativeBinding = require('./wickra.darwin-x64.node') } else { nativeBinding = require('wickra-darwin-x64') } } catch (e) { loadError = e } break case 'arm64': localFileExisted = existsSync( join(__dirname, 'wickra.darwin-arm64.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.darwin-arm64.node') } else { nativeBinding = require('wickra-darwin-arm64') } } catch (e) { loadError = e } break default: throw new Error(`Unsupported architecture on macOS: ${arch}`) } break case 'freebsd': if (arch !== 'x64') { throw new Error(`Unsupported architecture on FreeBSD: ${arch}`) } localFileExisted = existsSync(join(__dirname, 'wickra.freebsd-x64.node')) try { if (localFileExisted) { nativeBinding = require('./wickra.freebsd-x64.node') } else { nativeBinding = require('wickra-freebsd-x64') } } catch (e) { loadError = e } break case 'linux': switch (arch) { case 'x64': if (isMusl()) { localFileExisted = existsSync( join(__dirname, 'wickra.linux-x64-musl.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.linux-x64-musl.node') } else { nativeBinding = require('wickra-linux-x64-musl') } } catch (e) { loadError = e } } else { localFileExisted = existsSync( join(__dirname, 'wickra.linux-x64-gnu.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.linux-x64-gnu.node') } else { nativeBinding = require('wickra-linux-x64-gnu') } } catch (e) { loadError = e } } break case 'arm64': if (isMusl()) { localFileExisted = existsSync( join(__dirname, 'wickra.linux-arm64-musl.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.linux-arm64-musl.node') } else { nativeBinding = require('wickra-linux-arm64-musl') } } catch (e) { loadError = e } } else { localFileExisted = existsSync( join(__dirname, 'wickra.linux-arm64-gnu.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.linux-arm64-gnu.node') } else { nativeBinding = require('wickra-linux-arm64-gnu') } } catch (e) { loadError = e } } break case 'arm': if (isMusl()) { localFileExisted = existsSync( join(__dirname, 'wickra.linux-arm-musleabihf.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.linux-arm-musleabihf.node') } else { nativeBinding = require('wickra-linux-arm-musleabihf') } } catch (e) { loadError = e } } else { localFileExisted = existsSync( join(__dirname, 'wickra.linux-arm-gnueabihf.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.linux-arm-gnueabihf.node') } else { nativeBinding = require('wickra-linux-arm-gnueabihf') } } catch (e) { loadError = e } } break case 'riscv64': if (isMusl()) { localFileExisted = existsSync( join(__dirname, 'wickra.linux-riscv64-musl.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.linux-riscv64-musl.node') } else { nativeBinding = require('wickra-linux-riscv64-musl') } } catch (e) { loadError = e } } else { localFileExisted = existsSync( join(__dirname, 'wickra.linux-riscv64-gnu.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.linux-riscv64-gnu.node') } else { nativeBinding = require('wickra-linux-riscv64-gnu') } } catch (e) { loadError = e } } break case 's390x': localFileExisted = existsSync( join(__dirname, 'wickra.linux-s390x-gnu.node') ) try { if (localFileExisted) { nativeBinding = require('./wickra.linux-s390x-gnu.node') } else { nativeBinding = require('wickra-linux-s390x-gnu') } } catch (e) { loadError = e } break default: throw new Error(`Unsupported architecture on Linux: ${arch}`) } break default: throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`) } if (!nativeBinding) { if (loadError) { throw loadError } throw new Error(`Failed to load native binding`) } const { version, SMA, EMA, WMA, RSI, DEMA, TEMA, HMA, ROC, TRIX, SMMA, TRIMA, ZLEMA, MOM, CMO, DPO, StdDev, UlcerIndex, VerticalHorizontalFilter, ZScore, McGinleyDynamic, FRAMA, SuperSmoother, FisherTransform, Decycler, CenterOfGravity, CyberneticCycle, InstantaneousTrendline, EhlersStochastic, RVIVolatility, Variance, CoefficientOfVariation, Skewness, Kurtosis, StandardError, DetrendedStdDev, RSquared, MedianAbsoluteDeviation, Autocorrelation, HurstExponent, PearsonCorrelation, Beta, PairwiseBeta, SpearmanCorrelation, PairSpreadZScore, LeadLagCrossCorrelation, Cointegration, RelativeStrengthAB, MACD, BollingerBands, ATR, Stochastic, OBV, ADX, ADXR, CCI, WilliamsR, MFI, PSAR, Keltner, Donchian, VWAP, RollingVWAP, AwesomeOscillator, Aroon, Inertia, ConnorsRSI, LaguerreRSI, SMI, KST, PGO, RVI, AwesomeOscillatorHistogram, STC, ElderImpulse, ZeroLagMACD, CFO, APO, KAMA, EVWMA, Alligator, JMA, VIDYA, ALMA, T3, TSI, PMO, TII, ADL, VolumePriceTrend, ChaikinMoneyFlow, ChaikinOscillator, ForceIndex, NVI, PVI, VolumeOscillator, KVO, WilliamsAD, AnchoredVWAP, DemandIndex, TSV, VZO, MarketFacilitationIndex, EaseOfMovement, SuperTrend, ChandelierExit, ChandeKrollStop, AtrTrailingStop, HiLoActivator, VoltyStop, YoyoExit, DonchianStop, PercentageTrailingStop, StepTrailingStop, RenkoTrailingStop, TypicalPrice, MedianPrice, WeightedClose, LinearRegression, LinRegSlope, AcceleratorOscillator, BalanceOfPower, ChoppinessIndex, TrueRange, ChaikinVolatility, YangZhangVolatility, RogersSatchellVolatility, GarmanKlassVolatility, ParkinsonVolatility, LinRegAngle, BollingerBandwidth, PercentB, NATR, HistoricalVolatility, AroonOscillator, WaveTrend, RWI, Vortex, MassIndex, StochRSI, UltimateOscillator, PPO, Coppock, VWMA, MaEnvelope, AccelerationBands, StarcBands, AtrBands, HurstChannel, LinRegChannel, StandardErrorBands, DoubleBollinger, TtmSqueeze, FractalChaosBands, VwapStdDevBands, ClassicPivots, FibonacciPivots, Camarilla, WoodiePivots, DemarkPivots, WilliamsFractals, ZigZag, TDSetup, TDSequential, TDDeMarker, TDREI, TDPressure, TDCombo, TDCountdown, TDLines, TDRangeProjection, TDDifferential, TDOpen, TDRiskLevel, InverseFisherTransform, DecyclerOscillator, RoofingFilter, EmpiricalModeDecomposition, HilbertDominantCycle, AdaptiveCycle, SineWave, MAMA, FAMA, Ichimoku, HeikinAshi, ValueArea, InitialBalance, OpeningRange, Doji, Hammer, InvertedHammer, HangingMan, ShootingStar, Engulfing, Harami, MorningEveningStar, ThreeSoldiersOrCrows, PiercingDarkCloud, Marubozu, Tweezer, SpinningTop, ThreeInside, ThreeOutside, TwoCrows, UpsideGapTwoCrows, IdenticalThreeCrows, ThreeLineStrike, ThreeStarsInSouth, AbandonedBaby, AdvanceBlock, BeltHold, Breakaway, Counterattack, DojiStar, DragonflyDoji, GravestoneDoji, LongLeggedDoji, RickshawMan, EveningDojiStar, MorningDojiStar, GapSideBySideWhite, HighWave, Hikkake, HikkakeModified, HomingPigeon, OnNeck, InNeck, Thrusting, SeparatingLines, Kicking, KickingByLength, LadderBottom, MatHold, MatchingLow, LongLine, ShortLine, RisingThreeMethods, FallingThreeMethods, UpsideGapThreeMethods, DownsideGapThreeMethods, StalledPattern, StickSandwich, Takuri, ClosingMarubozu, OpeningMarubozu, TasukiGap, UniqueThreeRiver, ConcealingBabySwallow, OrderBookImbalanceTop1, OrderBookImbalanceFull, Microprice, QuotedSpread, DepthSlope, OrderBookImbalanceTopN, SignedVolume, CumulativeVolumeDelta, TradeImbalance, EffectiveSpread, RealizedSpread, KylesLambda, Footprint, FundingRate, FundingRateMean, FundingRateZScore, FundingBasis, OpenInterestDelta, OIPriceDivergence, OIWeighted, LongShortRatio, TakerBuySellRatio, LiquidationFeatures, TermStructureBasis, CalendarSpread, SharpeRatio, SortinoRatio, CalmarRatio, OmegaRatio, MaxDrawdown, AverageDrawdown, DrawdownDuration, PainIndex, ValueAtRisk, ConditionalValueAtRisk, ProfitFactor, GainLossRatio, RecoveryFactor, KellyCriterion, TreynorRatio, InformationRatio, Alpha } = nativeBinding module.exports.version = version module.exports.SMA = SMA module.exports.EMA = EMA module.exports.WMA = WMA module.exports.RSI = RSI module.exports.DEMA = DEMA module.exports.TEMA = TEMA module.exports.HMA = HMA module.exports.ROC = ROC module.exports.TRIX = TRIX module.exports.SMMA = SMMA module.exports.TRIMA = TRIMA module.exports.ZLEMA = ZLEMA module.exports.MOM = MOM module.exports.CMO = CMO module.exports.DPO = DPO module.exports.StdDev = StdDev module.exports.UlcerIndex = UlcerIndex module.exports.VerticalHorizontalFilter = VerticalHorizontalFilter module.exports.ZScore = ZScore module.exports.McGinleyDynamic = McGinleyDynamic module.exports.FRAMA = FRAMA module.exports.SuperSmoother = SuperSmoother module.exports.FisherTransform = FisherTransform module.exports.Decycler = Decycler module.exports.CenterOfGravity = CenterOfGravity module.exports.CyberneticCycle = CyberneticCycle module.exports.InstantaneousTrendline = InstantaneousTrendline module.exports.EhlersStochastic = EhlersStochastic module.exports.RVIVolatility = RVIVolatility module.exports.Variance = Variance module.exports.CoefficientOfVariation = CoefficientOfVariation module.exports.Skewness = Skewness module.exports.Kurtosis = Kurtosis module.exports.StandardError = StandardError module.exports.DetrendedStdDev = DetrendedStdDev module.exports.RSquared = RSquared module.exports.MedianAbsoluteDeviation = MedianAbsoluteDeviation module.exports.Autocorrelation = Autocorrelation module.exports.HurstExponent = HurstExponent module.exports.PearsonCorrelation = PearsonCorrelation module.exports.Beta = Beta module.exports.PairwiseBeta = PairwiseBeta module.exports.SpearmanCorrelation = SpearmanCorrelation module.exports.PairSpreadZScore = PairSpreadZScore module.exports.LeadLagCrossCorrelation = LeadLagCrossCorrelation module.exports.Cointegration = Cointegration module.exports.RelativeStrengthAB = RelativeStrengthAB module.exports.MACD = MACD module.exports.BollingerBands = BollingerBands module.exports.ATR = ATR module.exports.Stochastic = Stochastic module.exports.OBV = OBV module.exports.ADX = ADX module.exports.ADXR = ADXR module.exports.CCI = CCI module.exports.WilliamsR = WilliamsR module.exports.MFI = MFI module.exports.PSAR = PSAR module.exports.Keltner = Keltner module.exports.Donchian = Donchian module.exports.VWAP = VWAP module.exports.RollingVWAP = RollingVWAP module.exports.AwesomeOscillator = AwesomeOscillator module.exports.Aroon = Aroon module.exports.Inertia = Inertia module.exports.ConnorsRSI = ConnorsRSI module.exports.LaguerreRSI = LaguerreRSI module.exports.SMI = SMI module.exports.KST = KST module.exports.PGO = PGO module.exports.RVI = RVI module.exports.AwesomeOscillatorHistogram = AwesomeOscillatorHistogram module.exports.STC = STC module.exports.ElderImpulse = ElderImpulse module.exports.ZeroLagMACD = ZeroLagMACD module.exports.CFO = CFO module.exports.APO = APO module.exports.KAMA = KAMA module.exports.EVWMA = EVWMA module.exports.Alligator = Alligator module.exports.JMA = JMA module.exports.VIDYA = VIDYA module.exports.ALMA = ALMA module.exports.T3 = T3 module.exports.TSI = TSI module.exports.PMO = PMO module.exports.TII = TII module.exports.ADL = ADL module.exports.VolumePriceTrend = VolumePriceTrend module.exports.ChaikinMoneyFlow = ChaikinMoneyFlow module.exports.ChaikinOscillator = ChaikinOscillator module.exports.ForceIndex = ForceIndex module.exports.NVI = NVI module.exports.PVI = PVI module.exports.VolumeOscillator = VolumeOscillator module.exports.KVO = KVO module.exports.WilliamsAD = WilliamsAD module.exports.AnchoredVWAP = AnchoredVWAP module.exports.DemandIndex = DemandIndex module.exports.TSV = TSV module.exports.VZO = VZO module.exports.MarketFacilitationIndex = MarketFacilitationIndex module.exports.EaseOfMovement = EaseOfMovement module.exports.SuperTrend = SuperTrend module.exports.ChandelierExit = ChandelierExit module.exports.ChandeKrollStop = ChandeKrollStop module.exports.AtrTrailingStop = AtrTrailingStop module.exports.HiLoActivator = HiLoActivator module.exports.VoltyStop = VoltyStop module.exports.YoyoExit = YoyoExit module.exports.DonchianStop = DonchianStop module.exports.PercentageTrailingStop = PercentageTrailingStop module.exports.StepTrailingStop = StepTrailingStop module.exports.RenkoTrailingStop = RenkoTrailingStop module.exports.TypicalPrice = TypicalPrice module.exports.MedianPrice = MedianPrice module.exports.WeightedClose = WeightedClose module.exports.LinearRegression = LinearRegression module.exports.LinRegSlope = LinRegSlope module.exports.AcceleratorOscillator = AcceleratorOscillator module.exports.BalanceOfPower = BalanceOfPower module.exports.ChoppinessIndex = ChoppinessIndex module.exports.TrueRange = TrueRange module.exports.ChaikinVolatility = ChaikinVolatility module.exports.YangZhangVolatility = YangZhangVolatility module.exports.RogersSatchellVolatility = RogersSatchellVolatility module.exports.GarmanKlassVolatility = GarmanKlassVolatility module.exports.ParkinsonVolatility = ParkinsonVolatility module.exports.LinRegAngle = LinRegAngle module.exports.BollingerBandwidth = BollingerBandwidth module.exports.PercentB = PercentB module.exports.NATR = NATR module.exports.HistoricalVolatility = HistoricalVolatility module.exports.AroonOscillator = AroonOscillator module.exports.WaveTrend = WaveTrend module.exports.RWI = RWI module.exports.Vortex = Vortex module.exports.MassIndex = MassIndex module.exports.StochRSI = StochRSI module.exports.UltimateOscillator = UltimateOscillator module.exports.PPO = PPO module.exports.Coppock = Coppock module.exports.VWMA = VWMA module.exports.MaEnvelope = MaEnvelope module.exports.AccelerationBands = AccelerationBands module.exports.StarcBands = StarcBands module.exports.AtrBands = AtrBands module.exports.HurstChannel = HurstChannel module.exports.LinRegChannel = LinRegChannel module.exports.StandardErrorBands = StandardErrorBands module.exports.DoubleBollinger = DoubleBollinger module.exports.TtmSqueeze = TtmSqueeze module.exports.FractalChaosBands = FractalChaosBands module.exports.VwapStdDevBands = VwapStdDevBands module.exports.ClassicPivots = ClassicPivots module.exports.FibonacciPivots = FibonacciPivots module.exports.Camarilla = Camarilla module.exports.WoodiePivots = WoodiePivots module.exports.DemarkPivots = DemarkPivots module.exports.WilliamsFractals = WilliamsFractals module.exports.ZigZag = ZigZag module.exports.TDSetup = TDSetup module.exports.TDSequential = TDSequential module.exports.TDDeMarker = TDDeMarker module.exports.TDREI = TDREI module.exports.TDPressure = TDPressure module.exports.TDCombo = TDCombo module.exports.TDCountdown = TDCountdown module.exports.TDLines = TDLines module.exports.TDRangeProjection = TDRangeProjection module.exports.TDDifferential = TDDifferential module.exports.TDOpen = TDOpen module.exports.TDRiskLevel = TDRiskLevel module.exports.InverseFisherTransform = InverseFisherTransform module.exports.DecyclerOscillator = DecyclerOscillator module.exports.RoofingFilter = RoofingFilter module.exports.EmpiricalModeDecomposition = EmpiricalModeDecomposition module.exports.HilbertDominantCycle = HilbertDominantCycle module.exports.AdaptiveCycle = AdaptiveCycle module.exports.SineWave = SineWave module.exports.MAMA = MAMA module.exports.FAMA = FAMA module.exports.Ichimoku = Ichimoku module.exports.HeikinAshi = HeikinAshi module.exports.ValueArea = ValueArea module.exports.InitialBalance = InitialBalance module.exports.OpeningRange = OpeningRange module.exports.Doji = Doji module.exports.Hammer = Hammer module.exports.InvertedHammer = InvertedHammer module.exports.HangingMan = HangingMan module.exports.ShootingStar = ShootingStar module.exports.Engulfing = Engulfing module.exports.Harami = Harami module.exports.MorningEveningStar = MorningEveningStar module.exports.ThreeSoldiersOrCrows = ThreeSoldiersOrCrows module.exports.PiercingDarkCloud = PiercingDarkCloud module.exports.Marubozu = Marubozu module.exports.Tweezer = Tweezer module.exports.SpinningTop = SpinningTop module.exports.ThreeInside = ThreeInside module.exports.ThreeOutside = ThreeOutside module.exports.TwoCrows = TwoCrows module.exports.UpsideGapTwoCrows = UpsideGapTwoCrows module.exports.IdenticalThreeCrows = IdenticalThreeCrows module.exports.ThreeLineStrike = ThreeLineStrike module.exports.ThreeStarsInSouth = ThreeStarsInSouth module.exports.AbandonedBaby = AbandonedBaby module.exports.AdvanceBlock = AdvanceBlock module.exports.BeltHold = BeltHold module.exports.Breakaway = Breakaway module.exports.Counterattack = Counterattack module.exports.DojiStar = DojiStar module.exports.DragonflyDoji = DragonflyDoji module.exports.GravestoneDoji = GravestoneDoji module.exports.LongLeggedDoji = LongLeggedDoji module.exports.RickshawMan = RickshawMan module.exports.EveningDojiStar = EveningDojiStar module.exports.MorningDojiStar = MorningDojiStar module.exports.GapSideBySideWhite = GapSideBySideWhite module.exports.HighWave = HighWave module.exports.Hikkake = Hikkake module.exports.HikkakeModified = HikkakeModified module.exports.HomingPigeon = HomingPigeon module.exports.OnNeck = OnNeck module.exports.InNeck = InNeck module.exports.Thrusting = Thrusting module.exports.SeparatingLines = SeparatingLines module.exports.Kicking = Kicking module.exports.KickingByLength = KickingByLength module.exports.LadderBottom = LadderBottom module.exports.MatHold = MatHold module.exports.MatchingLow = MatchingLow module.exports.LongLine = LongLine module.exports.ShortLine = ShortLine module.exports.RisingThreeMethods = RisingThreeMethods module.exports.FallingThreeMethods = FallingThreeMethods module.exports.UpsideGapThreeMethods = UpsideGapThreeMethods module.exports.DownsideGapThreeMethods = DownsideGapThreeMethods module.exports.StalledPattern = StalledPattern module.exports.StickSandwich = StickSandwich module.exports.Takuri = Takuri module.exports.ClosingMarubozu = ClosingMarubozu module.exports.OpeningMarubozu = OpeningMarubozu module.exports.TasukiGap = TasukiGap module.exports.UniqueThreeRiver = UniqueThreeRiver module.exports.ConcealingBabySwallow = ConcealingBabySwallow module.exports.OrderBookImbalanceTop1 = OrderBookImbalanceTop1 module.exports.OrderBookImbalanceFull = OrderBookImbalanceFull module.exports.Microprice = Microprice module.exports.QuotedSpread = QuotedSpread module.exports.DepthSlope = DepthSlope module.exports.OrderBookImbalanceTopN = OrderBookImbalanceTopN module.exports.SignedVolume = SignedVolume module.exports.CumulativeVolumeDelta = CumulativeVolumeDelta module.exports.TradeImbalance = TradeImbalance module.exports.EffectiveSpread = EffectiveSpread module.exports.RealizedSpread = RealizedSpread module.exports.KylesLambda = KylesLambda module.exports.Footprint = Footprint module.exports.FundingRate = FundingRate module.exports.FundingRateMean = FundingRateMean module.exports.FundingRateZScore = FundingRateZScore module.exports.FundingBasis = FundingBasis module.exports.OpenInterestDelta = OpenInterestDelta module.exports.OIPriceDivergence = OIPriceDivergence module.exports.OIWeighted = OIWeighted module.exports.LongShortRatio = LongShortRatio module.exports.TakerBuySellRatio = TakerBuySellRatio module.exports.LiquidationFeatures = LiquidationFeatures module.exports.TermStructureBasis = TermStructureBasis module.exports.CalendarSpread = CalendarSpread module.exports.SharpeRatio = SharpeRatio module.exports.SortinoRatio = SortinoRatio module.exports.CalmarRatio = CalmarRatio module.exports.OmegaRatio = OmegaRatio module.exports.MaxDrawdown = MaxDrawdown module.exports.AverageDrawdown = AverageDrawdown module.exports.DrawdownDuration = DrawdownDuration module.exports.PainIndex = PainIndex module.exports.ValueAtRisk = ValueAtRisk module.exports.ConditionalValueAtRisk = ConditionalValueAtRisk module.exports.ProfitFactor = ProfitFactor module.exports.GainLossRatio = GainLossRatio module.exports.RecoveryFactor = RecoveryFactor module.exports.KellyCriterion = KellyCriterion module.exports.TreynorRatio = TreynorRatio module.exports.InformationRatio = InformationRatio module.exports.Alpha = Alpha