From 0f53cad327607c39f97343e14f8344accd654461 Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Tue, 13 Feb 2024 17:44:14 -0800 Subject: [PATCH] Resolve XUSCHF5 XTD Longs All Stopouts in ErranteSC ... --- ...herelm.xuschf5.provider.indicators.lib.mq5 | 52 +- .../{OANDA.AU5.EURUSD.mq5 => temp.mq5} | 2143 +++++++++-------- ...herelm.xuschf5.provider.indicators.lib.mq5 | 52 +- ...herelm.xuschf5.provider.indicators.lib.mq5 | 52 +- 4 files changed, 1235 insertions(+), 1064 deletions(-) rename Documents/Templates/{OANDA.AU5.EURUSD.mq5 => temp.mq5} (80%) diff --git a/BKP/Main/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 b/BKP/Main/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 index 3d4e5115..bb8a85ab 100644 --- a/BKP/Main/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 +++ b/BKP/Main/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 @@ -1771,7 +1771,25 @@ bool XUSCHF5XTDHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXCHMASCCrossedOverMin) + // + ) + // + ) + // + ) // ) // @@ -2071,11 +2089,22 @@ bool XUSCHF5XTDHasLongSignal() // || // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) + ((mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentOverFarest) && + ( + // + mConditions.isXTSCurrentOverNearest + // + || + // + (mConditions.isXCHMASCCrossedOverMax && + mConditions.isXLHPriceCrossedOverSignal) + // + ) + // + ) // ) // @@ -2448,6 +2477,17 @@ bool XUSCHF5XTDHasLongSignal() // ) // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXLHHHDecreased && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest) + // ) // ) diff --git a/Documents/Templates/OANDA.AU5.EURUSD.mq5 b/Documents/Templates/temp.mq5 similarity index 80% rename from Documents/Templates/OANDA.AU5.EURUSD.mq5 rename to Documents/Templates/temp.mq5 index 019ac025..d77d3553 100644 --- a/Documents/Templates/OANDA.AU5.EURUSD.mq5 +++ b/Documents/Templates/temp.mq5 @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////// // -// SaherElm IT Center MQL5 XAU5 Signal Provider Indicators Library +// SaherElm IT Center MQL5 XUSCHF5 Signal Provider Indicators Library // ---------------------------------------------------------------- // // Maintainer: @@ -18,7 +18,7 @@ // // Include Provider Inputs ... -#include "x-saherelm.xau5.provider.inputs.lib.mq5" +#include "x-saherelm.xuschf5.provider.inputs.lib.mq5" // // Include Provider Class ... @@ -26,125 +26,136 @@ // // Signallers ... -input group "XAU5 Signallers"; +input group "XUSCHF5 Signallers"; // // XTD ... -input group "XAU5 XTD Signaller"; -input bool xAU5XTDEnableSignaller = true; // Enable Signaller -input bool xAU5XTDAllowLongSignals = true; // Enable Long Signals -input bool xAU5XTDAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XTD Signaller"; +input bool xUSCHF5XTDEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XTDAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XTDAllowShortSignals = true; // Enable Short Signals // // XTAM ... -input group "XAU5 XTAM Signaller"; -input bool xAU5XTAMEnableSignaller = true; // Enable Signaller -input bool xAU5XTAMAllowLongSignals = true; // Enable Long Signals -input bool xAU5XTAMAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XTAM Signaller"; +input bool xUSCHF5XTAMEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XTAMAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XTAMAllowShortSignals = true; // Enable Short Signals // // XSI ... -input group "XAU5 XSI Signaller"; -input bool xAU5XSIEnableSignaller = true; // Enable Signaller -input bool xAU5XSIAllowLongSignals = true; // Enable Long Signals -input bool xAU5XSIAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XSI Signaller"; +input bool xUSCHF5XSIEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XSIAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XSIAllowShortSignals = true; // Enable Short Signals // // XTSFI ... -input group "XAU5 XTSFI Signaller"; -input bool xAU5XTSFIEnableSignaller = true; // Enable Signaller -input bool xAU5XTSFIAllowLongSignals = true; // Enable Long Signals -input bool xAU5XTSFIAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XTSFI Signaller"; +input bool xUSCHF5XTSFIEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XTSFIAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XTSFIAllowShortSignals = true; // Enable Short Signals // // XOBDLH ... -input group "XAU5 XOBDLH Signaller"; -input bool xAU5XOBDLHEnableSignaller = true; // Enable Signaller -input bool xAU5XOBDLHAllowLongSignals = true; // Enable Long Signals -input bool xAU5XOBDLHAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XOBDLH Signaller"; +input bool xUSCHF5XOBDLHEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XOBDLHAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XOBDLHAllowShortSignals = true; // Enable Short Signals // // XCHMACC ... -input group "XAU5 XCHMACC Signaller"; -input bool xAU5XCHMACCEnableSignaller = true; // Enable Signaller -input bool xAU5XCHMACCAllowLongSignals = true; // Enable Long Signals -input bool xAU5XCHMACCAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XCHMACC Signaller"; +input bool xUSCHF5XCHMACCEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XCHMACCAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XCHMACCAllowShortSignals = true; // Enable Short Signals // // XCHMAMX ... -input group "XAU5 XCHMAMX Signaller"; -input bool xAU5XCHMAMXEnableSignaller = true; // Enable Signaller -input bool xAU5XCHMAMXAllowLongSignals = true; // Enable Long Signals -input bool xAU5XCHMAMXAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XCHMAMX Signaller"; +input bool xUSCHF5XCHMAMXEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XCHMAMXAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XCHMAMXAllowShortSignals = true; // Enable Short Signals // // XCHMAMN ... -input group "XAU5 XCHMAMN Signaller"; -input bool xAU5XCHMAMNEnableSignaller = true; // Enable Signaller -input bool xAU5XCHMAMNAllowLongSignals = true; // Enable Long Signals -input bool xAU5XCHMAMNAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XCHMAMN Signaller"; +input bool xUSCHF5XCHMAMNEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XCHMAMNAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XCHMAMNAllowShortSignals = true; // Enable Short Signals // -bool xAU5IsTestMode = true; -int xAU5MaxLengthOfInputs = 0; -int xAU5CalculatedBars = 0; +// Check in Test Mode or not ... +bool xUSCHF5IsTestMode = false; + +// +// Detect max Input Length of Indicators ... +int xUSCHF5MaxLengthOfInputs = 0; + +// +// Detect Calculated Bars ... +int xUSCHF5CalculatedBars = 0; + +// +// Check prevent Double Signalling on Same Candle ... +bool xUSCHF5WaitUntilNextCandle = false; // // Signaller Variables ... // // XTD ... -bool xAU5MXTDEnableSignaller = xAU5XTDEnableSignaller; -bool xAU5MXTDAllowLongSignals = xAU5XTDAllowLongSignals; -bool xAU5MXTDAllowShortSignals = xAU5XTDAllowShortSignals; +bool xUSCHF5MXTDEnableSignaller = xUSCHF5XTDEnableSignaller; +bool xUSCHF5MXTDAllowLongSignals = xUSCHF5XTDAllowLongSignals; +bool xUSCHF5MXTDAllowShortSignals = xUSCHF5XTDAllowShortSignals; // // XTAM ... -bool xAU5MXTAMEnableSignaller = xAU5XTAMEnableSignaller; -bool xAU5MXTAMAllowLongSignals = xAU5XTAMAllowLongSignals; -bool xAU5MXTAMAllowShortSignals = xAU5XTAMAllowShortSignals; +bool xUSCHF5MXTAMEnableSignaller = xUSCHF5XTAMEnableSignaller; +bool xUSCHF5MXTAMAllowLongSignals = xUSCHF5XTAMAllowLongSignals; +bool xUSCHF5MXTAMAllowShortSignals = xUSCHF5XTAMAllowShortSignals; // // XSI ... -bool xAU5MXSIEnableSignaller = xAU5XSIEnableSignaller; -bool xAU5MXSIAllowLongSignals = xAU5XSIAllowLongSignals; -bool xAU5MXSIAllowShortSignals = xAU5XSIAllowShortSignals; +bool xUSCHF5MXSIEnableSignaller = xUSCHF5XSIEnableSignaller; +bool xUSCHF5MXSIAllowLongSignals = xUSCHF5XSIAllowLongSignals; +bool xUSCHF5MXSIAllowShortSignals = xUSCHF5XSIAllowShortSignals; // // XTSFI ... -bool xAU5MXTSFIEnableSignaller = xAU5XTSFIEnableSignaller; -bool xAU5MXTSFIAllowLongSignals = xAU5XTSFIAllowLongSignals; -bool xAU5MXTSFIAllowShortSignals = xAU5XTSFIAllowShortSignals; +bool xUSCHF5MXTSFIEnableSignaller = xUSCHF5XTSFIEnableSignaller; +bool xUSCHF5MXTSFIAllowLongSignals = xUSCHF5XTSFIAllowLongSignals; +bool xUSCHF5MXTSFIAllowShortSignals = xUSCHF5XTSFIAllowShortSignals; // // XOBDLH ... -bool xAU5MXOBDLHEnableSignaller = xAU5XOBDLHEnableSignaller; -bool xAU5MXOBDLHAllowLongSignals = xAU5XOBDLHAllowLongSignals; -bool xAU5MXOBDLHAllowShortSignals = xAU5XOBDLHAllowShortSignals; +bool xUSCHF5MXOBDLHEnableSignaller = xUSCHF5XOBDLHEnableSignaller; +bool xUSCHF5MXOBDLHAllowLongSignals = xUSCHF5XOBDLHAllowLongSignals; +bool xUSCHF5MXOBDLHAllowShortSignals = xUSCHF5XOBDLHAllowShortSignals; // // XCHMACC ... -bool xAU5MXCHMACCEnableSignaller = xAU5XCHMACCEnableSignaller; -bool xAU5MXCHMACCAllowLongSignals = xAU5XCHMACCAllowLongSignals; -bool xAU5MXCHMACCAllowShortSignals = xAU5XCHMACCAllowShortSignals; +bool xUSCHF5MXCHMACCEnableSignaller = xUSCHF5XCHMACCEnableSignaller; +bool xUSCHF5MXCHMACCAllowLongSignals = xUSCHF5XCHMACCAllowLongSignals; +bool xUSCHF5MXCHMACCAllowShortSignals = xUSCHF5XCHMACCAllowShortSignals; // // XCHMAMX ... -bool xAU5MXCHMAMXEnableSignaller = xAU5XCHMAMXEnableSignaller; -bool xAU5MXCHMAMXAllowLongSignals = xAU5XCHMAMXAllowLongSignals; -bool xAU5MXCHMAMXAllowShortSignals = xAU5XCHMAMXAllowShortSignals; +bool xUSCHF5MXCHMAMXEnableSignaller = xUSCHF5XCHMAMXEnableSignaller; +bool xUSCHF5MXCHMAMXAllowLongSignals = xUSCHF5XCHMAMXAllowLongSignals; +bool xUSCHF5MXCHMAMXAllowShortSignals = xUSCHF5XCHMAMXAllowShortSignals; // // XCHMAMN ... -bool xAU5MXCHMAMNEnableSignaller = xAU5XCHMAMNEnableSignaller; -bool xAU5MXCHMAMNAllowLongSignals = xAU5XCHMAMNAllowLongSignals; -bool xAU5MXCHMAMNAllowShortSignals = xAU5XCHMAMNAllowShortSignals; +bool xUSCHF5MXCHMAMNEnableSignaller = xUSCHF5XCHMAMNEnableSignaller; +bool xUSCHF5MXCHMAMNAllowLongSignals = xUSCHF5XCHMAMNAllowLongSignals; +bool xUSCHF5MXCHMAMNAllowShortSignals = xUSCHF5XCHMAMNAllowShortSignals; // -XCPriver *xAU5Provider; +XCPriver *xUSCHF5Provider; // // Validate Indicators Inputs ... -bool XAU5ValidateIndicatorsInputs() +bool XUSCHF5ValidateIndicatorsInputs() { // bool result = false; @@ -231,7 +242,7 @@ bool XAU5ValidateIndicatorsInputs() // // Make an Instance Of XCPriver Class for Use ... - xAU5Provider = new XCPriver( + xUSCHF5Provider = new XCPriver( // // Commons ... _Symbol, @@ -240,44 +251,44 @@ bool XAU5ValidateIndicatorsInputs() // Signallers ... // // XTD ... - xAU5MXTDEnableSignaller, - xAU5MXTDAllowLongSignals, - xAU5MXTDAllowShortSignals, + xUSCHF5MXTDEnableSignaller, + xUSCHF5MXTDAllowLongSignals, + xUSCHF5MXTDAllowShortSignals, // // XTAM ... - xAU5MXTAMEnableSignaller, - xAU5MXTAMAllowLongSignals, - xAU5MXTAMAllowShortSignals, + xUSCHF5MXTAMEnableSignaller, + xUSCHF5MXTAMAllowLongSignals, + xUSCHF5MXTAMAllowShortSignals, // // XSI ... - xAU5MXSIEnableSignaller, - xAU5MXSIAllowLongSignals, - xAU5MXSIAllowShortSignals, + xUSCHF5MXSIEnableSignaller, + xUSCHF5MXSIAllowLongSignals, + xUSCHF5MXSIAllowShortSignals, // // XTSFI ... - xAU5MXTSFIEnableSignaller, - xAU5MXTSFIAllowLongSignals, - xAU5MXTSFIAllowShortSignals, + xUSCHF5MXTSFIEnableSignaller, + xUSCHF5MXTSFIAllowLongSignals, + xUSCHF5MXTSFIAllowShortSignals, // // XOBDLH ... - xAU5MXOBDLHEnableSignaller, - xAU5MXOBDLHAllowLongSignals, - xAU5MXOBDLHAllowShortSignals, + xUSCHF5MXOBDLHEnableSignaller, + xUSCHF5MXOBDLHAllowLongSignals, + xUSCHF5MXOBDLHAllowShortSignals, // // XCHMACC ... - xAU5MXCHMACCEnableSignaller, - xAU5MXCHMACCAllowLongSignals, - xAU5MXCHMACCAllowShortSignals, + xUSCHF5MXCHMACCEnableSignaller, + xUSCHF5MXCHMACCAllowLongSignals, + xUSCHF5MXCHMACCAllowShortSignals, // // XCHMAMX ... - xAU5MXCHMAMXEnableSignaller, - xAU5MXCHMAMXAllowLongSignals, - xAU5MXCHMAMXAllowShortSignals, + xUSCHF5MXCHMAMXEnableSignaller, + xUSCHF5MXCHMAMXAllowLongSignals, + xUSCHF5MXCHMAMXAllowShortSignals, // // XCHMAMN ... - xAU5MXCHMAMNEnableSignaller, - xAU5MXCHMAMNAllowLongSignals, - xAU5MXCHMAMNAllowShortSignals + xUSCHF5MXCHMAMNEnableSignaller, + xUSCHF5MXCHMAMNAllowLongSignals, + xUSCHF5MXCHMAMNAllowShortSignals // ); @@ -290,14 +301,14 @@ bool XAU5ValidateIndicatorsInputs() // // Init Indicators ... -bool XAU5InitIndicators() +bool XUSCHF5InitIndicators() { // bool result = false; // // Make it Enable when we need to Log Market Conditions ... - // xAU5IsTestMode = false; // IsRunningOnTestMode(); + xUSCHF5IsTestMode = IsRunningOnTestMode(); // // Check and Calculate Max Length in Inputs ... @@ -305,88 +316,88 @@ bool XAU5InitIndicators() // // XTM ... - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xTMMaPeriod, - xAU5NumberOfItemsPerTick); + xUSCHF5NumberOfItemsPerTick); // // XAMA ... - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xAMALength, - xAU5NumberOfItemsPerTick); - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5NumberOfItemsPerTick); + xUSCHF5MaxLengthOfInputs = MathMax( xAMAFastEMA, - xAU5NumberOfItemsPerTick); - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5NumberOfItemsPerTick); + xUSCHF5MaxLengthOfInputs = MathMax( xAMASlowEMA, - xAU5NumberOfItemsPerTick); + xUSCHF5NumberOfItemsPerTick); // // XLH ... - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xLHLength, - xAU5NumberOfItemsPerTick); + xUSCHF5NumberOfItemsPerTick); // // XTD ... - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xTDLength, - xAU5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs); // // XFI ... - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xFILength, - xAU5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs); // // XRSI ... - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xRSILength, - xAU5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs); // // XOBD ... - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xOBDLength, - xAU5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs); // // XCHLH ... - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xCHLHLcLength, - xAU5MaxLengthOfInputs); - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHLHMcLength, - xAU5MaxLengthOfInputs); - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHLHScLength, - xAU5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs); // // XCHMA ... - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xCHMAScFastLength, - xAU5MaxLengthOfInputs); - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHMAScSlowLength, - xAU5MaxLengthOfInputs); - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHMAMcFastLength, - xAU5MaxLengthOfInputs); - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHMAMcSlowLength, - xAU5MaxLengthOfInputs); - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHMALcFastLength, - xAU5MaxLengthOfInputs); - xAU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHMALcSlowLength, - xAU5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs); // // Validate Indicators Inputs before Initialization ... - result = XAU5ValidateIndicatorsInputs(); + result = XUSCHF5ValidateIndicatorsInputs(); if (!result) { return result; @@ -398,58 +409,58 @@ bool XAU5InitIndicators() // // XTD ... bool isXTDEnable = - xAU5XTDEnableSignaller && - (xAU5XTDAllowLongSignals || - xAU5XTDAllowShortSignals); + xUSCHF5XTDEnableSignaller && + (xUSCHF5XTDAllowLongSignals || + xUSCHF5XTDAllowShortSignals); // // XTAM ... bool isXTAMEnable = - xAU5XTAMEnableSignaller && - (xAU5XTAMAllowLongSignals || - xAU5XTAMAllowShortSignals); + xUSCHF5XTAMEnableSignaller && + (xUSCHF5XTAMAllowLongSignals || + xUSCHF5XTAMAllowShortSignals); // // XSI ... bool isXSIEnable = - xAU5XSIEnableSignaller && - (xAU5XSIAllowLongSignals || - xAU5XSIAllowShortSignals); + xUSCHF5XSIEnableSignaller && + (xUSCHF5XSIAllowLongSignals || + xUSCHF5XSIAllowShortSignals); // // XTSFI ... bool isXTSFIEnable = - xAU5XTSFIEnableSignaller && - (xAU5XTSFIAllowLongSignals || - xAU5XTSFIAllowShortSignals); + xUSCHF5XTSFIEnableSignaller && + (xUSCHF5XTSFIAllowLongSignals || + xUSCHF5XTSFIAllowShortSignals); // // XOBDLH ... bool isXOBDLHEnable = - xAU5XOBDLHEnableSignaller && - (xAU5XOBDLHAllowLongSignals || - xAU5XOBDLHAllowShortSignals); + xUSCHF5XOBDLHEnableSignaller && + (xUSCHF5XOBDLHAllowLongSignals || + xUSCHF5XOBDLHAllowShortSignals); // // XCHMACC ... bool isXCHMACCEnable = - xAU5XCHMACCEnableSignaller && - (xAU5XCHMACCAllowLongSignals || - xAU5XCHMACCAllowShortSignals); + xUSCHF5XCHMACCEnableSignaller && + (xUSCHF5XCHMACCAllowLongSignals || + xUSCHF5XCHMACCAllowShortSignals); // // XCHMAMX ... bool isXCHMAMXEnable = - xAU5XCHMAMXEnableSignaller && - (xAU5XCHMAMXAllowLongSignals || - xAU5XCHMAMXAllowShortSignals); + xUSCHF5XCHMAMXEnableSignaller && + (xUSCHF5XCHMAMXAllowLongSignals || + xUSCHF5XCHMAMXAllowShortSignals); // // XCHMAMN ... bool isXCHMAMNEnable = - xAU5XCHMAMNEnableSignaller && - (xAU5XCHMAMNAllowLongSignals || - xAU5XCHMAMNAllowShortSignals); + xUSCHF5XCHMAMNEnableSignaller && + (xUSCHF5XCHMAMNAllowLongSignals || + xUSCHF5XCHMAMNAllowShortSignals); // bool hasSignaller = @@ -468,7 +479,7 @@ bool XAU5InitIndicators() if (!result) { // - LogMessage("XAU5 doesn't enable any Signaller ..."); + LogMessage("XUSCHF5 doesn't enable any Signaller ..."); // return result; @@ -567,7 +578,7 @@ bool XAU5InitIndicators() // // Release Indicators ... -void XAU5ReleaseIndicators() +void XUSCHF5ReleaseIndicators() { // // Release Handlers ... @@ -585,27 +596,27 @@ void XAU5ReleaseIndicators() // // Handle Reading Buffers ... -void XAU5HandleReadingBuffers() +void XUSCHF5HandleReadingBuffers() { // // Reading Calculated Bars for a Simple Handler ... - xAU5CalculatedBars = BarsCalculated(xTMHandler); + xUSCHF5CalculatedBars = BarsCalculated(xTMHandler); // // Read Indicators Buffers ... - XTMReadBuffers(xAU5NumberOfItemsPerTick); - XAMAReadBuffers(xAU5NumberOfItemsPerTick); - XLHReadBuffers(xAU5NumberOfItemsPerTick); - XTDReadBuffers(xAU5NumberOfItemsPerTick); - XFIReadBuffers(xAU5NumberOfItemsPerTick); - XTSReadBuffers(xAU5NumberOfItemsPerTick); - XRSIReadBuffers(xAU5NumberOfItemsPerTick); - XOBDReadBuffers(xAU5NumberOfItemsPerTick); - XCHMAReadBuffers(xAU5NumberOfItemsPerTick); - XCHLHReadBuffers(xAU5NumberOfItemsPerTick); + XTMReadBuffers(xUSCHF5NumberOfItemsPerTick); + XAMAReadBuffers(xUSCHF5NumberOfItemsPerTick); + XLHReadBuffers(xUSCHF5NumberOfItemsPerTick); + XTDReadBuffers(xUSCHF5NumberOfItemsPerTick); + XFIReadBuffers(xUSCHF5NumberOfItemsPerTick); + XTSReadBuffers(xUSCHF5NumberOfItemsPerTick); + XRSIReadBuffers(xUSCHF5NumberOfItemsPerTick); + XOBDReadBuffers(xUSCHF5NumberOfItemsPerTick); + XCHMAReadBuffers(xUSCHF5NumberOfItemsPerTick); + XCHLHReadBuffers(xUSCHF5NumberOfItemsPerTick); // - xAU5Provider.ReadConditions(); + xUSCHF5Provider.ReadConditions(); } // @@ -618,7 +629,7 @@ void XAU5HandleReadingBuffers() // Can Open Long Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Long Signals ... -bool XAU5CanOpenLongTrade( +bool XUSCHF5CanOpenLongTrade( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -633,7 +644,7 @@ bool XAU5CanOpenLongTrade( 0); // - bool hasSignal = XAU5HasLongSignal(info); + bool hasSignal = XUSCHF5HasLongSignal(info); // result = @@ -645,7 +656,7 @@ bool XAU5CanOpenLongTrade( // if (result) { - xAU5Provider.ClearConditions(); + xUSCHF5Provider.ClearConditions(); } // @@ -656,7 +667,7 @@ bool XAU5CanOpenLongTrade( // Can Close Long Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Long Signals ... -bool XAU5CanCloseLongTrade() +bool XUSCHF5CanCloseLongTrade() { // bool result = false; @@ -669,7 +680,7 @@ bool XAU5CanCloseLongTrade() // Can Open Short Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Short Signals ... -bool XAU5CanOpenShortTrade( +bool XUSCHF5CanOpenShortTrade( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -684,7 +695,7 @@ bool XAU5CanOpenShortTrade( 0); // - bool hasSignal = XAU5HasShortSignal(info); + bool hasSignal = XUSCHF5HasShortSignal(info); // result = @@ -696,7 +707,7 @@ bool XAU5CanOpenShortTrade( // if (result) { - xAU5Provider.ClearConditions(); + xUSCHF5Provider.ClearConditions(); } // @@ -707,7 +718,7 @@ bool XAU5CanOpenShortTrade( // Can Close Short Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Short Signals ... -bool XAU5CanCloseShortTrade() +bool XUSCHF5CanCloseShortTrade() { // bool result = false; @@ -730,7 +741,7 @@ bool XAU5CanCloseShortTrade() // // Check Market Conditions by Combination of Power of All tools for LONGs ... -bool XAU5HasLongSignal( +bool XUSCHF5HasLongSignal( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -739,7 +750,7 @@ bool XAU5HasLongSignal( // // XTD ... - bool isXTDHasSignal = XAU5XTDHasLongSignal(); + bool isXTDHasSignal = XUSCHF5XTDHasLongSignal(); if (isXTDHasSignal) { // @@ -750,7 +761,7 @@ bool XAU5HasLongSignal( // // XTAM ... - bool isXTAMHasSignal = XAU5XTAMHasLongSignal(); + bool isXTAMHasSignal = XUSCHF5XTAMHasLongSignal(); if (isXTAMHasSignal) { // @@ -761,7 +772,7 @@ bool XAU5HasLongSignal( // // XSI ... - bool isXSIHasSignal = XAU5XSIHasLongSignal(); + bool isXSIHasSignal = XUSCHF5XSIHasLongSignal(); if (isXSIHasSignal) { // @@ -772,7 +783,7 @@ bool XAU5HasLongSignal( // // XTSFI ... - bool isXTSFIHasSignal = XAU5XTSFIHasLongSignal(); + bool isXTSFIHasSignal = XUSCHF5XTSFIHasLongSignal(); if (isXTSFIHasSignal) { // @@ -783,7 +794,7 @@ bool XAU5HasLongSignal( // // XOBD XLH ... - bool isXOBDLHHasSignal = XAU5XOBDLHHasLongSignal(); + bool isXOBDLHHasSignal = XUSCHF5XOBDLHHasLongSignal(); if (isXOBDLHHasSignal) { // @@ -794,7 +805,7 @@ bool XAU5HasLongSignal( // // XCHMA Cycles Cross ... - bool isXCHMACCHasSignal = XAU5XCHMACCHasLongSignal(); + bool isXCHMACCHasSignal = XUSCHF5XCHMACCHasLongSignal(); if (isXCHMACCHasSignal) { // @@ -805,7 +816,7 @@ bool XAU5HasLongSignal( // // XCHMA Cycles Min ... - bool isXCHMAMNHasSignal = XAU5XCHMAMNHasLongSignal(); + bool isXCHMAMNHasSignal = XUSCHF5XCHMAMNHasLongSignal(); if (isXCHMAMNHasSignal) { // @@ -816,7 +827,7 @@ bool XAU5HasLongSignal( // // XCHMA Cycles Max - bool isXCHMAMXHasSignal = XAU5XCHMAMXHasLongSignal(); + bool isXCHMAMXHasSignal = XUSCHF5XCHMAMXHasLongSignal(); if (isXCHMAMXHasSignal) { // @@ -865,11 +876,11 @@ bool XAU5HasLongSignal( { // // Only Log Signals Time Market Conditions if is in Testing Mode ... - if (xAU5IsTestMode) + if (xUSCHF5IsTestMode || xUSCHF5EnableSignalAlerts) { // - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); - string message = xAU5Provider.GenerateConditionsString(mConditions); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + string message = xUSCHF5Provider.GenerateConditionsString(mConditions); // LogMessage( @@ -886,7 +897,7 @@ bool XAU5HasLongSignal( // // Check Market Conditions by Combination of Power of All tools for SHORTs ... -bool XAU5HasShortSignal( +bool XUSCHF5HasShortSignal( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -895,7 +906,7 @@ bool XAU5HasShortSignal( // // XTD ... - bool isXTDHasSignal = XAU5XTDHasShortSignal(); + bool isXTDHasSignal = XUSCHF5XTDHasShortSignal(); if (isXTDHasSignal) { // @@ -906,7 +917,7 @@ bool XAU5HasShortSignal( // // XTAM ... - bool isXTAMHasSignal = XAU5XTAMHasShortSignal(); + bool isXTAMHasSignal = XUSCHF5XTAMHasShortSignal(); if (isXTAMHasSignal) { // @@ -917,7 +928,7 @@ bool XAU5HasShortSignal( // // XSI ... - bool isXSIHasSignal = XAU5XSIHasShortSignal(); + bool isXSIHasSignal = XUSCHF5XSIHasShortSignal(); if (isXSIHasSignal) { // @@ -928,7 +939,7 @@ bool XAU5HasShortSignal( // // XTSFI ... - bool isXTSFIHasSignal = XAU5XTSFIHasShortSignal(); + bool isXTSFIHasSignal = XUSCHF5XTSFIHasShortSignal(); if (isXTSFIHasSignal) { // @@ -939,7 +950,7 @@ bool XAU5HasShortSignal( // // XOBD XLH ... - bool isXOBDLHHasSignal = XAU5XOBDLHHasShortSignal(); + bool isXOBDLHHasSignal = XUSCHF5XOBDLHHasShortSignal(); if (isXOBDLHHasSignal) { // @@ -950,7 +961,7 @@ bool XAU5HasShortSignal( // // XCHMA Cycles Cross ... - bool isXCHMACCHasSignal = XAU5XCHMACCHasShortSignal(); + bool isXCHMACCHasSignal = XUSCHF5XCHMACCHasShortSignal(); if (isXCHMACCHasSignal) { // @@ -961,7 +972,7 @@ bool XAU5HasShortSignal( // // XCHMA Cycles Min ... - bool isXCHMAMNHasSignal = XAU5XCHMAMNHasShortSignal(); + bool isXCHMAMNHasSignal = XUSCHF5XCHMAMNHasShortSignal(); if (isXCHMAMNHasSignal) { // @@ -972,7 +983,7 @@ bool XAU5HasShortSignal( // // XCHMA Cycles Max - bool isXCHMAMXHasSignal = XAU5XCHMAMXHasShortSignal(); + bool isXCHMAMXHasSignal = XUSCHF5XCHMAMXHasShortSignal(); if (isXCHMAMXHasSignal) { // @@ -1021,11 +1032,11 @@ bool XAU5HasShortSignal( { // // Only Log Signals Time Market Conditions if is in Testing Mode ... - if (xAU5IsTestMode) + if (xUSCHF5IsTestMode || xUSCHF5EnableSignalAlerts) { // - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); - string message = xAU5Provider.GenerateConditionsString(mConditions); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + string message = xUSCHF5Provider.GenerateConditionsString(mConditions); // LogMessage( @@ -1052,438 +1063,438 @@ bool XAU5HasShortSignal( // // Disbale All Signallers Longs ... -void XAU5DisableLongSignallers() +void XUSCHF5DisableLongSignallers() { // // XTD ... - if (xAU5MXTDEnableSignaller) + if (xUSCHF5MXTDEnableSignaller) { // - xAU5Provider.DisbaleXTDLongs(); - xAU5MXTDAllowLongSignals = false; + xUSCHF5Provider.DisbaleXTDLongs(); + xUSCHF5MXTDAllowLongSignals = false; } // // XTAM ... - if (xAU5MXTAMEnableSignaller) + if (xUSCHF5MXTAMEnableSignaller) { // - xAU5Provider.DisbaleXTAMLongs(); - xAU5MXTAMAllowLongSignals = false; + xUSCHF5Provider.DisbaleXTAMLongs(); + xUSCHF5MXTAMAllowLongSignals = false; } // // XSI ... - if (xAU5MXSIEnableSignaller) + if (xUSCHF5MXSIEnableSignaller) { // - xAU5Provider.DisbaleXSILongs(); - xAU5MXSIAllowLongSignals = false; + xUSCHF5Provider.DisbaleXSILongs(); + xUSCHF5MXSIAllowLongSignals = false; } // // XTSFI ... - if (xAU5MXTSFIEnableSignaller) + if (xUSCHF5MXTSFIEnableSignaller) { // - xAU5Provider.DisbaleXTSFILongs(); - xAU5MXTSFIAllowLongSignals = false; + xUSCHF5Provider.DisbaleXTSFILongs(); + xUSCHF5MXTSFIAllowLongSignals = false; } // // XOBDLH ... - if (xAU5MXOBDLHEnableSignaller) + if (xUSCHF5MXOBDLHEnableSignaller) { // - xAU5Provider.DisbaleXOBDLHLongs(); - xAU5MXOBDLHAllowLongSignals = false; + xUSCHF5Provider.DisbaleXOBDLHLongs(); + xUSCHF5MXOBDLHAllowLongSignals = false; } // // XCHMACC ... - if (xAU5MXCHMACCEnableSignaller) + if (xUSCHF5MXCHMACCEnableSignaller) { // - xAU5Provider.DisbaleXCHMACCLongs(); - xAU5MXCHMACCAllowLongSignals = false; + xUSCHF5Provider.DisbaleXCHMACCLongs(); + xUSCHF5MXCHMACCAllowLongSignals = false; } // // XCHMAMX ... - if (xAU5MXCHMAMXEnableSignaller) + if (xUSCHF5MXCHMAMXEnableSignaller) { // - xAU5Provider.DisbaleXCHMAMXLongs(); - xAU5MXCHMAMXAllowLongSignals = false; + xUSCHF5Provider.DisbaleXCHMAMXLongs(); + xUSCHF5MXCHMAMXAllowLongSignals = false; } // // XCHMAMN ... - if (xAU5MXCHMAMNEnableSignaller) + if (xUSCHF5MXCHMAMNEnableSignaller) { // - xAU5Provider.DisbaleXCHMAMNLongs(); - xAU5MXCHMAMNAllowLongSignals = false; + xUSCHF5Provider.DisbaleXCHMAMNLongs(); + xUSCHF5MXCHMAMNAllowLongSignals = false; } } // // Enable All Signallers Longs ... // Only if they are Configured as Enable at Settings ... -void XAU5EnableLongSignallers() +void XUSCHF5EnableLongSignallers() { // // XTD ... - if (xAU5MXTDEnableSignaller) + if (xUSCHF5MXTDEnableSignaller) { // - xAU5MXTDAllowLongSignals = - xAU5XTDAllowLongSignals + xUSCHF5MXTDAllowLongSignals = + xUSCHF5XTDAllowLongSignals ? true - : xAU5MXTDAllowLongSignals; + : xUSCHF5MXTDAllowLongSignals; // - if (xAU5MXTDAllowLongSignals) + if (xUSCHF5MXTDAllowLongSignals) { - xAU5Provider.EnableXTDLongs(); + xUSCHF5Provider.EnableXTDLongs(); } } // // XTAM ... - if (xAU5MXTAMEnableSignaller) + if (xUSCHF5MXTAMEnableSignaller) { // - xAU5MXTAMAllowLongSignals = - xAU5XTAMAllowLongSignals + xUSCHF5MXTAMAllowLongSignals = + xUSCHF5XTAMAllowLongSignals ? true - : xAU5MXTAMAllowLongSignals; + : xUSCHF5MXTAMAllowLongSignals; // - if (xAU5MXTAMAllowLongSignals) + if (xUSCHF5MXTAMAllowLongSignals) { - xAU5Provider.EnableXTAMLongs(); + xUSCHF5Provider.EnableXTAMLongs(); } } // // XSI ... - if (xAU5MXSIEnableSignaller) + if (xUSCHF5MXSIEnableSignaller) { // - xAU5MXSIAllowLongSignals = - xAU5XSIAllowLongSignals + xUSCHF5MXSIAllowLongSignals = + xUSCHF5XSIAllowLongSignals ? true - : xAU5MXSIAllowLongSignals; + : xUSCHF5MXSIAllowLongSignals; // - if (xAU5MXSIAllowLongSignals) + if (xUSCHF5MXSIAllowLongSignals) { - xAU5Provider.EnableXSILongs(); + xUSCHF5Provider.EnableXSILongs(); } } // // XTSFI ... - if (xAU5MXTSFIEnableSignaller) + if (xUSCHF5MXTSFIEnableSignaller) { // - xAU5MXTSFIAllowLongSignals = - xAU5XTSFIAllowLongSignals + xUSCHF5MXTSFIAllowLongSignals = + xUSCHF5XTSFIAllowLongSignals ? true - : xAU5MXTSFIAllowLongSignals; + : xUSCHF5MXTSFIAllowLongSignals; // - if (xAU5MXTSFIAllowLongSignals) + if (xUSCHF5MXTSFIAllowLongSignals) { - xAU5Provider.EnableXTSFILongs(); + xUSCHF5Provider.EnableXTSFILongs(); } } // // XOBDLH ... - if (xAU5MXOBDLHEnableSignaller) + if (xUSCHF5MXOBDLHEnableSignaller) { // - xAU5MXOBDLHAllowLongSignals = - xAU5XOBDLHAllowLongSignals + xUSCHF5MXOBDLHAllowLongSignals = + xUSCHF5XOBDLHAllowLongSignals ? true - : xAU5MXOBDLHAllowLongSignals; + : xUSCHF5MXOBDLHAllowLongSignals; // - if (xAU5MXOBDLHAllowLongSignals) + if (xUSCHF5MXOBDLHAllowLongSignals) { - xAU5Provider.EnableXOBDLHLongs(); + xUSCHF5Provider.EnableXOBDLHLongs(); } } // // XCHMACC ... - if (xAU5MXCHMACCEnableSignaller) + if (xUSCHF5MXCHMACCEnableSignaller) { // - xAU5MXCHMACCAllowLongSignals = - xAU5XCHMACCAllowLongSignals + xUSCHF5MXCHMACCAllowLongSignals = + xUSCHF5XCHMACCAllowLongSignals ? true - : xAU5MXCHMACCAllowLongSignals; + : xUSCHF5MXCHMACCAllowLongSignals; // - if (xAU5MXCHMACCAllowLongSignals) + if (xUSCHF5MXCHMACCAllowLongSignals) { - xAU5Provider.EnableXCHMACCLongs(); + xUSCHF5Provider.EnableXCHMACCLongs(); } } // // XCHMAMX ... - if (xAU5MXCHMAMXEnableSignaller) + if (xUSCHF5MXCHMAMXEnableSignaller) { // - xAU5MXCHMAMXAllowLongSignals = - xAU5XCHMAMXAllowLongSignals + xUSCHF5MXCHMAMXAllowLongSignals = + xUSCHF5XCHMAMXAllowLongSignals ? true - : xAU5MXCHMAMXAllowLongSignals; + : xUSCHF5MXCHMAMXAllowLongSignals; // - if (xAU5MXCHMAMXAllowLongSignals) + if (xUSCHF5MXCHMAMXAllowLongSignals) { - xAU5Provider.EnableXCHMAMXLongs(); + xUSCHF5Provider.EnableXCHMAMXLongs(); } } // // XCHMAMN ... - if (xAU5MXCHMAMNEnableSignaller) + if (xUSCHF5MXCHMAMNEnableSignaller) { // - xAU5MXCHMAMNAllowLongSignals = - xAU5XCHMAMNAllowLongSignals + xUSCHF5MXCHMAMNAllowLongSignals = + xUSCHF5XCHMAMNAllowLongSignals ? true - : xAU5MXCHMAMNAllowLongSignals; + : xUSCHF5MXCHMAMNAllowLongSignals; // - if (xAU5MXCHMAMNAllowLongSignals) + if (xUSCHF5MXCHMAMNAllowLongSignals) { - xAU5Provider.EnableXCHMAMNLongs(); + xUSCHF5Provider.EnableXCHMAMNLongs(); } } } // // Disable All Signallers Shorts ... -void XAU5DisableShortSignallers() +void XUSCHF5DisableShortSignallers() { // // XTD ... - if (xAU5MXTDEnableSignaller) + if (xUSCHF5MXTDEnableSignaller) { // - xAU5Provider.DisableXTDShorts(); - xAU5MXTDAllowShortSignals = false; + xUSCHF5Provider.DisableXTDShorts(); + xUSCHF5MXTDAllowShortSignals = false; } // // XTAM ... - if (xAU5MXTAMEnableSignaller) + if (xUSCHF5MXTAMEnableSignaller) { // - xAU5Provider.DisableXTAMShorts(); - xAU5MXTAMAllowShortSignals = false; + xUSCHF5Provider.DisableXTAMShorts(); + xUSCHF5MXTAMAllowShortSignals = false; } // // XSI ... - if (xAU5MXSIEnableSignaller) + if (xUSCHF5MXSIEnableSignaller) { // - xAU5Provider.DisableXSIShorts(); - xAU5MXSIAllowShortSignals = false; + xUSCHF5Provider.DisableXSIShorts(); + xUSCHF5MXSIAllowShortSignals = false; } // // XTSFI ... - if (xAU5MXTSFIEnableSignaller) + if (xUSCHF5MXTSFIEnableSignaller) { // - xAU5Provider.DisableXTSFIShorts(); - xAU5MXTSFIAllowShortSignals = false; + xUSCHF5Provider.DisableXTSFIShorts(); + xUSCHF5MXTSFIAllowShortSignals = false; } // // XOBDLH ... - if (xAU5MXOBDLHEnableSignaller) + if (xUSCHF5MXOBDLHEnableSignaller) { // - xAU5Provider.DisableXOBDLHShorts(); - xAU5MXOBDLHAllowShortSignals = false; + xUSCHF5Provider.DisableXOBDLHShorts(); + xUSCHF5MXOBDLHAllowShortSignals = false; } // // XCHMACC ... - if (xAU5MXCHMACCEnableSignaller) + if (xUSCHF5MXCHMACCEnableSignaller) { // - xAU5Provider.DisableXCHMACCShorts(); - xAU5MXCHMACCAllowShortSignals = false; + xUSCHF5Provider.DisableXCHMACCShorts(); + xUSCHF5MXCHMACCAllowShortSignals = false; } // // XCHMAMX ... - if (xAU5MXCHMAMXEnableSignaller) + if (xUSCHF5MXCHMAMXEnableSignaller) { // - xAU5Provider.DisableXCHMAMXShorts(); - xAU5MXCHMAMXAllowShortSignals = false; + xUSCHF5Provider.DisableXCHMAMXShorts(); + xUSCHF5MXCHMAMXAllowShortSignals = false; } // // XCHMAMN ... - if (xAU5MXCHMAMNEnableSignaller) + if (xUSCHF5MXCHMAMNEnableSignaller) { // - xAU5Provider.DisableXCHMAMNShorts(); - xAU5MXCHMAMNAllowShortSignals = false; + xUSCHF5Provider.DisableXCHMAMNShorts(); + xUSCHF5MXCHMAMNAllowShortSignals = false; } } // // Enable All Signallers Shorts ... // Only if they are Configured as Enable at Settings ... -void XAU5EnableShortSignallers() +void XUSCHF5EnableShortSignallers() { // // XTD ... - if (xAU5MXTDEnableSignaller) + if (xUSCHF5MXTDEnableSignaller) { // - xAU5MXTDAllowShortSignals = - xAU5XTDAllowShortSignals + xUSCHF5MXTDAllowShortSignals = + xUSCHF5XTDAllowShortSignals ? true - : xAU5MXTDAllowShortSignals; + : xUSCHF5MXTDAllowShortSignals; // - if (xAU5MXTDAllowShortSignals) + if (xUSCHF5MXTDAllowShortSignals) { - xAU5Provider.EnableXTDShorts(); + xUSCHF5Provider.EnableXTDShorts(); } } // // XTAM ... - if (xAU5MXTAMEnableSignaller) + if (xUSCHF5MXTAMEnableSignaller) { // - xAU5MXTAMAllowShortSignals = - xAU5XTAMAllowShortSignals + xUSCHF5MXTAMAllowShortSignals = + xUSCHF5XTAMAllowShortSignals ? true - : xAU5MXTAMAllowShortSignals; + : xUSCHF5MXTAMAllowShortSignals; // - if (xAU5MXTAMAllowShortSignals) + if (xUSCHF5MXTAMAllowShortSignals) { - xAU5Provider.EnableXTAMShorts(); + xUSCHF5Provider.EnableXTAMShorts(); } } // // XSI ... - if (xAU5MXSIEnableSignaller) + if (xUSCHF5MXSIEnableSignaller) { // - xAU5MXSIAllowShortSignals = - xAU5XSIAllowShortSignals + xUSCHF5MXSIAllowShortSignals = + xUSCHF5XSIAllowShortSignals ? true - : xAU5MXSIAllowShortSignals; + : xUSCHF5MXSIAllowShortSignals; // - if (xAU5MXSIAllowShortSignals) + if (xUSCHF5MXSIAllowShortSignals) { - xAU5Provider.EnableXSIShorts(); + xUSCHF5Provider.EnableXSIShorts(); } } // // XTSFI ... - if (xAU5MXTSFIEnableSignaller) + if (xUSCHF5MXTSFIEnableSignaller) { // - xAU5MXTSFIAllowShortSignals = - xAU5XTSFIAllowShortSignals + xUSCHF5MXTSFIAllowShortSignals = + xUSCHF5XTSFIAllowShortSignals ? true - : xAU5MXTSFIAllowShortSignals; + : xUSCHF5MXTSFIAllowShortSignals; // - if (xAU5MXTSFIAllowShortSignals) + if (xUSCHF5MXTSFIAllowShortSignals) { - xAU5Provider.EnableXTSFIShorts(); + xUSCHF5Provider.EnableXTSFIShorts(); } } // // XOBDLH ... - if (xAU5MXOBDLHEnableSignaller) + if (xUSCHF5MXOBDLHEnableSignaller) { // - xAU5MXOBDLHAllowShortSignals = - xAU5XOBDLHAllowShortSignals + xUSCHF5MXOBDLHAllowShortSignals = + xUSCHF5XOBDLHAllowShortSignals ? true - : xAU5MXOBDLHAllowShortSignals; + : xUSCHF5MXOBDLHAllowShortSignals; // - if (xAU5MXOBDLHAllowShortSignals) + if (xUSCHF5MXOBDLHAllowShortSignals) { - xAU5Provider.EnableXOBDLHShorts(); + xUSCHF5Provider.EnableXOBDLHShorts(); } } // // XCHMACC ... - if (xAU5MXCHMACCEnableSignaller) + if (xUSCHF5MXCHMACCEnableSignaller) { // - xAU5MXCHMACCAllowShortSignals = - xAU5XCHMACCAllowShortSignals + xUSCHF5MXCHMACCAllowShortSignals = + xUSCHF5XCHMACCAllowShortSignals ? true - : xAU5MXCHMACCAllowShortSignals; + : xUSCHF5MXCHMACCAllowShortSignals; // - if (xAU5MXCHMACCAllowShortSignals) + if (xUSCHF5MXCHMACCAllowShortSignals) { - xAU5Provider.EnableXCHMACCShorts(); + xUSCHF5Provider.EnableXCHMACCShorts(); } } // // XCHMAMX ... - if (xAU5MXCHMAMXEnableSignaller) + if (xUSCHF5MXCHMAMXEnableSignaller) { // - xAU5MXCHMAMXAllowShortSignals = - xAU5XCHMAMXAllowShortSignals + xUSCHF5MXCHMAMXAllowShortSignals = + xUSCHF5XCHMAMXAllowShortSignals ? true - : xAU5MXCHMAMXAllowShortSignals; + : xUSCHF5MXCHMAMXAllowShortSignals; // - if (xAU5MXCHMAMXAllowShortSignals) + if (xUSCHF5MXCHMAMXAllowShortSignals) { - xAU5Provider.EnableXCHMAMXShorts(); + xUSCHF5Provider.EnableXCHMAMXShorts(); } } // // XCHMAMN ... - if (xAU5MXCHMAMNEnableSignaller) + if (xUSCHF5MXCHMAMNEnableSignaller) { // - xAU5MXCHMAMNAllowShortSignals = - xAU5XCHMAMNAllowShortSignals + xUSCHF5MXCHMAMNAllowShortSignals = + xUSCHF5XCHMAMNAllowShortSignals ? true - : xAU5MXCHMAMNAllowShortSignals; + : xUSCHF5MXCHMAMNAllowShortSignals; // - if (xAU5MXCHMAMNAllowShortSignals) + if (xUSCHF5MXCHMAMNAllowShortSignals) { - xAU5Provider.EnableXCHMAMNShorts(); + xUSCHF5Provider.EnableXCHMAMNShorts(); } } } @@ -1494,29 +1505,29 @@ void XAU5EnableShortSignallers() // // XTD Long Signal Checking ... -bool XAU5XTDHasLongSignal() +bool XUSCHF5XTDHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXTDEnableSignaller || - !xAU5MXTDAllowLongSignals) + if (!xUSCHF5MXTDEnableSignaller || + !xUSCHF5MXTDAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XTDHasLongConditions() + xUSCHF5Provider.XTDHasLongConditions() // && // @@ -1547,16 +1558,26 @@ bool XAU5XTDHasLongSignal() mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMAMCTrendsUp) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && - mConditions.isXTMStartBullish && - mConditions.isXTDBullOverBear && - mConditions.isXAMAStartBullish) + (mConditions.isXCHMAMCTrendsUp && + ( + // + mConditions.isXCHMAMCVale + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + ) + // + ) // ) // @@ -1569,11 +1590,104 @@ bool XAU5XTDHasLongSignal() mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && - mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish && - mConditions.isXTDSignalCrossedOverBear) + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + ((mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTDBearishVale && + mConditions.isXLHLLIncreased) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXLHLLIncreased && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + (mConditions.isXCHMALCTrendsDown && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXCHMASCCrossedOverMin && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + ((mConditions.isXTMEndBullish && + mConditions.isXAMAEndBullish) && + ( + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTDBearishVale && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedUnderFarest) + // + ) + // + ) + // + || + // + ((mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + (mConditions.isXTMEndBullish && + mConditions.isXAMAEndBullish) + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXLHLLIncreased && + mConditions.isXTSCurrentCrossedOverFarest) + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) + // + ) + // + ) + // + ) + // + ) // ) // @@ -1592,35 +1706,53 @@ bool XAU5XTDHasLongSignal() !mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale && - mConditions.isXLHLLDecreased && - mConditions.isXCHMAMCTrendsDown && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown) - // - || // (mConditions.isXCHMAMCVale && mConditions.isXCHMAMCTrendsUp) // || // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXAMANeutural) + ((mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) && + ( + // + (mConditions.isXTSCurrentMax && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + !mConditions.isXCHMAMCTrendsUp && + !mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXCHMAMCVale && + mConditions.isXTMEndBullish && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXLHLLDecreased && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCUnderMin && + mConditions.isXTDSignalCrossedOverBear) // ) // @@ -1639,25 +1771,7 @@ bool XAU5XTDHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXFIOverZero && - mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - ) + false) // ) // @@ -1702,96 +1816,49 @@ bool XAU5XTDHasLongSignal() mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMAMCTrendsUp) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXTDBearishVale && - mConditions.isXLHPriceCrossedUnderSignal) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMALCTrendsDown) - // - || - // - // Check if LC Fast Over Slow .. - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && + (mConditions.isXCHMAMCTrendsUp && ( // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown) + mConditions.isXCHMAMCVale + // + || + // + (mConditions.isXTSAllSame && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDSignalCrossedOverBear) // ) // ) // - ) - // - ) - // - || - // - // Check if LC Fast Over Slow .. - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( + || // (mConditions.isXCHMALCPeak && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHMAMCTrendsDown) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMAMCTrendsDown) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXTSCurrentMax && - mConditions.isXAMAStartBullish && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale) + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) // || // - (mConditions.isXCHMALCVale && - mConditions.isXCHMALCTrendsUp) - // - || - // - (mConditions.isXAMABearish && + (mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale && + mConditions.isXTDBearishVale && mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest) + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale && + mConditions.isXTDBearishVale && + mConditions.isXCHMASCUnderMin && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXTSCurrentCrossedUnderMediest) // ) // @@ -1817,30 +1884,16 @@ bool XAU5XTDHasLongSignal() ( // (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale) + mConditions.isXCHMAMCTrendsUp) // || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMAMCTrendsUp) - // - ) - // - ) - // - || - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && + mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax && - mConditions.isXLHLLIncreased && - mConditions.isXTDBullOverBear && + mConditions.isXCHMASCUnderMin && mConditions.isXTDSignalCrossedOverBear) // ) @@ -1894,10 +1947,6 @@ bool XAU5XTDHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // - mConditions.isXRSICrossedOverLongExit - // - || - // // XTD Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... @@ -1906,52 +1955,22 @@ bool XAU5XTDHasLongSignal() // ( // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - ((mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown) && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXCHMASCCrossedOverMax) - // - || - // - ((mConditions.isXTSCurrentUnderNearest || - mConditions.isXTSCurrentCrossedUnderNearest) && - (mConditions.isXTSCurrentUnderMediest || - mConditions.isXTSCurrentCrossedUnderMediest)) - // - ) - // - ) - // - ) - // - ) - // - || - // - // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXLHHHIncreased && - mConditions.isXTSCurrentUnderMediest) + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) // || // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCTrendsUp) + (mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXAMAStartBullish && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXLHPriceCrossedOverSignal) // ) // @@ -1964,31 +1983,184 @@ bool XAU5XTDHasLongSignal() mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMALCVale && - mConditions.isXTDBearishVale && - mConditions.isXTSCurrentUnderNearest) + mConditions.isXRSICrossedOverLongExit // || // - ((mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale) && + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && ( // - (mConditions.isXFIUnderZero && - mConditions.isXTSCurrentUnderMediest) + ((mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + mConditions.isXTSCurrentCrossedOverNearest + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXLHLLIncreased) + // + || + // + (mConditions.isXTDBearishVale && + mConditions.isXTDBullOverBear && + mConditions.isXCHMASCCrossedOverMin) + // + ) + // + ) // || // - (mConditions.isXTSCurrentUnderNearest && + (mConditions.isXTDSignalCrossedOverBear && + ( + // + (mConditions.isXCHMAMCPeak && + ( + // + (mConditions.isXCHMALCTrendsDown && + mConditions.isXTSCurrentUnderNearest) + // + || + // + (mConditions.isXTSCurrentMax && + ( + // + (mConditions.isXCHLHSameHHs && + mConditions.isXCHMASCOverMax && + mConditions.isXTSCurrentOverFarest) + // + || + // + (!mConditions.isXCHMASCTrendsUp && + !mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastOverSlow) + // + || + // + (mConditions.isXCHLHMCLCHHSame && + ( + // + mConditions.isXTDBearishVale + // + || + // + mConditions.isXCHLHMCLCLLSame + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXTMEndBullish) && + ( + // + (mConditions.isXCHMAMCPeak && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentUnderNearest && mConditions.isXTDSignalCrossedOverBear) // + ) + // + ) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + ((mConditions.isXTSCurrentMax && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + ((mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentCrossedOverNearest) && + ( + // + (mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMASCCrossedOverMax) + // + || + // + (mConditions.isXTDBearishVale && + mConditions.isXCHMASCOverMax && + mConditions.isXCHMASCCrossedOverMax) + // + || + // + (mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverMediest) + // + ) + // + ) + // || // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentMax && - mConditions.isXFICrossedOverZero && - mConditions.isXTDSignalCrossedOverBear) + (mConditions.isXLHLLDecreased && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXLHPriceCrossedOverSignal) // ) // @@ -2011,64 +2183,68 @@ bool XAU5XTDHasLongSignal() !mConditions.isXLHHHSameInLength) && // ( - // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown) - // - || - // - (mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentUnderNearest) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHMALCPeak && - mConditions.isXCHLHSameHHs && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - (mConditions.isXTSAllSame && - mConditions.isXLHHHIncreased) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXLHHighAttachedHH) - // - ) - // - ) - // - ) - // - ) - // - || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - (mConditions.isXAMAEndBullish && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMAMCTrendsUp) + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXTSCurrentMax && + ( + // + (mConditions.isXCHLHSameHHs && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXCHLHSCMCHHSame && + ( + // + (mConditions.isXCHLHMCLCLLSame && + mConditions.isXLHHighAttachedHH && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) && + ( + // + (mConditions.isXLHHighAttachedHH && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXLHLLIncreased && + mConditions.isXCHLHSCMCHHSame) + // + ) + // + ) + // + ) + // + ) // || // - (mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXLHHighAttachedHH && - mConditions.isXTDSignalCrossedOverBear) + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsDown) // ) // @@ -2081,69 +2257,32 @@ bool XAU5XTDHasLongSignal() mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale && - mConditions.isXLHHighAttachedHH) + mConditions.isXRSICrossedOverLongExit // || // ((mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCHHSame) && + mConditions.isXAMABullish) && ( // - (mConditions.isXFIOverZero && - mConditions.isXLHLLDecreased) - // - || - // - (mConditions.isXCHLHMCLCLLSame && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale) && - ( - // - ((mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) && + ((mConditions.isXCHMAMCPeak && + mConditions.isXLHHighAttachedHH) && ( // - ((mConditions.isXTDBullOverBear && + ((mConditions.isXTSCurrentMax && mConditions.isXTDSignalCrossedOverBear) && ( // - mConditions.isXFICrossedOverZero + mConditions.isXCHLHSCMCHHSame // || // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - mConditions.isXFIOverZero - // - || - // - mConditions.isXCHLHMCLCLLSame - // - || - (mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) + (mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTSCurrentCrossedOverNearest) // ) // @@ -2151,8 +2290,11 @@ bool XAU5XTDHasLongSignal() // || // - (mConditions.isXTSCurrentCrossedOverFarest && - mConditions.isXTSCurrentCrossedOverNearest) + (mConditions.isXCHMALCVale && + mConditions.isXCHLHSameHHs && + mConditions.isXTDBearishVale && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) // ) // @@ -2160,18 +2302,40 @@ bool XAU5XTDHasLongSignal() // || // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTSCurrentMax && - mConditions.isXLHHHDecreased && - mConditions.isXTDSignalCrossedOverBear) + ((mConditions.isXLHLLIncreased && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentUnderNearest) && + ( + // + mConditions.isXTSCurrentCrossedUnderNearest + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale) + // + ) + // + ) // || // - (mConditions.isXTSAllSame && - mConditions.isXTMNeutural && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear) + ((mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTDBullOverBear) + // + || + // + (mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCCrossedOverMin) + // + ) + // + ) // ) // @@ -2183,29 +2347,26 @@ bool XAU5XTDHasLongSignal() mConditions.isXAMABullish && mConditions.isXTSCurrentMax && mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH && mConditions.isXTDSignalCrossedOverBear) && ( // - mConditions.isXCHLHMCLCLLSame + (mConditions.isXLHHighAttachedHH && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMASCCrossedOverMax) // || // (mConditions.isXCHMAMCPeak && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTDBullOverBear) - // - || - // - (mConditions.isXCHMASCOverMin && - mConditions.isXCHMASCUnderMax && - mConditions.isXCHMALCTrendsDown) - // - ) - // - ) + mConditions.isXCHMASCOverMax && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMAMCFastOverSlow) + // + || + // + (mConditions.isXCHMASCOverMax && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) // ) // @@ -2213,12 +2374,14 @@ bool XAU5XTDHasLongSignal() // || // - (mConditions.isXCHMALCVale && - mConditions.isXTMStartBullish && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXAMAStartBullish && - mConditions.isXLHHighAttachedHH && - mConditions.isXFICrossedOverZero) + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) // ) // @@ -2237,32 +2400,123 @@ bool XAU5XTDHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest) - // - || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - ((mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale) && + mConditions.isXRSICrossedOverLongExit + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXTSCurrentCrossedUnderMediest) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXLHPriceCrossedOverSignal) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && ( // - (mConditions.isXFIUnderZero && - mConditions.isXTMEndBullish && - mConditions.isXTSCurrentUnderFarest) + (mConditions.isXCHMAMCPeak && + mConditions.isXTDBearishVale && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + ((mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest) && + ( + // + (mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + mConditions.isXTSCurrentUnderMediest + // + || + // + (mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXTSCurrentMax && + ( + // + (mConditions.isXTDBearishVale && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + (mConditions.isXLHLLIncreased && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXTDBullOverBear && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) + // + ) + // + ) // ) // ) // + || + // + (mConditions.isXTMBullish && + mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMax && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMASCCrossedOverMin && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverNearest) + // ) // ) @@ -2280,46 +2534,40 @@ bool XAU5XTDHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHMALCPeak && - mConditions.isXCHLHSameLLs && - mConditions.isXTSCurrentMax && - mConditions.isXLHHighAttachedHH && - (mConditions.isXTDBullOverBear || - mConditions.isXTDSignalCrossedOverBear)) - // - ) - // - ) - // - || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHMAMCPeak && - mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXLHHighAttachedHH) + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + ((mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + (mConditions.isXLHLLIncreased && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) + // + ) + // + ) // ) // @@ -2356,7 +2604,38 @@ bool XAU5XTDHasLongSignal() mConditions.isXLHHHSameInLength) && // ( - false) + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + ) + // + ) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverMediest) + // + ) // ) // @@ -2415,29 +2694,29 @@ bool XAU5XTDHasLongSignal() // // XTD Short Signal Checking ... -bool XAU5XTDHasShortSignal() +bool XUSCHF5XTDHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXTDEnableSignaller || - !xAU5MXTDAllowShortSignals) + if (!xUSCHF5MXTDEnableSignaller || + !xUSCHF5MXTDAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XTDHasShortConditions() + xUSCHF5Provider.XTDHasShortConditions() // && // @@ -2462,66 +2741,7 @@ bool XAU5XTDHasShortSignal() mConditions.isXLHHHSameInLength) && // ( - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXAMAEndBullish && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCTrendsUp) - // - ) - // - ) - // - || - // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMALCVale && - ( - // - mConditions.isXCHMALCTrendsDown - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -2534,26 +2754,7 @@ bool XAU5XTDHasShortSignal() !mConditions.isXLHHHSameInLength) && // ( - // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp) - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest) - // - ) - // - ) - // - ) + false) // ) // @@ -2566,23 +2767,7 @@ bool XAU5XTDHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHLHSameLLs && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXLHLowAttachedLL) - // - ) - // - ) - // - ) + false) // ) // @@ -2621,64 +2806,7 @@ bool XAU5XTDHasShortSignal() mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTDBullOverBear && - mConditions.isXCHMASCTrendsDown && - mConditions.isXTSCurrentOverNearest && - mConditions.isXCHMASCFastCrossedUnderSlow) - // - || - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverNearest) - // - || - // - (mConditions.isXTMEndBearish && - mConditions.isXAMAEndBearish && - mConditions.isXTSCurrentOverNearest) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear && - mConditions.isXTMStartBearish && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXAMAStartBearish && - mConditions.isXCHMAMCTrendsDown) - // - ) - // - ) - // - || - // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTDBullOverBear && - mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - ) + false) // ) // @@ -2704,34 +2832,7 @@ bool XAU5XTDHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - ((mConditions.isXCHMALCVale && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXAMAStartBearish) && - ( - // - mConditions.isXTSCurrentOverFarest - // - || - // - (mConditions.isXTSCurrentMin && - mConditions.isXCHMALCTrendsUp) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -2772,21 +2873,7 @@ bool XAU5XTDHasShortSignal() mConditions.isXLHHHSameInLength) && // ( - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentOverFarest) - // - ) - // - ) // - ) + false) // ) // @@ -2799,22 +2886,7 @@ bool XAU5XTDHasShortSignal() !mConditions.isXLHHHSameInLength) && // ( - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - ) + false) // ) // @@ -2827,28 +2899,7 @@ bool XAU5XTDHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMin && - mConditions.isXLHHHIncreased && - mConditions.isXTDBullOverBear && - mConditions.isXCHMALCTrendsDown) - // - ) - // - ) - // - ) + false) // ) // @@ -2951,29 +3002,29 @@ bool XAU5XTDHasShortSignal() // // XTAM Long Signal Checking ... -bool XAU5XTAMHasLongSignal() +bool XUSCHF5XTAMHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXTAMEnableSignaller || - !xAU5MXTAMAllowLongSignals) + if (!xUSCHF5MXTAMEnableSignaller || + !xUSCHF5MXTAMAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XTAMHasLongConditions() + xUSCHF5Provider.XTAMHasLongConditions() // && // @@ -3259,29 +3310,29 @@ bool XAU5XTAMHasLongSignal() // // XTAM Short Signal Checking ... -bool XAU5XTAMHasShortSignal() +bool XUSCHF5XTAMHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXTAMEnableSignaller || - !xAU5MXTAMAllowShortSignals) + if (!xUSCHF5MXTAMEnableSignaller || + !xUSCHF5MXTAMAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XTAMHasShortConditions() + xUSCHF5Provider.XTAMHasShortConditions() // && // @@ -3567,29 +3618,29 @@ bool XAU5XTAMHasShortSignal() // // XSI Long Signal Checking ... -bool XAU5XSIHasLongSignal() +bool XUSCHF5XSIHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXSIEnableSignaller || - !xAU5MXSIAllowLongSignals) + if (!xUSCHF5MXSIEnableSignaller || + !xUSCHF5MXSIAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XSIHasLongConditions() + xUSCHF5Provider.XSIHasLongConditions() // && // @@ -3875,29 +3926,29 @@ bool XAU5XSIHasLongSignal() // // XSI Short Signal Checking ... -bool XAU5XSIHasShortSignal() +bool XUSCHF5XSIHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXSIEnableSignaller || - !xAU5MXSIAllowShortSignals) + if (!xUSCHF5MXSIEnableSignaller || + !xUSCHF5MXSIAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XSIHasShortConditions() + xUSCHF5Provider.XSIHasShortConditions() // && // @@ -4183,29 +4234,29 @@ bool XAU5XSIHasShortSignal() // // XTSFI Long Signal Checking ... -bool XAU5XTSFIHasLongSignal() +bool XUSCHF5XTSFIHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXTSFIEnableSignaller || - !xAU5MXTSFIAllowLongSignals) + if (!xUSCHF5MXTSFIEnableSignaller || + !xUSCHF5MXTSFIAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XTSFIHasLongConditions() + xUSCHF5Provider.XTSFIHasLongConditions() // && // @@ -4491,29 +4542,29 @@ bool XAU5XTSFIHasLongSignal() // // XTSFI Short Signal Checking ... -bool XAU5XTSFIHasShortSignal() +bool XUSCHF5XTSFIHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXTSFIEnableSignaller || - !xAU5MXTSFIAllowShortSignals) + if (!xUSCHF5MXTSFIEnableSignaller || + !xUSCHF5MXTSFIAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XTSFIHasShortConditions() + xUSCHF5Provider.XTSFIHasShortConditions() // && // @@ -4799,29 +4850,29 @@ bool XAU5XTSFIHasShortSignal() // // XOBDLH Long Signal Checking ... -bool XAU5XOBDLHHasLongSignal() +bool XUSCHF5XOBDLHHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXOBDLHEnableSignaller || - !xAU5MXOBDLHAllowLongSignals) + if (!xUSCHF5MXOBDLHEnableSignaller || + !xUSCHF5MXOBDLHAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XOBDLHHasLongConditions() + xUSCHF5Provider.XOBDLHHasLongConditions() // && // @@ -5107,29 +5158,29 @@ bool XAU5XOBDLHHasLongSignal() // // XOBDLH Short Signal Checking ... -bool XAU5XOBDLHHasShortSignal() +bool XUSCHF5XOBDLHHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXOBDLHEnableSignaller || - !xAU5MXOBDLHAllowShortSignals) + if (!xUSCHF5MXOBDLHEnableSignaller || + !xUSCHF5MXOBDLHAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XOBDLHHasShortConditions() + xUSCHF5Provider.XOBDLHHasShortConditions() // && // @@ -5415,29 +5466,29 @@ bool XAU5XOBDLHHasShortSignal() // // XCHMACC Long Signal Checking ... -bool XAU5XCHMACCHasLongSignal() +bool XUSCHF5XCHMACCHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXCHMACCEnableSignaller || - !xAU5MXCHMACCAllowLongSignals) + if (!xUSCHF5MXCHMACCEnableSignaller || + !xUSCHF5MXCHMACCAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XCHMACCHasLongConditions() + xUSCHF5Provider.XCHMACCHasLongConditions() // && // @@ -5723,29 +5774,29 @@ bool XAU5XCHMACCHasLongSignal() // // XCHMACC Short Signal Checking ... -bool XAU5XCHMACCHasShortSignal() +bool XUSCHF5XCHMACCHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXCHMACCEnableSignaller || - !xAU5MXCHMACCAllowShortSignals) + if (!xUSCHF5MXCHMACCEnableSignaller || + !xUSCHF5MXCHMACCAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XCHMACCHasShortConditions() + xUSCHF5Provider.XCHMACCHasShortConditions() // && // @@ -6031,29 +6082,29 @@ bool XAU5XCHMACCHasShortSignal() // // XCHMAMN Long Signal Checking ... -bool XAU5XCHMAMNHasLongSignal() +bool XUSCHF5XCHMAMNHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXCHMAMNEnableSignaller || - !xAU5MXCHMAMNAllowLongSignals) + if (!xUSCHF5MXCHMAMNEnableSignaller || + !xUSCHF5MXCHMAMNAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XCHMAMNHasLongConditions() + xUSCHF5Provider.XCHMAMNHasLongConditions() // && // @@ -6339,29 +6390,29 @@ bool XAU5XCHMAMNHasLongSignal() // // XCHMAMN Short Signal Checking ... -bool XAU5XCHMAMNHasShortSignal() +bool XUSCHF5XCHMAMNHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXCHMAMNEnableSignaller || - !xAU5MXCHMAMNAllowShortSignals) + if (!xUSCHF5MXCHMAMNEnableSignaller || + !xUSCHF5MXCHMAMNAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XCHMAMNHasShortConditions() + xUSCHF5Provider.XCHMAMNHasShortConditions() // && // @@ -6647,29 +6698,29 @@ bool XAU5XCHMAMNHasShortSignal() // // XCHMAMX Long Signal Checking ... -bool XAU5XCHMAMXHasLongSignal() +bool XUSCHF5XCHMAMXHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXCHMAMXEnableSignaller || - !xAU5MXCHMAMXAllowLongSignals) + if (!xUSCHF5MXCHMAMXEnableSignaller || + !xUSCHF5MXCHMAMXAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XCHMAMXHasLongConditions() + xUSCHF5Provider.XCHMAMXHasLongConditions() // && // @@ -6955,29 +7006,29 @@ bool XAU5XCHMAMXHasLongSignal() // // XCHMAMX Short Signal Checking ... -bool XAU5XCHMAMXHasShortSignal() +bool XUSCHF5XCHMAMXHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xAU5MXCHMAMXEnableSignaller || - !xAU5MXCHMAMXAllowShortSignals) + if (!xUSCHF5MXCHMAMXEnableSignaller || + !xUSCHF5MXCHMAMXAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xAU5Provider.XCHMAMXHasShortConditions() + xUSCHF5Provider.XCHMAMXHasShortConditions() // && // diff --git a/Projects/XUSCHF5/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 b/Projects/XUSCHF5/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 index 3d4e5115..bb8a85ab 100644 --- a/Projects/XUSCHF5/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 +++ b/Projects/XUSCHF5/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 @@ -1771,7 +1771,25 @@ bool XUSCHF5XTDHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXCHMASCCrossedOverMin) + // + ) + // + ) + // + ) // ) // @@ -2071,11 +2089,22 @@ bool XUSCHF5XTDHasLongSignal() // || // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) + ((mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentOverFarest) && + ( + // + mConditions.isXTSCurrentOverNearest + // + || + // + (mConditions.isXCHMASCCrossedOverMax && + mConditions.isXLHPriceCrossedOverSignal) + // + ) + // + ) // ) // @@ -2448,6 +2477,17 @@ bool XUSCHF5XTDHasLongSignal() // ) // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXLHHHDecreased && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest) + // ) // ) diff --git a/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 b/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 index 3d4e5115..bb8a85ab 100644 --- a/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 +++ b/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 @@ -1771,7 +1771,25 @@ bool XUSCHF5XTDHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXCHMASCCrossedOverMin) + // + ) + // + ) + // + ) // ) // @@ -2071,11 +2089,22 @@ bool XUSCHF5XTDHasLongSignal() // || // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) + ((mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentOverFarest) && + ( + // + mConditions.isXTSCurrentOverNearest + // + || + // + (mConditions.isXCHMASCCrossedOverMax && + mConditions.isXLHPriceCrossedOverSignal) + // + ) + // + ) // ) // @@ -2448,6 +2477,17 @@ bool XUSCHF5XTDHasLongSignal() // ) // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXLHHHDecreased && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest) + // ) // )