/////////////////////////////////////////////////////////////////// // // SaherElm IT Center MQL5 XAU5 Signal Provider Indicators Library // ---------------------------------------------------------------- // // Maintainer: // ------------ // Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com) // ////////////////////////////////////////////////////// // // Global Properties ... #property library #property copyright "Copyright 2023, SaherElm IT Center" #property link "https://www.saherelm.ir" #property version "1.00" #property strict // // Include Provider Inputs ... #include "x-saherelm.xau5.provider.inputs.lib.mq5" // // Include Provider Class ... #include "../Classes/x-saherelm.provider.lib.mq5" // // Signallers ... input group "XAU5 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 // // 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 // // 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 // // 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 // // 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 // // 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 // // 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 // // 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 // bool xAU5IsTestMode = true; int xAU5MaxLengthOfInputs = 0; int xAU5CalculatedBars = 0; // // Signaller Variables ... // // XTD ... bool xAU5MXTDEnableSignaller = xAU5XTDEnableSignaller; bool xAU5MXTDAllowLongSignals = xAU5XTDAllowLongSignals; bool xAU5MXTDAllowShortSignals = xAU5XTDAllowShortSignals; // // XTAM ... bool xAU5MXTAMEnableSignaller = xAU5XTAMEnableSignaller; bool xAU5MXTAMAllowLongSignals = xAU5XTAMAllowLongSignals; bool xAU5MXTAMAllowShortSignals = xAU5XTAMAllowShortSignals; // // XSI ... bool xAU5MXSIEnableSignaller = xAU5XSIEnableSignaller; bool xAU5MXSIAllowLongSignals = xAU5XSIAllowLongSignals; bool xAU5MXSIAllowShortSignals = xAU5XSIAllowShortSignals; // // XTSFI ... bool xAU5MXTSFIEnableSignaller = xAU5XTSFIEnableSignaller; bool xAU5MXTSFIAllowLongSignals = xAU5XTSFIAllowLongSignals; bool xAU5MXTSFIAllowShortSignals = xAU5XTSFIAllowShortSignals; // // XOBDLH ... bool xAU5MXOBDLHEnableSignaller = xAU5XOBDLHEnableSignaller; bool xAU5MXOBDLHAllowLongSignals = xAU5XOBDLHAllowLongSignals; bool xAU5MXOBDLHAllowShortSignals = xAU5XOBDLHAllowShortSignals; // // XCHMACC ... bool xAU5MXCHMACCEnableSignaller = xAU5XCHMACCEnableSignaller; bool xAU5MXCHMACCAllowLongSignals = xAU5XCHMACCAllowLongSignals; bool xAU5MXCHMACCAllowShortSignals = xAU5XCHMACCAllowShortSignals; // // XCHMAMX ... bool xAU5MXCHMAMXEnableSignaller = xAU5XCHMAMXEnableSignaller; bool xAU5MXCHMAMXAllowLongSignals = xAU5XCHMAMXAllowLongSignals; bool xAU5MXCHMAMXAllowShortSignals = xAU5XCHMAMXAllowShortSignals; // // XCHMAMN ... bool xAU5MXCHMAMNEnableSignaller = xAU5XCHMAMNEnableSignaller; bool xAU5MXCHMAMNAllowLongSignals = xAU5XCHMAMNAllowLongSignals; bool xAU5MXCHMAMNAllowShortSignals = xAU5XCHMAMNAllowShortSignals; // XCPriver *xAU5Provider; // // Validate Indicators Inputs ... bool XAU5ValidateIndicatorsInputs() { // bool result = false; // // XTM ... result = XTMValidateInputs(); if (!result) { return result; } // // XAMA ... result = XAMAValidateInputs(); if (!result) { return result; } // // XTD ... result = XTDValidateInputs(); if (!result) { return result; } // // XFI ... result = XFIValidateInputs(); if (!result) { return result; } // // XTS ... result = XTSValidateInputs(); if (!result) { return result; } // // XOBD ... result = XOBDValidateInputs(); if (!result) { return result; } // // XLH ... result = XLHValidateInputs(); if (!result) { return result; } // // XRSI ... result = XRSIValidateInputs(); if (!result) { return result; } // // XCHLH ... result = XCHLHValidateInputs(); if (!result) { return result; } // // XCHMA ... result = XCHMAValidateInputs(); if (!result) { return result; } // // Make an Instance Of XCPriver Class for Use ... xAU5Provider = new XCPriver( // // Commons ... _Symbol, _Period, // // Signallers ... // // XTD ... xAU5MXTDEnableSignaller, xAU5MXTDAllowLongSignals, xAU5MXTDAllowShortSignals, // // XTAM ... xAU5MXTAMEnableSignaller, xAU5MXTAMAllowLongSignals, xAU5MXTAMAllowShortSignals, // // XSI ... xAU5MXSIEnableSignaller, xAU5MXSIAllowLongSignals, xAU5MXSIAllowShortSignals, // // XTSFI ... xAU5MXTSFIEnableSignaller, xAU5MXTSFIAllowLongSignals, xAU5MXTSFIAllowShortSignals, // // XOBDLH ... xAU5MXOBDLHEnableSignaller, xAU5MXOBDLHAllowLongSignals, xAU5MXOBDLHAllowShortSignals, // // XCHMACC ... xAU5MXCHMACCEnableSignaller, xAU5MXCHMACCAllowLongSignals, xAU5MXCHMACCAllowShortSignals, // // XCHMAMX ... xAU5MXCHMAMXEnableSignaller, xAU5MXCHMAMXAllowLongSignals, xAU5MXCHMAMXAllowShortSignals, // // XCHMAMN ... xAU5MXCHMAMNEnableSignaller, xAU5MXCHMAMNAllowLongSignals, xAU5MXCHMAMNAllowShortSignals // ); // result = true; // return result; } // // Init Indicators ... bool XAU5InitIndicators() { // bool result = false; // // Make it Enable when we need to Log Market Conditions ... // xAU5IsTestMode = false; // IsRunningOnTestMode(); // // Check and Calculate Max Length in Inputs ... // // // XTM ... xAU5MaxLengthOfInputs = MathMax( xTMMaPeriod, xAU5NumberOfItemsPerTick); // // XAMA ... xAU5MaxLengthOfInputs = MathMax( xAMALength, xAU5NumberOfItemsPerTick); xAU5MaxLengthOfInputs = MathMax( xAMAFastEMA, xAU5NumberOfItemsPerTick); xAU5MaxLengthOfInputs = MathMax( xAMASlowEMA, xAU5NumberOfItemsPerTick); // // XLH ... xAU5MaxLengthOfInputs = MathMax( xLHLength, xAU5NumberOfItemsPerTick); // // XTD ... xAU5MaxLengthOfInputs = MathMax( xTDLength, xAU5MaxLengthOfInputs); // // XFI ... xAU5MaxLengthOfInputs = MathMax( xFILength, xAU5MaxLengthOfInputs); // // XRSI ... xAU5MaxLengthOfInputs = MathMax( xRSILength, xAU5MaxLengthOfInputs); // // XOBD ... xAU5MaxLengthOfInputs = MathMax( xOBDLength, xAU5MaxLengthOfInputs); // // XCHLH ... xAU5MaxLengthOfInputs = MathMax( xCHLHLcLength, xAU5MaxLengthOfInputs); xAU5MaxLengthOfInputs = MathMax( xCHLHMcLength, xAU5MaxLengthOfInputs); xAU5MaxLengthOfInputs = MathMax( xCHLHScLength, xAU5MaxLengthOfInputs); // // XCHMA ... xAU5MaxLengthOfInputs = MathMax( xCHMAScFastLength, xAU5MaxLengthOfInputs); xAU5MaxLengthOfInputs = MathMax( xCHMAScSlowLength, xAU5MaxLengthOfInputs); xAU5MaxLengthOfInputs = MathMax( xCHMAMcFastLength, xAU5MaxLengthOfInputs); xAU5MaxLengthOfInputs = MathMax( xCHMAMcSlowLength, xAU5MaxLengthOfInputs); xAU5MaxLengthOfInputs = MathMax( xCHMALcFastLength, xAU5MaxLengthOfInputs); xAU5MaxLengthOfInputs = MathMax( xCHMALcSlowLength, xAU5MaxLengthOfInputs); // // Validate Indicators Inputs before Initialization ... result = XAU5ValidateIndicatorsInputs(); if (!result) { return result; } // // Validate Signallers ... // // XTD ... bool isXTDEnable = xAU5XTDEnableSignaller && (xAU5XTDAllowLongSignals || xAU5XTDAllowShortSignals); // // XTAM ... bool isXTAMEnable = xAU5XTAMEnableSignaller && (xAU5XTAMAllowLongSignals || xAU5XTAMAllowShortSignals); // // XSI ... bool isXSIEnable = xAU5XSIEnableSignaller && (xAU5XSIAllowLongSignals || xAU5XSIAllowShortSignals); // // XTSFI ... bool isXTSFIEnable = xAU5XTSFIEnableSignaller && (xAU5XTSFIAllowLongSignals || xAU5XTSFIAllowShortSignals); // // XOBDLH ... bool isXOBDLHEnable = xAU5XOBDLHEnableSignaller && (xAU5XOBDLHAllowLongSignals || xAU5XOBDLHAllowShortSignals); // // XCHMACC ... bool isXCHMACCEnable = xAU5XCHMACCEnableSignaller && (xAU5XCHMACCAllowLongSignals || xAU5XCHMACCAllowShortSignals); // // XCHMAMX ... bool isXCHMAMXEnable = xAU5XCHMAMXEnableSignaller && (xAU5XCHMAMXAllowLongSignals || xAU5XCHMAMXAllowShortSignals); // // XCHMAMN ... bool isXCHMAMNEnable = xAU5XCHMAMNEnableSignaller && (xAU5XCHMAMNAllowLongSignals || xAU5XCHMAMNAllowShortSignals); // bool hasSignaller = // isXTDEnable || isXTAMEnable || isXSIEnable || isXTSFIEnable || isXOBDLHEnable || isXCHMACCEnable || isXCHMAMXEnable || isXCHMAMNEnable // ; result = hasSignaller; if (!result) { // LogMessage("XAU5 doesn't enable any Signaller ..."); // return result; } // // Initialize Indicator/Oscillator Handlers ... ResetLastError(); // // XTM Init ... result = XTMInitHandlers(); if (!result) { return result; } // // XAMA Init ... result = XAMAInitHandlers(); if (!result) { return result; } // // XLH Init ... result = XLHInitHandlers(); if (!result) { return result; } // // XTD Init ... result = XTDInitHandlers(); if (!result) { return result; } // // XFI Init ... result = XFIInitHandlers(); if (!result) { return result; } // // XTS Init ... result = XTSInitHandlers(); if (!result) { return result; } // // XRSI Init ... result = XRSIInitHandlers(); if (!result) { return result; } // // XOBD Init ... result = XOBDInitHandlers(); if (!result) { return result; } // // XCLH Init ... result = XCHLHInitHandlers(); if (!result) { return result; } // // XCHMA Init ... result = XCHMAInitHandlers(); if (!result) { return result; } // result = true; // return result; } // // Release Indicators ... void XAU5ReleaseIndicators() { // // Release Handlers ... XTMReleaseHandlers(); XAMAReleaseHandlers(); XLHReleaseHandlers(); XTDReleaseHandlers(); XFIReleaseHandlers(); XTSReleaseHandlers(); XRSIReleaseHandlers(); XOBDReleaseHandlers(); XCHMAReleaseHandlers(); XCHLHReleaseHandlers(); } // // Handle Reading Buffers ... void XAU5HandleReadingBuffers() { // // Reading Calculated Bars for a Simple Handler ... xAU5CalculatedBars = 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); // xAU5Provider.ReadConditions(); } // // // START Combination Functions ... // // // // Can Open Long Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Long Signals ... bool XAU5CanOpenLongTrade( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { // bool result = false; // info.tp = 0; info.sl = 0; ArrayResize( info.signallers, 0); // bool hasSignal = XAU5HasLongSignal(info); // result = // hasSignal // ; // if (result) { xAU5Provider.ClearConditions(); } // return result; } // // 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 result = false; // return result; } // // Can Open Short Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Short Signals ... bool XAU5CanOpenShortTrade( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { // bool result = false; // info.tp = 0; info.sl = 0; ArrayResize( info.signallers, 0); // bool hasSignal = XAU5HasShortSignal(info); // result = // hasSignal // ; // if (result) { xAU5Provider.ClearConditions(); } // return result; } // // 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 result = false; // return result; } // // // END Combination Functions ... // // // // // START Combination Signaling ... // // // // Check Market Conditions by Combination of Power of All tools for LONGs ... bool XAU5HasLongSignal( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { // bool result = false; // // XTD ... bool isXTDHasSignal = XAU5XTDHasLongSignal(); if (isXTDHasSignal) { // Add( EnumToString(XTD), info.signallers); } // // XTAM ... bool isXTAMHasSignal = XAU5XTAMHasLongSignal(); if (isXTAMHasSignal) { // Add( EnumToString(XTAM), info.signallers); } // // XSI ... bool isXSIHasSignal = XAU5XSIHasLongSignal(); if (isXSIHasSignal) { // Add( EnumToString(XSI), info.signallers); } // // XTSFI ... bool isXTSFIHasSignal = XAU5XTSFIHasLongSignal(); if (isXTSFIHasSignal) { // Add( EnumToString(XTSFI), info.signallers); } // // XOBD XLH ... bool isXOBDLHHasSignal = XAU5XOBDLHHasLongSignal(); if (isXOBDLHHasSignal) { // Add( EnumToString(XOBDLH), info.signallers); } // // XCHMA Cycles Cross ... bool isXCHMACCHasSignal = XAU5XCHMACCHasLongSignal(); if (isXCHMACCHasSignal) { // Add( EnumToString(XCHMACC), info.signallers); } // // XCHMA Cycles Min ... bool isXCHMAMNHasSignal = XAU5XCHMAMNHasLongSignal(); if (isXCHMAMNHasSignal) { // Add( EnumToString(XCHMAMN), info.signallers); } // // XCHMA Cycles Max bool isXCHMAMXHasSignal = XAU5XCHMAMXHasLongSignal(); if (isXCHMAMXHasSignal) { // Add( EnumToString(XCHMAMX), info.signallers); } // result = // isXTDHasSignal // || // isXTAMHasSignal // || // isXSIHasSignal // || // isXTSFIHasSignal // || // isXOBDLHHasSignal // || // isXCHMACCHasSignal // || // isXCHMAMNHasSignal // || // isXCHMAMXHasSignal // ; // if (result) { // // Only Log Signals Time Market Conditions if is in Testing Mode ... if (xAU5IsTestMode) { // XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); string message = xAU5Provider.GenerateConditionsString(mConditions); // LogMessage( "Long Signal Provided by: \n" + info.signallers[ArraySize(info.signallers) - 1] + "\n" + "Pusher: " + (string)ArraySize(info.signallers) + "\n" + "Market Conditions: " + message); } } // return result; } // // Check Market Conditions by Combination of Power of All tools for SHORTs ... bool XAU5HasShortSignal( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { // bool result = false; // // XTD ... bool isXTDHasSignal = XAU5XTDHasShortSignal(); if (isXTDHasSignal) { // Add( EnumToString(XTD), info.signallers); } // // XTAM ... bool isXTAMHasSignal = XAU5XTAMHasShortSignal(); if (isXTAMHasSignal) { // Add( EnumToString(XTAM), info.signallers); } // // XSI ... bool isXSIHasSignal = XAU5XSIHasShortSignal(); if (isXSIHasSignal) { // Add( EnumToString(XSI), info.signallers); } // // XTSFI ... bool isXTSFIHasSignal = XAU5XTSFIHasShortSignal(); if (isXTSFIHasSignal) { // Add( EnumToString(XTSFI), info.signallers); } // // XOBD XLH ... bool isXOBDLHHasSignal = XAU5XOBDLHHasShortSignal(); if (isXOBDLHHasSignal) { // Add( EnumToString(XOBDLH), info.signallers); } // // XCHMA Cycles Cross ... bool isXCHMACCHasSignal = XAU5XCHMACCHasShortSignal(); if (isXCHMACCHasSignal) { // Add( EnumToString(XCHMACC), info.signallers); } // // XCHMA Cycles Min ... bool isXCHMAMNHasSignal = XAU5XCHMAMNHasShortSignal(); if (isXCHMAMNHasSignal) { // Add( EnumToString(XCHMAMN), info.signallers); } // // XCHMA Cycles Max bool isXCHMAMXHasSignal = XAU5XCHMAMXHasShortSignal(); if (isXCHMAMXHasSignal) { // Add( EnumToString(XCHMAMX), info.signallers); } // result = // isXTDHasSignal // || // isXTAMHasSignal // || // isXSIHasSignal // || // isXTSFIHasSignal // || // isXOBDLHHasSignal // || // isXCHMACCHasSignal // || // isXCHMAMNHasSignal // || // isXCHMAMXHasSignal // ; // if (result) { // // Only Log Signals Time Market Conditions if is in Testing Mode ... if (xAU5IsTestMode) { // XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); string message = xAU5Provider.GenerateConditionsString(mConditions); // LogMessage( "Short Signal Provided by: \n" + info.signallers[ArraySize(info.signallers) - 1] + "\n" + "Pusher: " + (string)ArraySize(info.signallers) + "\n" + "Market Conditions: " + message); } } // return result; } // // // END Combination Signaling ... // // // // START Signal Providers ... // // // Disbale All Signallers Longs ... void XAU5DisableLongSignallers() { // // XTD ... if (xAU5MXTDEnableSignaller) { // xAU5Provider.DisbaleXTDLongs(); xAU5MXTDAllowLongSignals = false; } // // XTAM ... if (xAU5MXTAMEnableSignaller) { // xAU5Provider.DisbaleXTAMLongs(); xAU5MXTAMAllowLongSignals = false; } // // XSI ... if (xAU5MXSIEnableSignaller) { // xAU5Provider.DisbaleXSILongs(); xAU5MXSIAllowLongSignals = false; } // // XTSFI ... if (xAU5MXTSFIEnableSignaller) { // xAU5Provider.DisbaleXTSFILongs(); xAU5MXTSFIAllowLongSignals = false; } // // XOBDLH ... if (xAU5MXOBDLHEnableSignaller) { // xAU5Provider.DisbaleXOBDLHLongs(); xAU5MXOBDLHAllowLongSignals = false; } // // XCHMACC ... if (xAU5MXCHMACCEnableSignaller) { // xAU5Provider.DisbaleXCHMACCLongs(); xAU5MXCHMACCAllowLongSignals = false; } // // XCHMAMX ... if (xAU5MXCHMAMXEnableSignaller) { // xAU5Provider.DisbaleXCHMAMXLongs(); xAU5MXCHMAMXAllowLongSignals = false; } // // XCHMAMN ... if (xAU5MXCHMAMNEnableSignaller) { // xAU5Provider.DisbaleXCHMAMNLongs(); xAU5MXCHMAMNAllowLongSignals = false; } } // // Enable All Signallers Longs ... // Only if they are Configured as Enable at Settings ... void XAU5EnableLongSignallers() { // // XTD ... if (xAU5MXTDEnableSignaller) { // xAU5MXTDAllowLongSignals = xAU5XTDAllowLongSignals ? true : xAU5MXTDAllowLongSignals; // if (xAU5MXTDAllowLongSignals) { xAU5Provider.EnableXTDLongs(); } } // // XTAM ... if (xAU5MXTAMEnableSignaller) { // xAU5MXTAMAllowLongSignals = xAU5XTAMAllowLongSignals ? true : xAU5MXTAMAllowLongSignals; // if (xAU5MXTAMAllowLongSignals) { xAU5Provider.EnableXTAMLongs(); } } // // XSI ... if (xAU5MXSIEnableSignaller) { // xAU5MXSIAllowLongSignals = xAU5XSIAllowLongSignals ? true : xAU5MXSIAllowLongSignals; // if (xAU5MXSIAllowLongSignals) { xAU5Provider.EnableXSILongs(); } } // // XTSFI ... if (xAU5MXTSFIEnableSignaller) { // xAU5MXTSFIAllowLongSignals = xAU5XTSFIAllowLongSignals ? true : xAU5MXTSFIAllowLongSignals; // if (xAU5MXTSFIAllowLongSignals) { xAU5Provider.EnableXTSFILongs(); } } // // XOBDLH ... if (xAU5MXOBDLHEnableSignaller) { // xAU5MXOBDLHAllowLongSignals = xAU5XOBDLHAllowLongSignals ? true : xAU5MXOBDLHAllowLongSignals; // if (xAU5MXOBDLHAllowLongSignals) { xAU5Provider.EnableXOBDLHLongs(); } } // // XCHMACC ... if (xAU5MXCHMACCEnableSignaller) { // xAU5MXCHMACCAllowLongSignals = xAU5XCHMACCAllowLongSignals ? true : xAU5MXCHMACCAllowLongSignals; // if (xAU5MXCHMACCAllowLongSignals) { xAU5Provider.EnableXCHMACCLongs(); } } // // XCHMAMX ... if (xAU5MXCHMAMXEnableSignaller) { // xAU5MXCHMAMXAllowLongSignals = xAU5XCHMAMXAllowLongSignals ? true : xAU5MXCHMAMXAllowLongSignals; // if (xAU5MXCHMAMXAllowLongSignals) { xAU5Provider.EnableXCHMAMXLongs(); } } // // XCHMAMN ... if (xAU5MXCHMAMNEnableSignaller) { // xAU5MXCHMAMNAllowLongSignals = xAU5XCHMAMNAllowLongSignals ? true : xAU5MXCHMAMNAllowLongSignals; // if (xAU5MXCHMAMNAllowLongSignals) { xAU5Provider.EnableXCHMAMNLongs(); } } } // // Disable All Signallers Shorts ... void XAU5DisableShortSignallers() { // // XTD ... if (xAU5MXTDEnableSignaller) { // xAU5Provider.DisableXTDShorts(); xAU5MXTDAllowShortSignals = false; } // // XTAM ... if (xAU5MXTAMEnableSignaller) { // xAU5Provider.DisableXTAMShorts(); xAU5MXTAMAllowShortSignals = false; } // // XSI ... if (xAU5MXSIEnableSignaller) { // xAU5Provider.DisableXSIShorts(); xAU5MXSIAllowShortSignals = false; } // // XTSFI ... if (xAU5MXTSFIEnableSignaller) { // xAU5Provider.DisableXTSFIShorts(); xAU5MXTSFIAllowShortSignals = false; } // // XOBDLH ... if (xAU5MXOBDLHEnableSignaller) { // xAU5Provider.DisableXOBDLHShorts(); xAU5MXOBDLHAllowShortSignals = false; } // // XCHMACC ... if (xAU5MXCHMACCEnableSignaller) { // xAU5Provider.DisableXCHMACCShorts(); xAU5MXCHMACCAllowShortSignals = false; } // // XCHMAMX ... if (xAU5MXCHMAMXEnableSignaller) { // xAU5Provider.DisableXCHMAMXShorts(); xAU5MXCHMAMXAllowShortSignals = false; } // // XCHMAMN ... if (xAU5MXCHMAMNEnableSignaller) { // xAU5Provider.DisableXCHMAMNShorts(); xAU5MXCHMAMNAllowShortSignals = false; } } // // Enable All Signallers Shorts ... // Only if they are Configured as Enable at Settings ... void XAU5EnableShortSignallers() { // // XTD ... if (xAU5MXTDEnableSignaller) { // xAU5MXTDAllowShortSignals = xAU5XTDAllowShortSignals ? true : xAU5MXTDAllowShortSignals; // if (xAU5MXTDAllowShortSignals) { xAU5Provider.EnableXTDShorts(); } } // // XTAM ... if (xAU5MXTAMEnableSignaller) { // xAU5MXTAMAllowShortSignals = xAU5XTAMAllowShortSignals ? true : xAU5MXTAMAllowShortSignals; // if (xAU5MXTAMAllowShortSignals) { xAU5Provider.EnableXTAMShorts(); } } // // XSI ... if (xAU5MXSIEnableSignaller) { // xAU5MXSIAllowShortSignals = xAU5XSIAllowShortSignals ? true : xAU5MXSIAllowShortSignals; // if (xAU5MXSIAllowShortSignals) { xAU5Provider.EnableXSIShorts(); } } // // XTSFI ... if (xAU5MXTSFIEnableSignaller) { // xAU5MXTSFIAllowShortSignals = xAU5XTSFIAllowShortSignals ? true : xAU5MXTSFIAllowShortSignals; // if (xAU5MXTSFIAllowShortSignals) { xAU5Provider.EnableXTSFIShorts(); } } // // XOBDLH ... if (xAU5MXOBDLHEnableSignaller) { // xAU5MXOBDLHAllowShortSignals = xAU5XOBDLHAllowShortSignals ? true : xAU5MXOBDLHAllowShortSignals; // if (xAU5MXOBDLHAllowShortSignals) { xAU5Provider.EnableXOBDLHShorts(); } } // // XCHMACC ... if (xAU5MXCHMACCEnableSignaller) { // xAU5MXCHMACCAllowShortSignals = xAU5XCHMACCAllowShortSignals ? true : xAU5MXCHMACCAllowShortSignals; // if (xAU5MXCHMACCAllowShortSignals) { xAU5Provider.EnableXCHMACCShorts(); } } // // XCHMAMX ... if (xAU5MXCHMAMXEnableSignaller) { // xAU5MXCHMAMXAllowShortSignals = xAU5XCHMAMXAllowShortSignals ? true : xAU5MXCHMAMXAllowShortSignals; // if (xAU5MXCHMAMXAllowShortSignals) { xAU5Provider.EnableXCHMAMXShorts(); } } // // XCHMAMN ... if (xAU5MXCHMAMNEnableSignaller) { // xAU5MXCHMAMNAllowShortSignals = xAU5XCHMAMNAllowShortSignals ? true : xAU5MXCHMAMNAllowShortSignals; // if (xAU5MXCHMAMNAllowShortSignals) { xAU5Provider.EnableXCHMAMNShorts(); } } } // // // // // XTD Long Signal Checking ... bool XAU5XTDHasLongSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXTDEnableSignaller || !xAU5MXTDAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XTDHasLongConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XTD Long ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMAMCTrendsUp) // || // (mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax && mConditions.isXTMStartBullish && mConditions.isXTDBullOverBear && mConditions.isXAMAStartBullish) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax && mConditions.isXTMStartBullish && mConditions.isXAMAStartBullish && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // // XTD Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !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.isXCHMAMCVale && mConditions.isXCHMAMCTrendsUp) // || // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXAMANeutural) // ) // ) // ) // ) // || // // XTD Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !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) // ) // ) // ) // ) // || // // XTD Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTD Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || 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.isXCHMALCPeak && mConditions.isXCHMALCTrendsDown) // ) // ) // ) // ) // || // // 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.isXCHMALCVale && mConditions.isXCHMALCTrendsUp) // || // (mConditions.isXAMABearish && mConditions.isXTSCurrentUnderFarest && mConditions.isXTSCurrentUnderNearest) // ) // ) // ) // ) // || // // XTD Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale) // || // (mConditions.isXCHMAMCVale && mConditions.isXCHMAMCTrendsUp) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax && mConditions.isXLHLLIncreased && mConditions.isXTDBullOverBear && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // // XTD Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTD Long ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // mConditions.isXRSICrossedOverLongExit // || // // XTD Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( // // Check LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // ((mConditions.isXCHMALCPeak && mConditions.isXCHMALCTrendsDown) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXCHLHSameHHs && mConditions.isXTSCurrentMax && mConditions.isXCHMASCCrossedOverMax) // || // ((mConditions.isXTSCurrentUnderNearest || mConditions.isXTSCurrentCrossedUnderNearest) && (mConditions.isXTSCurrentUnderMediest || mConditions.isXTSCurrentCrossedUnderMediest)) // ) // ) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXCHMALCVale && mConditions.isXTDBearishVale && mConditions.isXTSCurrentUnderNearest) // || // ((mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale) && ( // (mConditions.isXFIUnderZero && mConditions.isXTSCurrentUnderMediest) // || // (mConditions.isXTSCurrentUnderNearest && mConditions.isXTDSignalCrossedOverBear) // || // (mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXTSCurrentMax && mConditions.isXFICrossedOverZero && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // ) // ) // || // // XTD Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !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) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXFIOverZero && mConditions.isXTSCurrentMax && mConditions.isXLHLLDecreased && mConditions.isXCHLHSCMCHHSame) // || // ((mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale) && ( // ((mConditions.isXTMNeutural && mConditions.isXTSCurrentMax && mConditions.isXCHLHSCMCHHSame && mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverNearest && mConditions.isXTSCurrentOverMediest) && ( // (mConditions.isXTDBullOverBear && mConditions.isXFICrossedOverZero && mConditions.isXTDSignalCrossedOverBear) // || // (mConditions.isXTSCurrentCrossedOverFarest && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // || // ((mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXTSCurrentMax && mConditions.isXCHLHSCMCHHSame && mConditions.isXLHHighAttachedHH && mConditions.isXTDSignalCrossedOverBear) && ( // mConditions.isXCHLHMCLCLLSame // || // (mConditions.isXCHMAMCPeak && ( // (mConditions.isXCHMALCVale && mConditions.isXTDBullOverBear) // || // (mConditions.isXCHMASCOverMin && mConditions.isXCHMASCUnderMax && mConditions.isXCHMALCTrendsDown) // ) // ) // ) // ) // || // (mConditions.isXCHMALCVale && mConditions.isXTMStartBullish && mConditions.isXCHLHSCMCHHSame && mConditions.isXAMAStartBullish && mConditions.isXLHHighAttachedHH && mConditions.isXFICrossedOverZero) // ) // ) // ) // ) // || // // XTD Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( // (mConditions.isXCHMALCPeak && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHSCMCLLSame && mConditions.isXTSCurrentUnderFarest && mConditions.isXTSCurrentUnderMediest) // ) // ) // || // // XTD Long ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !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) // ) // ) // ) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTD Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTD Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTD Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTD Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XTD Short Signal Checking ... bool XAU5XTDHasShortSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXTDEnableSignaller || !xAU5MXTDAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XTDHasShortConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XTD Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && 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) // ) // ) // ) // ) // ) // ) // || // // XTD Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( // // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHMAMCTrendsUp) // || // (mConditions.isXTDBullOverBear && mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverNearest) // ) // ) // ) // ) // || // // XTD Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( // // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXCHLHSameLLs && mConditions.isXTSCurrentMin && mConditions.isXTDBullOverBear && mConditions.isXCHMAMCTrendsUp && mConditions.isXLHLowAttachedLL) // ) // ) // ) // ) // || // // XTD Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTD Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && 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.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) // ) // ) // ) // ) // || // // XTD Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTD Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !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) // ) // ) // ) // ) // ) // ) // || // // XTD Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTD Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTD Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXCHMALCVale && mConditions.isXCHLHSCMCHHSame && mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverMediest) // ) // ) // ) // ) // || // // XTD Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !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) // ) // ) // ) // ) // || // // XTD Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTD Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTD Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTD Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTD Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XTAM Long Signal Checking ... bool XAU5XTAMHasLongSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXTAMEnableSignaller || !xAU5MXTAMAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XTAMHasLongConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XTAM Long ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTAM Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTAM Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTAM Long ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTAM Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTAM Long ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTAM Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTAM Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XTAM Short Signal Checking ... bool XAU5XTAMHasShortSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXTAMEnableSignaller || !xAU5MXTAMAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XTAMHasShortConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XTAM Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTAM Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTAM Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTAM Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTAM Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTAM Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTAM Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTAM Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTAM Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XSI Long Signal Checking ... bool XAU5XSIHasLongSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXSIEnableSignaller || !xAU5MXSIAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XSIHasLongConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XSI Long ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XSI Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XSI Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XSI Long ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XSI Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XSI Long ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XSI Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XSI Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XSI Short Signal Checking ... bool XAU5XSIHasShortSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXSIEnableSignaller || !xAU5MXSIAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XSIHasShortConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XSI Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XSI Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XSI Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XSI Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XSI Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XSI Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XSI Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XSI Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XSI Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XTSFI Long Signal Checking ... bool XAU5XTSFIHasLongSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXTSFIEnableSignaller || !xAU5MXTSFIAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XTSFIHasLongConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XTSFI Long ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTSFI Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTSFI Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTSFI Long ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTSFI Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTSFI Long ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTSFI Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTSFI Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XTSFI Short Signal Checking ... bool XAU5XTSFIHasShortSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXTSFIEnableSignaller || !xAU5MXTSFIAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XTSFIHasShortConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XTSFI Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTSFI Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTSFI Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTSFI Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTSFI Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTSFI Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XTSFI Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTSFI Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTSFI Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XOBDLH Long Signal Checking ... bool XAU5XOBDLHHasLongSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXOBDLHEnableSignaller || !xAU5MXOBDLHAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XOBDLHHasLongConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XOBDLH Long ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XOBDLH Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XOBDLH Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XOBDLH Long ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XOBDLH Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XOBDLH Long ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XOBDLH Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XOBDLH Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XOBDLH Short Signal Checking ... bool XAU5XOBDLHHasShortSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXOBDLHEnableSignaller || !xAU5MXOBDLHAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XOBDLHHasShortConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XOBDLH Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XOBDLH Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XOBDLH Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XOBDLH Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XOBDLH Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XOBDLH Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XOBDLH Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XOBDLH Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XOBDLH Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XCHMACC Long Signal Checking ... bool XAU5XCHMACCHasLongSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXCHMACCEnableSignaller || !xAU5MXCHMACCAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XCHMACCHasLongConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XCHMACC Long ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMACC Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMACC Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMACC Long ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMACC Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMACC Long ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMACC Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMACC Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XCHMACC Short Signal Checking ... bool XAU5XCHMACCHasShortSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXCHMACCEnableSignaller || !xAU5MXCHMACCAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XCHMACCHasShortConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XCHMACC Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMACC Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMACC Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMACC Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMACC Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMACC Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMACC Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMACC Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMACC Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XCHMAMN Long Signal Checking ... bool XAU5XCHMAMNHasLongSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXCHMAMNEnableSignaller || !xAU5MXCHMAMNAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XCHMAMNHasLongConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMN Long ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMN Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMN Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMN Long ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMN Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMN Long ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMN Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMN Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XCHMAMN Short Signal Checking ... bool XAU5XCHMAMNHasShortSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXCHMAMNEnableSignaller || !xAU5MXCHMAMNAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XCHMAMNHasShortConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMN Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMN Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMN Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMN Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMN Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMN Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMN Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMN Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMN Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XCHMAMX Long Signal Checking ... bool XAU5XCHMAMXHasLongSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXCHMAMXEnableSignaller || !xAU5MXCHMAMXAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XCHMAMXHasLongConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMX Long ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMX Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMX Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMX Long ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMX Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMX Long ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMX Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMX Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // XCHMAMX Short Signal Checking ... bool XAU5XCHMAMXHasShortSignal() { // bool result = false; // // Validate Args ... if (!xAU5MXCHMAMXEnableSignaller || !xAU5MXCHMAMXAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xAU5Provider.XCHMAMXHasShortConditions() // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // for Exception we used XLH Conditions as follow ... // // Check Conditions if Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && // ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMX Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMX Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // || // // Check Conditions if Price is Under Signal ... ( // ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMX Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMX Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is Over Signal ... ( // ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMX Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMX Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // || // // Check Conditions if Price is not has clear state ... ( // ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // Next Step is to Check LL and HH Same Style ... // // XCHMAMX Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XCHMAMX Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XCHMAMX Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // ) // ) // ) // ) // ; // return result; } // // END Signal Providers ... //