From d8284d012040fb448bc97d5c8579d6f3f1954439 Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Sun, 9 Jun 2024 12:49:40 +0330 Subject: [PATCH] last ... --- Classes/x-saherelm.x121.provider.class.mq5 | 66 ++++++++++--------- Classes/x-saherelm.x121.xea.class.mq5 | 25 ++++++- Experts/x-test.x121ea.mq5 | 6 +- .../x-saherelm.x110.signaller.class.mq5 | 28 ++++++++ .../x-saherelm.x121.signaller.class.mq5 | 29 ++++++++ .../x-saherelm.x786.signaller.class.mq5 | 28 ++++++++ Signallers/x-saherelm.x92.signaller.class.mq5 | 28 ++++++++ 7 files changed, 174 insertions(+), 36 deletions(-) diff --git a/Classes/x-saherelm.x121.provider.class.mq5 b/Classes/x-saherelm.x121.provider.class.mq5 index 19badff7..1859f538 100644 --- a/Classes/x-saherelm.x121.provider.class.mq5 +++ b/Classes/x-saherelm.x121.provider.class.mq5 @@ -1678,46 +1678,48 @@ struct X121ProviderDescriptor // bool hasLong = // - cHasLong + (cHasLong && + sHasLong) // - // || - // // - // sHasLong - // // - // || - // // - // mHasLong - // // - // || - // // - // lHasLong - // // - // || - // // - // hHasLong + && + // + ( + // + mHasLong + // + || + // + lHasLong + // + || + // + hHasLong + // + ) // ; // bool hasShort = // - cHasShort + (cHasShort && + sHasShort) // - // || - // // - // sHasShort - // // - // || - // // - // mHasShort - // // - // || - // // - // lHasShort - // // - // || - // // - // hHasShort + && + // + ( + // + mHasShort + // + || + // + lHasShort + // + || + // + hHasShort + // + ) // ; diff --git a/Classes/x-saherelm.x121.xea.class.mq5 b/Classes/x-saherelm.x121.xea.class.mq5 index 7e5b1a2a..6efb03ff 100644 --- a/Classes/x-saherelm.x121.xea.class.mq5 +++ b/Classes/x-saherelm.x121.xea.class.mq5 @@ -438,6 +438,9 @@ public: // // Props ... + // + bool enable; + // // Protected Positions ... XProtectedPosition protecteds[]; @@ -543,6 +546,7 @@ public: // // Initial Class ... bool Init( + bool mEnable, XSCTrade *trader, double mMinRequiredProfitPerTrade = 0.5, double mMinRequiredProfitPerTradeVolumeFactor = 0.01 // @@ -551,6 +555,9 @@ public: // bool result = false; + // + this.enable = mEnable; + // result = trader != NULL; if (!result) @@ -575,6 +582,11 @@ public: // we have to call this in our EA Class ... void HandleState(const XOnTradeHandlerState &state) { + // + if (!enable) { + return; + } + // if ( !state.hasNewDeal && @@ -646,6 +658,11 @@ public: // for Handling Zone Recovery ... void Process() { + // + if (!enable) { + return; + } + // int protectedsCount = ArraySize(protecteds); if (IsValidSize(protectedsCount)) @@ -735,6 +752,12 @@ public: // bool result = false; + // + if (!enable) { + return result; + } + + // int protectedIDX = FindProtectedIndex(ticket); result = protectedIDX >= 0; @@ -1231,7 +1254,7 @@ public: { // mProtector = new XSCPositionProtector(); - mProtector.Init(mTrader); + mProtector.Init(false, mTrader); } // diff --git a/Experts/x-test.x121ea.mq5 b/Experts/x-test.x121ea.mq5 index 3e889410..c46a9fe1 100644 --- a/Experts/x-test.x121ea.mq5 +++ b/Experts/x-test.x121ea.mq5 @@ -325,7 +325,7 @@ bool InitialEA() // int idx = 0; - ArrayResize(iDescriptor.signallers, 4); + ArrayResize(iDescriptor.signallers, 3); // iDescriptor.signallers[idx] = x786Signaller; @@ -334,8 +334,8 @@ bool InitialEA() idx++; iDescriptor.signallers[idx] = x110Signaller; idx++; - iDescriptor.signallers[idx] = x92Signaller; - idx++; + // iDescriptor.signallers[idx] = x92Signaller; + // idx++; // iDescriptor.signallers[idx] = x128Signaller; // idx++; // iDescriptor.signallers[idx] = xSPSignaller; diff --git a/Signallers/x-saherelm.x110.signaller.class.mq5 b/Signallers/x-saherelm.x110.signaller.class.mq5 index d7db5b7d..f3b9566a 100644 --- a/Signallers/x-saherelm.x110.signaller.class.mq5 +++ b/Signallers/x-saherelm.x110.signaller.class.mq5 @@ -172,10 +172,24 @@ public: // ; + // + bool isOSCVerified = + // + (conditions.oscCcis[0] > 0 && + conditions.oscCcis[1] > 0) + // + || + // + (conditions.oscMacdMains[0] > 0 && + conditions.oscMacdMains[1] > 0) + // + ; + // if (result) { result = + isOSCVerified && bullishScore > bearishScore * 1.5; } @@ -309,10 +323,24 @@ public: // ; + // + bool isOSCVerified = + // + (conditions.oscCcis[0] < 0 && + conditions.oscCcis[1] < 0) + // + || + // + (conditions.oscMacdMains[0] < 0 && + conditions.oscMacdMains[1] < 0) + // + ; + // if (result) { result = + isOSCVerified && bearishScore > bullishScore * 1.5; } diff --git a/Signallers/x-saherelm.x121.signaller.class.mq5 b/Signallers/x-saherelm.x121.signaller.class.mq5 index 7cfb6fa4..23526d8a 100644 --- a/Signallers/x-saherelm.x121.signaller.class.mq5 +++ b/Signallers/x-saherelm.x121.signaller.class.mq5 @@ -106,10 +106,25 @@ public: // ; + // + bool isOSCVerified = + // + (conditions.oscCcis[0] > 0 && + conditions.oscCcis[1] > 0) + // + || + // + (conditions.oscMacdMains[0] > 0 && + conditions.oscMacdMains[1] > 0) + // + ; + // if (result) { + // result = + isOSCVerified && bullishScore > bearishScore * 1.5; } @@ -183,10 +198,24 @@ public: // ; + // + bool isOSCVerified = + // + (conditions.oscCcis[0] < 0 && + conditions.oscCcis[1] < 0) + // + || + // + (conditions.oscMacdMains[0] < 0 && + conditions.oscMacdMains[1] < 0) + // + ; + // if (result) { result = + isOSCVerified && bearishScore > bullishScore * 1.5; } diff --git a/Signallers/x-saherelm.x786.signaller.class.mq5 b/Signallers/x-saherelm.x786.signaller.class.mq5 index 385ba592..aaa4e4b6 100644 --- a/Signallers/x-saherelm.x786.signaller.class.mq5 +++ b/Signallers/x-saherelm.x786.signaller.class.mq5 @@ -113,10 +113,24 @@ public: // ; + // + bool isOSCVerified = + // + (conditions.oscCcis[0] > 0 && + conditions.oscCcis[1] > 0) + // + || + // + (conditions.oscMacdMains[0] > 0 && + conditions.oscMacdMains[1] > 0) + // + ; + // if (result) { result = + isOSCVerified && bullishScore > bearishScore * 1.5; } @@ -190,10 +204,24 @@ public: // ; + // + bool isOSCVerified = + // + (conditions.oscCcis[0] < 0 && + conditions.oscCcis[1] < 0) + // + || + // + (conditions.oscMacdMains[0] < 0 && + conditions.oscMacdMains[1] < 0) + // + ; + // if (result) { result = + isOSCVerified && bearishScore > bullishScore * 1.5; } diff --git a/Signallers/x-saherelm.x92.signaller.class.mq5 b/Signallers/x-saherelm.x92.signaller.class.mq5 index 2a39dd06..17aa432b 100644 --- a/Signallers/x-saherelm.x92.signaller.class.mq5 +++ b/Signallers/x-saherelm.x92.signaller.class.mq5 @@ -143,10 +143,24 @@ public: // ; + // + bool isOSCVerified = + // + (conditions.oscCcis[0] > 0 && + conditions.oscCcis[1] > 0) + // + || + // + (conditions.oscMacdMains[0] > 0 && + conditions.oscMacdMains[1] > 0) + // + ; + // if (result) { result = + isOSCVerified && bullishScore > bearishScore * 1.5; } @@ -244,10 +258,24 @@ public: // ; + // + bool isOSCVerified = + // + (conditions.oscCcis[0] < 0 && + conditions.oscCcis[1] < 0) + // + || + // + (conditions.oscMacdMains[0] < 0 && + conditions.oscMacdMains[1] < 0) + // + ; + // if (result) { result = + isOSCVerified && bearishScore > bullishScore * 1.5; }