From f64f497dacf0529fa054440221e340b6fd7399a0 Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Tue, 5 Aug 2025 19:38:36 +0330 Subject: [PATCH] Add Repack 1 9 Assets Configurations on Signallers ... --- XCATBEA/Classes/xcatbea.expert.class.mq5 | 433 ++++++++++++++++++++++- 1 file changed, 432 insertions(+), 1 deletion(-) diff --git a/XCATBEA/Classes/xcatbea.expert.class.mq5 b/XCATBEA/Classes/xcatbea.expert.class.mq5 index 15aad829..4e2a7f3e 100644 --- a/XCATBEA/Classes/xcatbea.expert.class.mq5 +++ b/XCATBEA/Classes/xcatbea.expert.class.mq5 @@ -2068,7 +2068,12 @@ class XCXCATBEAExpert : public XCBase // // Check if Provided Inputs File Exists ... // if Exists, Load and Parse it ... - LoadConfig(iSignallerInputs); + // LoadConfig(iSignallerInputs); + + // + // Set Specified Configurations Per Symbols ... + // Based on Repack 1 ... + AssignRepack1Configs(iSignallerInputs); // // Check Inputs Validation ... @@ -2950,6 +2955,432 @@ class XCXCATBEAExpert : public XCBase return result; } + // + bool AssignRepack1Configs(XCATBEASignallerInputs &inputs) + { + // + // Validate Requirements ... + bool result = + IsValid(inputs.period) && + IsValid(inputs.symol); + if (!result) + { + return result; + } + + // + switch (inputs.symbol) + { + // + case "XAUUSDb": + // + // Validators ... + inputs.validations.forceHasSwing = false; + inputs.validations.forceOBBarType = false; + inputs.validations.forceFVGBarType = true; + inputs.validations.forceHasFLiquidity = false; + inputs.validations.forceHasRLiquidity = false; + inputs.validations.validateGapSequence = true; + inputs.validations.validateBlockEdgeBreakout = false; + + // + // Filters ... + inputs.filters.filterBasedOnKI = true; + inputs.filters.filterBasedOnPV = true; + inputs.filters.filterBasedOnSar = true; + inputs.filters.forceSarSwitched = false; + inputs.filters.forceSarOnBothSide = true; + inputs.filters.forceSarHasBreakout = false; + inputs.filters.forceSarHasReversalSide = true; + inputs.filters.filterBasedOnRSI = false; + inputs.filters.forceHasRSITrending = true; + inputs.filters.forceHasRSIVPattern = true; + inputs.filters.forceHasRSICrossing = false; + inputs.filters.filterBasedOnADX = false; + inputs.filters.forceHasADXTrending = true; + inputs.filters.forceHasADXCrossing = true; + inputs.filters.filterBasedOnATR = false; + inputs.filters.forceHasATRTrending = true; + inputs.filters.forceHasATRBreakout = false; + inputs.filters.filterBasedOnTrend = true; + inputs.filters.forceHasTrendDir = true; + inputs.filters.forceHasTrendPlace = true; + inputs.filters.forceHasTrendChange = true; + inputs.filters.forceHasTrendTrending = true; + inputs.filters.forceHasTrendRejection = false; + inputs.filters.forceHasTrendLineInside = false; + inputs.filters.forceHasTrendDirOnBothSide = false; + inputs.filters.filterBasedOnDelta = false; + inputs.filters.filterBasedOnVolume = false; + inputs.filters.filterBasedOnSignalBar = false; + inputs.filters.filterBasedOnHKSignalBar = false; + break; + + // + case "XAGUSDb": + // + // Validators ... + inputs.validations.forceHasSwing = false; + inputs.validations.forceOBBarType = true; + inputs.validations.forceFVGBarType = true; + inputs.validations.forceHasFLiquidity = false; + inputs.validations.forceHasRLiquidity = false; + inputs.validations.validateGapSequence = true; + inputs.validations.validateBlockEdgeBreakout = false; + + // + // Filters ... + inputs.filters.filterBasedOnKI = false; + inputs.filters.filterBasedOnPV = false; + inputs.filters.filterBasedOnSar = false; + inputs.filters.forceSarSwitched = true; + inputs.filters.forceSarOnBothSide = false; + inputs.filters.forceSarHasBreakout = false; + inputs.filters.forceSarHasReversalSide = true; + inputs.filters.filterBasedOnRSI = false; + inputs.filters.forceHasRSITrending = false; + inputs.filters.forceHasRSIVPattern = false; + inputs.filters.forceHasRSICrossing = true; + inputs.filters.filterBasedOnADX = true; + inputs.filters.forceHasADXTrending = true; + inputs.filters.forceHasADXCrossing = true; + inputs.filters.filterBasedOnATR = false; + inputs.filters.forceHasATRTrending = true; + inputs.filters.forceHasATRBreakout = false; + inputs.filters.filterBasedOnTrend = false; + inputs.filters.forceHasTrendDir = true; + inputs.filters.forceHasTrendPlace = false; + inputs.filters.forceHasTrendChange = false; + inputs.filters.forceHasTrendTrending = false; + inputs.filters.forceHasTrendRejection = true; + inputs.filters.forceHasTrendLineInside = true; + inputs.filters.forceHasTrendDirOnBothSide = true; + inputs.filters.filterBasedOnDelta = false; + inputs.filters.filterBasedOnVolume = false; + inputs.filters.filterBasedOnSignalBar = false; + inputs.filters.filterBasedOnHKSignalBar = false; + break; + + // + case "EURUSDb": + // + // Validators ... + inputs.validations.forceHasSwing = false; + inputs.validations.forceOBBarType = true; + inputs.validations.forceFVGBarType = false; + inputs.validations.forceHasFLiquidity = false; + inputs.validations.forceHasRLiquidity = false; + inputs.validations.validateGapSequence = false; + inputs.validations.validateBlockEdgeBreakout = true; + + // + // Filters ... + inputs.filters.filterBasedOnKI = false; + inputs.filters.filterBasedOnPV = false; + inputs.filters.filterBasedOnSar = false; + inputs.filters.forceSarSwitched = true; + inputs.filters.forceSarOnBothSide = false; + inputs.filters.forceSarHasBreakout = false; + inputs.filters.forceSarHasReversalSide = true; + inputs.filters.filterBasedOnRSI = true; + inputs.filters.forceHasRSITrending = true; + inputs.filters.forceHasRSIVPattern = false; + inputs.filters.forceHasRSICrossing = false; + inputs.filters.filterBasedOnADX = false; + inputs.filters.forceHasADXTrending = true; + inputs.filters.forceHasADXCrossing = false; + inputs.filters.filterBasedOnATR = true; + inputs.filters.forceHasATRTrending = true; + inputs.filters.forceHasATRBreakout = false; + inputs.filters.filterBasedOnTrend = true; + inputs.filters.forceHasTrendDir = true; + inputs.filters.forceHasTrendPlace = false; + inputs.filters.forceHasTrendChange = true; + inputs.filters.forceHasTrendTrending = false; + inputs.filters.forceHasTrendRejection = false; + inputs.filters.forceHasTrendLineInside = false; + inputs.filters.forceHasTrendDirOnBothSide = true; + inputs.filters.filterBasedOnDelta = false; + inputs.filters.filterBasedOnVolume = false; + inputs.filters.filterBasedOnSignalBar = false; + inputs.filters.filterBasedOnHKSignalBar = false; + break; + + // + case "GBPUSDb": + // + // Validators ... + inputs.validations.forceHasSwing = false; + inputs.validations.forceOBBarType = true; + inputs.validations.forceFVGBarType = true; + inputs.validations.forceHasFLiquidity = false; + inputs.validations.forceHasRLiquidity = false; + inputs.validations.validateGapSequence = true; + inputs.validations.validateBlockEdgeBreakout = false; + + // + // Filters ... + inputs.filters.filterBasedOnKI = false; + inputs.filters.filterBasedOnPV = true; + inputs.filters.filterBasedOnSar = true; + inputs.filters.forceSarSwitched = false; + inputs.filters.forceSarOnBothSide = true; + inputs.filters.forceSarHasBreakout = false; + inputs.filters.forceSarHasReversalSide = false; + inputs.filters.filterBasedOnRSI = false; + inputs.filters.forceHasRSITrending = false; + inputs.filters.forceHasRSIVPattern = false; + inputs.filters.forceHasRSICrossing = true; + inputs.filters.filterBasedOnADX = false; + inputs.filters.forceHasADXTrending = true; + inputs.filters.forceHasADXCrossing = false; + inputs.filters.filterBasedOnATR = false; + inputs.filters.forceHasATRTrending = false; + inputs.filters.forceHasATRBreakout = false; + inputs.filters.filterBasedOnTrend = false; + inputs.filters.forceHasTrendDir = true; + inputs.filters.forceHasTrendPlace = true; + inputs.filters.forceHasTrendChange = true; + inputs.filters.forceHasTrendTrending = true; + inputs.filters.forceHasTrendRejection = false; + inputs.filters.forceHasTrendLineInside = true; + inputs.filters.forceHasTrendDirOnBothSide = false; + inputs.filters.filterBasedOnDelta = false; + inputs.filters.filterBasedOnVolume = true; + inputs.filters.filterBasedOnSignalBar = true; + inputs.filters.filterBasedOnHKSignalBar = false; + break; + + // + case "USDCHFb": + // + // Validators ... + inputs.validations.forceHasSwing = false; + inputs.validations.forceOBBarType = false; + inputs.validations.forceFVGBarType = false; + inputs.validations.forceHasFLiquidity = false; + inputs.validations.forceHasRLiquidity = false; + inputs.validations.validateGapSequence = true; + inputs.validations.validateBlockEdgeBreakout = false; + + // + // Filters ... + inputs.filters.filterBasedOnKI = true; + inputs.filters.filterBasedOnPV = true; + inputs.filters.filterBasedOnSar = false; + inputs.filters.forceSarSwitched = false; + inputs.filters.forceSarOnBothSide = false; + inputs.filters.forceSarHasBreakout = true; + inputs.filters.forceSarHasReversalSide = true; + inputs.filters.filterBasedOnRSI = true; + inputs.filters.forceHasRSITrending = true; + inputs.filters.forceHasRSIVPattern = true; + inputs.filters.forceHasRSICrossing = false; + inputs.filters.filterBasedOnADX = true; + inputs.filters.forceHasADXTrending = false; + inputs.filters.forceHasADXCrossing = false; + inputs.filters.filterBasedOnATR = false; + inputs.filters.forceHasATRTrending = false; + inputs.filters.forceHasATRBreakout = false; + inputs.filters.filterBasedOnTrend = false; + inputs.filters.forceHasTrendDir = false; + inputs.filters.forceHasTrendPlace = false; + inputs.filters.forceHasTrendChange = true; + inputs.filters.forceHasTrendTrending = false; + inputs.filters.forceHasTrendRejection = false; + inputs.filters.forceHasTrendLineInside = true; + inputs.filters.forceHasTrendDirOnBothSide = true; + inputs.filters.filterBasedOnDelta = true; + inputs.filters.filterBasedOnVolume = true; + inputs.filters.filterBasedOnSignalBar = true; + inputs.filters.filterBasedOnHKSignalBar = true; + break; + + // + case "USDJPYb": + // + // Validators ... + inputs.validations.forceHasSwing = true; + inputs.validations.forceOBBarType = false; + inputs.validations.forceFVGBarType = false; + inputs.validations.forceHasFLiquidity = false; + inputs.validations.forceHasRLiquidity = false; + inputs.validations.validateGapSequence = false; + inputs.validations.validateBlockEdgeBreakout = true; + + // + // Filters ... + inputs.filters.filterBasedOnKI = true; + inputs.filters.filterBasedOnPV = false; + inputs.filters.filterBasedOnSar = false; + inputs.filters.forceSarSwitched = true; + inputs.filters.forceSarOnBothSide = true; + inputs.filters.forceSarHasBreakout = false; + inputs.filters.forceSarHasReversalSide = true; + inputs.filters.filterBasedOnRSI = false; + inputs.filters.forceHasRSITrending = true; + inputs.filters.forceHasRSIVPattern = false; + inputs.filters.forceHasRSICrossing = false; + inputs.filters.filterBasedOnADX = false; + inputs.filters.forceHasADXTrending = false; + inputs.filters.forceHasADXCrossing = false; + inputs.filters.filterBasedOnATR = false; + inputs.filters.forceHasATRTrending = false; + inputs.filters.forceHasATRBreakout = true; + inputs.filters.filterBasedOnTrend = false; + inputs.filters.forceHasTrendDir = false; + inputs.filters.forceHasTrendPlace = true; + inputs.filters.forceHasTrendChange = true; + inputs.filters.forceHasTrendTrending = true; + inputs.filters.forceHasTrendRejection = false; + inputs.filters.forceHasTrendLineInside = true; + inputs.filters.forceHasTrendDirOnBothSide = false; + inputs.filters.filterBasedOnDelta = false; + inputs.filters.filterBasedOnVolume = false; + inputs.filters.filterBasedOnSignalBar = true; + inputs.filters.filterBasedOnHKSignalBar = false; + break; + + // + case "USDCADb": + // + // Validators ... + inputs.validations.forceHasSwing = true; + inputs.validations.forceOBBarType = true; + inputs.validations.forceFVGBarType = false; + inputs.validations.forceHasFLiquidity = false; + inputs.validations.forceHasRLiquidity = false; + inputs.validations.validateGapSequence = true; + inputs.validations.validateBlockEdgeBreakout = false; + + // + // Filters ... + inputs.filters.filterBasedOnKI = false; + inputs.filters.filterBasedOnPV = true; + inputs.filters.filterBasedOnSar = false; + inputs.filters.forceSarSwitched = true; + inputs.filters.forceSarOnBothSide = true; + inputs.filters.forceSarHasBreakout = false; + inputs.filters.forceSarHasReversalSide = true; + inputs.filters.filterBasedOnRSI = true; + inputs.filters.forceHasRSITrending = false; + inputs.filters.forceHasRSIVPattern = false; + inputs.filters.forceHasRSICrossing = false; + inputs.filters.filterBasedOnADX = false; + inputs.filters.forceHasADXTrending = false; + inputs.filters.forceHasADXCrossing = false; + inputs.filters.filterBasedOnATR = true; + inputs.filters.forceHasATRTrending = true; + inputs.filters.forceHasATRBreakout = false; + inputs.filters.filterBasedOnTrend = true; + inputs.filters.forceHasTrendDir = true; + inputs.filters.forceHasTrendPlace = true; + inputs.filters.forceHasTrendChange = true; + inputs.filters.forceHasTrendTrending = true; + inputs.filters.forceHasTrendRejection = true; + inputs.filters.forceHasTrendLineInside = false; + inputs.filters.forceHasTrendDirOnBothSide = false; + inputs.filters.filterBasedOnDelta = true; + inputs.filters.filterBasedOnVolume = true; + inputs.filters.filterBasedOnSignalBar = true; + inputs.filters.filterBasedOnHKSignalBar = false; + break; + + // + case "NZDUSDb": + // + // Validators ... + inputs.validations.forceHasSwing = true; + inputs.validations.forceOBBarType = false; + inputs.validations.forceFVGBarType = false; + inputs.validations.forceHasFLiquidity = false; + inputs.validations.forceHasRLiquidity = false; + inputs.validations.validateGapSequence = false; + inputs.validations.validateBlockEdgeBreakout = false; + + // + // Filters ... + inputs.filters.filterBasedOnKI = true; + inputs.filters.filterBasedOnPV = false; + inputs.filters.filterBasedOnSar = false; + inputs.filters.forceSarSwitched = true; + inputs.filters.forceSarOnBothSide = true; + inputs.filters.forceSarHasBreakout = false; + inputs.filters.forceSarHasReversalSide = true; + inputs.filters.filterBasedOnRSI = false; + inputs.filters.forceHasRSITrending = true; + inputs.filters.forceHasRSIVPattern = false; + inputs.filters.forceHasRSICrossing = true; + inputs.filters.filterBasedOnADX = false; + inputs.filters.forceHasADXTrending = true; + inputs.filters.forceHasADXCrossing = true; + inputs.filters.filterBasedOnATR = true; + inputs.filters.forceHasATRTrending = false; + inputs.filters.forceHasATRBreakout = false; + inputs.filters.filterBasedOnTrend = true; + inputs.filters.forceHasTrendDir = false; + inputs.filters.forceHasTrendPlace = false; + inputs.filters.forceHasTrendChange = false; + inputs.filters.forceHasTrendTrending = true; + inputs.filters.forceHasTrendRejection = true; + inputs.filters.forceHasTrendLineInside = true; + inputs.filters.forceHasTrendDirOnBothSide = true; + inputs.filters.filterBasedOnDelta = false; + inputs.filters.filterBasedOnVolume = false; + inputs.filters.filterBasedOnSignalBar = true; + inputs.filters.filterBasedOnHKSignalBar = false; + break; + + // + case "DJ30.spot": + // + // Validators ... + inputs.validations.forceHasSwing = true; + inputs.validations.forceOBBarType = false; + inputs.validations.forceFVGBarType = true; + inputs.validations.forceHasFLiquidity = false; + inputs.validations.forceHasRLiquidity = false; + inputs.validations.validateGapSequence = false; + inputs.validations.validateBlockEdgeBreakout = false; + + // + // Filters ... + inputs.filters.filterBasedOnKI = true; + inputs.filters.filterBasedOnPV = false; + inputs.filters.filterBasedOnSar = false; + inputs.filters.forceSarSwitched = true; + inputs.filters.forceSarOnBothSide = true; + inputs.filters.forceSarHasBreakout = true; + inputs.filters.forceSarHasReversalSide = true; + inputs.filters.filterBasedOnRSI = false; + inputs.filters.forceHasRSITrending = false; + inputs.filters.forceHasRSIVPattern = false; + inputs.filters.forceHasRSICrossing = true; + inputs.filters.filterBasedOnADX = false; + inputs.filters.forceHasADXTrending = true; + inputs.filters.forceHasADXCrossing = false; + inputs.filters.filterBasedOnATR = false; + inputs.filters.forceHasATRTrending = true; + inputs.filters.forceHasATRBreakout = false; + inputs.filters.filterBasedOnTrend = true; + inputs.filters.forceHasTrendDir = true; + inputs.filters.forceHasTrendPlace = false; + inputs.filters.forceHasTrendChange = true; + inputs.filters.forceHasTrendTrending = true; + inputs.filters.forceHasTrendRejection = false; + inputs.filters.forceHasTrendLineInside = false; + inputs.filters.forceHasTrendDirOnBothSide = false; + inputs.filters.filterBasedOnDelta = false; + inputs.filters.filterBasedOnVolume = false; + inputs.filters.filterBasedOnSignalBar = true; + inputs.filters.filterBasedOnHKSignalBar = false; + break; + } + + // + return result; + } + // };