From a1a49449f08123ed723ae06bee6004f1807cf9b9 Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Wed, 24 Sep 2025 18:11:00 +0330 Subject: [PATCH] last ... --- Experts/x-saherelm.xfima.backtester.ea.mq5 | 124 +++++++++++------- .../x-saherelm.xfima.signaller.class.mq5 | 81 ++++++------ 2 files changed, 121 insertions(+), 84 deletions(-) diff --git a/Experts/x-saherelm.xfima.backtester.ea.mq5 b/Experts/x-saherelm.xfima.backtester.ea.mq5 index b216dff3..70bd28e2 100644 --- a/Experts/x-saherelm.xfima.backtester.ea.mq5 +++ b/Experts/x-saherelm.xfima.backtester.ea.mq5 @@ -387,10 +387,7 @@ int OnInit() // // Configure XFIMA POI Detector / Drawer ... detectorConfig.Default(); - detectorConfig.OffDetectors(); - detectorConfig.detectSignalKeyBarPattern = true; marketStructureDrawerConfig.FullDraw(); - marketStructureDrawerConfig.swingTrendRayLeft = false; // Print(ShortName, ": Initialized Successfully ..."); @@ -456,53 +453,53 @@ void OnTick() } // - // fima1Signaller.OnTick(); + fima1Signaller.OnTick(); fima2Signaller.OnTick(); - // - // Initial Bar for Analysis ... - XOHCL cBar; - bool isInited = cBar.Init( - _Symbol, - _Period, - 1 // - ); + // // + // // Initial Bar for Analysis ... + // XOHCL cBar; + // bool isInited = cBar.Init( + // _Symbol, + // _Period, + // 1 // + // ); // // Analyse Market ... - fima2Signaller.poiDetector.AnalyseMarket( - cBar, - marketStructure, - detectorConfig // - ); - CArrayObj *iObjects; - int drawnsCount = fima2Signaller.poiDrawer.DrawMarketStructure( - marketStructure, - marketStructureDrawerConfig, - iObjects // - ); - if (IsValidSize(drawnsCount)) - { - // - AddObjects( - iObjects, - eaDraws // - ); - } + // fima2Signaller.poiDetector.AnalyseMarket( + // cBar, + // marketStructure, + // detectorConfig // + // ); + // CArrayObj *iObjects; + // int drawnsCount = fima2Signaller.poiDrawer.DrawMarketStructure( + // marketStructure, + // marketStructureDrawerConfig, + // iObjects // + // ); + // if (IsValidSize(drawnsCount)) + // { + // // + // AddObjects( + // iObjects, + // eaDraws // + // ); + // } - // - if (HasDirection(marketStructure.signalKeyBarPatternDir)) - { - Print("Detected ..."); - } - if (marketStructure.ob.IsValid() && marketStructure.fvg.IsValid()) - { - Print("Detected ..."); - } - if (marketStructure.support.IsValid() || marketStructure.resistance.IsValid()) - { - Print("Detected ..."); - } + // // + // if (HasDirection(marketStructure.signalKeyBarPatternDir)) + // { + // Print("Detected ..."); + // } + // if (marketStructure.ob.IsValid() && marketStructure.fvg.IsValid()) + // { + // Print("Detected ..."); + // } + // if (marketStructure.support.IsValid() || marketStructure.resistance.IsValid()) + // { + // Print("Detected ..."); + // } } // @@ -683,6 +680,45 @@ void OnSignalTriggered(XSignal &signal) eaDraws.Add(iObj); } + // + // Here We Apply Custom Detecting ... + detectorConfig.OffDetectors(); + detectorConfig.detectSupport = true; + detectorConfig.detectResistance= true; + detectorConfig.detectSignalKeyBarPattern = true; + + // + // Initial Bar for Analysis ... + // at Signal Time ... + XOHCL signalBar; + bool isInited = signalBar.Init( + signal.symbol, + signal.period, + signal.time // + ); + + // + // Analyse Market ... + fima1Signaller.poiDetector.AnalyseMarket( + signalBar, + marketStructure, + detectorConfig // + ); + CArrayObj *iObjects; + int drawnsCount = fima2Signaller.poiDrawer.DrawMarketStructure( + marketStructure, + marketStructureDrawerConfig, + iObjects // + ); + if (IsValidSize(drawnsCount)) + { + // + AddObjects( + iObjects, + eaDraws // + ); + } + // // Alert Issued Signal ... string message = signal.GetMessage(); diff --git a/XFIMAEA/Classes/x-saherelm.xfima.signaller.class.mq5 b/XFIMAEA/Classes/x-saherelm.xfima.signaller.class.mq5 index bb0b9f3b..e142c726 100644 --- a/XFIMAEA/Classes/x-saherelm.xfima.signaller.class.mq5 +++ b/XFIMAEA/Classes/x-saherelm.xfima.signaller.class.mq5 @@ -351,6 +351,7 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller { // // Do Conditions Validating ... + // TODO: Igmore All Validations for Testing Purposes ... // // Validate MA Positions ... @@ -392,26 +393,26 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller // Has Cross ... isFastCrossedOverSlow // - && - // - // Cross Places Based on Fibo ... - MathMax(iFastMa, iSlowMa) < iFiboLower - // - && - // - ( - // - // Checking FVG ... - (hasFVG && - fvg.IsBullish()) - // - || - // - // Checking Crossed Place ... - isCrossedOverHappensOnShadow - // - ) - // + // && + // // + // // Cross Places Based on Fibo ... + // MathMax(iFastMa, iSlowMa) < iFiboLower + // // + // && + // // + // ( + // // + // // Checking FVG ... + // (hasFVG && + // fvg.IsBullish()) + // // + // || + // // + // // Checking Crossed Place ... + // isCrossedOverHappensOnShadow + // // + // ) + // // ; // @@ -421,26 +422,26 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller // Has Cross ... isFastCrossedUnderSlow // - && - // - // Cross Places Based on Fibo ... - MathMin(iFastMa, iSlowMa) > iFiboUpper - // - && - // - ( - // - // Checking FVG ... - (hasFVG && - fvg.IsBearish()) - // - || - // - // Checking Crossed Place ... - isCrossedUnderHappensOnShadow - // - ) - // + // && + // // + // // Cross Places Based on Fibo ... + // MathMin(iFastMa, iSlowMa) > iFiboUpper + // // + // && + // // + // ( + // // + // // Checking FVG ... + // (hasFVG && + // fvg.IsBearish()) + // // + // || + // // + // // Checking Crossed Place ... + // isCrossedUnderHappensOnShadow + // // + // ) + // // ; //