UNPKG

@gabriel3615/ta_analysis

Version:

stock ta analysis

77 lines (76 loc) 2.24 kB
export const backtestStrategiesConfig = { rangeBreakout: { minQuality: 60, requireRetest: true, }, trendline: { minLookbackBars: 80, coolDownMinGap: 5, reverseMinGap: 15, momentumPeriod: 20, momentumUpThreshold: 0.1, momentumDownThreshold: -0.1, volumePeriod: 10, highVolumeFactor: 1.5, trendStrengthConsecutive: 5, risingChannelSlopeMin: 0.0002, fallingChannelSlopeMax: -0.0002, strongMomentumCancelAbs: 0.15, reverseSignalStrengthMin: 80, }, structureBreakout: { preferEvent: 'BOS', confirmTrend: true, minLookback: 80, coolDownBars: 10, }, supplyDemandRetest: { minZoneWidthPercent: 0.02, allowFreshEntry: false, requireTested: true, coolDownBars: 10, }, patternConsensus: { minSignalStrength: 55, requireAllAligned: false, coolDownBars: 10, lookback: 260, }, integrationFilter: { requireRangeConfirm: true, rangeMinQuality: 75, requireStructureConfirm: true, structureEventType: 'BOS', confirmWithinBars: 10, coolDownBars: 5, }, }; export function updateBacktestStrategiesConfig(updates) { Object.assign(backtestStrategiesConfig, { ...updates, rangeBreakout: { ...backtestStrategiesConfig.rangeBreakout, ...(updates.rangeBreakout ?? {}), }, trendline: { ...backtestStrategiesConfig.trendline, ...(updates.trendline ?? {}), }, structureBreakout: { ...backtestStrategiesConfig.structureBreakout, ...(updates.structureBreakout ?? {}), }, supplyDemandRetest: { ...backtestStrategiesConfig.supplyDemandRetest, ...(updates.supplyDemandRetest ?? {}), }, patternConsensus: { ...backtestStrategiesConfig.patternConsensus, ...(updates.patternConsensus ?? {}), }, integrationFilter: { ...backtestStrategiesConfig.integrationFilter, ...(updates.integrationFilter ?? {}), }, }); }