/////////////////////////////////////////////////////////////////// // // SaherElm IT Center MQL5 XUSPY5 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.xuspy5.provider.inputs.lib.mq5" // // Include Provider Class ... #include "../Classes/x-saherelm.provider.lib.mq5" // // Signallers ... input group "XUSPY5 Signallers"; // // XTD ... input group "XUSPY5 XTD Signaller"; input bool xUSPY5XTDEnableSignaller = true; // Enable Signaller input bool xUSPY5XTDAllowLongSignals = true; // Enable Long Signals input bool xUSPY5XTDAllowShortSignals = true; // Enable Short Signals // // XTAM ... input group "XUSPY5 XTAM Signaller"; input bool xUSPY5XTAMEnableSignaller = true; // Enable Signaller input bool xUSPY5XTAMAllowLongSignals = true; // Enable Long Signals input bool xUSPY5XTAMAllowShortSignals = true; // Enable Short Signals // // XSI ... input group "XUSPY5 XSI Signaller"; input bool xUSPY5XSIEnableSignaller = true; // Enable Signaller input bool xUSPY5XSIAllowLongSignals = true; // Enable Long Signals input bool xUSPY5XSIAllowShortSignals = true; // Enable Short Signals // // XTSFI ... input group "XUSPY5 XTSFI Signaller"; input bool xUSPY5XTSFIEnableSignaller = true; // Enable Signaller input bool xUSPY5XTSFIAllowLongSignals = true; // Enable Long Signals input bool xUSPY5XTSFIAllowShortSignals = true; // Enable Short Signals // // XOBDLH ... // input group "XUSPY5 XOBDLH Signaller"; // input bool xUSPY5XOBDLHEnableSignaller = true; // Enable Signaller // input bool xUSPY5XOBDLHAllowLongSignals = true; // Enable Long Signals // input bool xUSPY5XOBDLHAllowShortSignals = true; // Enable Short Signals // // XCHMACC ... input group "XUSPY5 XCHMACC Signaller"; input bool xUSPY5XCHMACCEnableSignaller = true; // Enable Signaller input bool xUSPY5XCHMACCAllowLongSignals = true; // Enable Long Signals input bool xUSPY5XCHMACCAllowShortSignals = true; // Enable Short Signals // // XCHMAMX ... // input group "XUSPY5 XCHMAMX Signaller"; // input bool xUSPY5XCHMAMXEnableSignaller = true; // Enable Signaller // input bool xUSPY5XCHMAMXAllowLongSignals = true; // Enable Long Signals // input bool xUSPY5XCHMAMXAllowShortSignals = true; // Enable Short Signals // // XCHMAMN ... // input group "XUSPY5 XCHMAMN Signaller"; // input bool xUSPY5XCHMAMNEnableSignaller = true; // Enable Signaller // input bool xUSPY5XCHMAMNAllowLongSignals = true; // Enable Long Signals // input bool xUSPY5XCHMAMNAllowShortSignals = true; // Enable Short Signals // // Check in Test Mode or not ... bool xUSPY5IsTestMode = false; // // Detect max Input Length of Indicators ... int xUSPY5MaxLengthOfInputs = 0; // // Detect Calculated Bars ... int xUSPY5CalculatedBars = 0; // // Check prevent Double Signalling on Same Candle ... bool xUSPY5WaitUntilNextCandle = false; // // Signaller Variables ... // // XTD ... bool xUSPY5MXTDEnableSignaller = xUSPY5XTDEnableSignaller; bool xUSPY5MXTDAllowLongSignals = xUSPY5XTDAllowLongSignals; bool xUSPY5MXTDAllowShortSignals = xUSPY5XTDAllowShortSignals; // // XTAM ... bool xUSPY5MXTAMEnableSignaller = xUSPY5XTAMEnableSignaller; bool xUSPY5MXTAMAllowLongSignals = xUSPY5XTAMAllowLongSignals; bool xUSPY5MXTAMAllowShortSignals = xUSPY5XTAMAllowShortSignals; // // XSI ... bool xUSPY5MXSIEnableSignaller = xUSPY5XSIEnableSignaller; bool xUSPY5MXSIAllowLongSignals = xUSPY5XSIAllowLongSignals; bool xUSPY5MXSIAllowShortSignals = xUSPY5XSIAllowShortSignals; // // XTSFI ... bool xUSPY5MXTSFIEnableSignaller = xUSPY5XTSFIEnableSignaller; bool xUSPY5MXTSFIAllowLongSignals = xUSPY5XTSFIAllowLongSignals; bool xUSPY5MXTSFIAllowShortSignals = xUSPY5XTSFIAllowShortSignals; // // XOBDLH ... bool xUSPY5MXOBDLHEnableSignaller = false; // xUSPY5XOBDLHEnableSignaller; bool xUSPY5MXOBDLHAllowLongSignals = false; // xUSPY5XOBDLHAllowLongSignals; bool xUSPY5MXOBDLHAllowShortSignals = false; // xUSPY5XOBDLHAllowShortSignals; // // XCHMACC ... bool xUSPY5MXCHMACCEnableSignaller = xUSPY5XCHMACCEnableSignaller; bool xUSPY5MXCHMACCAllowLongSignals = xUSPY5XCHMACCAllowLongSignals; bool xUSPY5MXCHMACCAllowShortSignals = xUSPY5XCHMACCAllowShortSignals; // // XCHMAMX ... bool xUSPY5MXCHMAMXEnableSignaller = false; // xUSPY5XCHMAMXEnableSignaller; bool xUSPY5MXCHMAMXAllowLongSignals = false; // xUSPY5XCHMAMXAllowLongSignals; bool xUSPY5MXCHMAMXAllowShortSignals = false; // xUSPY5XCHMAMXAllowShortSignals; // // XCHMAMN ... bool xUSPY5MXCHMAMNEnableSignaller = false; // xUSPY5XCHMAMNEnableSignaller; bool xUSPY5MXCHMAMNAllowLongSignals = false; // xUSPY5XCHMAMNAllowLongSignals; bool xUSPY5MXCHMAMNAllowShortSignals = false; // xUSPY5XCHMAMNAllowShortSignals; // XCProvider *xUSPY5Provider; // // Validate Indicators Inputs ... bool XUSPY5ValidateIndicatorsInputs() { // 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 XCProvider Class for Use ... xUSPY5Provider = new XCProvider( // // Commons ... _Symbol, _Period, // // Signallers ... // // XTD ... xUSPY5MXTDEnableSignaller, xUSPY5MXTDAllowLongSignals, xUSPY5MXTDAllowShortSignals, // // XTAM ... xUSPY5MXTAMEnableSignaller, xUSPY5MXTAMAllowLongSignals, xUSPY5MXTAMAllowShortSignals, // // XSI ... xUSPY5MXSIEnableSignaller, xUSPY5MXSIAllowLongSignals, xUSPY5MXSIAllowShortSignals, // // XTSFI ... xUSPY5MXTSFIEnableSignaller, xUSPY5MXTSFIAllowLongSignals, xUSPY5MXTSFIAllowShortSignals, // // XOBDLH ... xUSPY5MXOBDLHEnableSignaller, xUSPY5MXOBDLHAllowLongSignals, xUSPY5MXOBDLHAllowShortSignals, // // XCHMACC ... xUSPY5MXCHMACCEnableSignaller, xUSPY5MXCHMACCAllowLongSignals, xUSPY5MXCHMACCAllowShortSignals, // // XCHMAMX ... xUSPY5MXCHMAMXEnableSignaller, xUSPY5MXCHMAMXAllowLongSignals, xUSPY5MXCHMAMXAllowShortSignals, // // XCHMAMN ... xUSPY5MXCHMAMNEnableSignaller, xUSPY5MXCHMAMNAllowLongSignals, xUSPY5MXCHMAMNAllowShortSignals // ); // result = true; // return result; } // // Init Indicators ... bool XUSPY5InitIndicators() { // bool result = false; // // Make it Enable when we need to Log Market Conditions ... xUSPY5IsTestMode = IsRunningOnTestMode(); // // Check and Calculate Max Length in Inputs ... // // // XTM ... xUSPY5MaxLengthOfInputs = MathMax( xTMMaPeriod, xUSPY5NumberOfItemsPerTick); // // XAMA ... xUSPY5MaxLengthOfInputs = MathMax( xAMALength, xUSPY5NumberOfItemsPerTick); xUSPY5MaxLengthOfInputs = MathMax( xAMAFastEMA, xUSPY5NumberOfItemsPerTick); xUSPY5MaxLengthOfInputs = MathMax( xAMASlowEMA, xUSPY5NumberOfItemsPerTick); // // XLH ... xUSPY5MaxLengthOfInputs = MathMax( xLHLength, xUSPY5NumberOfItemsPerTick); // // XTD ... xUSPY5MaxLengthOfInputs = MathMax( xTDLength, xUSPY5MaxLengthOfInputs); // // XFI ... xUSPY5MaxLengthOfInputs = MathMax( xFILength, xUSPY5MaxLengthOfInputs); // // XRSI ... xUSPY5MaxLengthOfInputs = MathMax( xRSILength, xUSPY5MaxLengthOfInputs); // // XOBD ... xUSPY5MaxLengthOfInputs = MathMax( xOBDLength, xUSPY5MaxLengthOfInputs); // // XCHLH ... xUSPY5MaxLengthOfInputs = MathMax( xCHLHLcLength, xUSPY5MaxLengthOfInputs); xUSPY5MaxLengthOfInputs = MathMax( xCHLHMcLength, xUSPY5MaxLengthOfInputs); xUSPY5MaxLengthOfInputs = MathMax( xCHLHScLength, xUSPY5MaxLengthOfInputs); // // XCHMA ... xUSPY5MaxLengthOfInputs = MathMax( xCHMAScFastLength, xUSPY5MaxLengthOfInputs); xUSPY5MaxLengthOfInputs = MathMax( xCHMAScSlowLength, xUSPY5MaxLengthOfInputs); xUSPY5MaxLengthOfInputs = MathMax( xCHMAMcFastLength, xUSPY5MaxLengthOfInputs); xUSPY5MaxLengthOfInputs = MathMax( xCHMAMcSlowLength, xUSPY5MaxLengthOfInputs); xUSPY5MaxLengthOfInputs = MathMax( xCHMALcFastLength, xUSPY5MaxLengthOfInputs); xUSPY5MaxLengthOfInputs = MathMax( xCHMALcSlowLength, xUSPY5MaxLengthOfInputs); // // Validate Indicators Inputs before Initialization ... result = XUSPY5ValidateIndicatorsInputs(); if (!result) { return result; } // // Validate Signallers ... // // XTD ... bool isXTDEnable = xUSPY5XTDEnableSignaller && (xUSPY5XTDAllowLongSignals || xUSPY5XTDAllowShortSignals); // // XTAM ... bool isXTAMEnable = xUSPY5XTAMEnableSignaller && (xUSPY5XTAMAllowLongSignals || xUSPY5XTAMAllowShortSignals); // // XSI ... bool isXSIEnable = xUSPY5XSIEnableSignaller && (xUSPY5XSIAllowLongSignals || xUSPY5XSIAllowShortSignals); // // XTSFI ... bool isXTSFIEnable = xUSPY5XTSFIEnableSignaller && (xUSPY5XTSFIAllowLongSignals || xUSPY5XTSFIAllowShortSignals); // // XOBDLH ... bool isXOBDLHEnable = false; // xUSPY5XOBDLHEnableSignaller && // (xUSPY5XOBDLHAllowLongSignals || // xUSPY5XOBDLHAllowShortSignals); // // XCHMACC ... bool isXCHMACCEnable = xUSPY5XCHMACCEnableSignaller && (xUSPY5XCHMACCAllowLongSignals || xUSPY5XCHMACCAllowShortSignals); // // XCHMAMX ... bool isXCHMAMXEnable = false; // xUSPY5XCHMAMXEnableSignaller && // (xUSPY5XCHMAMXAllowLongSignals || // xUSPY5XCHMAMXAllowShortSignals); // // XCHMAMN ... bool isXCHMAMNEnable = false; // xUSPY5XCHMAMNEnableSignaller && // (xUSPY5XCHMAMNAllowLongSignals || // xUSPY5XCHMAMNAllowShortSignals); // bool hasSignaller = // isXTDEnable || isXTAMEnable || isXSIEnable || isXTSFIEnable || isXOBDLHEnable || isXCHMACCEnable || isXCHMAMXEnable || isXCHMAMNEnable // ; result = hasSignaller; if (!result) { // LogMessage("XUSPY5 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 XUSPY5ReleaseIndicators() { // // Release Handlers ... XTMReleaseHandlers(); XAMAReleaseHandlers(); XLHReleaseHandlers(); XTDReleaseHandlers(); XFIReleaseHandlers(); XTSReleaseHandlers(); XRSIReleaseHandlers(); XOBDReleaseHandlers(); XCHMAReleaseHandlers(); XCHLHReleaseHandlers(); } // // Handle Reading Buffers ... void XUSPY5HandleReadingBuffers() { // // Reading Calculated Bars for a Simple Handler ... xUSPY5CalculatedBars = BarsCalculated(xTMHandler); // // Read Indicators Buffers ... XTMReadBuffers(xUSPY5NumberOfItemsPerTick); XAMAReadBuffers(xUSPY5NumberOfItemsPerTick); XLHReadBuffers(xUSPY5NumberOfItemsPerTick); XTDReadBuffers(xUSPY5NumberOfItemsPerTick); XFIReadBuffers(xUSPY5NumberOfItemsPerTick); XTSReadBuffers(xUSPY5NumberOfItemsPerTick); XRSIReadBuffers(xUSPY5NumberOfItemsPerTick); XOBDReadBuffers(xUSPY5NumberOfItemsPerTick); XCHMAReadBuffers(xUSPY5NumberOfItemsPerTick); XCHLHReadBuffers(xUSPY5NumberOfItemsPerTick); // xUSPY5Provider.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 XUSPY5CanOpenLongTrade( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { // bool result = false; // info.tp = 0; info.sl = 0; ArrayResize( info.signallers, 0); // bool hasSignal = XUSPY5HasLongSignal(info); // result = // hasSignal // ; // if (result) { xUSPY5Provider.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 XUSPY5CanCloseLongTrade() { // 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 XUSPY5CanOpenShortTrade( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { // bool result = false; // info.tp = 0; info.sl = 0; ArrayResize( info.signallers, 0); // bool hasSignal = XUSPY5HasShortSignal(info); // result = // hasSignal // ; // if (result) { xUSPY5Provider.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 XUSPY5CanCloseShortTrade() { // bool result = false; // return result; } // // // END Combination Functions ... // // // // // START Combination Signaling ... // // // // Check Market Conditions by Combination of Power of All tools for LONGs ... bool XUSPY5HasLongSignal( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { // bool result = false; // // XTD ... bool isXTDHasSignal = XUSPY5XTDHasLongSignal(); if (isXTDHasSignal) { // Add( EnumToString(XTD), info.signallers); } // // XTAM ... bool isXTAMHasSignal = XUSPY5XTAMHasLongSignal(); if (isXTAMHasSignal) { // Add( EnumToString(XTAM), info.signallers); } // // XSI ... bool isXSIHasSignal = XUSPY5XSIHasLongSignal(); if (isXSIHasSignal) { // Add( EnumToString(XSI), info.signallers); } // // XTSFI ... bool isXTSFIHasSignal = XUSPY5XTSFIHasLongSignal(); if (isXTSFIHasSignal) { // Add( EnumToString(XTSFI), info.signallers); } // // XOBD XLH ... bool isXOBDLHHasSignal = XUSPY5XOBDLHHasLongSignal(); if (isXOBDLHHasSignal) { // Add( EnumToString(XOBDLH), info.signallers); } // // XCHMA Cycles Cross ... bool isXCHMACCHasSignal = XUSPY5XCHMACCHasLongSignal(); if (isXCHMACCHasSignal) { // Add( EnumToString(XCHMACC), info.signallers); } // // XCHMA Cycles Min ... bool isXCHMAMNHasSignal = XUSPY5XCHMAMNHasLongSignal(); if (isXCHMAMNHasSignal) { // Add( EnumToString(XCHMAMN), info.signallers); } // // XCHMA Cycles Max bool isXCHMAMXHasSignal = XUSPY5XCHMAMXHasLongSignal(); 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 (xUSPY5IsTestMode || xUSPY5EnableSignalAlerts) { // XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); string message = xUSPY5Provider.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 XUSPY5HasShortSignal( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { // bool result = false; // // XTD ... bool isXTDHasSignal = XUSPY5XTDHasShortSignal(); if (isXTDHasSignal) { // Add( EnumToString(XTD), info.signallers); } // // XTAM ... bool isXTAMHasSignal = XUSPY5XTAMHasShortSignal(); if (isXTAMHasSignal) { // Add( EnumToString(XTAM), info.signallers); } // // XSI ... bool isXSIHasSignal = XUSPY5XSIHasShortSignal(); if (isXSIHasSignal) { // Add( EnumToString(XSI), info.signallers); } // // XTSFI ... bool isXTSFIHasSignal = XUSPY5XTSFIHasShortSignal(); if (isXTSFIHasSignal) { // Add( EnumToString(XTSFI), info.signallers); } // // XOBD XLH ... bool isXOBDLHHasSignal = XUSPY5XOBDLHHasShortSignal(); if (isXOBDLHHasSignal) { // Add( EnumToString(XOBDLH), info.signallers); } // // XCHMA Cycles Cross ... bool isXCHMACCHasSignal = XUSPY5XCHMACCHasShortSignal(); if (isXCHMACCHasSignal) { // Add( EnumToString(XCHMACC), info.signallers); } // // XCHMA Cycles Min ... bool isXCHMAMNHasSignal = XUSPY5XCHMAMNHasShortSignal(); if (isXCHMAMNHasSignal) { // Add( EnumToString(XCHMAMN), info.signallers); } // // XCHMA Cycles Max bool isXCHMAMXHasSignal = XUSPY5XCHMAMXHasShortSignal(); 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 (xUSPY5IsTestMode || xUSPY5EnableSignalAlerts) { // XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); string message = xUSPY5Provider.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 XUSPY5DisableLongSignallers() { // // XTD ... if (xUSPY5MXTDEnableSignaller) { // xUSPY5Provider.DisbaleXTDLongs(); xUSPY5MXTDAllowLongSignals = false; } // // XTAM ... if (xUSPY5MXTAMEnableSignaller) { // xUSPY5Provider.DisbaleXTAMLongs(); xUSPY5MXTAMAllowLongSignals = false; } // // XSI ... if (xUSPY5MXSIEnableSignaller) { // xUSPY5Provider.DisbaleXSILongs(); xUSPY5MXSIAllowLongSignals = false; } // // XTSFI ... if (xUSPY5MXTSFIEnableSignaller) { // xUSPY5Provider.DisbaleXTSFILongs(); xUSPY5MXTSFIAllowLongSignals = false; } // // XOBDLH ... // if (xUSPY5MXOBDLHEnableSignaller) // { // // // xUSPY5Provider.DisbaleXOBDLHLongs(); // xUSPY5MXOBDLHAllowLongSignals = false; // } // // XCHMACC ... if (xUSPY5MXCHMACCEnableSignaller) { // xUSPY5Provider.DisbaleXCHMACCLongs(); xUSPY5MXCHMACCAllowLongSignals = false; } // // XCHMAMX ... // if (xUSPY5MXCHMAMXEnableSignaller) // { // // // xUSPY5Provider.DisbaleXCHMAMXLongs(); // xUSPY5MXCHMAMXAllowLongSignals = false; // } // // XCHMAMN ... // if (xUSPY5MXCHMAMNEnableSignaller) // { // // // xUSPY5Provider.DisbaleXCHMAMNLongs(); // xUSPY5MXCHMAMNAllowLongSignals = false; // } } // // Enable All Signallers Longs ... // Only if they are Configured as Enable at Settings ... void XUSPY5EnableLongSignallers() { // // XTD ... if (xUSPY5MXTDEnableSignaller) { // xUSPY5MXTDAllowLongSignals = xUSPY5XTDAllowLongSignals ? true : xUSPY5MXTDAllowLongSignals; // if (xUSPY5MXTDAllowLongSignals) { xUSPY5Provider.EnableXTDLongs(); } } // // XTAM ... if (xUSPY5MXTAMEnableSignaller) { // xUSPY5MXTAMAllowLongSignals = xUSPY5XTAMAllowLongSignals ? true : xUSPY5MXTAMAllowLongSignals; // if (xUSPY5MXTAMAllowLongSignals) { xUSPY5Provider.EnableXTAMLongs(); } } // // XSI ... if (xUSPY5MXSIEnableSignaller) { // xUSPY5MXSIAllowLongSignals = xUSPY5XSIAllowLongSignals ? true : xUSPY5MXSIAllowLongSignals; // if (xUSPY5MXSIAllowLongSignals) { xUSPY5Provider.EnableXSILongs(); } } // // XTSFI ... if (xUSPY5MXTSFIEnableSignaller) { // xUSPY5MXTSFIAllowLongSignals = xUSPY5XTSFIAllowLongSignals ? true : xUSPY5MXTSFIAllowLongSignals; // if (xUSPY5MXTSFIAllowLongSignals) { xUSPY5Provider.EnableXTSFILongs(); } } // // XOBDLH ... // if (xUSPY5MXOBDLHEnableSignaller) // { // // // xUSPY5MXOBDLHAllowLongSignals = // xUSPY5XOBDLHAllowLongSignals // ? true // : xUSPY5MXOBDLHAllowLongSignals; // // // if (xUSPY5MXOBDLHAllowLongSignals) // { // xUSPY5Provider.EnableXOBDLHLongs(); // } // } // // XCHMACC ... if (xUSPY5MXCHMACCEnableSignaller) { // xUSPY5MXCHMACCAllowLongSignals = xUSPY5XCHMACCAllowLongSignals ? true : xUSPY5MXCHMACCAllowLongSignals; // if (xUSPY5MXCHMACCAllowLongSignals) { xUSPY5Provider.EnableXCHMACCLongs(); } } // // XCHMAMX ... // if (xUSPY5MXCHMAMXEnableSignaller) // { // // // xUSPY5MXCHMAMXAllowLongSignals = // xUSPY5XCHMAMXAllowLongSignals // ? true // : xUSPY5MXCHMAMXAllowLongSignals; // // // if (xUSPY5MXCHMAMXAllowLongSignals) // { // xUSPY5Provider.EnableXCHMAMXLongs(); // } // } // // XCHMAMN ... // if (xUSPY5MXCHMAMNEnableSignaller) // { // // // xUSPY5MXCHMAMNAllowLongSignals = // xUSPY5XCHMAMNAllowLongSignals // ? true // : xUSPY5MXCHMAMNAllowLongSignals; // // // if (xUSPY5MXCHMAMNAllowLongSignals) // { // xUSPY5Provider.EnableXCHMAMNLongs(); // } // } } // // Disable All Signallers Shorts ... void XUSPY5DisableShortSignallers() { // // XTD ... if (xUSPY5MXTDEnableSignaller) { // xUSPY5Provider.DisableXTDShorts(); xUSPY5MXTDAllowShortSignals = false; } // // XTAM ... if (xUSPY5MXTAMEnableSignaller) { // xUSPY5Provider.DisableXTAMShorts(); xUSPY5MXTAMAllowShortSignals = false; } // // XSI ... if (xUSPY5MXSIEnableSignaller) { // xUSPY5Provider.DisableXSIShorts(); xUSPY5MXSIAllowShortSignals = false; } // // XTSFI ... if (xUSPY5MXTSFIEnableSignaller) { // xUSPY5Provider.DisableXTSFIShorts(); xUSPY5MXTSFIAllowShortSignals = false; } // // XOBDLH ... // if (xUSPY5MXOBDLHEnableSignaller) // { // // // xUSPY5Provider.DisableXOBDLHShorts(); // xUSPY5MXOBDLHAllowShortSignals = false; // } // // XCHMACC ... if (xUSPY5MXCHMACCEnableSignaller) { // xUSPY5Provider.DisableXCHMACCShorts(); xUSPY5MXCHMACCAllowShortSignals = false; } // // XCHMAMX ... // if (xUSPY5MXCHMAMXEnableSignaller) // { // // // xUSPY5Provider.DisableXCHMAMXShorts(); // xUSPY5MXCHMAMXAllowShortSignals = false; // } // // XCHMAMN ... // if (xUSPY5MXCHMAMNEnableSignaller) // { // // // xUSPY5Provider.DisableXCHMAMNShorts(); // xUSPY5MXCHMAMNAllowShortSignals = false; // } } // // Enable All Signallers Shorts ... // Only if they are Configured as Enable at Settings ... void XUSPY5EnableShortSignallers() { // // XTD ... if (xUSPY5MXTDEnableSignaller) { // xUSPY5MXTDAllowShortSignals = xUSPY5XTDAllowShortSignals ? true : xUSPY5MXTDAllowShortSignals; // if (xUSPY5MXTDAllowShortSignals) { xUSPY5Provider.EnableXTDShorts(); } } // // XTAM ... if (xUSPY5MXTAMEnableSignaller) { // xUSPY5MXTAMAllowShortSignals = xUSPY5XTAMAllowShortSignals ? true : xUSPY5MXTAMAllowShortSignals; // if (xUSPY5MXTAMAllowShortSignals) { xUSPY5Provider.EnableXTAMShorts(); } } // // XSI ... if (xUSPY5MXSIEnableSignaller) { // xUSPY5MXSIAllowShortSignals = xUSPY5XSIAllowShortSignals ? true : xUSPY5MXSIAllowShortSignals; // if (xUSPY5MXSIAllowShortSignals) { xUSPY5Provider.EnableXSIShorts(); } } // // XTSFI ... if (xUSPY5MXTSFIEnableSignaller) { // xUSPY5MXTSFIAllowShortSignals = xUSPY5XTSFIAllowShortSignals ? true : xUSPY5MXTSFIAllowShortSignals; // if (xUSPY5MXTSFIAllowShortSignals) { xUSPY5Provider.EnableXTSFIShorts(); } } // // XOBDLH ... // if (xUSPY5MXOBDLHEnableSignaller) // { // // // xUSPY5MXOBDLHAllowShortSignals = // xUSPY5XOBDLHAllowShortSignals // ? true // : xUSPY5MXOBDLHAllowShortSignals; // // // if (xUSPY5MXOBDLHAllowShortSignals) // { // xUSPY5Provider.EnableXOBDLHShorts(); // } // } // // XCHMACC ... if (xUSPY5MXCHMACCEnableSignaller) { // xUSPY5MXCHMACCAllowShortSignals = xUSPY5XCHMACCAllowShortSignals ? true : xUSPY5MXCHMACCAllowShortSignals; // if (xUSPY5MXCHMACCAllowShortSignals) { xUSPY5Provider.EnableXCHMACCShorts(); } } // // XCHMAMX ... // if (xUSPY5MXCHMAMXEnableSignaller) // { // // // xUSPY5MXCHMAMXAllowShortSignals = // xUSPY5XCHMAMXAllowShortSignals // ? true // : xUSPY5MXCHMAMXAllowShortSignals; // // // if (xUSPY5MXCHMAMXAllowShortSignals) // { // xUSPY5Provider.EnableXCHMAMXShorts(); // } // } // // XCHMAMN ... // if (xUSPY5MXCHMAMNEnableSignaller) // { // // // xUSPY5MXCHMAMNAllowShortSignals = // xUSPY5XCHMAMNAllowShortSignals // ? true // : xUSPY5MXCHMAMNAllowShortSignals; // // // if (xUSPY5MXCHMAMNAllowShortSignals) // { // xUSPY5Provider.EnableXCHMAMNShorts(); // } // } } // // // // // XTD Long Signal Checking ... bool XUSPY5XTDHasLongSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXTDEnableSignaller || !xUSPY5MXTDAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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) && // ( // (mConditions.isXTSCurrentUnderFarest && ( // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXAMANeutural && mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCUnderMin) // ) // ) // ) // ) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXCHMALCPeak && mConditions.isXCHLHMCLCHHSame) // ) // ) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXCHMAMCVale && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXTDSignalCrossedOverBear && ( // (mConditions.isXTSCurrentCrossedUnderNearest && ( // (mConditions.isXCHMALCPeak && mConditions.isXCHLHMCLCHHSame && mConditions.isXTSCurrentUnderNearest) // ) // ) // ) // ) // || // (mConditions.isXCHMAMCTrendsUp && ( // (mConditions.isXTSAllSame && mConditions.isXCHMAMCVale && mConditions.isXTDSignalCrossedOverBear) // || // ((mConditions.isXCHMAMCVale && mConditions.isXTDBearishVale) && ( // (mConditions.isXTMNeutural && mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHLHMCLCHHSame && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // // XTD Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( // (mConditions.isXTSCurrentUnderNearest && ( // (mConditions.isXRSICrossedOverLongExit && ( // (mConditions.isXTSCurrentCrossedUnderNearest && ( // (mConditions.isXCHMALCPeak && mConditions.isXLHHHDecreased) // ) // ) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXAMAStartBullish && ( // (mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXTDBullOverBear && mConditions.isXTDSignalCrossedOverBear) // ) // ) // || // (mConditions.isXTDSignalCrossedOverBear && ( // (mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) // ) // ) // ) // ) // ) // ) // || // // XTD Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( // (mConditions.isXTSCurrentUnderNearest && ( // (mConditions.isXCHMALCPeak && mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXTDBearishVale) // ) // ) // ) // ) // || // // 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) && // ( // (mConditions.isXTSCurrentUnderNearest && ( // ((mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale) && ( // (mConditions.isXTDBearishVale && mConditions.isXTMStartBullish && mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCUnderMin) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentUnderFarest && ( // ((mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale) && ( // (mConditions.isXAMAVale && mConditions.isXCHLHMCLCHHSame && mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCUnderMin) // ) // ) // || // ((mConditions.isXTDBearishVale && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMin && mConditions.isXCHLHMCLCHHSame) // || // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale && mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCUnderMin && mConditions.isXAMAStartBullish && mConditions.isXCHMASCFastCrossedOverSlow) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXCHMALCPeak && mConditions.isXCHLHMCLCHHSame && mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXTSCurrentUnderNearest && ( // (mConditions.isXTSCurrentCrossedUnderNearest && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale && mConditions.isXTDBearishVale && mConditions.isXTMStartBullish && mConditions.isXCHMASCUnderMin) // ) // ) // || // (mConditions.isXCHMAMCTrendsUp && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale && mConditions.isXTDBearishVale) // ) // ) // ) // ) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXTDBearishVale && ( // (mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHLHMCLCHHSame && mConditions.isXTDSignalCrossedOverBear && mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // ) // ) // ) // ) // || // // XTD Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // ((mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale) && ( // ((mConditions.isXTSCurrentMax && mConditions.isXCHMASCUnderMin && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // || // (mConditions.isXTMEndBullish && mConditions.isXTMNeutural && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( // (mConditions.isXTSCurrentUnderNearest && ( // (mConditions.isXCHMALCPeak && mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXTDBearishVale) // ) // ) // ) // ) // || // // 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 ... // // XTD Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( // (mConditions.isXTSCurrentUnderNearest && ( // (mConditions.isXTSCurrentUnderMediest && ( // (mConditions.isXCHMASCOverMax && mConditions.isXTSCurrentCrossedUnderNearest && mConditions.isXTSCurrentCrossedUnderMediest) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentUnderFarest && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXTDSignalCrossedOverBear && mConditions.isXCHMALCPeak && mConditions.isXCHMASCOverMax) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXTDBearishVale && mConditions.isXTDSignalCrossedOverBear && mConditions.isXLHPriceCrossedOverSignal) // ) // ) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXTDSignalCrossedOverBear && mConditions.isXLHPriceCrossedOverSignal) && ( // (mConditions.isXCHMAMCVale && mConditions.isXTDBearishVale) // || // (mConditions.isXLHHHDecreased && mConditions.isXAMAStartBullish) // ) // ) // ) // ) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // ((mConditions.isXTMNeutural || mConditions.isXTMEndBullish) && ( // (mConditions.isXTDSignalCrossedOverBear && mConditions.isXCHMAMCPeak && mConditions.isXTSCurrentMax && mConditions.isXLHLLIncreased && mConditions.isXCHMASCOverMin) // ) // ) // ) // ) // || // // Check LC Fast Over Slow ... ((mConditions.isXCHMALCTrendsDown || mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // // XTD Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( // (mConditions.isXTSCurrentUnderNearest && ( // (mConditions.isXTSCurrentCrossedUnderNearest && ( // ((mConditions.isXCHLHSCMCHHSame && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale) // || // (mConditions.isXCHMALCPeak && mConditions.isXCHMASCOverMax) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentUnderMediest && ( // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCPeak && mConditions.isXTDBearishVale && mConditions.isXCHLHSCMCHHSame && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXTSCurrentMax && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXCHMALCVale && mConditions.isXCHLHSCMCHHSame && mConditions.isXLHHighAttachedHH && mConditions.isXTSCurrentCrossedOverNearest) // || // (mConditions.isXCHLHSameHHs && ( // ( // mConditions.isXLHHighAttachedHH // || // (mConditions.isXLHLLSameInLength && mConditions.isXRSICrossedOverLongExit) // ) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXTDSignalCrossedOverBear && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax && mConditions.isXLHHighAttachedHH) && ( // mConditions.isXCHLHSameHHs // || // (mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHMCLCLLSame) // ) // ) // ) // ) // ) // ) // || // // XTD Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // XTD 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 ... // // 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) // ) // ) // ) // ) // // XTD Long ... // Resolve Guard Attacks ... || // ( // // XTD Long ... // isXTSCurrentUnderNearest (mConditions.isXTSCurrentUnderNearest && ( // (mConditions.isXTSCurrentCrossedUnderNearest && ( // (mConditions.isXTSCurrentUnderFarest && ( // mConditions.isXTSCurrentCrossedUnderFarest // || // (mConditions.isXCHMASCOverMax && mConditions.isXCHMAMCFastUnderSlow) // || // (mConditions.isXAMANeutural && mConditions.isXLHLLSameInLength && mConditions.isXLHPriceInSignalRange) // || // (mConditions.isXCHMALCVale && mConditions.isXCHLHMCLCHHSame && mConditions.isXLHHHSameInLength && mConditions.isXCHMALCFastUnderSlow) // ) // ) // || // (mConditions.isXTSCurrentUnderMediest && ( // (mConditions.isXTSCurrentCrossedUnderMediest && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXTDBearishVale) // || // (mConditions.isXLHPriceOverSignal && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXCHMALCVale && mConditions.isXAMAStartBullish) // || // (mConditions.isXCHMALCVale && mConditions.isXCHLHMCLCHHSame && mConditions.isXCHLHMCLCLLSame) // || // (mConditions.isXCHMALCVale && mConditions.isXAMANeutural && mConditions.isXCHMALCFastUnderSlow) // ) // ) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale && mConditions.isXTMStartBullish && mConditions.isXAMAStartBullish) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXAMANeutural && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXCHMASCOverMax && mConditions.isXLHPriceOverSignal && mConditions.isXCHMASCCrossedOverMax && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXTMNeutural && mConditions.isXCHMAMCVale && mConditions.isXTDBearishVale && mConditions.isXCHLHMCLCLLSame) // || // (mConditions.isXCHMALCPeak && ( // mConditions.isXLHPriceUnderSignal // || // (mConditions.isXCHMASCOverMin && mConditions.isXCHMASCUnderMax) // ) // ) // || // (mConditions.isXCHMAMCTrendsUp && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale && mConditions.isXCHMASCUnderMin) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceUnderSignal && mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXCHMALCPeak && ( // mConditions.isXLHPriceInSignalRange // || // (mConditions.isXCHMAMCVale && ( // (mConditions.isXTMNeutural && mConditions.isXAMABearish) // ) // ) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHPriceOverSignal && ( // ((mConditions.isXCHMASCOverMax && mConditions.isXLHLLSameInLength) && ( // mConditions.isXCHLHSCMCHHSame // || // mConditions.isXLHHHSameInLength // ) // ) // ) // ) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXCHMALCVale && ( // mConditions.isXCHLHMCLCHHSame // || // mConditions.isXLHHHSameInLength // ) // ) // || // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXCHMALCVale && mConditions.isXLHHHIncreased && mConditions.isXCHLHSCMCHHSame) // || // (mConditions.isXCHMASCOverMax && ( // (mConditions.isXCHLHSCMCHHSame && ( // mConditions.isXLHLLIncreased // || // (mConditions.isXTMNeutural && mConditions.isXLHLLSameInLength && mConditions.isXCHMASCCrossedOverMax) // ) // ) // || // (mConditions.isXCHLHSameHHs && ( // mConditions.isXLHLLSameInLength // || // (mConditions.isXTMNeutural || mConditions.isXTMEndBullish) // ) // ) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXCHLHSCMCHHSame && ( // (mConditions.isXCHMALCVale && mConditions.isXLHLLDecreased) // || // (mConditions.isXCHMASCOverMax && mConditions.isXLHHighAttachedHH && mConditions.isXCHMASCCrossedOverMax) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHHHSameInLength && ( // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXCHMALCVale && mConditions.isXCHLHMCLCHHSame) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (((mConditions.isXTMNeutural && mConditions.isXAMANeutural) || (mConditions.isXTMEndBullish && mConditions.isXAMAEndBullish)) && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMin && mConditions.isXCHLHMCLCHHSame) // ) // ) // || // ((mConditions.isXCHMALCPeak && mConditions.isXCHLHMCLCHHSame && mConditions.isXLHHHSameInLength) && ( // (mConditions.isXAMANeutural && mConditions.isXLHLLSameInLength) // || // (mConditions.isXLHLLIncreased && mConditions.isXLHPriceInSignalRange) // ) // ) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceOverSignal && ( // mConditions.isXCHMASCCrossedOverMin // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXCHMASCOverMax && ( // (mConditions.isXTMNeutural && mConditions.isXCHMAMCPeak) // || // ((mConditions.isXCHMALCPeak && mConditions.isXLHLLIncreased && mConditions.isXTDSignalCrossedOverBear) && ( // mConditions.isXCHLHMCLCHHSame // || // (mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength && mConditions.isXLHPriceOverSignal) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceOverSignal && ( // ((mConditions.isXCHMALCPeak && mConditions.isXCHMASCOverMax) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentUnderMediest && ( // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXTDBearishVale) // ) // ) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXCHLHSCMCHHSame && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHMASCOverMax) // || // ((mConditions.isXTDBearishVale && mConditions.isXCHMASCCrossedOverMin) && ( // (mConditions.isXTMNeutural && ( // mConditions.isXAMANeutural // || // mConditions.isXAMAStartBullish // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXLHPriceCrossedUnderSignal && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXCHMALCPeak && mConditions.isXTDBearishVale) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXTDBearishVale && mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish) // ) // ) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceInSignalRange && ( // (mConditions.isXTDBearishVale && ( // ((mConditions.isXTMNeutural && mConditions.isXAMANeutural) && ( // mConditions.isXTSCurrentCrossedOverMediest // ) // ) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHPriceOverSignal && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // ((mConditions.isXCHMASCOverMax && mConditions.isXTDBearishVale) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXCHMAMCVale && ( // (mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCUnderMin) // || // (mConditions.isXCHMALCPeak && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish) // || // (mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish) // || // (mConditions.isXAMAStartBullish && mConditions.isXLHPriceUnderSignal) // ) // ) // || // (mConditions.isXTDBearishVale && ( // ( // (mConditions.isXTMBearish && mConditions.isXAMABearish) // || // (mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish) // || // (mConditions.isXCHMALCPeak && mConditions.isXAMAStartBullish && mConditions.isXLHLLSameInLength) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXLHPriceOverSignal && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXCHMAMCPeak && ( // (mConditions.isXCHMASCOverMax && mConditions.isXTDSignalCrossedOverBear) // || // (mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // (mConditions.isXCHMALCVale && ( // (mConditions.isXCHLHSCMCHHSame && mConditions.isXLHLLSameInLength) // || // (mConditions.isXTSCurrentMax && mConditions.isXTDBearishVale && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXTDBearishVale && mConditions.isXCHMALCFastUnderSlow && mConditions.isXTSCurrentCrossedUnderNearest) && ( // (mConditions.isXCHMAMCPeak && mConditions.isXLHLLIncreased && mConditions.isXCHMASCOverMax && mConditions.isXTDSignalCrossedOverBear) // ) // ) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXCHMALCPeak && mConditions.isXCHMASCOverMax && mConditions.isXCHLHMCLCHHSame && mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength && mConditions.isXCHMASCCrossedOverMax && mConditions.isXTDSignalCrossedOverBear) // ) // ) // || // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXCHMALCPeak && mConditions.isXCHMASCOverMax && mConditions.isXCHLHSCMCHHSame && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // (mConditions.isXLHPriceOverSignal && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // ((mConditions.isXTMNeutural && mConditions.isXAMANeutural) && ( // (mConditions.isXTDBearishVale && mConditions.isXCHMASCOverMax && mConditions.isXTSCurrentCrossedOverFarest && mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHPriceInSignalRange && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // ((mConditions.isXTDBearishVale && mConditions.isXCHMASCOverMax) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Long ... // isXTSCurrentUnderMediest (mConditions.isXTSCurrentUnderMediest && ( // ((mConditions.isXCHMALCPeak && mConditions.isXCHMASCOverMax && mConditions.isXTDSignalCrossedOverBear) && ( // mConditions.isXCHLHMCLCHHSame // || // (mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength && mConditions.isXLHPriceOverSignal && mConditions.isXTSCurrentCrossedOverFarest && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // || // (mConditions.isXTSCurrentUnderFarest && ( // // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXAMAVale && mConditions.isXAMABearish && mConditions.isXTMNeutural && mConditions.isXCHMALCPeak && mConditions.isXCHLHMCLCHHSame) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXAMANeutural && mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak) // ) // ) // ) // ) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXCHMAMCVale && ( // (mConditions.isXCHMALCVale && mConditions.isXCHMASCUnderMin) // || // (mConditions.isXTDBearishVale && mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength && mConditions.isXLHPriceUnderSignal && mConditions.isXTSCurrentCrossedUnderMediest) // ) // ) // || // (mConditions.isXCHMALCPeak && ( // (mConditions.isXTMStartBullish && mConditions.isXAMAStartBullish) // || // (mConditions.isXCHMAMCVale && ( // (mConditions.isXTMStartBullish && mConditions.isXAMAStartBullish) // || // (mConditions.isXTSCurrentCrossedUnderMediest && ( // (mConditions.isXCHLHMCLCHHSame && mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength && mConditions.isXLHPriceUnderSignal) // ) // ) // ) // ) // || // (mConditions.isXAMANeutural && mConditions.isXLHLLSameInLength && mConditions.isXLHPriceInSignalRange && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXTSCurrentCrossedUnderMediest && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHMASCCrossedOverMax) // ) // ) // || // (mConditions.isXLHPriceInSignalRange && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXCHMASCPeak && mConditions.isXCHMALCVale && mConditions.isXLHLLIncreased) // || // (mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale && mConditions.isXTMNeutural && mConditions.isXAMANeutural) // || // ((mConditions.isXCHMASCOverMin && mConditions.isXCHMASCUnderMax) && ( // (mConditions.isXCHMALCVale && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHPriceUnderSignal && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHMASCCrossedOverMax) // ) // ) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXCHMAMCPeak && ( // (mConditions.isXCHMALCVale && ( // (mConditions.isXTMNeutural && mConditions.isXAMABearish) // ) // ) // || // ((mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHMCLCLLSame) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Long ... // isXTSCurrentUnderFarest (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXLHPriceUnderSignal && ( // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // (mConditions.isXCHMALCPeak && mConditions.isXTDBearishVale && mConditions.isXCHLHMCLCHHSame && mConditions.isXLHHHSameInLength && mConditions.isXTDSignalCrossedOverBear) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXCHMAMCVale && ( // (mConditions.isXCHLHMCLCHHSame && mConditions.isXCHMASCUnderMin) // || // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXTMNeutural && mConditions.isXLHLLDecreased) // || // (mConditions.isXLHHHSameInLength && ( // (mConditions.isXAMAVale && mConditions.isXAMABearish && mConditions.isXTMStartBullish) // || // (mConditions.isXTDBearishVale && mConditions.isXLHLLDecreased && mConditions.isXCHLHMCLCLLSame) // ) // ) // ) // ) // || // (mConditions.isXCHMALCPeak && ( // mConditions.isXAMABearish // || // mConditions.isXLHLLSameInLength // || // (mConditions.isXCHLHMCLCHHSame && mConditions.isXLHHHSameInLength && mConditions.isXLHPriceUnderSignal) // ) // ) // || // ((mConditions.isXTMStartBullish && mConditions.isXAMAStartBullish) && ( // (mConditions.isXCHMALCPeak && mConditions.isXLHHHDecreased) // ) // ) // ) // ) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // ((mConditions.isXTMNeutural && mConditions.isXAMANeutural) && ( // (mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMin && mConditions.isXTDBearishVale) // ) // ) // ) // ) // || // (mConditions.isXTMNeutural && mConditions.isXCHMALCPeak && mConditions.isXAMAStartBullish && mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) // ) // ) // ) // ) // || // ((!mConditions.isXCHMAMCTrendsUp && !mConditions.isXCHMAMCTrendsDown) && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceUnderSignal && ( // (mConditions.isXCHMALCPeak && ( // (mConditions.isXTMNeutural && mConditions.isXAMAStartBullish) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXLHHHSameInLength && ( // (mConditions.isXCHMALCPeak && mConditions.isXTDBearishVale && mConditions.isXCHLHMCLCHHSame) // || // (mConditions.isXLHHHSameInLength && ( // ((mConditions.isXCHMALCPeak && mConditions.isXAMANeutural) && ( // mConditions.isXTSCurrentCrossedOverNearest // || // (mConditions.isXAMAVale && mConditions.isXLHLLIncreased && mConditions.isXTMStartBullish && mConditions.isXCHLHMCLCHHSame) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXAMAStartBullish && ( // (mConditions.isXCHMALCVale && mConditions.isXCHMASCUnderMin) // || // (mConditions.isXCHMALCPeak && mConditions.isXLHHHDecreased && mConditions.isXLHPriceCrossedOverSignal) // ) // ) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXAMAVale && mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXAMANeutural && mConditions.isXCHLHMCLCLLSame) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXLHPriceInSignalRange && ( // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXTSCurrentCrossedUnderFarest && ( // ((mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHSCMCLLSame) && ( // (mConditions.isXTMNeutural && ( // mConditions.isXAMANeutural // || // mConditions.isXTMEndBullish // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXCHMAMCPeak && mConditions.isXLHLLIncreased && mConditions.isXCHMASCOverMax && mConditions.isXCHLHSCMCHHSame) // || // (mConditions.isXLHHHSameInLength && ( // (mConditions.isXCHMALCVale && mConditions.isXCHMASCOverMin && mConditions.isXCHMASCUnderMax && mConditions.isXTSCurrentOverMediest && mConditions.isXTDSignalCrossedOverBear) // || // ((mConditions.isXCHMAMCPeak && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXCHMALCVale && ( // mConditions.isXTDBearishVale // || // (mConditions.isXTDBullOverBear && mConditions.isXTSCurrentOverMediest && mConditions.isXTDSignalCrossedOverBear) // ) // ) // || // (mConditions.isXLHLLSameInLength && ( // mConditions.isXCHMASCOverMax // || // (mConditions.isXTDBearishVale && ( // mConditions.isXAMANeutural // || // mConditions.isXTMStartBullish // ) // ) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // ((mConditions.isXCHMASCOverMin && mConditions.isXCHMASCUnderMax && mConditions.isXCHMALCTrendsDown) && (!mConditions.isXCHMAMCTrendsUp && !mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow)) // || // ((mConditions.isXCHMAMCPeak && mConditions.isXTMNeutural && mConditions.isXLHLLIncreased) && ( // mConditions.isXCHMALCVale // || // (mConditions.isXTMEndBullish && mConditions.isXCHMASCOverMax) // ) // ) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXCHMALCPeak) // || // (mConditions.isXCHMALCPeak && mConditions.isXCHLHMCLCHHSame && mConditions.isXAMAStartBullish && mConditions.isXLHPriceInSignalRange) // || // (mConditions.isXLHPriceOverSignal && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXCHMALCPeak && mConditions.isXTDBearishVale) // || // (mConditions.isXCHMALCPeak && mConditions.isXLHLLDecreased && mConditions.isXTMStartBullish && mConditions.isXLHPriceCrossedOverSignal) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Long ... // isXCHMAMCFastUnderSlow // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale && mConditions.isXCHMASCUnderMin && mConditions.isXTDSignalCrossedOverBear) // ) // ) // || // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXLHPriceInSignalRange && ( // (mConditions.isXLHLLSameInLength && ( // ((mConditions.isXTSCurrentMax && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXCHMAMCVale && mConditions.isXAMANeutural && mConditions.isXCHMASCUnderMin) // || // mConditions.isXTSCurrentCrossedOverNearest // ) // ) // || // (mConditions.isXLHHHSameInLength && ( // (mConditions.isXCHMAMCVale && mConditions.isXTSCurrentMax) // ) // ) // ) // ) // || // (mConditions.isXLHHHSameInLength && ( // (mConditions.isXCHMALCVale && mConditions.isXAMAStartBullish) // || // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXTDBearishVale && mConditions.isXCHLHSCMCLLSame) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHPriceUnderSignal && ( // ((mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale) && ( // ((mConditions.isXTSCurrentMax && mConditions.isXCHMASCUnderMin) && ( // (mConditions.isXTMStartBullish && mConditions.isXAMAStartBullish) // ) // ) // ) // ) // || // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXCHMAMCVale && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // || // (mConditions.isXAMAVale && mConditions.isXTMNeutural && mConditions.isXAMABearish && mConditions.isXCHMASCUnderMin) // || // ((mConditions.isXTSCurrentMax && mConditions.isXTSCurrentCrossedOverNearest) && ( // (mConditions.isXLHLLDecreased && mConditions.isXCHMASCUnderMin) // || // (mConditions.isXAMAVale && mConditions.isXAMABearish && mConditions.isXTMStartBullish && mConditions.isXCHLHSCMCLLSame) // || // (mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCCrossedOverMin && mConditions.isXTSCurrentCrossedOverFarest && mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // ) // ) // || // (mConditions.isXLHHHSameInLength && ( // (mConditions.isXCHMAMCVale && mConditions.isXTDBearishVale && mConditions.isXTSCurrentUnderMediest && mConditions.isXTSCurrentCrossedUnderMediest) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHPriceOverSignal && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHLHMCLCLLSame) // || // ((mConditions.isXTSAllSame && mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak) && ( // (mConditions.isXTSCurrentMax && ( // mConditions.isXLHHHDecreased // || // (mConditions.isXAMANeutural && mConditions.isXLHLLDecreased) // || // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXLHHHSameInLength && mConditions.isXLHPriceUnderSignal) // || // (mConditions.isXAMANeutural && mConditions.isXTDBearishVale && mConditions.isXTSCurrentCrossedOverNearest) // || // (mConditions.isXTMStartBullish && mConditions.isXAMAStartBullish && mConditions.isXLHPriceCrossedOverSignal) // ) // ) // ) // ) // || // (mConditions.isXAMAVale && mConditions.isXAMABearish && mConditions.isXCHLHMCLCLLSame && mConditions.isXLHPriceCrossedOverSignal) // ) // ) // || // ((mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale) && ( // (mConditions.isXAMANeutural && mConditions.isXTMStartBullish) // ) // ) // || // (mConditions.isXCHMAMCVale && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // || // (mConditions.isXTSCurrentMax && ( // (mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength && mConditions.isXLHPriceUnderSignal) // || // (mConditions.isXLHLLSameInLength && mConditions.isXLHPriceInSignalRange && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // ((mConditions.isXCHMAMCVale && mConditions.isXCHMASCUnderMin) && ( // (mConditions.isXCHMALCVale && mConditions.isXTDBearishVale) // || // (mConditions.isXTSCurrentMax && mConditions.isXCHLHMCLCLLSame && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // ((mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax) && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHPriceOverSignal) && ( // mConditions.isXTMStartBullish // || // ((mConditions.isXTSCurrentCrossedOverFarest && mConditions.isXTSCurrentCrossedOverNearest) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // ) // ) // || // ((mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHMCLCLLSame) && ( // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXTDBullOverBear && mConditions.isXLHLLSameInLength && mConditions.isXTDSignalCrossedOverBear) // || // (mConditions.isXCHMASCCrossedOverMax && mConditions.isXTDSignalCrossedOverBear && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXLHPriceOverSignal && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Long ... // isXCHMALCFastUnderSlow // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCTrendsUp && mConditions.isXCHMAMCFastOverSlow) && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXCHMAMCPeak && ( // (mConditions.isXCHMASCOverMax && mConditions.isXCHMASCCrossedOverMax) // || // (mConditions.isXTMNeutural && mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax) // || // ((mConditions.isXOBDSwingHigh && mConditions.isXTSCurrentMax) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // || // ((mConditions.isXTSCurrentMax && mConditions.isXCHLHMCLCHHSame) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentMax && ( // (mConditions.isXLHPriceCrossedOverSignal && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // || // (mConditions.isXCHMASCOverMax && mConditions.isXCHMASCCrossedOverMax) // ) // ) // ) // ) // || // (mConditions.isXLHPriceInSignalRange && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXTSCurrentMax && mConditions.isXTDBullOverBear && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXLHPriceOverSignal && ( // ((mConditions.isXCHLHSCMCHHSame && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXTSCurrentMax && mConditions.isXLHHighAttachedHH) // || // (mConditions.isXTSAllSame && mConditions.isXAMAStartBullish && mConditions.isXLHPriceCrossedOverSignal) // || // ((mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXCHMASCOverMax && mConditions.isXTDBullOverBear) && ( // (mConditions.isXTSAllSame && mConditions.isXCHMASCCrossedOverMax) // || // (mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverMediest) // ) // ) // ) // ) // || // ((mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax) && ( // mConditions.isXTSCurrentCrossedOverNearest // || // (mConditions.isXTMNeutural && mConditions.isXAMAStartBullish) // || // (mConditions.isXTMStartBullish && mConditions.isXCHLHSCMCHHSame && mConditions.isXTSCurrentCrossedOverFarest && mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // ) // ) // || // (mConditions.isXLHPriceInSignalRange && ( // (mConditions.isXTSCurrentMax && ( // (mConditions.isXCHLHSCMCHHSame && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHHHSameInLength && ( // (mConditions.isXTSAllSame && mConditions.isXCHMALCVale && mConditions.isXLHPriceOverSignal && mConditions.isXTDSignalCrossedOverBear) // ) // ) // || // ((!mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // (mConditions.isXLHPriceInSignalRange && ( // (mConditions.isXCHMAMCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax && mConditions.isXCHLHSCMCHHSame && mConditions.isXLHHighAttachedHH) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax && mConditions.isXLHPriceOverSignal && mConditions.isXTDSignalCrossedOverBear) && ( // mConditions.isXTDBearishVale // || // (mConditions.isXLHHHSameInLength && ( // mConditions.isXLHLLSameInLength // || // (mConditions.isXCHMASCOverMin && mConditions.isXCHMASCUnderMax && mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverMediest) // ) // ) // || // (mConditions.isXCHMAMCPeak && ( // (mConditions.isXLHHHSameInLength && ( // mConditions.isXCHLHMCLCHHSame // || // mConditions.isXFICrossedOverZero // || // (mConditions.isXCHMASCOverMin && mConditions.isXCHMASCUnderMax) // ) // ) // || // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXCHMASCOverMin && mConditions.isXTDBullOverBear && mConditions.isXCHMASCUnderMax) // ) // ) // ) // ) // || // ((mConditions.isXTMStartBullish && mConditions.isXAMAStartBullish) && ( // (mConditions.isXCHLHSCMCHHSame && mConditions.isXLHLLSameInLength) // ) // ) // ) // ) // || // ((mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax && mConditions.isXTDSignalCrossedOverBear) && ( // mConditions.isXTSCurrentCrossedOverNearest // || // (mConditions.isXCHLHSCMCHHSame && mConditions.isXLHHighAttachedHH) // ) // ) // || // (((mConditions.isXTMNeutural && mConditions.isXAMANeutural) || (mConditions.isXTMEndBullish && mConditions.isXAMAEndBullish)) && ( // ((mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHSCMCLLSame) && ( // (mConditions.isXTSCurrentMax && ( // mConditions.isXTDBearishVale // || // (mConditions.isXLHLLSameInLength && mConditions.isXLHPriceInSignalRange) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXLHPriceOverSignal && mConditions.isXLHLLSameInLength) && ( // ((mConditions.isXTSCurrentMax && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXLHHHSameInLength && ( // mConditions.isXCHLHSCMCHHSame // || // (mConditions.isXCHMASCOverMax && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHLHMCLCHHSame) // || // (mConditions.isXTSAllSame && mConditions.isXCHMAMCPeak && mConditions.isXCHMASCCrossedOverMax) // || // (mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXFIOverZero && mConditions.isXTDBullOverBear && mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverMediest) // || // ((mConditions.isXCHMAMCPeak || mConditions.isXTDBearishVale) && ( // (!mConditions.isXCHMAMCTrendsUp && !mConditions.isXCHMAMCTrendsDown) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXCHMASCOverMax && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHLHSameHHs) // || // (mConditions.isXCHLHSCMCHHSame && ( // mConditions.isXLHHighAttachedHH // || // mConditions.isXTSCurrentCrossedOverMediest // ) // ) // ) // ) // || ((mConditions.isXCHMAMCPeak && mConditions.isXCHLHMCLCLLSame) && ( // mConditions.isXCHLHSCMCHHSame // || // mConditions.isXLHHHSameInLength // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHPriceOverSignal && ( // ((mConditions.isXTSCurrentMax && mConditions.isXCHLHSCMCHHSame) && ( // (mConditions.isXLHLLIncreased && mConditions.isXLHHighAttachedHH) // || // (mConditions.isXCHMAMCPeak && mConditions.isXTDSignalCrossedOverBear) // ) // ) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXTSCurrentMax && mConditions.isXTDSignalCrossedOverBear && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // || // (mConditions.isXLHPriceUnderSignal && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // ) // ) // || // // XTD Long ... // isXCHMASCTrendsDown ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXTSCurrentMax && ( // (mConditions.isXLHPriceInSignalRange && ( // (mConditions.isXLHLLDecreased && ( // (mConditions.isXTMStartBullish && mConditions.isXAMAStartBullish) // || // (mConditions.isXAMANeutural && mConditions.isXTMStartBullish && mConditions.isXCHLHMCLCHHSame) // ) // ) // ) // ) // || // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHMASCOverMax && mConditions.isXCHLHMCLCLLSame && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Long ... // isXCHMAMCTrendsDown ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXAMAStartBullish && ( // (mConditions.isXCHLHMCLCHHSame && mConditions.isXLHPriceUnderSignal) // || // (mConditions.isXLHPriceInSignalRange && ( // (mConditions.isXLHHHSameInLength && ( // (mConditions.isXTMStartBullish && mConditions.isXLHLLSameInLength) // || // (mConditions.isXCHMASCOverMax && mConditions.isXCHMASCCrossedOverMax) // || // (mConditions.isXCHMASCOverMin && mConditions.isXCHLHMCLCHHSame && mConditions.isXCHMASCUnderMax) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXTDBearishVale && ( // (mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength && mConditions.isXLHPriceInSignalRange) // || // (mConditions.isXLHPriceCrossedOverSignal && mConditions.isXTSCurrentCrossedOverNearest && mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // || // ((mConditions.isXTDBearishVale && mConditions.isXLHPriceOverSignal) && ( // (mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) // || // (mConditions.isXCHLHSCMCHHSame && mConditions.isXLHHighAttachedHH && mConditions.isXCHMASCCrossedOverMax) // ) // ) // || // ((mConditions.isXTDBearishVale && mConditions.isXCHLHMCLCHHSame) && ( // (mConditions.isXTSAllSame && mConditions.isXTMBearish && mConditions.isXAMANeutural) // ) // ) // || // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXTSCurrentMax && mConditions.isXLHLLSameInLength && mConditions.isXLHPriceUnderSignal && mConditions.isXTSCurrentCrossedOverNearest) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceUnderSignal && ( // (mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXTSCurrentCrossedOverFarest) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXCHMALCPeak && ( // (mConditions.isXTMNeutural && mConditions.isXTDBearishVale && mConditions.isXTSCurrentCrossedOverNearest) // || // (mConditions.isXAMANeutural && ( // mConditions.isXTMNeutural // || // mConditions.isXCHLHMCLCHHSame // || // (mConditions.isXLHPriceUnderSignal && ( // (mConditions.isXLHHHSameInLength && ( // (mConditions.isXTMBullish && mConditions.isXCHMASCOverMin && mConditions.isXCHMASCUnderMax) // || // (mConditions.isXLHLLSameInLength && ( // mConditions.isXAMAEndBearish // || // (mConditions.isXTSCurrentCrossedOverFarest && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceInSignalRange && ( // ((mConditions.isXTSCurrentMax && mConditions.isXLHLLDecreased && mConditions.isXTMStartBullish && mConditions.isXCHLHMCLCHHSame) && ( // mConditions.isXAMANeutural // || // (mConditions.isXAMAStartBullish && mConditions.isXTDSignalCrossedOverBear) // ) // ) // || // (mConditions.isXTDBearishVale && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMin && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHPriceUnderSignal && ( // (mConditions.isXCHLHMCLCHHSame && ( // (mConditions.isXCHMALCPeak && mConditions.isXAMANeutural) // || // (mConditions.isXCHMASCPeak && mConditions.isXTSCurrentMax && mConditions.isXTDBearishVale && mConditions.isXCHMASCFastCrossedOverSlow) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMin && mConditions.isXLHHHDecreased && mConditions.isXAMAStartBullish && mConditions.isXLHPriceCrossedOverSignal) // ) // ) // ) // ) // || // // XTD Long ... // isXCHMALCTrendsDown ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXTDSignalCrossedOverBear) && ( // mConditions.isXCHMASCOverMax // || // (mConditions.isXTSAllSame && mConditions.isXAMANeutural && mConditions.isXTDBearishVale && mConditions.isXTMStartBearish && mConditions.isXCHLHMCLCHHSame) // ) // ) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceInSignalRange && ( // (mConditions.isXTSAllSame && mConditions.isXLHLLIncreased) // ) // ) // ) // ) // ) // ) // || // // XTD Long ... // All Bullish ... ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax && mConditions.isXTDSignalCrossedOverBear) && ( // (mConditions.isXLHPriceOverSignal && ( // mConditions.isXCHLHSameHHs // || // (mConditions.isXLHLLSameInLength && ( // mConditions.isXTDBearishVale // || // (mConditions.isXTSAllSame && mConditions.isXLHLLIncreased && mConditions.isXCHLHSCMCHHSame) // ) // ) // ) // ) // || // (!mConditions.isXCHMAMCTrendsUp && !mConditions.isXCHMAMCTrendsDown && mConditions.isXLHHHSameInLength && mConditions.isXTSCurrentCrossedOverNearest) // || // ((mConditions.isXCHLHSCMCHHSame && mConditions.isXLHHighAttachedHH) && ( // (mConditions.isXCHLHSCMCLLSame && mConditions.isXTSCurrentCrossedOverNearest) // || // (mConditions.isXLHLLSameInLength && mConditions.isXLHPriceOverSignal) // ) // ) // || // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax && mConditions.isXCHLHSCMCHHSame && mConditions.isXLHHighAttachedHH) // || // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXLHLLIncreased && mConditions.isXTSCurrentOverFarest) // || // ((mConditions.isXCHMALCPeak && mConditions.isXCHLHSCMCHHSame && mConditions.isXTSCurrentCrossedOverNearest) && ( // (mConditions.isXTSCurrentCrossedOverFarest && mConditions.isXTSCurrentCrossedOverMediest) // || // (mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax && mConditions.isXTDBullOverBear && mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverNearest && mConditions.isXTSCurrentOverMediest && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax && mConditions.isXCHLHSCMCHHSame) && ( // ((mConditions.isXLHLLSameInLength && mConditions.isXLHPriceOverSignal) && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHMAMCFastCrossedOverSlow) // || // (mConditions.isXCHLHSameHHs && mConditions.isXCHMASCCrossedOverMax && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // ) // ) // ) // ) // ; // return result; } // // XTD Short Signal Checking ... bool XUSPY5XTDHasShortSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXTDEnableSignaller || !xUSPY5MXTDAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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 MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXTDBullOverBear && ( // (mConditions.isXCHMAMCTrendsUp && mConditions.isXCHMAMCPeak && mConditions.isXTSCurrentMin && mConditions.isXLHLLIncreased) // ) // ) // ) // ) // ) // ) // || // // XTD Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // XTD Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // 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) && // ( // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXTDBullOverBear && mConditions.isXTSCurrentOverNearest && mConditions.isXTSCurrentOverMediest) // ) // ) // || // (mConditions.isXTSCurrentOverNearest && ( // (mConditions.isXLHHHDecreased && mConditions.isXTDBullOverBear && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // || // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXTDBullOverBear && ( // (mConditions.isXCHMALCVale && mConditions.isXTMStartBearish && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // || // // XTD Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && mConditions.isXLHHHDecreased && mConditions.isXTDBullOverBear && mConditions.isXCHMASCTrendsUp && mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCUnderMin && mConditions.isXCHMASCCrossedUnderMin) // ) // ) // || // (mConditions.isXTSCurrentOverNearest && ( // (mConditions.isXCHMASCUnderMin && mConditions.isXTDBullOverBear && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // || // // XTD Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( false) // ) // || // // 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) && // ( // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXCHMALCVale && mConditions.isXTDBullOverBear && mConditions.isXCHMASCTrendsUp && mConditions.isXTSCurrentOverFarest) // || // (mConditions.isXTDBullOverBear && ( // ((mConditions.isXAMANeutural || mConditions.isXAMAEndBullish) && // (mConditions.isXCHMASCPeak && mConditions.isXCHMALCVale && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHMCLCLLSame) // ) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXTDBullOverBear && mConditions.isXTMStartBearish && mConditions.isXAMAEndBullish && mConditions.isXAMANeutural && mConditions.isXCHMASCPeak && mConditions.isXCHMALCVale && mConditions.isXCHLHMCLCLLSame) // ) // ) // ) // ) // || // // XTD Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( false) // ) // || // // 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.isXTDBullOverBear && mConditions.isXCHMAMCTrendsUp && mConditions.isXTSCurrentOverNearest && mConditions.isXTSCurrentOverMediest) // ) // ) // ) // ) // || // // XTD Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // ((mConditions.isXCHMALCVale && mConditions.isXTDBullOverBear && mConditions.isXCHMASCTrendsUp && mConditions.isXCHLHSCMCHHSame) && ( // mConditions.isXTSAllSame // || // mConditions.isXTSCurrentOverFarest // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // 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) // ) // ) // ) // ) // // XTD Shorts ... // Resolve Guard Attacks ... || ( // // XTD Shorts ... // isXTSCurrentOverNearest (mConditions.isXTSCurrentOverNearest && ( // (mConditions.isXTDBullOverBear && ( // (mConditions.isXCHMALCVale && ( // (mConditions.isXCHLHSameLLs && mConditions.isXCHMASCUnderMin) // || // (mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // || // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // (mConditions.isXCHMALCVale && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHMCLCLLSame) // ) // ) // ) // ) // ) // ) // || // // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXLHLLIncreased) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Shorts ... // isXTSCurrentOverMediest (mConditions.isXTSCurrentOverMediest && ( // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXTDBullOverBear && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHMCLCLLSame) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentOverFarest && ( // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXTDBullOverBear && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHMCLCLLSame) // ) // ) // || // ((mConditions.isXTMNeutural && mConditions.isXAMANeutural) && ( // (mConditions.isXCHMALCVale && mConditions.isXTDBullOverBear && mConditions.isXCHMASCUnderMin) // ) // ) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceUnderSignal && ( // (mConditions.isXTMNeutural && mConditions.isXCHMALCVale && mConditions.isXTDBullOverBear && mConditions.isXCHMASCUnderMin) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Shorts ... // isXTSCurrentOverFarest (mConditions.isXTSCurrentOverFarest && ( // // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXCHMAMCPeak && mConditions.isXCHMALCPeak && mConditions.isXCHLHSameHHs && mConditions.isXCHMASCOverMax) // ) // ) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXTDBullOverBear && mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXCHMAMCPeak && mConditions.isXCHMALCPeak && mConditions.isXCHMASCOverMax && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHMASCFastCrossedUnderSlow) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // (mConditions.isXTDBullOverBear && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceUnderSignal && ( // (mConditions.isXTMNeutural && mConditions.isXAMABullish && mConditions.isXCHMALCVale && mConditions.isXCHMASCUnderMin) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Shorts ... // isXTSCurrentOverMediest (mConditions.isXTSCurrentOverMediest && ( // (mConditions.isXTSCurrentOverFarest && ( // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXCHMALCVale && mConditions.isXLHHHIncreased && mConditions.isXTDBullOverBear && mConditions.isXCHLHSCMCHHSame) // ) // ) // ) // ) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceUnderSignal && ( // (mConditions.isXTMStartBearish && mConditions.isXTDBullOverBear && mConditions.isXAMAStartBearish) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Shorts ... // isXTDBullOverBear (mConditions.isXTDBullOverBear && ( // ((mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin) && ( // (mConditions.isXCHMASCUnderMin && ( // (mConditions.isXCHLHSameLLs && mConditions.isXAMAStartBearish && mConditions.isXLHLowAttachedLL) // || // ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // (mConditions.isXLHPriceUnderSignal && ( // (mConditions.isXCHLHSameLLs && mConditions.isXLHPriceCrossedUnderSignal) // || // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // mConditions.isXTMNeutural // || // mConditions.isXAMANeutural // ) // ) // || // (mConditions.isXLHLLSameInLength && ( // (mConditions.isXTDSignalCrossedUnderBear && mConditions.isXCHMASCFastCrossedUnderSlow && mConditions.isXTSCurrentCrossedUnderFarest) // ) // ) // ) // ) // ) // ) // || // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXLHPriceUnderSignal && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceCrossedUnderSignal && mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // (mConditions.isXLHPriceUnderSignal && ( // (mConditions.isXLHPriceCrossedUnderSignal && ( // ((mConditions.isXTSAllSame && mConditions.isXLHLowAttachedLL && mConditions.isXCHMASCCrossedUnderMin && mConditions.isXCHMASCFastCrossedUnderSlow) && ( // (mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Shorts ... // isXCHMASCFastOverSlow // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXLHHHSameInLength && mConditions.isXLHLLSameInLength) && ( // (mConditions.isXLHPriceUnderSignal && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXTSAllSame && ( // (mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish) // ) // ) // ) // ) // || // ((mConditions.isXTMNeutural && mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && mConditions.isXCHMASCUnderMin && mConditions.isXTSCurrentCrossedUnderMediest) && ( // mConditions.isXTDBullOverBear // || // mConditions.isXTSCurrentCrossedUnderFarest // ) // ) // ) // ) // || // (mConditions.isXLHPriceOverSignal && ( // (mConditions.isXTDBullOverBear && ( // ((mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // (mConditions.isXTDBullOverBear && ( // (mConditions.isXLHPriceOverSignal && ( // ((mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && mConditions.isXCHLHSCMCHHSame) && ( // (mConditions.isXTMStartBearish && ( // mConditions.isXAMANeutural // || // mConditions.isXAMAStartBearish // ) // ) // || // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXCHMASCPeak && mConditions.isXLHHHIncreased) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXTDBullOverBear && ( // (mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && mConditions.isXTMStartBearish && mConditions.isXCHMASCUnderMin) // ) // ) // ) // ) // || // // XTD Shorts ... // isXCHMAMCFastOverSlow // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXTDBullOverBear && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXCHMALCPeak) && ( // ((mConditions.isXTSCurrentMin && mConditions.isXCHMASCOverMax) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // || // (((mConditions.isXTMEndBullish && mConditions.isXAMAEndBullish) || (mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish)) && ( // (mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && mConditions.isXLHLLIncreased && mConditions.isXLHLowAttachedLL && mConditions.isXCHLHSCMCLLSame && mConditions.isXLHPriceCrossedUnderSignal && mConditions.isXCHMASCFastCrossedUnderSlow) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Shorts ... // isXCHMALCFastOverSlow // Check LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXTSCurrentMin && mConditions.isXLHHHDecreased && mConditions.isXCHLHMCLCLLSame) // ) // ) // || // // XTD Shorts ... // isXCHMASCTrendsDown ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // (mConditions.isXTDBullOverBear && ( // (mConditions.isXLHHHSameInLength && ( // (mConditions.isXLHPriceUnderSignal && ( // (mConditions.isXCHMALCVale && mConditions.isXCHLHSameLLs && mConditions.isXTSCurrentMin && mConditions.isXCHMASCUnderMin) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTD Shorts ... // isXCHMALCTrendsDown ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXTSCurrentMin && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHSCMCLLSame && mConditions.isXCHMASCUnderMin && mConditions.isXTMStartBearish && mConditions.isXLHLowAttachedLL && mConditions.isXAMAStartBearish && mConditions.isXTDSignalCrossedUnderBear && mConditions.isXLHPriceCrossedUnderSignal) // ) // ) // || // // XTD Shorts ... // Bearish MA ... ((mConditions.isXTMBearish && mConditions.isXAMABearish) && ( // ((mConditions.isXTSCurrentMin && mConditions.isXCHMASCUnderMin && mConditions.isXTDSignalCrossedUnderBear) && ( // ((mConditions.isXCHMALCVale && mConditions.isXCHMASCFastCrossedUnderSlow) && ( // mConditions.isXTSCurrentCrossedUnderFarest // || // mConditions.isXTSCurrentCrossedUnderNearest // ) // ) // ) // ) // ) // ) // ) // ) // ; // return result; } // // XTAM Long Signal Checking ... bool XUSPY5XTAMHasLongSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXTAMEnableSignaller || !xUSPY5MXTAMAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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) && // ( // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // (mConditions.isXCHMALCPeak && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) // ) // ) // ) // ) // ) // ) // || // // 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) && // ( // // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXTDSignalUnderBear && mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMin && mConditions.isXLHHHIncreased && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHSCMCLLSame && mConditions.isXLHLowAttachedLL) // ) // ) // ) // ) // ) // ) // || // // 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) && // ( // // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) // ) // ) // ) // ) // || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale && mConditions.isXCHMAMCTrendsUp && mConditions.isXTDSignalUnderBear) // ) // ) // ) // ) // ) // ) // || // // 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) && // ( // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMASCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHMCLCLLSame) // ) // ) // || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXTSCurrentMax && mConditions.isXLHHighAttachedHH) && ( // mConditions.isXCHLHSameHHs // || // (mConditions.isXTDSignalUnderBear && mConditions.isXCHLHSCMCHHSame) // ) // ) // ) // ) // ) // ) // || // // 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) // ) // ) // ) // ) // // XTAM Long ... // Resolve Guard Attacks ... || // ( // // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && ( // ( // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // ((mConditions.isXTMBearish && mConditions.isXAMABearish) && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentUnderFarest) && ( // mConditions.isXCHMASCTrendsUp // || // (mConditions.isXCHMALCPeak && mConditions.isXCHMASCOverMax && mConditions.isXCHLHMCLCHHSame) // ) // ) // ) // ) // || // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXLHHHDecreased) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // (mConditions.isXTDSignalUnderBear && ( // ((mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax && mConditions.isXCHLHMCLCLLSame) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXTMBearish && mConditions.isXAMABearish) && ( // (mConditions.isXCHMALCPeak && mConditions.isXCHMASCOverMax && mConditions.isXLHHHIncreased && mConditions.isXCHLHMCLCHHSame && mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentUnderNearest && mConditions.isXTSCurrentUnderMediest) // ) // ) // || // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax && mConditions.isXCHLHMCLCHHSame) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish) // ) // ) // ) // ) // || // ((mConditions.isXTSAllSame && mConditions.isXCHMALCPeak && mConditions.isXCHLHMCLCHHSame) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish) // ) // ) // || // (mConditions.isXTSCurrentUnderMediest && ( // (mConditions.isXTDSignalVale && mConditions.isXTDBullishVale) // || // ((mConditions.isXCHMALCPeak && mConditions.isXLHLLIncreased) && ( // (mConditions.isXTMVale && mConditions.isXAMAVale) // || // (mConditions.isXTMBearish && mConditions.isXAMABearish) // ) // ) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // ((mConditions.isXLHHHDecreased && mConditions.isXCHLHSCMCLLSame) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXTDSignalUnderBear && ( // ((mConditions.isXTDBearishVale && mConditions.isXTMVale && mConditions.isXCHMALCPeak && mConditions.isXCHLHMCLCHHSame) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentUnderMediest && mConditions.isXCHMALCPeak && mConditions.isXCHMASCOverMax && mConditions.isXLHPriceCrossedOverSignal) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // ((mConditions.isXCHMASCVale && mConditions.isXCHMALCPeak && mConditions.isXCHLHMCLCHHSame && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentUnderFarest && mConditions.isXLHPriceCrossedOverSignal) && ( // (mConditions.isXTMVale && mConditions.isXAMAVale) // || // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale && mConditions.isXCHLHMCLCHHSame) && ( // mConditions.isXTSCurrentMax // || // mConditions.isXTSCurrentUnderFarest // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // ( // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish && mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentUnderNearest && mConditions.isXTSCurrentUnderMediest && mConditions.isXTSCurrentCrossedUnderNearest && mConditions.isXTSCurrentCrossedUnderMediest) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXTDBearishVale && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXTSCurrentMax) && ( // ((mConditions.isXTMNeutural && mConditions.isXAMANeutural) && ( // mConditions.isXCHMALCVale // || // (mConditions.isXCHLHSameHHs && mConditions.isXTDSignalUnderBear && mConditions.isXLHHighAttachedHH) // ) // ) // || // (mConditions.isXTDSignalUnderBear && ( // (mConditions.isXCHMALCVale && mConditions.isXAMANeutural && mConditions.isXCHLHSCMCHHSame && mConditions.isXLHHighAttachedHH && mConditions.isXCHMASCFastCrossedOverSlow) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXTDBearishVale && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXCHLHSameHHs && mConditions.isXLHHighAttachedHH) && ( // (mConditions.isXTMEndBearish && mConditions.isXAMAEndBearish) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentUnderMediest) && ( // (mConditions.isXTMVale && mConditions.isXAMAVale) // || // (mConditions.isXTMBearish && mConditions.isXAMABearish) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMALCPeak && mConditions.isXCHLHSameHHs && mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax) // || // (mConditions.isXTDSignalUnderBear && ( // ((mConditions.isXCHMASCOverMax && mConditions.isXCHLHSCMCHHSame && mConditions.isXLHHighAttachedHH) && ( // mConditions.isXTSCurrentMax // || // mConditions.isXCHMASCCrossedOverMax // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCPeak && ( // (mConditions.isXCHLHSameHHs && mConditions.isXTSCurrentUnderNearest) // || // ((mConditions.isXTSCurrentMax && mConditions.isXCHLHSCMCHHSame) && ( // (mConditions.isXCHMASCOverMax && ( // mConditions.isXRSICrossedOverLongExit // || // (mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverMediest) // ) // ) // || // (mConditions.isXCHMALCVale && mConditions.isXLHLLIncreased && mConditions.isXTSCurrentCrossedOverNearest) // || // (mConditions.isXCHMASCOverMin && mConditions.isXCHMASCUnderMax && mConditions.isXLHHighAttachedHH) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax && mConditions.isXCHLHSCMCHHSame && mConditions.isXTDBullOverBear && mConditions.isXTDSignalOverBear && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // All Bullish ... ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // ((mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax) && ( // (mConditions.isXCHMALCPeak && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHMAMCFastCrossedOverSlow && mConditions.isXTSCurrentCrossedOverNearest) // || // ((mConditions.isXTMStartBullish && mConditions.isXAMAStartBullish) && ( // (mConditions.isXCHMALCPeak && mConditions.isXCHLHSCMCHHSame && mConditions.isXTDSignalUnderBear && mConditions.isXLHPriceCrossedOverSignal) // ) // ) // || // (mConditions.isXLHHighAttachedHH && ( // (mConditions.isXCHLHSameHHs && ( // mConditions.isXTDBearishVale // || // (mConditions.isXCHLHMCLCLLSame && mConditions.isXLHPriceCrossedOverSignal) // || // (mConditions.isXCHMALCPeak && mConditions.isXCHMASCCrossedOverMax && mConditions.isXLHPriceCrossedOverSignal && mConditions.isXTSCurrentCrossedOverNearest && mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // || // (mConditions.isXCHMAMCFastCrossedOverSlow && ( // (mConditions.isXCHMASCPeak && mConditions.isXCHLHSCMCHHSame) // || // ((mConditions.isXTMStartBullish && mConditions.isXAMAStartBullish) && ( // (mConditions.isXCHLHSameHHs && mConditions.isXCHMASCCrossedOverMax && mConditions.isXLHPriceCrossedOverSignal && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // || // ((mConditions.isXTDBullOverBear && mConditions.isXTDSignalOverBear) && ( // (mConditions.isXTDBearishVale && mConditions.isXCHLHSCMCHHSame && mConditions.isXLHHighAttachedHH) // ) // ) // ) // ) // || // (mConditions.isXAMAStartBullish && ( // (mConditions.isXCHLHSameHHs && mConditions.isXCHMASCCrossedOverMax && mConditions.isXRSICrossedOverLongExit && mConditions.isXLHPriceCrossedOverSignal && mConditions.isXCHMAMCFastCrossedOverSlow) // ) // ) // ) // ) // || // (mConditions.isXTDSignalUnderBear && ( // (mConditions.isXTSCurrentUnderNearest && mConditions.isXTSCurrentUnderMediest && mConditions.isXTSCurrentCrossedUnderNearest && mConditions.isXTSCurrentCrossedUnderMediest) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... ((!mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && ( // ( // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentUnderMediest) && ( // (mConditions.isXCHMASCVale && mConditions.isXTDBullUnderBear && mConditions.isXTSCurrentUnderFarest) // || // (mConditions.isXAMANeutural && mConditions.isXCHMASCOverMax && mConditions.isXTMStartBullish && mConditions.isXCHLHSCMCLLSame) // ) // ) // ) // ) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXTDSignalUnderBear && mConditions.isXTDBullCrossedUnderBear) && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHMASCOverMax) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish) // || // (mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // ((mConditions.isXTMBearish && mConditions.isXAMABearish && mConditions.isXTDSignalUnderBear) && ( // (mConditions.isXTSAllSame && mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale && mConditions.isXCHLHSameLLs && mConditions.isXCHMASCUnderMin) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // (mConditions.isXTDSignalUnderBear && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHLHSCMCLLSame && mConditions.isXLHPriceCrossedOverSignal) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... ((!mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // ( // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHLHSCMCLLSame && mConditions.isXCHMASCCrossedUnderMax) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHLHSCMCLLSame && mConditions.isXCHMASCCrossedUnderMax) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish) // ) // ) // ) // ) // || // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXCHMALCPeak && mConditions.isXCHLHSCMCLLSame && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentUnderFarest) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish && mConditions.isXTSCurrentUnderMediest) // || // (mConditions.isXTMVale && mConditions.isXCHMASCVale && mConditions.isXLHLLDecreased) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXTSCurrentMax && mConditions.isXCHLHSCMCHHSame && mConditions.isXLHHighAttachedHH) && ( // mConditions.isXTDBearishVale // || // (mConditions.isXCHMALCVale && mConditions.isXTSCurrentCrossedOverNearest && mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // || // (mConditions.isXTSCurrentUnderNearest && ( // (mConditions.isXTSCurrentCrossedUnderNearest && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale && mConditions.isXCHLHSCMCHHSame) // || // (mConditions.isXCHLHSameHHs && mConditions.isXCHMASCOverMax && mConditions.isXCHMASCCrossedOverMax) // ) // ) // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XTAM Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // ) // ) // ; // return result; } // // XTAM Short Signal Checking ... bool XUSPY5XTAMHasShortSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXTAMEnableSignaller || !xUSPY5MXTAMAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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) && // ( // // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXTSCurrentOverMediest && ( // (mConditions.isXTDBullOverBear && mConditions.isXCHMASCTrendsUp && mConditions.isXTSCurrentOverFarest) // ) // ) // ) // ) // ) // ) // || // // 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) && // ( // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXTSCurrentOverMediest && ( // (mConditions.isXCHMASCTrendsUp && ( // (mConditions.isXCHMALCVale && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) // ) // ) // ) // ) // ) // ) // || // // Check LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // (mConditions.isXTSCurrentOverMediest && ( // (mConditions.isXCHMALCPeak && mConditions.isXTDBullOverBear && mConditions.isXTSCurrentOverFarest) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentOverNearest && ( // (mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXCHMALCVale && mConditions.isXTSCurrentOverMediest && mConditions.isXTSCurrentCrossedOverNearest && mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && mConditions.isXCHMASCUnderMin) // ) // ) // ) // ) // || // // 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) && // ( // (mConditions.isXTDBullOverBear && ( // (mConditions.isXTDSignalOverBear && ( // (mConditions.isXCHMALCVale && mConditions.isXCHLHSameLLs && mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // 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) && // ( // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXTSCurrentOverMediest && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXTSCurrentOverFarest && mConditions.isXTDBullCrossedOverBear) // ) // ) // ) // ) // || // // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHMAMCTrendsUp && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) // ) // ) // || // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXCHMAMCPeak && ( // (mConditions.isXTDSignalVale && mConditions.isXTDBullishVale) // ) // ) // ) // ) // // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( // // Check if MC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXCHMASCPeak && mConditions.isXCHMASCTrendsUp && mConditions.isXTDBullOverBear && mConditions.isXTDSignalOverBear) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( // // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXCHMAMCTrendsUp && mConditions.isXCHMAMCPeak && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) // ) // ) // || // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXTSCurrentMin) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // || // (mConditions.isXTDSignalVale && mConditions.isXTDBullishVale) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // 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) // ) // ) // ) // ) // // XTAM Short ... // Resolve Guard Attacks ... || // ( // // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && ( // ( // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax && mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCUnderMin && mConditions.isXTDBullOverBear) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXCHMALCPeak && mConditions.isXTSCurrentOverNearest && mConditions.isXTSCurrentOverMediest && mConditions.isXTSCurrentCrossedOverNearest && mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // ((mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverMediest) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCUnderMin && mConditions.isXTDSignalUnderBear && mConditions.isXCHMASCCrossedUnderMin && mConditions.isXTDBullCrossedUnderBear) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // All Bearish ... ((mConditions.isXTMBearish && mConditions.isXAMABearish) && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXCHMALCVale && mConditions.isXTDSignalVale && mConditions.isXTDBullishVale && mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCUnderMin && mConditions.isXCHMASCCrossedUnderMin) && ( // mConditions.isXTSCurrentOverFarest // || // (mConditions.isXTSCurrentMin && mConditions.isXTSCurrentCrossedUnderNearest) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // ((mConditions.isXTMNeutural && mConditions.isXAMANeutural) && ( // ((mConditions.isXCHMALCVale && mConditions.isXTDBearishVale && mConditions.isXTDSignalOverBear) && ( // mConditions.isXTDBullOverBear // || // (mConditions.isXCHMASCUnderMin && mConditions.isXTSCurrentOverFarest) // ) // ) // ) // ) // ) // ) // || (mConditions.isXTDBullOverBear && ( // ((mConditions.isXCHMALCVale && mConditions.isXTSAllSame && mConditions.isXLHLLDecreased) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentOverMediest && ( // ((mConditions.isXCHMALCVale && mConditions.isXTDBearishVale && mConditions.isXLHLLIncreased && mConditions.isXCHMASCUnderMin) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXTDBullOverBear && ( // ((mConditions.isXCHMALCPeak && mConditions.isXLHPriceCrossedUnderSignal) && ( // (mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentOverMediest && ( // ((mConditions.isXCHMAMCVale && mConditions.isXLHLLIncreased) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // || // (mConditions.isXTSCurrentOverNearest && ( // (mConditions.isXTSCurrentCrossedOverNearest && mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // || // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXCHMAMCVale && mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXLHLLIncreased) // ) // ) // ) // ) // || // (mConditions.isXRSICrossedUnderShortExit && ( // ((mConditions.isXCHMAMCVale && mConditions.isXTSCurrentMin && mConditions.isXTDSignalVale && mConditions.isXTDBullishVale) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish) // || // (mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) // ) // ) // ) // ) // || // ((mConditions.isXTMBearish && mConditions.isXAMABearish) && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMin && mConditions.isXTDSignalVale && mConditions.isXTDBullishVale && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentCrossedUnderNearest) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // All Bearish ... ((mConditions.isXTMBearish && mConditions.isXAMABearish) && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // (mConditions.isXTMVale && mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCUnderMin && mConditions.isXCHMASCCrossedUnderMin && mConditions.isXTSCurrentCrossedUnderNearest) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // (mConditions.isXTDBullOverBear && ( // ((mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && mConditions.isXCHLHMCLCLLSame) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXCHMASCTrendsUp && ( // (mConditions.isXTDBullOverBear && ( // (mConditions.isXTSCurrentOverMediest && ( // ((mConditions.isXCHMALCVale && mConditions.isXCHLHMCLCLLSame) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXCHMALCVale && ( // ((mConditions.isXTMNeutural && mConditions.isXAMANeutural) && ( // mConditions.isXTSCurrentMax // || // mConditions.isXTDSignalOverBear // ) // ) // ) // ) // ) // ) // || // (mConditions.isXTDSignalCrossedOverBear && ( // (mConditions.isXAMABullish && mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && mConditions.isXCHLHMCLCLLSame) // ) // ) // ) // ) // || // (mConditions.isXLHPriceCrossedOverSignal && ( // ((mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXCHMALCVale && mConditions.isXCHMASCUnderMin && mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverMediest) // || // (mConditions.isXTDBullCrossedOverBear && ( // (mConditions.isXTSCurrentOverMediest && ( // (mConditions.isXCHMALCVale && ( // mConditions.isXCHMASCUnderMin // || // mConditions.isXCHLHMCLCLLSame // ) // ) // ) // ) // ) // ) // || // (mConditions.isXTDBullOverBear && ( // (mConditions.isXCHMALCVale && mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCUnderMin) // || // ((mConditions.isXCHMASCPeak && mConditions.isXTDSignalOverBear) && ( // mConditions.isXCHMASCTrendsUp // || // (mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverMediest) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale) && ( // ((mConditions.isXTSCurrentMin && mConditions.isXCHLHMCLCHHSame && mConditions.isXCHMASCFastCrossedUnderSlow) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish) // || // (mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXCHMASCUnderMin && mConditions.isXTSCurrentOverMediest && mConditions.isXTDBullCrossedOverBear) // || // (mConditions.isXCHMAMCTrendsUp && ( // (mConditions.isXTSCurrentOverMediest && ( // (mConditions.isXCHMAMCPeak && mConditions.isXCHMALCPeak && mConditions.isXCHMASCOverMax && mConditions.isXCHLHMCLCHHSame && mConditions.isXCHLHMCLCLLSame) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXTMNeutural && mConditions.isXAMANeutural) && ( // (mConditions.isXCHMAMCPeak && mConditions.isXTSCurrentMin && mConditions.isXCHMASCOverMax && mConditions.isXLHHHIncreased && mConditions.isXTDBullOverBear && mConditions.isXCHLHMCLCHHSame) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // (mConditions.isXTSCurrentOverNearest && mConditions.isXTSCurrentOverMediest && mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // ( // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // (mConditions.isXTDBullOverBear && ( // ((mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && mConditions.isXCHLHSCMCHHSame) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentOverFarest && ( // ((mConditions.isXCHMALCVale && mConditions.isXCHLHSCMCHHSame) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // (mConditions.isXTDBullOverBear && ( // ((mConditions.isXTSCurrentOverNearest && mConditions.isXTSCurrentOverMediest) && ( // ((mConditions.isXCHMALCVale && mConditions.isXCHMASCUnderMin) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish && mConditions.isXCHMAMCVale && mConditions.isXTSCurrentMin && mConditions.isXCHMASCOverMin && mConditions.isXCHMASCUnderMax && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXTDBullOverBear && ( // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXTDSignalOverBear && mConditions.isXTSCurrentOverMediest) // || // (mConditions.isXCHMALCVale && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHMCLCLLSame && mConditions.isXLHHighAttachedHH) // ) // ) // ) // ) // || // (mConditions.isXTDSignalCrossedOverBear && ( // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXTSCurrentOverNearest && mConditions.isXTSCurrentOverMediest && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMASCTrendsUp && mConditions.isXTSCurrentOverFarest) && ( // ((mConditions.isXCHMALCVale && mConditions.isXCHLHSCMCHHSame) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // || // (mConditions.isXTDBullOverBear && mConditions.isXTDSignalOverBear) // ) // ) // ) // ) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // ((mConditions.isXCHMALCVale && mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHMCLCLLSame) && ( // (mConditions.isXTDBullOverBear && ( // ((mConditions.isXTSAllSame && mConditions.isXLHHighAttachedHH) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // ) // ) // || // (mConditions.isXTMNeutural && ( // ((mConditions.isXAMANeutural && mConditions.isXTSCurrentMin) && ( // mConditions.isXTSCurrentCrossedUnderFarest // || // (mConditions.isXTMEndBullish && mConditions.isXAMAEndBullish) // ) // ) // || // ((mConditions.isXAMABullish && mConditions.isXTDBullOverBear && mConditions.isXTSCurrentOverFarest) && ( // mConditions.isXTDSignalOverBear // || // (mConditions.isXTMBullish && mConditions.isXTSCurrentMax && mConditions.isXLHHighAttachedHH) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... ((!mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && ( // ( // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && mConditions.isXTDBullOverBear && mConditions.isXTSCurrentOverMediest && mConditions.isXTDSignalCrossedOverBear) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // All Bearish ... ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && mConditions.isXCHLHSCMCLLSame && mConditions.isXCHMASCUnderMin) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // || // (mConditions.isXTMEndBullish && mConditions.isXAMAEndBullish) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXCHMALCVale && mConditions.isXTDBullOverBear && mConditions.isXCHMASCUnderMin && mConditions.isXTSCurrentOverMediest && mConditions.isXTDSignalCrossedOverBear) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // ((mConditions.isXCHMASCVale && mConditions.isXTSCurrentMin && mConditions.isXCHLHSCMCLLSame && mConditions.isXCHMASCUnderMin && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear && mConditions.isXCHMASCCrossedUnderMin && mConditions.isXTSCurrentCrossedUnderNearest) && ( // (mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXTMBearish && mConditions.isXAMABearish) // || // (mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish && mConditions.isXLHPriceCrossedUnderSignal && mConditions.isXTSCurrentCrossedUnderMediest) // ) // ) // || // ((mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && mConditions.isXCHMASCUnderMin) && ( // (mConditions.isXCHLHSCMCLLSame && mConditions.isXLHLowAttachedLL) // || // (mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXTDSignalVale && mConditions.isXTDBullishVale && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear && mConditions.isXCHMASCCrossedUnderMin) // ) // ) // || // (mConditions.isXTSCurrentOverNearest && ( // (mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXCHMASCVale && mConditions.isXCHLHSCMCLLSame && mConditions.isXCHMASCUnderMin && mConditions.isXCHMASCCrossedUnderMin) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // ((mConditions.isXTDSignalVale && mConditions.isXTDBullishVale && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXTSCurrentOverNearest && mConditions.isXTSCurrentCrossedOverNearest) && ( // (mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXCHLHSameLLs) // ) // ) // || // (mConditions.isXTSCurrentMin && ( // (mConditions.isXCHMAMCVale && mConditions.isXCHLHSameLLs && mConditions.isXCHMASCUnderMin && mConditions.isXCHMASCCrossedUnderMin) // || // ((mConditions.isXCHMALCPeak && mConditions.isXCHMASCCrossedUnderMax) && ( // (!mConditions.isXCHMAMCTrendsUp && !mConditions.isXCHMAMCTrendsDown) // ) // ) // ) // ) // ) // ) // || // (mConditions.isXCHMALCPeak && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish && mConditions.isXTSCurrentMin && mConditions.isXTDBullishVale && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) // || // ((!mConditions.isXCHMAMCTrendsUp && !mConditions.isXCHMAMCTrendsDown) && ( // (mConditions.isXTSCurrentMin && mConditions.isXTDSignalVale && mConditions.isXTDBullishVale && mConditions.isXLHHHDecreased && mConditions.isXCHMASCCrossedUnderMax) // ) // ) // ) // ) // || // (mConditions.isXRSICrossedUnderShortExit && ( // (mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXCHMAMCVale && mConditions.isXTSCurrentMin && mConditions.isXCHLHSCMCLLSame) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // ((mConditions.isXTSCurrentMin && mConditions.isXCHLHSCMCLLSame && mConditions.isXCHMASCUnderMin && mConditions.isXLHLowAttachedLL) && ( // mConditions.isXRSICrossedUnderShortExit // || // (mConditions.isXCHMALCVale && mConditions.isXTDSignalVale && mConditions.isXTDBullishVale && mConditions.isXCHMASCCrossedUnderMin) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXCHMALCVale && ( // ((mConditions.isXTSCurrentMin && mConditions.isXCHMASCUnderMin && mConditions.isXLHLowAttachedLL && mConditions.isXCHMASCCrossedUnderMin) && ( // (mConditions.isXTMVale && mConditions.isXTDSignalVale && mConditions.isXTDBullishVale && mConditions.isXCHLHSCMCLLSame && mConditions.isXLHPriceCrossedUnderSignal && mConditions.isXTSCurrentCrossedUnderNearest) // || // (mConditions.isXRSICrossedUnderShortExit && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // All Bearish ... ((mConditions.isXTMBearish && mConditions.isXAMABearish) && ( // (mConditions.isXTDBullOverBear && ( // (mConditions.isXCHMALCVale && mConditions.isXCHLHSameLLs && mConditions.isXTSCurrentMin && mConditions.isXCHMASCUnderMin && mConditions.isXAMAStartBearish && mConditions.isXLHLowAttachedLL && mConditions.isXLHPriceCrossedUnderSignal) // ) // ) // || // (mConditions.isXTDBullUnderBear && ( // ((mConditions.isXCHMALCVale && mConditions.isXCHMASCUnderMin && mConditions.isXTDSignalUnderBear) && ( // (mConditions.isXCHMASCCrossedUnderMin && mConditions.isXTSCurrentCrossedOverNearest && mConditions.isXTSCurrentCrossedOverMediest) // || // ((mConditions.isXTSCurrentMin && mConditions.isXLHLowAttachedLL) && ( // mConditions.isXCHMAMCFastCrossedUnderSlow // || (mConditions.isXTDSignalVale && mConditions.isXTDBullishVale && mConditions.isXCHLHSCMCLLSame) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXTSCurrentMax && mConditions.isXTDBullOverBear && mConditions.isXTSCurrentOverFarest) && ( // (mConditions.isXTMBullish && mConditions.isXAMABullish) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMin && mConditions.isXCHMASCOverMax && mConditions.isXCHLHMCLCHHSame) && ( // (mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // (mConditions.isXTSCurrentOverFarest && ( // ((mConditions.isXCHMALCVale && mConditions.isXTDSignalVale && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentCrossedUnderNearest && mConditions.isXTSCurrentCrossedUnderMediest) && ( // (mConditions.isXTMBearish && mConditions.isXAMABearish) // || // (mConditions.isXTMStartBearish && mConditions.isXAMAStartBearish) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... ((!mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // ( // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // (mConditions.isXAMAVale && mConditions.isXCHMAMCVale && mConditions.isXTDSignalVale && mConditions.isXTDBullishVale && mConditions.isXCHLHSCMCLLSame && mConditions.isXTSCurrentCrossedUnderFarest && mConditions.isXTSCurrentCrossedUnderNearest && mConditions.isXTSCurrentCrossedUnderMediest) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // (mConditions.isXTDBullOverBear && ( // ((mConditions.isXCHMAMCPeak && mConditions.isXCHMALCPeak && mConditions.isXCHLHSameHHs && mConditions.isXTSCurrentMin && mConditions.isXCHMASCOverMax) && ( // (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XTAM Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // ) // ) // ; // return result; } // // XSI Long Signal Checking ... bool XUSPY5XSIHasLongSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXSIEnableSignaller || !xUSPY5MXSIAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.XSIHasLongConditions() // // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // XSI Long ... // Resolve Stop Outs ... ( // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && ( // ( // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // (mConditions.isXCHMASCVale && mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastOverSlow && mConditions.isXCHMALCFastOverSlow) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // (mConditions.isXCHMASCVale && mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale && mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // ( // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... ((!mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && ( // ( // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXTMNeutural && mConditions.isXAMANeutural) && ( // (mConditions.isXTSCurrentUnderNearest && ( // mConditions.isXTSCurrentUnderFarest // || // mConditions.isXTSCurrentCrossedUnderNearest // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // (((mConditions.isXTMVale && mConditions.isXAMAVale) // || // (mConditions.isXTMBearish && mConditions.isXAMABearish) // || // (mConditions.isXTMNeutural && mConditions.isXAMANeutural)) && ( // mConditions.isXTSCurrentUnderFarest // || // (mConditions.isXCHMALCPeak && mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastOverSlow && mConditions.isXCHMALCFastOverSlow) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXCHMASCVale && mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastOverSlow && mConditions.isXCHMALCFastOverSlow) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... ((!mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // ( // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXCHMASCVale && mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastOverSlow && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXTSCurrentUnderFarest && mConditions.isXTSCurrentUnderMediest) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // ) // // XSI Long ... // Resolve Guard Attacks ... || // ( // // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && ( // ( // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXTMVale && mConditions.isXCHMASCVale && mConditions.isXCHMAMCVale && mConditions.isXCHMALCPeak && mConditions.isXLHLLDecreased && mConditions.isXCHLHMCLCHHSame && mConditions.isXTMNeutural && mConditions.isXAMANeutural) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastOverSlow && mConditions.isXCHMALCFastOverSlow) && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXTMVale && mConditions.isXCHMASCVale && mConditions.isXCHMAMCVale) && ( // mConditions.isXTSCurrentUnderMediest // || // mConditions.isXTSCurrentUnderFarest // || // ((mConditions.isXCHLHSCMCLLSame && mConditions.isXCHLHMCLCHHSame) && ( // (mConditions.isXAMAVale && mConditions.isXTMBearish && mConditions.isXAMANeutural && mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // (mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXCHMASCVale && mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale && mConditions.isXTMBearish && mConditions.isXAMABearish && mConditions.isXTSCurrentUnderFarest && mConditions.isXCHMASCFastCrossedOverSlow) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // ( // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXTMBearish && mConditions.isXAMABearish) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXCHMASCVale && mConditions.isXCHMAMCVale && mConditions.isXTDSignalVale && mConditions.isXTDBullishVale && mConditions.isXLHHHDecreased && mConditions.isXLHLLDecreased) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... ((!mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && ( // ( // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXTDSignalUnderBear && ( // ((mConditions.isXCHMALCPeak && mConditions.isXTSCurrentMax && mConditions.isXTDBearishVale && mConditions.isXCHLHSCMCLLSame && mConditions.isXCHLHMCLCHHSame) && ( // ((mConditions.isXTMStartBullish && mConditions.isXAMAStartBullish)) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // ((mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXCHMALCPeak) && ( // (mConditions.isXTSAllSame && mConditions.isXCHMAMCVale) // || // (mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXCHMASCVale) // ) // ) // || // (mConditions.isXCHMASCTrendsUp && ( // (mConditions.isXTMVale && mConditions.isXCHMASCVale && mConditions.isXTSCurrentUnderFarest && mConditions.isXTSCurrentUnderMediest) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXTMBearish && mConditions.isXCHMASCVale && mConditions.isXCHMAMCVale && mConditions.isXTDSignalVale && mConditions.isXTDBullishVale) // ) // ) // ) // ) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXCHMALCPeak && mConditions.isXTDBearishVale && mConditions.isXCHLHSCMCLLSame && mConditions.isXCHLHMCLCHHSame) // || // (mConditions.isXTSCurrentUnderNearest && ( // (mConditions.isXTSCurrentCrossedUnderNearest && ( // (mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXCHMASCVale && mConditions.isXCHMALCPeak && mConditions.isXCHLHSCMCLLSame && mConditions.isXCHLHMCLCHHSame) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXTSCurrentUnderNearest && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXCHMALCVale && mConditions.isXLHLLDecreased && mConditions.isXCHMALCTrendsUp && mConditions.isXCHLHSCMCLLSame) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... ((!mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // ( // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // ((mConditions.isXTMBearish && mConditions.isXAMABearish) && ( // (mConditions.isXCHMASCTrendsUp && ( // (mConditions.isXTMVale && mConditions.isXAMAVale && mConditions.isXCHMASCVale && mConditions.isXCHMALCPeak && mConditions.isXLHHHDecreased && mConditions.isXCHLHSCMCLLSame) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastOverSlow && mConditions.isXCHMALCFastOverSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXTMVale && mConditions.isXCHMASCVale && mConditions.isXCHMAMCVale) && ( // (mConditions.isXTMBearish && mConditions.isXCHMALCPeak && mConditions.isXAMANeutural && mConditions.isXTSCurrentMax && mConditions.isXCHLHSCMCLLSame) // || // ((mConditions.isXTSCurrentUnderFarest && mConditions.isXTSCurrentUnderMediest) && ( // (mConditions.isXAMAVale && mConditions.isXTDSignalVale && mConditions.isXTDBullishVale) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // (mConditions.isXTSCurrentUnderFarest && ( // (mConditions.isXTMVale && mConditions.isXCHMASCVale && mConditions.isXCHMALCPeak && mConditions.isXTMNeutural && mConditions.isXAMANeutural && mConditions.isXLHLLDecreased && mConditions.isXCHLHSCMCLLSame) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if SC Fast Over Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if MC Fast Over Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastOverSlow) && ( // false // ) // ) // || // // XSI Long ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if LC Fast Over Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastOverSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // ) // ) // ; // return result; } // // XSI Short Signal Checking ... bool XUSPY5XSIHasShortSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXSIEnableSignaller || !xUSPY5MXSIAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.XSIHasShortConditions() // // && // // Exceptions: // there some commonly Exceptions which makes our choice incorrect, // here we are combined knownly Exceptions ... !( // // XSI Short ... // Resolve Stop Outs ... ( // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && ( // ( // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastUnderSlow && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXTDBullOverBear && ( // (mConditions.isXTMBullish && mConditions.isXCHMALCVale) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // ((mConditions.isXTDBullOverBear && mConditions.isXTDSignalOverBear) && ( // ((mConditions.isXCHMASCPeak && mConditions.isXCHMAMCPeak && mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastUnderSlow && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXCHMALCVale && ( // (mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverMediest) // ) // ) // || // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXLHHHIncreased && mConditions.isXCHMAMCFastCrossedOverSlow) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXTDSignalOverBear && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // ((mConditions.isXCHMASCPeak && mConditions.isXCHMAMCPeak) && ( // (mConditions.isXLHHHIncreased && ( // (mConditions.isXCHLHSCMCHHSame && ( // mConditions.isXTSCurrentOverFarest // || // mConditions.isXCHMAMCFastCrossedOverSlow // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXCHMAMCTrendsUp && ( // ((mConditions.isXTDBullOverBear && mConditions.isXTDSignalOverBear) && ( // ((mConditions.isXCHMASCPeak && mConditions.isXCHMAMCPeak && mConditions.isXCHMALCPeak && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // mConditions.isXTSCurrentOverFarest // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // Both HH and LL Same In Length ... // Price Free ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // ( // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXCHMASCTrendsUp && ( // (mConditions.isXTDBullOverBear && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastUnderSlow && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXTSCurrentOverNearest && ( // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXCHLHSCMCHHSame && mConditions.isXCHLHMCLCLLSame && mConditions.isXCHMASCCrossedOverMin && mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // ) // ) // || // (mConditions.isXTSCurrentOverMediest && ( // (mConditions.isXTMBullish && mConditions.isXCHMASCPeak && mConditions.isXCHMALCVale && mConditions.isXAMANeutural && mConditions.isXAMAEndBullish) // ) // ) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXTDBullOverBear && mConditions.isXTDSignalOverBear) && ( // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // (mConditions.isXCHMASCPeak && ( // (mConditions.isXCHMALCVale && mConditions.isXCHLHMCLCLLSame) // || // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXCHMAMCPeak && mConditions.isXTSCurrentMin && mConditions.isXTDBearishVale && mConditions.isXLHHHIncreased && mConditions.isXCHLHSCMCHHSame) // ) // ) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastUnderSlow && mConditions.isXCHMALCFastUnderSlow) && ( // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // (mConditions.isXTSCurrentOverFarest && ( // (mConditions.isXCHMASCPeak && ( // mConditions.isXCHMAMCPeak // || // mConditions.isXCHMALCVale // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // ((mConditions.isXTDBullOverBear && mConditions.isXTDSignalOverBear) && ( // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // ((mConditions.isXCHMASCPeak && mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // mConditions.isXCHMAMCFastCrossedOverSlow // || // (mConditions.isXTSCurrentOverFarest && mConditions.isXCHMAMCFastCrossedOverSlow) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // LL Same In Length ... // Price Free ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... ((!mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && ( // ( // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // HH Same In Length ... // Price Free ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... ((!mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // ( // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // ((mConditions.isXTDBullOverBear && mConditions.isXTDSignalOverBear) && ( // (mConditions.isXCHMASCTrendsUp && ( // ((mConditions.isXCHMASCPeak && mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale) && ( // ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // (mConditions.isXTSCurrentOverFarest && ( // ((mConditions.isXTMNeutural && mConditions.isXAMANeutural) && ( // (mConditions.isXLHHHIncreased && mConditions.isXCHLHSCMCHHSame) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Stop Outs ... // not LL and HH Same In Length ... // Price Free ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // ) // // XSI Short ... // Resolve Guard Attacks ... || // ( // // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && ( // ( // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // Both HH and LL Same In Length ... // Price Free ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // ( // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // LL Same In Length ... // Price Free ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... ((!mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && ( // ( // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // HH Same In Length ... // Price Free ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... ((!mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && ( // ( // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... (mConditions.isXLHPriceInSignalRange && ( // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price In Signal Range ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... ((mConditions.isXLHPriceUnderSignal || mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Under Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... ((mConditions.isXLHPriceOverSignal || mConditions.isXLHPriceCrossedOverSignal) && ( // // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Over Signal ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... ((!mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal && !mConditions.isXLHPriceInSignalRange && !mConditions.isXLHPriceCrossedOverSignal && !mConditions.isXLHPriceCrossedUnderSignal) && ( // // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if SC Fast Under Slow But Trends Down ... ((mConditions.isXCHMASCTrendsDown && mConditions.isXCHMASCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if MC Fast Under Slow But Trends Down ... ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( // false // ) // ) // || // // XSI Short ... // Resolve Guard Attacks ... // not LL and HH Same In Length ... // Price Free ... // Check if LC Fast Under Slow But Trends Down ... ((mConditions.isXCHMALCTrendsDown && mConditions.isXCHMALCFastUnderSlow) && ( // false // ) // ) // ) // ) // ) // ) // ) // ) // ) // ; // return result; } // // XTSFI Long Signal Checking ... bool XUSPY5XTSFIHasLongSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXTSFIEnableSignaller || !xUSPY5MXTSFIAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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 XUSPY5XTSFIHasShortSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXTSFIEnableSignaller || !xUSPY5MXTSFIAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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 XUSPY5XOBDLHHasLongSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXOBDLHEnableSignaller || !xUSPY5MXOBDLHAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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 XUSPY5XOBDLHHasShortSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXOBDLHEnableSignaller || !xUSPY5MXOBDLHAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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 XUSPY5XCHMACCHasLongSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXCHMACCEnableSignaller || !xUSPY5MXCHMACCAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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 XUSPY5XCHMACCHasShortSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXCHMACCEnableSignaller || !xUSPY5MXCHMACCAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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 XUSPY5XCHMAMNHasLongSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXCHMAMNEnableSignaller || !xUSPY5MXCHMAMNAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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 XUSPY5XCHMAMNHasShortSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXCHMAMNEnableSignaller || !xUSPY5MXCHMAMNAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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 XUSPY5XCHMAMXHasLongSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXCHMAMXEnableSignaller || !xUSPY5MXCHMAMXAllowLongSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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 XUSPY5XCHMAMXHasShortSignal() { // bool result = false; // // Validate Args ... if (!xUSPY5MXCHMAMXEnableSignaller || !xUSPY5MXCHMAMXAllowShortSignals) { return result; } // // Retrieve Market Condition ... XMarketConditions mConditions = xUSPY5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: xUSPY5Provider.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 ... //