@gabriel3615/ta_analysis
Version:
stock ta analysis
77 lines (76 loc) • 2.24 kB
JavaScript
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 ?? {}),
},
});
}