diff --git a/BKP/Main/Classes/x-saherelm.provider.lib.mq5 b/BKP/Main/Classes/x-saherelm.provider.lib.mq5 index 765544c7..63279162 100644 --- a/BKP/Main/Classes/x-saherelm.provider.lib.mq5 +++ b/BKP/Main/Classes/x-saherelm.provider.lib.mq5 @@ -254,14 +254,14 @@ struct XMarketConditions // // -class XCPriver : public XCBase +class XCProvider : public XCBase { // // Public ... public: // // Constructor ... - XCPriver( + XCProvider( // // Common Requirements ... string xSymbol, // Which Symbol is Used @@ -362,7 +362,7 @@ public: // // Deconstructor ... - ~XCPriver() {} + ~XCProvider() {} // // START Common Functions ... diff --git a/BKP/Main/Experts/x-saherelm.xuschf5.ea.mq5 b/BKP/Main/Experts/x-saherelm.xau5.ea.mq5 similarity index 67% rename from BKP/Main/Experts/x-saherelm.xuschf5.ea.mq5 rename to BKP/Main/Experts/x-saherelm.xau5.ea.mq5 index 0838146b..d2f54dba 100644 --- a/BKP/Main/Experts/x-saherelm.xuschf5.ea.mq5 +++ b/BKP/Main/Experts/x-saherelm.xau5.ea.mq5 @@ -17,7 +17,7 @@ #property copyright "Copyright 2023, SaherElm IT Center" #property link "https://saherelm.ir" #property version "1.00" -#property description "SaherElm XUSCHF5 EA" +#property description "SaherElm XAU5 EA" #property strict // @@ -28,9 +28,9 @@ input group "Commons"; // // XCTIMER inputs ... -input bool xUSCHF5ShowCandleTimer = true; // Show Condle Remaining Time -input color xUSCHF5CandleTimerColot = clrYellow; // Candle Timer Color -input ENUM_BASE_CORNER xUSCHF5CandleTimerCorner = CORNER_RIGHT_LOWER; // Where to Show Candle Timer +input bool xAU5ShowCandleTimer = true; // Show Condle Remaining Time +input color xAU5CandleTimerColot = clrYellow; // Candle Timer Color +input ENUM_BASE_CORNER xAU5CandleTimerCorner = CORNER_RIGHT_LOWER; // Where to Show Candle Timer // // END Inputs ... @@ -57,8 +57,8 @@ input ENUM_BASE_CORNER xUSCHF5CandleTimerCorner = CORNER_RIGHT_LOWER; // Where t #include "../Libraries/x-saherelm.draw.lib.mq5" // -// XUSCHF5 Signal Provider ... -#include "../Providers/x-saherelm.xuschf5.provider.lib.mq5" +// XAU5 Signal Provider ... +#include "../Providers/x-saherelm.xau5.provider.lib.mq5" // // END Including Providers ... @@ -67,13 +67,13 @@ input ENUM_BASE_CORNER xUSCHF5CandleTimerCorner = CORNER_RIGHT_LOWER; // Where t // // START Global Definitions: Variables, Properties and etc ... // -bool isXUSCHF5NewHour; -bool isXUSCHF5NewDay; -bool isXUSCHF5NewWeek; -bool isXUSCHF5NewMonth; +bool isXAU5NewHour; +bool isXAU5NewDay; +bool isXAU5NewWeek; +bool isXAU5NewMonth; // -int xUSCHF5CTimerHandler = INVALID_HANDLE; +int xAU5CTimerHandler = INVALID_HANDLE; // // END Global Definitions: Variables, Properties and etc ... // @@ -87,7 +87,7 @@ int xUSCHF5CTimerHandler = INVALID_HANDLE; int OnInit() { // - logTag = "XUSCHF5EA"; + logTag = "XAU5EA"; drawPrefix = logTag; alertPrefix = logTag; @@ -107,17 +107,17 @@ int OnInit() } // - // Initialize XUSCHF5 Provider ... - if (!XUSCHF5InitSignalProviderLibrary()) + // Initialize XAU5 Provider ... + if (!XAU5InitSignalProviderLibrary()) { return INIT_PARAMETERS_INCORRECT; } // // Init XCTimer ... - if (xUSCHF5ShowCandleTimer) + if (xAU5ShowCandleTimer) { - if (!XUSCHF5CTimerInit()) + if (!XAU5CTimerInit()) { return INIT_FAILED; } @@ -148,15 +148,15 @@ void OnDeinit(const int reason) // Here we can handle De Initialization Reasons ... // - // De Initialize XUSCHF5 Provider ... - XUSCHF5DeinitSignalProviderLibrary(reason); + // De Initialize XAU5 Provider ... + XAU5DeinitSignalProviderLibrary(reason); // // De Init XDraw Library ... // OnDeinitDrawLibrary(); // - IndicatorRelease(xUSCHF5CTimerHandler); + IndicatorRelease(xAU5CTimerHandler); } // @@ -166,15 +166,15 @@ void OnTick() // // Handle Monthly Alert ... bool isFirstMonth = xMonth == -1; - isXUSCHF5NewMonth = IsNewMonth(); + isXAU5NewMonth = IsNewMonth(); bool canMonthlyAlert = - isXUSCHF5NewMonth && - xUSCHF5EnableAlerts && - xUSCHF5EnableMonthlyAlerts; + isXAU5NewMonth && + xAU5EnableAlerts && + xAU5EnableMonthlyAlerts; bool canMonthlyReport = !isFirstMonth && canMonthlyAlert && - xUSCHF5EnableMonthlyReports; + xAU5EnableMonthlyReports; if (canMonthlyAlert) { // @@ -185,7 +185,7 @@ void OnTick() if (canMonthlyReport) { // - string report = xUSCHF5Reporter.GenerateReportString(XREPORT_MONTHLY); + string report = xAU5Reporter.GenerateReportString(XREPORT_MONTHLY); // message = "Last Month Report:\n" + report; @@ -193,7 +193,7 @@ void OnTick() // // Reset Report ... - xUSCHF5Reporter.Reset(XREPORT_MONTHLY); + xAU5Reporter.Reset(XREPORT_MONTHLY); // SendAlert(message); @@ -202,15 +202,15 @@ void OnTick() // // Handle Weekly Alert ... bool isFirstWeek = xDayOfWeek == -1; - isXUSCHF5NewWeek = IsNewWeek(); + isXAU5NewWeek = IsNewWeek(); bool canWeeklyAlert = - isXUSCHF5NewWeek && - xUSCHF5EnableAlerts && - xUSCHF5EnableWeeklyAlerts; + isXAU5NewWeek && + xAU5EnableAlerts && + xAU5EnableWeeklyAlerts; bool canWeeklyReport = !isFirstWeek && canWeeklyAlert && - xUSCHF5EnableWeeklyReports; + xAU5EnableWeeklyReports; if (canWeeklyAlert) { // @@ -221,7 +221,7 @@ void OnTick() if (canWeeklyReport) { // - string report = xUSCHF5Reporter.GenerateReportString(XREPORT_WEEKLY); + string report = xAU5Reporter.GenerateReportString(XREPORT_WEEKLY); // message = "Last Week Report:\n" + report; @@ -229,7 +229,7 @@ void OnTick() // // Reset Report ... - xUSCHF5Reporter.Reset(XREPORT_WEEKLY); + xAU5Reporter.Reset(XREPORT_WEEKLY); // SendAlert(message); @@ -238,15 +238,15 @@ void OnTick() // // Handle Daily Alert ... bool isFirstDay = xDay == -1; - isXUSCHF5NewDay = IsNewDay(); + isXAU5NewDay = IsNewDay(); bool canDailyAlert = - isXUSCHF5NewDay && - xUSCHF5EnableAlerts && - xUSCHF5EnableDailyAlerts; + isXAU5NewDay && + xAU5EnableAlerts && + xAU5EnableDailyAlerts; bool canDailyReport = !isFirstDay && canDailyAlert && - xUSCHF5EnableDailyReports; + xAU5EnableDailyReports; if (canDailyAlert) { // @@ -257,7 +257,7 @@ void OnTick() if (canDailyReport) { // - string report = xUSCHF5Reporter.GenerateReportString(XREPORT_DAILY); + string report = xAU5Reporter.GenerateReportString(XREPORT_DAILY); // message = "Last Week Report:\n" + report; @@ -265,7 +265,7 @@ void OnTick() // // Reset Report ... - xUSCHF5Reporter.Reset(XREPORT_DAILY); + xAU5Reporter.Reset(XREPORT_DAILY); // SendAlert(message); @@ -274,11 +274,11 @@ void OnTick() // // Handle Hourly Alert ... bool isFirstHour = xHour == -1; - isXUSCHF5NewHour = IsNewHour(); + isXAU5NewHour = IsNewHour(); bool canHourlyAlert = - isXUSCHF5NewHour && - xUSCHF5EnableAlerts && - xUSCHF5EnableHourlyAlerts; + isXAU5NewHour && + xAU5EnableAlerts && + xAU5EnableHourlyAlerts; if (canHourlyAlert) { // @@ -290,33 +290,33 @@ void OnTick() // // Prevent Going Forward if user Disable it ... - if (xUSCHF5EnableProvider) + if (xAU5EnableProvider) { // - // Handle Processing on XUSCHF5 Signal Provider ... - XUSCHF5SignalProviderDoControlState(); + // Handle Processing on XAU5 Signal Provider ... + XAU5SignalProviderDoControlState(); } - + // // Check Can Ignore Tick or not .. - bool canIgnoreTick = xUSCHF5IsTestMode + bool canIgnoreTick = xAU5IsTestMode ? !IsNewCandle() - : !IsNewCandle() && xUSCHF5WaitUntilNextCandle; + : !IsNewCandle() && xAU5WaitUntilNextCandle; if (canIgnoreTick) { return; } // - xUSCHF5WaitUntilNextCandle = false; + xAU5WaitUntilNextCandle = false; // // Prevent Going Forward if user Disable it ... - if (xUSCHF5EnableProvider) + if (xAU5EnableProvider) { // - // Handle Processing on XUSCHF5 Signal Provider ... - XUSCHF5SignalProviderHandleTick(); + // Handle Processing on XAU5 Signal Provider ... + XAU5SignalProviderHandleTick(); } } @@ -327,11 +327,11 @@ void OnTrade() // // Prevent Going Forward if user Disable it ... - if (xUSCHF5EnableProvider) + if (xAU5EnableProvider) { // - // Handle Processing Trades on XUSCHF5 Signal Provider ... - XUSCHF5SignalProviderHandleTrade(); + // Handle Processing Trades on XAU5 Signal Provider ... + XAU5SignalProviderHandleTrade(); } } @@ -354,8 +354,8 @@ bool ValidateInputs() // Validate Args ... // - // Validate XUSCHF5 Provider Inputs ... - result = XUSCHF5ValidateInputs(); + // Validate XAU5 Provider Inputs ... + result = XAU5ValidateInputs(); if (!result) { return false; @@ -370,23 +370,23 @@ bool ValidateInputs() return result; } -bool XUSCHF5CTimerInit() +bool XAU5CTimerInit() { // bool result = true; // - xUSCHF5CTimerHandler = iCustom( + xAU5CTimerHandler = iCustom( _Symbol, _Period, "x-saherelm.xctimer.indicator", // // Inputs ... - xUSCHF5CandleTimerColot, - xUSCHF5CandleTimerCorner); + xAU5CandleTimerColot, + xAU5CandleTimerCorner); // - if (xUSCHF5CTimerHandler == INVALID_HANDLE) + if (xAU5CTimerHandler == INVALID_HANDLE) { result = false; } diff --git a/BKP/Main/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 b/BKP/Main/Providers/x-saherelm.xau5.provider.indicators.lib.mq5 similarity index 57% rename from BKP/Main/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 rename to BKP/Main/Providers/x-saherelm.xau5.provider.indicators.lib.mq5 index 3c4addef..b666d0db 100644 --- a/BKP/Main/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 +++ b/BKP/Main/Providers/x-saherelm.xau5.provider.indicators.lib.mq5 @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////// // -// SaherElm IT Center MQL5 XUSCHF5 Signal Provider Indicators Library +// SaherElm IT Center MQL5 XAU5 Signal Provider Indicators Library // ---------------------------------------------------------------- // // Maintainer: @@ -18,7 +18,7 @@ // // Include Provider Inputs ... -#include "x-saherelm.xuschf5.provider.inputs.lib.mq5" +#include "x-saherelm.xau5.provider.inputs.lib.mq5" // // Include Provider Class ... @@ -26,136 +26,136 @@ // // Signallers ... -input group "XUSCHF5 Signallers"; +input group "XAU5 Signallers"; // // XTD ... -input group "XUSCHF5 XTD Signaller"; -input bool xUSCHF5XTDEnableSignaller = true; // Enable Signaller -input bool xUSCHF5XTDAllowLongSignals = true; // Enable Long Signals -input bool xUSCHF5XTDAllowShortSignals = true; // Enable Short Signals +input group "XAU5 XTD Signaller"; +input bool xAU5XTDEnableSignaller = true; // Enable Signaller +input bool xAU5XTDAllowLongSignals = true; // Enable Long Signals +input bool xAU5XTDAllowShortSignals = true; // Enable Short Signals // // XTAM ... -input group "XUSCHF5 XTAM Signaller"; -input bool xUSCHF5XTAMEnableSignaller = true; // Enable Signaller -input bool xUSCHF5XTAMAllowLongSignals = true; // Enable Long Signals -input bool xUSCHF5XTAMAllowShortSignals = true; // Enable Short Signals +input group "XAU5 XTAM Signaller"; +input bool xAU5XTAMEnableSignaller = true; // Enable Signaller +input bool xAU5XTAMAllowLongSignals = true; // Enable Long Signals +input bool xAU5XTAMAllowShortSignals = true; // Enable Short Signals // // XSI ... -input group "XUSCHF5 XSI Signaller"; -input bool xUSCHF5XSIEnableSignaller = true; // Enable Signaller -input bool xUSCHF5XSIAllowLongSignals = true; // Enable Long Signals -input bool xUSCHF5XSIAllowShortSignals = true; // Enable Short Signals +input group "XAU5 XSI Signaller"; +input bool xAU5XSIEnableSignaller = true; // Enable Signaller +input bool xAU5XSIAllowLongSignals = true; // Enable Long Signals +input bool xAU5XSIAllowShortSignals = true; // Enable Short Signals // // XTSFI ... -input group "XUSCHF5 XTSFI Signaller"; -input bool xUSCHF5XTSFIEnableSignaller = true; // Enable Signaller -input bool xUSCHF5XTSFIAllowLongSignals = true; // Enable Long Signals -input bool xUSCHF5XTSFIAllowShortSignals = true; // Enable Short Signals +input group "XAU5 XTSFI Signaller"; +input bool xAU5XTSFIEnableSignaller = true; // Enable Signaller +input bool xAU5XTSFIAllowLongSignals = true; // Enable Long Signals +input bool xAU5XTSFIAllowShortSignals = true; // Enable Short Signals -// // -// // XOBDLH ... -// input group "XUSCHF5 XOBDLH Signaller"; -// input bool xUSCHF5XOBDLHEnableSignaller = true; // Enable Signaller -// input bool xUSCHF5XOBDLHAllowLongSignals = true; // Enable Long Signals -// input bool xUSCHF5XOBDLHAllowShortSignals = true; // Enable Short Signals +// +// XOBDLH ... +// input group "XAU5 XOBDLH Signaller"; +// input bool xAU5XOBDLHEnableSignaller = true; // Enable Signaller +// input bool xAU5XOBDLHAllowLongSignals = true; // Enable Long Signals +// input bool xAU5XOBDLHAllowShortSignals = true; // Enable Short Signals -// // -// // XCHMACC ... -// input group "XUSCHF5 XCHMACC Signaller"; -// input bool xUSCHF5XCHMACCEnableSignaller = true; // Enable Signaller -// input bool xUSCHF5XCHMACCAllowLongSignals = true; // Enable Long Signals -// input bool xUSCHF5XCHMACCAllowShortSignals = true; // Enable Short Signals +// +// XCHMACC ... +input group "XAU5 XCHMACC Signaller"; +input bool xAU5XCHMACCEnableSignaller = true; // Enable Signaller +input bool xAU5XCHMACCAllowLongSignals = true; // Enable Long Signals +input bool xAU5XCHMACCAllowShortSignals = true; // Enable Short Signals -// // -// // XCHMAMX ... -// input group "XUSCHF5 XCHMAMX Signaller"; -// input bool xUSCHF5XCHMAMXEnableSignaller = true; // Enable Signaller -// input bool xUSCHF5XCHMAMXAllowLongSignals = true; // Enable Long Signals -// input bool xUSCHF5XCHMAMXAllowShortSignals = true; // Enable Short Signals +// +// XCHMAMX ... +// input group "XAU5 XCHMAMX Signaller"; +// input bool xAU5XCHMAMXEnableSignaller = true; // Enable Signaller +// input bool xAU5XCHMAMXAllowLongSignals = true; // Enable Long Signals +// input bool xAU5XCHMAMXAllowShortSignals = true; // Enable Short Signals -// // -// // XCHMAMN ... -// input group "XUSCHF5 XCHMAMN Signaller"; -// input bool xUSCHF5XCHMAMNEnableSignaller = true; // Enable Signaller -// input bool xUSCHF5XCHMAMNAllowLongSignals = true; // Enable Long Signals -// input bool xUSCHF5XCHMAMNAllowShortSignals = true; // Enable Short Signals +// +// XCHMAMN ... +// input group "XAU5 XCHMAMN Signaller"; +// input bool xAU5XCHMAMNEnableSignaller = true; // Enable Signaller +// input bool xAU5XCHMAMNAllowLongSignals = true; // Enable Long Signals +// input bool xAU5XCHMAMNAllowShortSignals = true; // Enable Short Signals // // Check in Test Mode or not ... -bool xUSCHF5IsTestMode = false; +bool xAU5IsTestMode = false; // // Detect max Input Length of Indicators ... -int xUSCHF5MaxLengthOfInputs = 0; +int xAU5MaxLengthOfInputs = 0; // // Detect Calculated Bars ... -int xUSCHF5CalculatedBars = 0; +int xAU5CalculatedBars = 0; // // Check prevent Double Signalling on Same Candle ... -bool xUSCHF5WaitUntilNextCandle = false; +bool xAU5WaitUntilNextCandle = false; // // Signaller Variables ... // // XTD ... -bool xUSCHF5MXTDEnableSignaller = xUSCHF5XTDEnableSignaller; -bool xUSCHF5MXTDAllowLongSignals = xUSCHF5XTDAllowLongSignals; -bool xUSCHF5MXTDAllowShortSignals = xUSCHF5XTDAllowShortSignals; +bool xAU5MXTDEnableSignaller = xAU5XTDEnableSignaller; +bool xAU5MXTDAllowLongSignals = xAU5XTDAllowLongSignals; +bool xAU5MXTDAllowShortSignals = xAU5XTDAllowShortSignals; // // XTAM ... -bool xUSCHF5MXTAMEnableSignaller = xUSCHF5XTAMEnableSignaller; -bool xUSCHF5MXTAMAllowLongSignals = xUSCHF5XTAMAllowLongSignals; -bool xUSCHF5MXTAMAllowShortSignals = xUSCHF5XTAMAllowShortSignals; +bool xAU5MXTAMEnableSignaller = xAU5XTAMEnableSignaller; +bool xAU5MXTAMAllowLongSignals = xAU5XTAMAllowLongSignals; +bool xAU5MXTAMAllowShortSignals = xAU5XTAMAllowShortSignals; // // XSI ... -bool xUSCHF5MXSIEnableSignaller = xUSCHF5XSIEnableSignaller; -bool xUSCHF5MXSIAllowLongSignals = xUSCHF5XSIAllowLongSignals; -bool xUSCHF5MXSIAllowShortSignals = xUSCHF5XSIAllowShortSignals; +bool xAU5MXSIEnableSignaller = xAU5XSIEnableSignaller; +bool xAU5MXSIAllowLongSignals = xAU5XSIAllowLongSignals; +bool xAU5MXSIAllowShortSignals = xAU5XSIAllowShortSignals; // // XTSFI ... -bool xUSCHF5MXTSFIEnableSignaller = xUSCHF5XTSFIEnableSignaller; -bool xUSCHF5MXTSFIAllowLongSignals = xUSCHF5XTSFIAllowLongSignals; -bool xUSCHF5MXTSFIAllowShortSignals = xUSCHF5XTSFIAllowShortSignals; +bool xAU5MXTSFIEnableSignaller = xAU5XTSFIEnableSignaller; +bool xAU5MXTSFIAllowLongSignals = xAU5XTSFIAllowLongSignals; +bool xAU5MXTSFIAllowShortSignals = xAU5XTSFIAllowShortSignals; // // XOBDLH ... -bool xUSCHF5MXOBDLHEnableSignaller = false; // xUSCHF5XOBDLHEnableSignaller; -bool xUSCHF5MXOBDLHAllowLongSignals = false; // xUSCHF5XOBDLHAllowLongSignals; -bool xUSCHF5MXOBDLHAllowShortSignals = false; // xUSCHF5XOBDLHAllowShortSignals; +bool xAU5MXOBDLHEnableSignaller = false; //xAU5XOBDLHEnableSignaller; +bool xAU5MXOBDLHAllowLongSignals = false; //xAU5XOBDLHAllowLongSignals; +bool xAU5MXOBDLHAllowShortSignals = false; //xAU5XOBDLHAllowShortSignals; // // XCHMACC ... -bool xUSCHF5MXCHMACCEnableSignaller = false; // xUSCHF5XCHMACCEnableSignaller; -bool xUSCHF5MXCHMACCAllowLongSignals = false; // xUSCHF5XCHMACCAllowLongSignals; -bool xUSCHF5MXCHMACCAllowShortSignals = false; // xUSCHF5XCHMACCAllowShortSignals; +bool xAU5MXCHMACCEnableSignaller = xAU5XCHMACCEnableSignaller; +bool xAU5MXCHMACCAllowLongSignals = xAU5XCHMACCAllowLongSignals; +bool xAU5MXCHMACCAllowShortSignals = xAU5XCHMACCAllowShortSignals; // // XCHMAMX ... -bool xUSCHF5MXCHMAMXEnableSignaller = false; // xUSCHF5XCHMAMXEnableSignaller; -bool xUSCHF5MXCHMAMXAllowLongSignals = false; // xUSCHF5XCHMAMXAllowLongSignals; -bool xUSCHF5MXCHMAMXAllowShortSignals = false; // xUSCHF5XCHMAMXAllowShortSignals; +bool xAU5MXCHMAMXEnableSignaller = false; // xAU5XCHMAMXEnableSignaller; +bool xAU5MXCHMAMXAllowLongSignals = false; // xAU5XCHMAMXAllowLongSignals; +bool xAU5MXCHMAMXAllowShortSignals = false; // xAU5XCHMAMXAllowShortSignals; // // XCHMAMN ... -bool xUSCHF5MXCHMAMNEnableSignaller = false; // xUSCHF5XCHMAMNEnableSignaller; -bool xUSCHF5MXCHMAMNAllowLongSignals = false; // xUSCHF5XCHMAMNAllowLongSignals; -bool xUSCHF5MXCHMAMNAllowShortSignals = false; // xUSCHF5XCHMAMNAllowShortSignals; +bool xAU5MXCHMAMNEnableSignaller = false; // xAU5XCHMAMNEnableSignaller; +bool xAU5MXCHMAMNAllowLongSignals = false; // xAU5XCHMAMNAllowLongSignals; +bool xAU5MXCHMAMNAllowShortSignals = false; // xAU5XCHMAMNAllowShortSignals; // -XCPriver *xUSCHF5Provider; +XCProvider *xAU5Provider; // // Validate Indicators Inputs ... -bool XUSCHF5ValidateIndicatorsInputs() +bool XAU5ValidateIndicatorsInputs() { // bool result = false; @@ -241,8 +241,8 @@ bool XUSCHF5ValidateIndicatorsInputs() } // - // Make an Instance Of XCPriver Class for Use ... - xUSCHF5Provider = new XCPriver( + // Make an Instance Of XCProvider Class for Use ... + xAU5Provider = new XCProvider( // // Commons ... _Symbol, @@ -251,44 +251,44 @@ bool XUSCHF5ValidateIndicatorsInputs() // Signallers ... // // XTD ... - xUSCHF5MXTDEnableSignaller, - xUSCHF5MXTDAllowLongSignals, - xUSCHF5MXTDAllowShortSignals, + xAU5MXTDEnableSignaller, + xAU5MXTDAllowLongSignals, + xAU5MXTDAllowShortSignals, // // XTAM ... - xUSCHF5MXTAMEnableSignaller, - xUSCHF5MXTAMAllowLongSignals, - xUSCHF5MXTAMAllowShortSignals, + xAU5MXTAMEnableSignaller, + xAU5MXTAMAllowLongSignals, + xAU5MXTAMAllowShortSignals, // // XSI ... - xUSCHF5MXSIEnableSignaller, - xUSCHF5MXSIAllowLongSignals, - xUSCHF5MXSIAllowShortSignals, + xAU5MXSIEnableSignaller, + xAU5MXSIAllowLongSignals, + xAU5MXSIAllowShortSignals, // // XTSFI ... - xUSCHF5MXTSFIEnableSignaller, - xUSCHF5MXTSFIAllowLongSignals, - xUSCHF5MXTSFIAllowShortSignals, + xAU5MXTSFIEnableSignaller, + xAU5MXTSFIAllowLongSignals, + xAU5MXTSFIAllowShortSignals, // // XOBDLH ... - xUSCHF5MXOBDLHEnableSignaller, - xUSCHF5MXOBDLHAllowLongSignals, - xUSCHF5MXOBDLHAllowShortSignals, + xAU5MXOBDLHEnableSignaller, + xAU5MXOBDLHAllowLongSignals, + xAU5MXOBDLHAllowShortSignals, // // XCHMACC ... - xUSCHF5MXCHMACCEnableSignaller, - xUSCHF5MXCHMACCAllowLongSignals, - xUSCHF5MXCHMACCAllowShortSignals, + xAU5MXCHMACCEnableSignaller, + xAU5MXCHMACCAllowLongSignals, + xAU5MXCHMACCAllowShortSignals, // // XCHMAMX ... - xUSCHF5MXCHMAMXEnableSignaller, - xUSCHF5MXCHMAMXAllowLongSignals, - xUSCHF5MXCHMAMXAllowShortSignals, + xAU5MXCHMAMXEnableSignaller, + xAU5MXCHMAMXAllowLongSignals, + xAU5MXCHMAMXAllowShortSignals, // // XCHMAMN ... - xUSCHF5MXCHMAMNEnableSignaller, - xUSCHF5MXCHMAMNAllowLongSignals, - xUSCHF5MXCHMAMNAllowShortSignals + xAU5MXCHMAMNEnableSignaller, + xAU5MXCHMAMNAllowLongSignals, + xAU5MXCHMAMNAllowShortSignals // ); @@ -301,14 +301,14 @@ bool XUSCHF5ValidateIndicatorsInputs() // // Init Indicators ... -bool XUSCHF5InitIndicators() +bool XAU5InitIndicators() { // bool result = false; // // Make it Enable when we need to Log Market Conditions ... - xUSCHF5IsTestMode = IsRunningOnTestMode(); + xAU5IsTestMode = IsRunningOnTestMode(); // // Check and Calculate Max Length in Inputs ... @@ -316,88 +316,88 @@ bool XUSCHF5InitIndicators() // // XTM ... - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs = MathMax( xTMMaPeriod, - xUSCHF5NumberOfItemsPerTick); + xAU5NumberOfItemsPerTick); // // XAMA ... - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs = MathMax( xAMALength, - xUSCHF5NumberOfItemsPerTick); - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5NumberOfItemsPerTick); + xAU5MaxLengthOfInputs = MathMax( xAMAFastEMA, - xUSCHF5NumberOfItemsPerTick); - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5NumberOfItemsPerTick); + xAU5MaxLengthOfInputs = MathMax( xAMASlowEMA, - xUSCHF5NumberOfItemsPerTick); + xAU5NumberOfItemsPerTick); // // XLH ... - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs = MathMax( xLHLength, - xUSCHF5NumberOfItemsPerTick); + xAU5NumberOfItemsPerTick); // // XTD ... - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs = MathMax( xTDLength, - xUSCHF5MaxLengthOfInputs); + xAU5MaxLengthOfInputs); // // XFI ... - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs = MathMax( xFILength, - xUSCHF5MaxLengthOfInputs); + xAU5MaxLengthOfInputs); // // XRSI ... - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs = MathMax( xRSILength, - xUSCHF5MaxLengthOfInputs); + xAU5MaxLengthOfInputs); // // XOBD ... - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs = MathMax( xOBDLength, - xUSCHF5MaxLengthOfInputs); + xAU5MaxLengthOfInputs); // // XCHLH ... - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs = MathMax( xCHLHLcLength, - xUSCHF5MaxLengthOfInputs); - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs); + xAU5MaxLengthOfInputs = MathMax( xCHLHMcLength, - xUSCHF5MaxLengthOfInputs); - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs); + xAU5MaxLengthOfInputs = MathMax( xCHLHScLength, - xUSCHF5MaxLengthOfInputs); + xAU5MaxLengthOfInputs); // // XCHMA ... - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs = MathMax( xCHMAScFastLength, - xUSCHF5MaxLengthOfInputs); - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs); + xAU5MaxLengthOfInputs = MathMax( xCHMAScSlowLength, - xUSCHF5MaxLengthOfInputs); - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs); + xAU5MaxLengthOfInputs = MathMax( xCHMAMcFastLength, - xUSCHF5MaxLengthOfInputs); - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs); + xAU5MaxLengthOfInputs = MathMax( xCHMAMcSlowLength, - xUSCHF5MaxLengthOfInputs); - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs); + xAU5MaxLengthOfInputs = MathMax( xCHMALcFastLength, - xUSCHF5MaxLengthOfInputs); - xUSCHF5MaxLengthOfInputs = MathMax( + xAU5MaxLengthOfInputs); + xAU5MaxLengthOfInputs = MathMax( xCHMALcSlowLength, - xUSCHF5MaxLengthOfInputs); + xAU5MaxLengthOfInputs); // // Validate Indicators Inputs before Initialization ... - result = XUSCHF5ValidateIndicatorsInputs(); + result = XAU5ValidateIndicatorsInputs(); if (!result) { return result; @@ -409,58 +409,58 @@ bool XUSCHF5InitIndicators() // // XTD ... bool isXTDEnable = - xUSCHF5XTDEnableSignaller && - (xUSCHF5XTDAllowLongSignals || - xUSCHF5XTDAllowShortSignals); + xAU5XTDEnableSignaller && + (xAU5XTDAllowLongSignals || + xAU5XTDAllowShortSignals); // // XTAM ... bool isXTAMEnable = - xUSCHF5XTAMEnableSignaller && - (xUSCHF5XTAMAllowLongSignals || - xUSCHF5XTAMAllowShortSignals); + xAU5XTAMEnableSignaller && + (xAU5XTAMAllowLongSignals || + xAU5XTAMAllowShortSignals); // // XSI ... bool isXSIEnable = - xUSCHF5XSIEnableSignaller && - (xUSCHF5XSIAllowLongSignals || - xUSCHF5XSIAllowShortSignals); + xAU5XSIEnableSignaller && + (xAU5XSIAllowLongSignals || + xAU5XSIAllowShortSignals); // // XTSFI ... bool isXTSFIEnable = - xUSCHF5XTSFIEnableSignaller && - (xUSCHF5XTSFIAllowLongSignals || - xUSCHF5XTSFIAllowShortSignals); + xAU5XTSFIEnableSignaller && + (xAU5XTSFIAllowLongSignals || + xAU5XTSFIAllowShortSignals); // // XOBDLH ... bool isXOBDLHEnable = false; - // xUSCHF5XOBDLHEnableSignaller && - // (xUSCHF5XOBDLHAllowLongSignals || - // xUSCHF5XOBDLHAllowShortSignals); + // xAU5XOBDLHEnableSignaller && + // (xAU5XOBDLHAllowLongSignals || + // xAU5XOBDLHAllowShortSignals); // // XCHMACC ... - bool isXCHMACCEnable = false; - // xUSCHF5XCHMACCEnableSignaller && - // (xUSCHF5XCHMACCAllowLongSignals || - // xUSCHF5XCHMACCAllowShortSignals); + bool isXCHMACCEnable = + xAU5XCHMACCEnableSignaller && + (xAU5XCHMACCAllowLongSignals || + xAU5XCHMACCAllowShortSignals); // // XCHMAMX ... bool isXCHMAMXEnable = false; - // xUSCHF5XCHMAMXEnableSignaller && - // (xUSCHF5XCHMAMXAllowLongSignals || - // xUSCHF5XCHMAMXAllowShortSignals); + // xAU5XCHMAMXEnableSignaller && + // (xAU5XCHMAMXAllowLongSignals || + // xAU5XCHMAMXAllowShortSignals); // // XCHMAMN ... bool isXCHMAMNEnable = false; - // xUSCHF5XCHMAMNEnableSignaller && - // (xUSCHF5XCHMAMNAllowLongSignals || - // xUSCHF5XCHMAMNAllowShortSignals); + // xAU5XCHMAMNEnableSignaller && + // (xAU5XCHMAMNAllowLongSignals || + // xAU5XCHMAMNAllowShortSignals); // bool hasSignaller = @@ -479,7 +479,7 @@ bool XUSCHF5InitIndicators() if (!result) { // - LogMessage("XUSCHF5 doesn't enable any Signaller ..."); + LogMessage("XAU5 doesn't enable any Signaller ..."); // return result; @@ -578,7 +578,7 @@ bool XUSCHF5InitIndicators() // // Release Indicators ... -void XUSCHF5ReleaseIndicators() +void XAU5ReleaseIndicators() { // // Release Handlers ... @@ -596,27 +596,27 @@ void XUSCHF5ReleaseIndicators() // // Handle Reading Buffers ... -void XUSCHF5HandleReadingBuffers() +void XAU5HandleReadingBuffers() { // // Reading Calculated Bars for a Simple Handler ... - xUSCHF5CalculatedBars = BarsCalculated(xTMHandler); + xAU5CalculatedBars = BarsCalculated(xTMHandler); // // Read Indicators Buffers ... - XTMReadBuffers(xUSCHF5NumberOfItemsPerTick); - XAMAReadBuffers(xUSCHF5NumberOfItemsPerTick); - XLHReadBuffers(xUSCHF5NumberOfItemsPerTick); - XTDReadBuffers(xUSCHF5NumberOfItemsPerTick); - XFIReadBuffers(xUSCHF5NumberOfItemsPerTick); - XTSReadBuffers(xUSCHF5NumberOfItemsPerTick); - XRSIReadBuffers(xUSCHF5NumberOfItemsPerTick); - XOBDReadBuffers(xUSCHF5NumberOfItemsPerTick); - XCHMAReadBuffers(xUSCHF5NumberOfItemsPerTick); - XCHLHReadBuffers(xUSCHF5NumberOfItemsPerTick); + XTMReadBuffers(xAU5NumberOfItemsPerTick); + XAMAReadBuffers(xAU5NumberOfItemsPerTick); + XLHReadBuffers(xAU5NumberOfItemsPerTick); + XTDReadBuffers(xAU5NumberOfItemsPerTick); + XFIReadBuffers(xAU5NumberOfItemsPerTick); + XTSReadBuffers(xAU5NumberOfItemsPerTick); + XRSIReadBuffers(xAU5NumberOfItemsPerTick); + XOBDReadBuffers(xAU5NumberOfItemsPerTick); + XCHMAReadBuffers(xAU5NumberOfItemsPerTick); + XCHLHReadBuffers(xAU5NumberOfItemsPerTick); // - xUSCHF5Provider.ReadConditions(); + xAU5Provider.ReadConditions(); } // @@ -629,7 +629,7 @@ void XUSCHF5HandleReadingBuffers() // Can Open Long Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Long Signals ... -bool XUSCHF5CanOpenLongTrade( +bool XAU5CanOpenLongTrade( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -644,7 +644,7 @@ bool XUSCHF5CanOpenLongTrade( 0); // - bool hasSignal = XUSCHF5HasLongSignal(info); + bool hasSignal = XAU5HasLongSignal(info); // result = @@ -656,7 +656,7 @@ bool XUSCHF5CanOpenLongTrade( // if (result) { - xUSCHF5Provider.ClearConditions(); + xAU5Provider.ClearConditions(); } // @@ -667,7 +667,7 @@ bool XUSCHF5CanOpenLongTrade( // Can Close Long Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Long Signals ... -bool XUSCHF5CanCloseLongTrade() +bool XAU5CanCloseLongTrade() { // bool result = false; @@ -680,7 +680,7 @@ bool XUSCHF5CanCloseLongTrade() // Can Open Short Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Short Signals ... -bool XUSCHF5CanOpenShortTrade( +bool XAU5CanOpenShortTrade( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -695,7 +695,7 @@ bool XUSCHF5CanOpenShortTrade( 0); // - bool hasSignal = XUSCHF5HasShortSignal(info); + bool hasSignal = XAU5HasShortSignal(info); // result = @@ -707,7 +707,7 @@ bool XUSCHF5CanOpenShortTrade( // if (result) { - xUSCHF5Provider.ClearConditions(); + xAU5Provider.ClearConditions(); } // @@ -718,7 +718,7 @@ bool XUSCHF5CanOpenShortTrade( // Can Close Short Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Short Signals ... -bool XUSCHF5CanCloseShortTrade() +bool XAU5CanCloseShortTrade() { // bool result = false; @@ -741,7 +741,7 @@ bool XUSCHF5CanCloseShortTrade() // // Check Market Conditions by Combination of Power of All tools for LONGs ... -bool XUSCHF5HasLongSignal( +bool XAU5HasLongSignal( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -750,7 +750,7 @@ bool XUSCHF5HasLongSignal( // // XTD ... - bool isXTDHasSignal = XUSCHF5XTDHasLongSignal(); + bool isXTDHasSignal = XAU5XTDHasLongSignal(); if (isXTDHasSignal) { // @@ -761,7 +761,7 @@ bool XUSCHF5HasLongSignal( // // XTAM ... - bool isXTAMHasSignal = XUSCHF5XTAMHasLongSignal(); + bool isXTAMHasSignal = XAU5XTAMHasLongSignal(); if (isXTAMHasSignal) { // @@ -772,7 +772,7 @@ bool XUSCHF5HasLongSignal( // // XSI ... - bool isXSIHasSignal = XUSCHF5XSIHasLongSignal(); + bool isXSIHasSignal = XAU5XSIHasLongSignal(); if (isXSIHasSignal) { // @@ -783,7 +783,7 @@ bool XUSCHF5HasLongSignal( // // XTSFI ... - bool isXTSFIHasSignal = XUSCHF5XTSFIHasLongSignal(); + bool isXTSFIHasSignal = XAU5XTSFIHasLongSignal(); if (isXTSFIHasSignal) { // @@ -794,7 +794,7 @@ bool XUSCHF5HasLongSignal( // // XOBD XLH ... - bool isXOBDLHHasSignal = XUSCHF5XOBDLHHasLongSignal(); + bool isXOBDLHHasSignal = XAU5XOBDLHHasLongSignal(); if (isXOBDLHHasSignal) { // @@ -805,7 +805,7 @@ bool XUSCHF5HasLongSignal( // // XCHMA Cycles Cross ... - bool isXCHMACCHasSignal = XUSCHF5XCHMACCHasLongSignal(); + bool isXCHMACCHasSignal = XAU5XCHMACCHasLongSignal(); if (isXCHMACCHasSignal) { // @@ -816,7 +816,7 @@ bool XUSCHF5HasLongSignal( // // XCHMA Cycles Min ... - bool isXCHMAMNHasSignal = XUSCHF5XCHMAMNHasLongSignal(); + bool isXCHMAMNHasSignal = XAU5XCHMAMNHasLongSignal(); if (isXCHMAMNHasSignal) { // @@ -827,7 +827,7 @@ bool XUSCHF5HasLongSignal( // // XCHMA Cycles Max - bool isXCHMAMXHasSignal = XUSCHF5XCHMAMXHasLongSignal(); + bool isXCHMAMXHasSignal = XAU5XCHMAMXHasLongSignal(); if (isXCHMAMXHasSignal) { // @@ -876,11 +876,11 @@ bool XUSCHF5HasLongSignal( { // // Only Log Signals Time Market Conditions if is in Testing Mode ... - if (xUSCHF5IsTestMode || xUSCHF5EnableSignalAlerts) + if (xAU5IsTestMode || xAU5EnableSignalAlerts) { // - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); - string message = xUSCHF5Provider.GenerateConditionsString(mConditions); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + string message = xAU5Provider.GenerateConditionsString(mConditions); // LogMessage( @@ -897,7 +897,7 @@ bool XUSCHF5HasLongSignal( // // Check Market Conditions by Combination of Power of All tools for SHORTs ... -bool XUSCHF5HasShortSignal( +bool XAU5HasShortSignal( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -906,7 +906,7 @@ bool XUSCHF5HasShortSignal( // // XTD ... - bool isXTDHasSignal = XUSCHF5XTDHasShortSignal(); + bool isXTDHasSignal = XAU5XTDHasShortSignal(); if (isXTDHasSignal) { // @@ -917,7 +917,7 @@ bool XUSCHF5HasShortSignal( // // XTAM ... - bool isXTAMHasSignal = XUSCHF5XTAMHasShortSignal(); + bool isXTAMHasSignal = XAU5XTAMHasShortSignal(); if (isXTAMHasSignal) { // @@ -928,7 +928,7 @@ bool XUSCHF5HasShortSignal( // // XSI ... - bool isXSIHasSignal = XUSCHF5XSIHasShortSignal(); + bool isXSIHasSignal = XAU5XSIHasShortSignal(); if (isXSIHasSignal) { // @@ -939,7 +939,7 @@ bool XUSCHF5HasShortSignal( // // XTSFI ... - bool isXTSFIHasSignal = XUSCHF5XTSFIHasShortSignal(); + bool isXTSFIHasSignal = XAU5XTSFIHasShortSignal(); if (isXTSFIHasSignal) { // @@ -950,7 +950,7 @@ bool XUSCHF5HasShortSignal( // // XOBD XLH ... - bool isXOBDLHHasSignal = XUSCHF5XOBDLHHasShortSignal(); + bool isXOBDLHHasSignal = XAU5XOBDLHHasShortSignal(); if (isXOBDLHHasSignal) { // @@ -961,7 +961,7 @@ bool XUSCHF5HasShortSignal( // // XCHMA Cycles Cross ... - bool isXCHMACCHasSignal = XUSCHF5XCHMACCHasShortSignal(); + bool isXCHMACCHasSignal = XAU5XCHMACCHasShortSignal(); if (isXCHMACCHasSignal) { // @@ -972,7 +972,7 @@ bool XUSCHF5HasShortSignal( // // XCHMA Cycles Min ... - bool isXCHMAMNHasSignal = XUSCHF5XCHMAMNHasShortSignal(); + bool isXCHMAMNHasSignal = XAU5XCHMAMNHasShortSignal(); if (isXCHMAMNHasSignal) { // @@ -983,7 +983,7 @@ bool XUSCHF5HasShortSignal( // // XCHMA Cycles Max - bool isXCHMAMXHasSignal = XUSCHF5XCHMAMXHasShortSignal(); + bool isXCHMAMXHasSignal = XAU5XCHMAMXHasShortSignal(); if (isXCHMAMXHasSignal) { // @@ -1032,11 +1032,11 @@ bool XUSCHF5HasShortSignal( { // // Only Log Signals Time Market Conditions if is in Testing Mode ... - if (xUSCHF5IsTestMode || xUSCHF5EnableSignalAlerts) + if (xAU5IsTestMode || xAU5EnableSignalAlerts) { // - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); - string message = xUSCHF5Provider.GenerateConditionsString(mConditions); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); + string message = xAU5Provider.GenerateConditionsString(mConditions); // LogMessage( @@ -1063,438 +1063,438 @@ bool XUSCHF5HasShortSignal( // // Disbale All Signallers Longs ... -void XUSCHF5DisableLongSignallers() +void XAU5DisableLongSignallers() { // // XTD ... - if (xUSCHF5MXTDEnableSignaller) + if (xAU5MXTDEnableSignaller) { // - xUSCHF5Provider.DisbaleXTDLongs(); - xUSCHF5MXTDAllowLongSignals = false; + xAU5Provider.DisbaleXTDLongs(); + xAU5MXTDAllowLongSignals = false; } // // XTAM ... - if (xUSCHF5MXTAMEnableSignaller) + if (xAU5MXTAMEnableSignaller) { // - xUSCHF5Provider.DisbaleXTAMLongs(); - xUSCHF5MXTAMAllowLongSignals = false; + xAU5Provider.DisbaleXTAMLongs(); + xAU5MXTAMAllowLongSignals = false; } // // XSI ... - if (xUSCHF5MXSIEnableSignaller) + if (xAU5MXSIEnableSignaller) { // - xUSCHF5Provider.DisbaleXSILongs(); - xUSCHF5MXSIAllowLongSignals = false; + xAU5Provider.DisbaleXSILongs(); + xAU5MXSIAllowLongSignals = false; } // // XTSFI ... - if (xUSCHF5MXTSFIEnableSignaller) + if (xAU5MXTSFIEnableSignaller) { // - xUSCHF5Provider.DisbaleXTSFILongs(); - xUSCHF5MXTSFIAllowLongSignals = false; + xAU5Provider.DisbaleXTSFILongs(); + xAU5MXTSFIAllowLongSignals = false; } // // XOBDLH ... - // if (xUSCHF5MXOBDLHEnableSignaller) + // if (xAU5MXOBDLHEnableSignaller) // { // // - // xUSCHF5Provider.DisbaleXOBDLHLongs(); - // xUSCHF5MXOBDLHAllowLongSignals = false; + // xAU5Provider.DisbaleXOBDLHLongs(); + // xAU5MXOBDLHAllowLongSignals = false; // } // // XCHMACC ... - // if (xUSCHF5MXCHMACCEnableSignaller) - // { - // // - // xUSCHF5Provider.DisbaleXCHMACCLongs(); - // xUSCHF5MXCHMACCAllowLongSignals = false; - // } + if (xAU5MXCHMACCEnableSignaller) + { + // + xAU5Provider.DisbaleXCHMACCLongs(); + xAU5MXCHMACCAllowLongSignals = false; + } // // XCHMAMX ... - // if (xUSCHF5MXCHMAMXEnableSignaller) + // if (xAU5MXCHMAMXEnableSignaller) // { // // - // xUSCHF5Provider.DisbaleXCHMAMXLongs(); - // xUSCHF5MXCHMAMXAllowLongSignals = false; + // xAU5Provider.DisbaleXCHMAMXLongs(); + // xAU5MXCHMAMXAllowLongSignals = false; // } // // XCHMAMN ... - // if (xUSCHF5MXCHMAMNEnableSignaller) + // if (xAU5MXCHMAMNEnableSignaller) // { // // - // xUSCHF5Provider.DisbaleXCHMAMNLongs(); - // xUSCHF5MXCHMAMNAllowLongSignals = false; + // xAU5Provider.DisbaleXCHMAMNLongs(); + // xAU5MXCHMAMNAllowLongSignals = false; // } } // // Enable All Signallers Longs ... // Only if they are Configured as Enable at Settings ... -void XUSCHF5EnableLongSignallers() +void XAU5EnableLongSignallers() { // // XTD ... - if (xUSCHF5MXTDEnableSignaller) + if (xAU5MXTDEnableSignaller) { // - xUSCHF5MXTDAllowLongSignals = - xUSCHF5XTDAllowLongSignals + xAU5MXTDAllowLongSignals = + xAU5XTDAllowLongSignals ? true - : xUSCHF5MXTDAllowLongSignals; + : xAU5MXTDAllowLongSignals; // - if (xUSCHF5MXTDAllowLongSignals) + if (xAU5MXTDAllowLongSignals) { - xUSCHF5Provider.EnableXTDLongs(); + xAU5Provider.EnableXTDLongs(); } } // // XTAM ... - if (xUSCHF5MXTAMEnableSignaller) + if (xAU5MXTAMEnableSignaller) { // - xUSCHF5MXTAMAllowLongSignals = - xUSCHF5XTAMAllowLongSignals + xAU5MXTAMAllowLongSignals = + xAU5XTAMAllowLongSignals ? true - : xUSCHF5MXTAMAllowLongSignals; + : xAU5MXTAMAllowLongSignals; // - if (xUSCHF5MXTAMAllowLongSignals) + if (xAU5MXTAMAllowLongSignals) { - xUSCHF5Provider.EnableXTAMLongs(); + xAU5Provider.EnableXTAMLongs(); } } // // XSI ... - if (xUSCHF5MXSIEnableSignaller) + if (xAU5MXSIEnableSignaller) { // - xUSCHF5MXSIAllowLongSignals = - xUSCHF5XSIAllowLongSignals + xAU5MXSIAllowLongSignals = + xAU5XSIAllowLongSignals ? true - : xUSCHF5MXSIAllowLongSignals; + : xAU5MXSIAllowLongSignals; // - if (xUSCHF5MXSIAllowLongSignals) + if (xAU5MXSIAllowLongSignals) { - xUSCHF5Provider.EnableXSILongs(); + xAU5Provider.EnableXSILongs(); } } // // XTSFI ... - if (xUSCHF5MXTSFIEnableSignaller) + if (xAU5MXTSFIEnableSignaller) { // - xUSCHF5MXTSFIAllowLongSignals = - xUSCHF5XTSFIAllowLongSignals + xAU5MXTSFIAllowLongSignals = + xAU5XTSFIAllowLongSignals ? true - : xUSCHF5MXTSFIAllowLongSignals; + : xAU5MXTSFIAllowLongSignals; // - if (xUSCHF5MXTSFIAllowLongSignals) + if (xAU5MXTSFIAllowLongSignals) { - xUSCHF5Provider.EnableXTSFILongs(); + xAU5Provider.EnableXTSFILongs(); } } // // XOBDLH ... - // if (xUSCHF5MXOBDLHEnableSignaller) + // if (xAU5MXOBDLHEnableSignaller) // { // // - // xUSCHF5MXOBDLHAllowLongSignals = - // xUSCHF5XOBDLHAllowLongSignals + // xAU5MXOBDLHAllowLongSignals = + // xAU5XOBDLHAllowLongSignals // ? true - // : xUSCHF5MXOBDLHAllowLongSignals; + // : xAU5MXOBDLHAllowLongSignals; // // - // if (xUSCHF5MXOBDLHAllowLongSignals) + // if (xAU5MXOBDLHAllowLongSignals) // { - // xUSCHF5Provider.EnableXOBDLHLongs(); + // xAU5Provider.EnableXOBDLHLongs(); // } // } // // XCHMACC ... - // if (xUSCHF5MXCHMACCEnableSignaller) - // { - // // - // xUSCHF5MXCHMACCAllowLongSignals = - // xUSCHF5XCHMACCAllowLongSignals - // ? true - // : xUSCHF5MXCHMACCAllowLongSignals; + if (xAU5MXCHMACCEnableSignaller) + { + // + xAU5MXCHMACCAllowLongSignals = + xAU5XCHMACCAllowLongSignals + ? true + : xAU5MXCHMACCAllowLongSignals; - // // - // if (xUSCHF5MXCHMACCAllowLongSignals) - // { - // xUSCHF5Provider.EnableXCHMACCLongs(); - // } - // } + // + if (xAU5MXCHMACCAllowLongSignals) + { + xAU5Provider.EnableXCHMACCLongs(); + } + } // // XCHMAMX ... - // if (xUSCHF5MXCHMAMXEnableSignaller) + // if (xAU5MXCHMAMXEnableSignaller) // { // // - // xUSCHF5MXCHMAMXAllowLongSignals = - // xUSCHF5XCHMAMXAllowLongSignals + // xAU5MXCHMAMXAllowLongSignals = + // xAU5XCHMAMXAllowLongSignals // ? true - // : xUSCHF5MXCHMAMXAllowLongSignals; + // : xAU5MXCHMAMXAllowLongSignals; // // - // if (xUSCHF5MXCHMAMXAllowLongSignals) + // if (xAU5MXCHMAMXAllowLongSignals) // { - // xUSCHF5Provider.EnableXCHMAMXLongs(); + // xAU5Provider.EnableXCHMAMXLongs(); // } // } // // XCHMAMN ... - // if (xUSCHF5MXCHMAMNEnableSignaller) + // if (xAU5MXCHMAMNEnableSignaller) // { // // - // xUSCHF5MXCHMAMNAllowLongSignals = - // xUSCHF5XCHMAMNAllowLongSignals + // xAU5MXCHMAMNAllowLongSignals = + // xAU5XCHMAMNAllowLongSignals // ? true - // : xUSCHF5MXCHMAMNAllowLongSignals; + // : xAU5MXCHMAMNAllowLongSignals; // // - // if (xUSCHF5MXCHMAMNAllowLongSignals) + // if (xAU5MXCHMAMNAllowLongSignals) // { - // xUSCHF5Provider.EnableXCHMAMNLongs(); + // xAU5Provider.EnableXCHMAMNLongs(); // } // } } // // Disable All Signallers Shorts ... -void XUSCHF5DisableShortSignallers() +void XAU5DisableShortSignallers() { // // XTD ... - if (xUSCHF5MXTDEnableSignaller) + if (xAU5MXTDEnableSignaller) { // - xUSCHF5Provider.DisableXTDShorts(); - xUSCHF5MXTDAllowShortSignals = false; + xAU5Provider.DisableXTDShorts(); + xAU5MXTDAllowShortSignals = false; } // // XTAM ... - if (xUSCHF5MXTAMEnableSignaller) + if (xAU5MXTAMEnableSignaller) { // - xUSCHF5Provider.DisableXTAMShorts(); - xUSCHF5MXTAMAllowShortSignals = false; + xAU5Provider.DisableXTAMShorts(); + xAU5MXTAMAllowShortSignals = false; } // // XSI ... - if (xUSCHF5MXSIEnableSignaller) + if (xAU5MXSIEnableSignaller) { // - xUSCHF5Provider.DisableXSIShorts(); - xUSCHF5MXSIAllowShortSignals = false; + xAU5Provider.DisableXSIShorts(); + xAU5MXSIAllowShortSignals = false; } // // XTSFI ... - if (xUSCHF5MXTSFIEnableSignaller) + if (xAU5MXTSFIEnableSignaller) { // - xUSCHF5Provider.DisableXTSFIShorts(); - xUSCHF5MXTSFIAllowShortSignals = false; + xAU5Provider.DisableXTSFIShorts(); + xAU5MXTSFIAllowShortSignals = false; } // // XOBDLH ... - // if (xUSCHF5MXOBDLHEnableSignaller) + // if (xAU5MXOBDLHEnableSignaller) // { // // - // xUSCHF5Provider.DisableXOBDLHShorts(); - // xUSCHF5MXOBDLHAllowShortSignals = false; + // xAU5Provider.DisableXOBDLHShorts(); + // xAU5MXOBDLHAllowShortSignals = false; // } // // XCHMACC ... - // if (xUSCHF5MXCHMACCEnableSignaller) - // { - // // - // xUSCHF5Provider.DisableXCHMACCShorts(); - // xUSCHF5MXCHMACCAllowShortSignals = false; - // } + if (xAU5MXCHMACCEnableSignaller) + { + // + xAU5Provider.DisableXCHMACCShorts(); + xAU5MXCHMACCAllowShortSignals = false; + } // // XCHMAMX ... - // if (xUSCHF5MXCHMAMXEnableSignaller) + // if (xAU5MXCHMAMXEnableSignaller) // { // // - // xUSCHF5Provider.DisableXCHMAMXShorts(); - // xUSCHF5MXCHMAMXAllowShortSignals = false; + // xAU5Provider.DisableXCHMAMXShorts(); + // xAU5MXCHMAMXAllowShortSignals = false; // } // // XCHMAMN ... - // if (xUSCHF5MXCHMAMNEnableSignaller) + // if (xAU5MXCHMAMNEnableSignaller) // { // // - // xUSCHF5Provider.DisableXCHMAMNShorts(); - // xUSCHF5MXCHMAMNAllowShortSignals = false; + // xAU5Provider.DisableXCHMAMNShorts(); + // xAU5MXCHMAMNAllowShortSignals = false; // } } // // Enable All Signallers Shorts ... // Only if they are Configured as Enable at Settings ... -void XUSCHF5EnableShortSignallers() +void XAU5EnableShortSignallers() { // // XTD ... - if (xUSCHF5MXTDEnableSignaller) + if (xAU5MXTDEnableSignaller) { // - xUSCHF5MXTDAllowShortSignals = - xUSCHF5XTDAllowShortSignals + xAU5MXTDAllowShortSignals = + xAU5XTDAllowShortSignals ? true - : xUSCHF5MXTDAllowShortSignals; + : xAU5MXTDAllowShortSignals; // - if (xUSCHF5MXTDAllowShortSignals) + if (xAU5MXTDAllowShortSignals) { - xUSCHF5Provider.EnableXTDShorts(); + xAU5Provider.EnableXTDShorts(); } } // // XTAM ... - if (xUSCHF5MXTAMEnableSignaller) + if (xAU5MXTAMEnableSignaller) { // - xUSCHF5MXTAMAllowShortSignals = - xUSCHF5XTAMAllowShortSignals + xAU5MXTAMAllowShortSignals = + xAU5XTAMAllowShortSignals ? true - : xUSCHF5MXTAMAllowShortSignals; + : xAU5MXTAMAllowShortSignals; // - if (xUSCHF5MXTAMAllowShortSignals) + if (xAU5MXTAMAllowShortSignals) { - xUSCHF5Provider.EnableXTAMShorts(); + xAU5Provider.EnableXTAMShorts(); } } // // XSI ... - if (xUSCHF5MXSIEnableSignaller) + if (xAU5MXSIEnableSignaller) { // - xUSCHF5MXSIAllowShortSignals = - xUSCHF5XSIAllowShortSignals + xAU5MXSIAllowShortSignals = + xAU5XSIAllowShortSignals ? true - : xUSCHF5MXSIAllowShortSignals; + : xAU5MXSIAllowShortSignals; // - if (xUSCHF5MXSIAllowShortSignals) + if (xAU5MXSIAllowShortSignals) { - xUSCHF5Provider.EnableXSIShorts(); + xAU5Provider.EnableXSIShorts(); } } // // XTSFI ... - if (xUSCHF5MXTSFIEnableSignaller) + if (xAU5MXTSFIEnableSignaller) { // - xUSCHF5MXTSFIAllowShortSignals = - xUSCHF5XTSFIAllowShortSignals + xAU5MXTSFIAllowShortSignals = + xAU5XTSFIAllowShortSignals ? true - : xUSCHF5MXTSFIAllowShortSignals; + : xAU5MXTSFIAllowShortSignals; // - if (xUSCHF5MXTSFIAllowShortSignals) + if (xAU5MXTSFIAllowShortSignals) { - xUSCHF5Provider.EnableXTSFIShorts(); + xAU5Provider.EnableXTSFIShorts(); } } // // XOBDLH ... - // if (xUSCHF5MXOBDLHEnableSignaller) + // if (xAU5MXOBDLHEnableSignaller) // { // // - // xUSCHF5MXOBDLHAllowShortSignals = - // xUSCHF5XOBDLHAllowShortSignals + // xAU5MXOBDLHAllowShortSignals = + // xAU5XOBDLHAllowShortSignals // ? true - // : xUSCHF5MXOBDLHAllowShortSignals; + // : xAU5MXOBDLHAllowShortSignals; // // - // if (xUSCHF5MXOBDLHAllowShortSignals) + // if (xAU5MXOBDLHAllowShortSignals) // { - // xUSCHF5Provider.EnableXOBDLHShorts(); + // xAU5Provider.EnableXOBDLHShorts(); // } // } // // XCHMACC ... - // if (xUSCHF5MXCHMACCEnableSignaller) - // { - // // - // xUSCHF5MXCHMACCAllowShortSignals = - // xUSCHF5XCHMACCAllowShortSignals - // ? true - // : xUSCHF5MXCHMACCAllowShortSignals; + if (xAU5MXCHMACCEnableSignaller) + { + // + xAU5MXCHMACCAllowShortSignals = + xAU5XCHMACCAllowShortSignals + ? true + : xAU5MXCHMACCAllowShortSignals; - // // - // if (xUSCHF5MXCHMACCAllowShortSignals) - // { - // xUSCHF5Provider.EnableXCHMACCShorts(); - // } - // } + // + if (xAU5MXCHMACCAllowShortSignals) + { + xAU5Provider.EnableXCHMACCShorts(); + } + } // // XCHMAMX ... - // if (xUSCHF5MXCHMAMXEnableSignaller) + // if (xAU5MXCHMAMXEnableSignaller) // { // // - // xUSCHF5MXCHMAMXAllowShortSignals = - // xUSCHF5XCHMAMXAllowShortSignals + // xAU5MXCHMAMXAllowShortSignals = + // xAU5XCHMAMXAllowShortSignals // ? true - // : xUSCHF5MXCHMAMXAllowShortSignals; + // : xAU5MXCHMAMXAllowShortSignals; // // - // if (xUSCHF5MXCHMAMXAllowShortSignals) + // if (xAU5MXCHMAMXAllowShortSignals) // { - // xUSCHF5Provider.EnableXCHMAMXShorts(); + // xAU5Provider.EnableXCHMAMXShorts(); // } // } // // XCHMAMN ... - // if (xUSCHF5MXCHMAMNEnableSignaller) + // if (xAU5MXCHMAMNEnableSignaller) // { // // - // xUSCHF5MXCHMAMNAllowShortSignals = - // xUSCHF5XCHMAMNAllowShortSignals + // xAU5MXCHMAMNAllowShortSignals = + // xAU5XCHMAMNAllowShortSignals // ? true - // : xUSCHF5MXCHMAMNAllowShortSignals; + // : xAU5MXCHMAMNAllowShortSignals; // // - // if (xUSCHF5MXCHMAMNAllowShortSignals) + // if (xAU5MXCHMAMNAllowShortSignals) // { - // xUSCHF5Provider.EnableXCHMAMNShorts(); + // xAU5Provider.EnableXCHMAMNShorts(); // } // } } @@ -1505,29 +1505,29 @@ void XUSCHF5EnableShortSignallers() // // XTD Long Signal Checking ... -bool XUSCHF5XTDHasLongSignal() +bool XAU5XTDHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXTDEnableSignaller || - !xUSCHF5MXTDAllowLongSignals) + if (!xAU5MXTDEnableSignaller || + !xAU5MXTDAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XTDHasLongConditions() + xAU5Provider.XTDHasLongConditions() // && // @@ -1552,59 +1552,89 @@ bool XUSCHF5XTDHasLongSignal() mConditions.isXLHHHSameInLength) && // ( + // + (mConditions.isXTDBearishVale && + mConditions.isXCHMAMCTrendsDown) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXAMANeutural && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXAMANeutural && + mConditions.isXTMStartBullish && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXTDBullOverBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedUnderFarest) + // + || + // + ( + (mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax) && + ( + // + (mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTDBullOverBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) + // + || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHLHMCLCLLSame) && - ( - // - (mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - (mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHMAMCVale && + mConditions.isXCHMAMCTrendsUp) // || // - (mConditions.isXCHMAMCTrendsUp && - ( - // - mConditions.isXCHMAMCVale - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown) - // - || - // - (mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXTMStartBullish && + mConditions.isXTDBullOverBear && + mConditions.isXAMAStartBullish) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMax && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) // ) // @@ -1617,131 +1647,19 @@ bool XUSCHF5XTDHasLongSignal() mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown) + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXTDSignalCrossedOverBear) // || // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXTSCurrentMax && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTDBearishVale && - mConditions.isXLHLLIncreased) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCCrossedOverMax && - mConditions.isXTSCurrentCrossedOverMediest) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXFICrossedOverZero && - mConditions.isXTSCurrentCrossedOverNearest) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXLHLLIncreased && - mConditions.isXTSCurrentCrossedOverFarest && - mConditions.isXTSCurrentCrossedOverNearest) - // - || - // - (mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXCHMASCCrossedOverMin && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - ((mConditions.isXTMEndBullish && - mConditions.isXAMAEndBullish) && - ( - // - ((mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale) && - ( - // - (mConditions.isXLHLLIncreased && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - (mConditions.isXTDBearishVale && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedUnderFarest) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTSCurrentMax && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - (mConditions.isXTMEndBullish && - mConditions.isXAMAEndBullish) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXLHLLIncreased && - mConditions.isXTSCurrentCrossedOverFarest) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentCrossedOverFarest && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXTMNeutural && - mConditions.isXAMABearish && + (mConditions.isXTMNeutural && mConditions.isXCHMAMCPeak && mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && + mConditions.isXAMANeutural && + mConditions.isXCHMALCTrendsDown && mConditions.isXTDSignalCrossedOverBear && mConditions.isXTSCurrentCrossedOverFarest && mConditions.isXTSCurrentCrossedOverNearest) @@ -1750,31 +1668,6 @@ bool XUSCHF5XTDHasLongSignal() // ) // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverFarest && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) - // - ) - // - ) - // ) // ) @@ -1788,6 +1681,16 @@ bool XUSCHF5XTDHasLongSignal() !mConditions.isXLHHHSameInLength) && // ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXLHLLDecreased && + mConditions.isXCHMAMCTrendsDown && + (mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow)) + // + || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || @@ -1799,41 +1702,34 @@ bool XUSCHF5XTDHasLongSignal() // || // - ((mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish && - !mConditions.isXCHMAMCTrendsUp && - !mConditions.isXCHMAMCTrendsDown && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXTMEndBullish && - mConditions.isXTSCurrentMax && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverFarest && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) + (mConditions.isXCHMAMCVale && + mConditions.isXCHMALCPeak && + mConditions.isXAMANeutural) // || + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) + // + || + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( // (mConditions.isXTMBullish && mConditions.isXAMABullish && - mConditions.isXCHMAMCVale && mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax && - mConditions.isXLHLLDecreased && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCUnderMin && + mConditions.isXLHHHDecreased && mConditions.isXTDSignalCrossedOverBear) // ) @@ -1859,26 +1755,13 @@ bool XUSCHF5XTDHasLongSignal() mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - || - // - (mConditions.isXCHMAMCPeak && + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXFIOverZero && mConditions.isXCHMALCVale && - mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXCHMASCCrossedOverMin) + mConditions.isXTSCurrentMax && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalCrossedOverBear) // ) // @@ -1897,7 +1780,10 @@ bool XUSCHF5XTDHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + false + // + ) // ) // @@ -1929,18 +1815,35 @@ bool XUSCHF5XTDHasLongSignal() mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMAMCTrendsUp && + (mConditions.isXCHMAMCVale && + mConditions.isXCHMAMCTrendsUp) + // + || + // + (mConditions.isXCHMAMCVale && + mConditions.isXTSCurrentMax && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXTDBearishVale && ( // - mConditions.isXCHMAMCVale + (mConditions.isXTMNeutural && + mConditions.isXLHPriceCrossedUnderSignal) // || // - (mConditions.isXTSAllSame && - mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalCrossedOverBear) + (mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXTSCurrentUnderFarest) + // + || + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale && + mConditions.isXLHLLIncreased) // ) // @@ -1948,30 +1851,17 @@ bool XUSCHF5XTDHasLongSignal() // || // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXTDBearishVale && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXTDBearishVale && - mConditions.isXCHMASCUnderMin && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedUnderNearest && - mConditions.isXTSCurrentCrossedUnderMediest) + // Check if LC Fast Over Slow .. + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + ) + // + ) // ) // @@ -1979,15 +1869,50 @@ bool XUSCHF5XTDHasLongSignal() // || // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && + // Check if LC Fast Over Slow .. + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && ( // (mConditions.isXCHMALCPeak && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXTSCurrentUnderMediest) + ( + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXCHMAMCTrendsDown) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMAMCTrendsDown) + // + || + // + (mConditions.isXCHLHMCLCHHSame && + mConditions.isXAMAStartBullish && + mConditions.isXTSCurrentUnderFarest) + // + || + // + (mConditions.isXCHMAMCVale && + mConditions.isXTSCurrentMax && + mConditions.isXAMAStartBullish && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) // ) // @@ -1999,41 +1924,55 @@ bool XUSCHF5XTDHasLongSignal() mConditions.isXCHMAMCFastOverSlow) && ( // - ((mConditions.isXAMANeutural && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - mConditions.isXTSCurrentUnderFarest - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentUnderNearest) - // - ) - // - ) + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) + // + || + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale) // || // - (mConditions.isXTDBearishVale && - mConditions.isXTSCurrentUnderNearest && + (mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsUp) + // + || + // + (mConditions.isXAMABearish && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderNearest) + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMax && + mConditions.isXTMStartBullish && mConditions.isXTDSignalCrossedOverBear) // || // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTMEndBullish && - mConditions.isXTSCurrentMax && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) + (mConditions.isXCHMALCVale && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMax && + mConditions.isXLHLLIncreased && + mConditions.isXTMStartBullish && + mConditions.isXTDSignalCrossedOverBear) // ) // @@ -2052,6 +1991,15 @@ bool XUSCHF5XTDHasLongSignal() !mConditions.isXLHHHSameInLength) && // ( + // + (mConditions.isXAMAVale && + mConditions.isXAMABearish && + mConditions.isXTSCurrentMax && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest) + // + || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || @@ -2059,62 +2007,41 @@ bool XUSCHF5XTDHasLongSignal() ( // (mConditions.isXCHMAMCVale && - ( - // - mConditions.isXCHMAMCTrendsUp - // - || - // - (mConditions.isXCHMALCVale && - ( - // - (mConditions.isXAMAEndBullish && - mConditions.isXLHHHDecreased && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXTSCurrentUnderFarest) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCUnderMin && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXLHLLDecreased && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverNearest) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXAMABearish && - mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) + mConditions.isXCHMALCVale) + // + || + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMAMCTrendsUp) + // + ) + // + ) + // + || + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXLHLLIncreased && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) // ) // @@ -2134,51 +2061,16 @@ bool XUSCHF5XTDHasLongSignal() // ( // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) && + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXCHMAMCFastUnderSlow) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXTDBearishVale && + (mConditions.isXAMANeutural && mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMAMCFastUnderSlow && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedUnderNearest) + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTDSignalCrossedOverBear) // ) // @@ -2218,6 +2110,10 @@ bool XUSCHF5XTDHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + mConditions.isXRSICrossedOverLongExit + // + || + // // XTD Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... @@ -2230,72 +2126,109 @@ bool XUSCHF5XTDHasLongSignal() ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMAMCTrendsUp) + // + || // (mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) + mConditions.isXCHMALCTrendsDown) // || // - (mConditions.isXTMNeutural && - mConditions.isXCHMAMCVale && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && + (mConditions.isXTDBearishVale && mConditions.isXTSCurrentUnderFarest && - mConditions.isXTDSignalCrossedOverBear) + mConditions.isXTSCurrentUnderNearest) + // + ) + // + ) + // + || + // + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && + ( + // + (mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedUnderNearest) // || // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTSCurrentMax && + mConditions.isXLHLLIncreased && + mConditions.isXTDBearishVale && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXLHPriceCrossedOverSignal) + // + || + // + ((mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) && ( // - (mConditions.isXCHMALCPeak && - mConditions.isXLHHHDecreased && - mConditions.isXTSCurrentUnderNearest && + (mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + (mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMax && mConditions.isXTDSignalCrossedOverBear) // || // - (mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXLHPriceCrossedOverSignal) - // - ) - // - ) - // - || - // - ((mConditions.isXTSCurrentMax && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - (mConditions.isXTDBearishVale && - mConditions.isXAMAStartBullish && - mConditions.isXLHPriceCrossedOverSignal) - // - || - // - (mConditions.isXTMEndBullish && - mConditions.isXLHLLDecreased && - mConditions.isXCHMASCOverMax && + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMax && mConditions.isXCHMASCCrossedOverMax) // || // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && + (mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + ((mConditions.isXTSCurrentUnderNearest || + mConditions.isXTSCurrentCrossedUnderNearest) && + (mConditions.isXTSCurrentUnderMediest || + mConditions.isXTSCurrentCrossedUnderMediest)) + // + || + // + ((mConditions.isXLHLLIncreased && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXLHPriceCrossedOverSignal) && ( // - (mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXLHPriceCrossedOverSignal) + mConditions.isXTSCurrentCrossedUnderFarest + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest) // ) // @@ -2316,370 +2249,103 @@ bool XUSCHF5XTDHasLongSignal() mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - mConditions.isXRSICrossedOverLongExit + (mConditions.isXCHMALCVale && + mConditions.isXTDBearishVale && + mConditions.isXTSCurrentUnderNearest) // || // - (mConditions.isXTSCurrentUnderNearest && + (mConditions.isXCHMAMCPeak && + mConditions.isXCHLHSameHHs && mConditions.isXTSCurrentUnderMediest && - mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHMASCCrossedOverMin && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXLHLLDecreased && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedUnderFarest && mConditions.isXTSCurrentCrossedUnderMediest) // || // ((mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXTDSignalCrossedOverBear) && + mConditions.isXCHMALCVale) && ( // - mConditions.isXTSCurrentUnderMediest - // - || - // - (mConditions.isXTSCurrentMax && - ( - // - (mConditions.isXAMANeutural || - mConditions.isXAMAEndBullish) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - mConditions.isXTSCurrentCrossedOverNearest - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXLHLLIncreased) - // - || - // - (mConditions.isXTDBearishVale && - mConditions.isXTDBullOverBear && - mConditions.isXCHMASCCrossedOverMin) - // - || - // - (mConditions.isXCHMASCOverMin && - mConditions.isXCHMASCUnderMax && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentOverFarest) - // - ) - // - ) - // - || - // - (mConditions.isXTDSignalCrossedOverBear && - ( - // - (mConditions.isXCHMAMCPeak && - ( - // - (mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentUnderNearest) - // - || - // - (mConditions.isXTSCurrentMax && - ( - // - (mConditions.isXCHLHSameHHs && - mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXFIOverZero && - mConditions.isXAMAStartBullish && - mConditions.isXTSCurrentOverFarest) - // - || - // - (!mConditions.isXCHMASCTrendsUp && - !mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMASCFastOverSlow) - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMASCOverMin && - mConditions.isXCHMASCUnderMax && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXCHLHMCLCHHSame && - ( - // - mConditions.isXTDBearishVale - // - || - // - mConditions.isXCHLHMCLCLLSame - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCOverMin && - mConditions.isXCHMASCUnderMax && - mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTSCurrentOverFarest) && - ( - // - mConditions.isXTSCurrentOverNearest - // - || - // - (mConditions.isXCHMASCCrossedOverMax && - mConditions.isXLHPriceCrossedOverSignal) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXLHPriceCrossedOverSignal) - // - || - // - ((mConditions.isXTSCurrentUnderNearest || - mConditions.isXTSCurrentCrossedUnderNearest) && - (mConditions.isXTSCurrentUnderMediest || - mConditions.isXTSCurrentCrossedUnderMediest)) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXTMEndBullish) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - || - // - ((mConditions.isXAMANeutural && - mConditions.isXTMStartBullish) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverFarest) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) - // - || - // - ((mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - (mConditions.isXLHLLDecreased && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXLHPriceCrossedOverSignal) - // - || - // - ((mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentCrossedOverNearest) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTDBearishVale && - mConditions.isXCHMASCCrossedOverMax) - // - || - // - (mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCTrendsDown && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame && - !mConditions.isXCHMAMCTrendsUp && - !mConditions.isXCHMALCTrendsUp && - !mConditions.isXCHMAMCTrendsDown && - !mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - ((mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) && - ( - // - (mConditions.isXCHLHMCLCHHSame && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXLHPriceCrossedOverSignal && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - (mConditions.isXLHHHDecreased && - mConditions.isXCHLHSCMCHHSame && + (mConditions.isXFIUnderZero && mConditions.isXTSCurrentUnderMediest) // || // - (mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest) + (mConditions.isXTSCurrentUnderNearest && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXTSCurrentMax && + mConditions.isXFICrossedOverZero && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + ((mConditions.isXTDBearishVale && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHLHMCLCLLSame) && + ( + // + mConditions.isXTSCurrentMax + // + || + // + mConditions.isXTSCurrentUnderFarest + // + ) + // + ) + // + ) + // + ) // ) // @@ -2689,22 +2355,6 @@ bool XUSCHF5XTDHasLongSignal() // ) // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) && - ( - // - (mConditions.isXTDBearishVale && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // ) // ) @@ -2719,86 +2369,78 @@ bool XUSCHF5XTDHasLongSignal() // ( // - // Check if MC Fast Under Slow ... - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && ( // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXCHMASCOverMax && + mConditions.isXTSCurrentUnderNearest) + // + || + // + ((mConditions.isXTSCurrentMax && + mConditions.isXLHHighAttachedHH && + mConditions.isXTDSignalCrossedOverBear) && ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXLHPriceCrossedOverSignal) + // + || + // + (mConditions.isXCHLHSameHHs && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + (mConditions.isXCHMASCPeak && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMALCPeak && + mConditions.isXCHLHSameHHs && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + (mConditions.isXTSAllSame && + mConditions.isXLHHHIncreased) + // + || // (mConditions.isXTSCurrentMax && ( // - (mConditions.isXCHLHSameHHs && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCCrossedOverMax && - mConditions.isXTDSignalCrossedOverBear) + mConditions.isXLHHighAttachedHH // || // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXCHLHSCMCHHSame && - ( - // - (mConditions.isXCHLHMCLCLLSame && - mConditions.isXLHHighAttachedHH && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentUnderNearest && - ( - // - ((mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) && - ( - // - mConditions.isXCHMASCCrossedOverMax - // - || - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCTrendsDown) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentCrossedUnderNearest && - ( - // - (mConditions.isXLHHighAttachedHH && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXLHLLIncreased && - mConditions.isXCHLHSCMCHHSame) - // - ) - // - ) + (mConditions.isXLHHHIncreased && + mConditions.isXCHMASCOverMax) // ) // @@ -2808,10 +2450,20 @@ bool XUSCHF5XTDHasLongSignal() // ) // - || + ) + // + ) + // + || + // + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && + ( // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsDown) + (mConditions.isXAMAEndBullish && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMAMCTrendsUp) // ) // @@ -2824,208 +2476,52 @@ bool XUSCHF5XTDHasLongSignal() mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - mConditions.isXRSICrossedOverLongExit + (mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + (mConditions.isXCHMALCVale && + mConditions.isXTMStartBullish && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXAMAStartBullish && + mConditions.isXLHHighAttachedHH && + mConditions.isXFICrossedOverZero) // || // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXCHMAMCPeak && - mConditions.isXLHHighAttachedHH) && - ( - // - ((mConditions.isXTSCurrentMax && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - mConditions.isXCHLHSCMCHHSame - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXCHMASCCrossedOverMax && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXCHLHSameHHs && - mConditions.isXTDBearishVale && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - || - // - (mConditions.isXCHLHSCMCHHSame && - ( - // - ((mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) && - ( - // - mConditions.isXLHLLIncreased - // - || - // - (mConditions.isXCHMALCVale && - ( - // - mConditions.isXLHHighAttachedHH - // - || - // - mConditions.isXTDSignalCrossedOverBear - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCVale && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - mConditions.isXTDBearishVale - // - || - // - (mConditions.isXCHMASCOverMin && - mConditions.isXCHMASCUnderMax) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXLHHighAttachedHH && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) + (mConditions.isXTMBullish && + mConditions.isXCHMAMCPeak && + mConditions.isXAMABullish && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTDSignalCrossedOverBear) // || // ((mConditions.isXTMBullish && mConditions.isXAMABullish && - mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear) && + mConditions.isXTSCurrentMax) && ( // - (mConditions.isXLHHighAttachedHH && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMASCCrossedOverMax) + (mConditions.isXFIOverZero && + mConditions.isXLHLLDecreased && + mConditions.isXCHLHSCMCHHSame) // || // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMAMCFastOverSlow) - // - || - // - (mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverFarest && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) - // - || - // IGnore Cases ... - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXLHHighAttachedHH && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentCrossedOverNearest) - // - || - // - ((mConditions.isXCHMALCPeak && - mConditions.isXCHLHSameHHs) && + (mConditions.isXTDSignalCrossedOverBear && ( // - mConditions.isXCHMASCCrossedOverMax + (mConditions.isXCHMAMCPeak && + mConditions.isXCHLHSCMCHHSame) // || // - mConditions.isXTSCurrentCrossedOverMediest + (mConditions.isXCHMALCVale && + mConditions.isXCHLHSCMCLLSame) // ) // @@ -3033,13 +2529,40 @@ bool XUSCHF5XTDHasLongSignal() // || // - (mConditions.isXCHMALCPeak && - mConditions.isXCHLHSameHHs && - mConditions.isXLHLLDecreased && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsUp && - mConditions.isXTSCurrentOverNearest) + ((mConditions.isXCHLHSCMCHHSame && + mConditions.isXLHHighAttachedHH && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + mConditions.isXCHLHMCLCLLSame + // + || + // + (mConditions.isXCHMAMCPeak && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTDBullOverBear) + // + || + // + (mConditions.isXCHMASCOverMin && + mConditions.isXCHMASCUnderMax && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXCHMASCOverMax && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) + // + ) + // + ) + // + ) + // + ) // ) // @@ -3047,38 +2570,34 @@ bool XUSCHF5XTDHasLongSignal() // || // - ((mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear) && + ((mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale) && ( // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown) + (mConditions.isXTMNeutural && + mConditions.isXTMEndBullish && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentCrossedUnderFarest) // || // - (mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) && - ( - // - ((mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) && + ((mConditions.isXTMNeutural && + mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) && ( // - (mConditions.isXTSCurrentMax && - mConditions.isXLHHHDecreased && - mConditions.isXCHMASCOverMax && - mConditions.isXTDSignalCrossedOverBear && + (mConditions.isXTDBullOverBear && + mConditions.isXFICrossedOverZero && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXTSCurrentCrossedOverFarest && mConditions.isXTSCurrentCrossedOverNearest) // ) @@ -3089,93 +2608,6 @@ bool XUSCHF5XTDHasLongSignal() // ) // - || - // - ((mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentOverFarest && - mConditions.isXCHMASCCrossedOverMax && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH && - mConditions.isXRSICrossedOverLongExit && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - ((mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXLHHHDecreased && - mConditions.isXCHMASCOverMax && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXTMEndBullish && - mConditions.isXTSCurrentMax && - mConditions.isXLHHHDecreased && - mConditions.isXCHMASCOverMax && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // ) // ) @@ -3193,227 +2625,85 @@ bool XUSCHF5XTDHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest) + // + || // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( - // - mConditions.isXRSICrossedOverLongExit - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || // (mConditions.isXCHMAMCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTSCurrentCrossedUnderNearest && - mConditions.isXTSCurrentCrossedUnderMediest) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXLHPriceCrossedOverSignal) + mConditions.isXTSCurrentMax && + mConditions.isXTMStartBullish && + mConditions.isXTDSignalCrossedOverBear) // || // (mConditions.isXTMNeutural && - mConditions.isXAMABullish && + mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax && - mConditions.isXTDBullOverBear && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest && mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverFarest && mConditions.isXTSCurrentCrossedOverNearest) // || // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && - mConditions.isXLHLLIncreased && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverNearest) - // - || - // - ((mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - mConditions.isXTSCurrentUnderMediest - // - || - // - (mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - (mConditions.isXTSCurrentMax && - ( - // - (mConditions.isXTDBearishVale && - mConditions.isXTSCurrentCrossedOverNearest) - // - || - // - (mConditions.isXLHLLIncreased && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTSCurrentMax && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXLHHHDecreased && - mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish && - mConditions.isXTSCurrentCrossedOverFarest && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // (mConditions.isXTMBullish && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXAMANeutural && + mConditions.isXAMABullish && mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMASCCrossedOverMin && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXLHPriceCrossedOverSignal && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTDBearishVale && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverNearest) - // - || - // - (mConditions.isXTSAllSame && - mConditions.isXCHMALCPeak && - mConditions.isXTDBearishVale && - mConditions.isXCHMASCOverMax && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && + mConditions.isXCHMALCTrendsDown && mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverMediest && - mConditions.isXTSCurrentCrossedOverNearest) + mConditions.isXTDSignalCrossedOverBear) // || // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) + (mConditions.isXCHMAMCPeak && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTDSignalCrossedOverBear) // || // - (mConditions.isXTSCurrentUnderFarest && + ((mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear) && ( // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHMALCPeak && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTDSignalCrossedOverBear) + (mConditions.isXCHMASCCrossedOverMin && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXLHPriceCrossedOverSignal) + // + || + // + (mConditions.isXCHMAMCPeak && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXCHLHSCMCHHSame) + // + || + // + (mConditions.isXCHMALCTrendsDown && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) // ) // @@ -3437,25 +2727,27 @@ bool XUSCHF5XTDHasLongSignal() // ( // - // Check if MC Fast Under Slow ... - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && ( // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) + (mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMALCPeak && + mConditions.isXCHLHSameLLs && + mConditions.isXTSCurrentMax && + mConditions.isXLHHighAttachedHH && + (mConditions.isXTDBullOverBear || + mConditions.isXTDSignalCrossedOverBear)) // ) // @@ -3469,45 +2761,32 @@ bool XUSCHF5XTDHasLongSignal() ( // ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && + mConditions.isXAMABullish && + mConditions.isXTSCurrentMax) && ( // - ((mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear) && + (mConditions.isXLHHighAttachedHH && ( // - (mConditions.isXLHLLIncreased && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) + (mConditions.isXCHMAMCPeak && + mConditions.isXCHLHSameHHs) // || // (mConditions.isXCHMAMCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXCHMASCUnderMax && - mConditions.isXCHMALCTrendsDown) + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) // || // - ((mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale) && - ( - // - (mConditions.isXLHHighAttachedHH && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXRSICrossedOverLongExit && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest) // ) // @@ -3515,115 +2794,16 @@ bool XUSCHF5XTDHasLongSignal() // || // - (mConditions.isXCHMAMCPeak && + (mConditions.isXCHMALCVale && mConditions.isXTSCurrentMax && - mConditions.isXLHHighAttachedHH && - mConditions.isXRSICrossedOverLongExit && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMALCTrendsDown && - ( - // - ((mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame) && - ( - // - mConditions.isXLHLLIncreased - // - || - // - mConditions.isXLHHighAttachedHH - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXCHMASCOverMax && - mConditions.isXTDBullOverBear && + mConditions.isXLHLLIncreased && mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentOverFarest && mConditions.isXTDSignalCrossedOverBear) // ) // ) // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXRSICrossedUnderShortEntry && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXRSICrossedUnderShortEntry && - mConditions.isXTSCurrentCrossedOverFarest && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXCHMAMCFastCrossedOverSlow && - mConditions.isXTSCurrentCrossedOverNearest) - // ) // ) @@ -3660,45 +2840,9 @@ bool XUSCHF5XTDHasLongSignal() // ( // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMASCCrossedOverMax && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverMediest) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMALCFastUnderSlow && - mConditions.isXCHMASCCrossedOverMin && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverNearest) - // - || - // - ((mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXCHMASCCrossedOverMax && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXAMANeutural && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTSCurrentUnderFarest) // ) // @@ -3759,29 +2903,29 @@ bool XUSCHF5XTDHasLongSignal() // // XTD Short Signal Checking ... -bool XUSCHF5XTDHasShortSignal() +bool XAU5XTDHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXTDEnableSignaller || - !xUSCHF5MXTDAllowShortSignals) + if (!xAU5MXTDEnableSignaller || + !xAU5MXTDAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XTDHasShortConditions() + xAU5Provider.XTDHasShortConditions() // && // @@ -3807,15 +2951,25 @@ bool XUSCHF5XTDHasShortSignal() // ( // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && ( // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMALCPeak && + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverMediest) + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentOverFarest) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXAMAEndBullish && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCTrendsUp) // ) // @@ -3823,55 +2977,29 @@ bool XUSCHF5XTDHasShortSignal() // || // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXTSCurrentOverFarest) + // + || + // + (mConditions.isXCHMALCVale && ( // - (mConditions.isXTSCurrentMin && - mConditions.isXAMAEndBearish && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCUnderMin && - mConditions.isXCHMASCTrendsDown && - mConditions.isXTDSignalCrossedUnderBear) + mConditions.isXCHMALCTrendsDown // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && - ( - // - (mConditions.isXTDBullOverBear && - ( + || // - ((mConditions.isXTSCurrentMin && - mConditions.isXTSCurrentCrossedUnderFarest) && - ( - // - (mConditions.isXTDSignalCrossedUnderBear && - mConditions.isXTSCurrentCrossedUnderMediest) - // - || - // - (mConditions.isXAMANeutural && - mConditions.isXTMStartBearish && - mConditions.isXCHMASCFastCrossedUnderSlow && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear) // ) // @@ -3894,7 +3022,26 @@ bool XUSCHF5XTDHasShortSignal() !mConditions.isXLHHHSameInLength) && // ( - false) + // + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && + ( + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsUp) + // + || + // + (mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest) + // + ) + // + ) + // + ) // ) // @@ -3913,31 +3060,11 @@ bool XUSCHF5XTDHasShortSignal() mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - (mConditions.isXTDBullOverBear && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXLHLowAttachedLL && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow && - mConditions.isXCHMASCFastCrossedUnderSlow && - mConditions.isXTSCurrentCrossedUnderFarest && - mConditions.isXTSCurrentCrossedUnderNearest && - mConditions.isXTSCurrentCrossedUnderMediest) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHLHSameLLs && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXLHLowAttachedLL) // ) // @@ -3982,24 +3109,124 @@ bool XUSCHF5XTDHasShortSignal() mConditions.isXLHHHSameInLength) && // ( + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) + // + || + // + (mConditions.isXTDBullOverBear && + mConditions.isXCHMASCTrendsDown && + mConditions.isXTSCurrentOverNearest && + mConditions.isXCHMASCFastCrossedUnderSlow) + // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalCrossedUnderBear && + mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXTSCurrentCrossedUnderMediest) + // + || + // + (mConditions.isXCHMASCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDSignalCrossedUnderBear && + mConditions.isXTSCurrentCrossedUnderFarest) + // + ) + // + ) + // + || + // + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && + ( + // + (mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverNearest) + // + || + // + (mConditions.isXTMEndBearish && + mConditions.isXAMAEndBearish && + mConditions.isXTSCurrentOverNearest) + // + || + // + (mConditions.isXCHMASCPeak && + mConditions.isXTSCurrentMin && + mConditions.isXLHHHDecreased && + mConditions.isXTDBullOverBear) + // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHMASCPeak && + mConditions.isXLHHHDecreased && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest) + // + || + // + ((mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMin && + mConditions.isXTMStartBearish && + mConditions.isXTDBullOverBear && + mConditions.isXAMAStartBearish) && + ( + // + (mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMAMCTrendsDown) + // + || + // + (mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalCrossedUnderBear) + // + || + // + (mConditions.isXCHMASCPeak && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDSignalCrossedUnderBear && + mConditions.isXTSCurrentCrossedUnderFarest && + mConditions.isXTSCurrentCrossedUnderMediest) + // + ) + // + ) + // + ) + // + ) + // + || // // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) + (mConditions.isXCHMASCPeak && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXCHMALCTrendsDown && + mConditions.isXLHPriceCrossedUnderSignal) // ) // @@ -4012,18 +3239,12 @@ bool XUSCHF5XTDHasShortSignal() mConditions.isXCHMALCFastCrossedOverSlow) && ( // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXTDBullOverBear && - mConditions.isXCHMASCTrendsUp) - // - ) - // - ) + (mConditions.isXCHMALCPeak && + mConditions.isXTDBullOverBear && + mConditions.isXTMStartBearish && + mConditions.isXAMAStartBearish && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) // ) // @@ -4042,68 +3263,7 @@ bool XUSCHF5XTDHasShortSignal() !mConditions.isXLHHHSameInLength) && // ( - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXTDBullOverBear && - ( - // - (mConditions.isXAMANeutural && - mConditions.isXCHMASCTrendsUp && - mConditions.isXLHPriceCrossedUnderSignal) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalCrossedUnderBear && - mConditions.isXLHPriceCrossedUnderSignal) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -4117,78 +3277,23 @@ bool XUSCHF5XTDHasShortSignal() // ( // - // Check if MC Fast Over Slow ... + // Check if SC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - mConditions.isXRSICrossedUnderShortExit - // - || - // - (mConditions.isXLHHHIncreased && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXTDBullOverBear) - // - ) - // - ) - // - || - // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && + ((mConditions.isXCHMALCVale && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXAMAStartBearish) && ( // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXTDBullOverBear) + mConditions.isXTSCurrentOverFarest // - ) - // - ) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear && - mConditions.isXAMAStartBearish && - mConditions.isXTDSignalCrossedUnderBear && - mConditions.isXTSCurrentCrossedUnderMediest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMASCFastUnderSlow) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( + || // - ((mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXLHLowAttachedLL && - mConditions.isXLHPriceCrossedUnderSignal) - // - ) - // - ) + (mConditions.isXTSCurrentMin && + mConditions.isXCHMALCTrendsUp) // ) // @@ -4211,37 +3316,7 @@ bool XUSCHF5XTDHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - mConditions.isXRSICrossedUnderShortExit - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXLHLowAttachedLL && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -4275,115 +3350,14 @@ bool XUSCHF5XTDHasShortSignal() mConditions.isXCHMASCFastCrossedOverSlow) && ( // - (mConditions.isXCHMASCTrendsUp && + (mConditions.isXCHMALCVale && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCLLSame && mConditions.isXTSCurrentOverFarest) // - || - // - (mConditions.isXTDBullOverBear && - ( - // - (mConditions.isXCHMASCTrendsUp && - mConditions.isXTSCurrentOverFarest) - // - || - // - ((mConditions.isXAMABullish && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && - ( - // - mConditions.isXCHLHMCLCLLSame - // - || - // - (mConditions.isXTSCurrentCrossedUnderFarest && - mConditions.isXTSCurrentCrossedUnderNearest && - mConditions.isXTSCurrentCrossedUnderMediest) - // - ) - // - ) - // - ) - // - ) - // ) // - ) - // - || - // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - ((mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp) && - ( - // - (((mConditions.isXTMBearish && - mConditions.isXAMABearish) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural)) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && - ( - // - (mConditions.isXAMABullish && - mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMin && - mConditions.isXLHLLIncreased && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest) && - ( - // - (mConditions.isXLHLLIncreased && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - (mConditions.isXLHHHIncreased && - mConditions.isXCHMALCFastUnderSlow && - mConditions.isXTDSignalCrossedUnderBear) - // - ) - // - ) - // - ) - // - ) - // + ) // ) // ) @@ -4401,73 +3375,12 @@ bool XUSCHF5XTDHasShortSignal() // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && - ( - // - (mConditions.isXCHMALCVale && - ( - // - (mConditions.isXCHMALCTrendsUp && - mConditions.isXCHMALCFastUnderSlow) - // - || - // - ((mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDBullOverBear) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXTSCurrentMin && - mConditions.isXTDSignalCrossedUnderBear) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXCHMALCVale && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXLHPriceCrossedOverSignal) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest) // ) // @@ -4486,77 +3399,22 @@ bool XUSCHF5XTDHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTDBullOverBear && - mConditions.isXCHMASCTrendsUp) && - ( - // - (mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) - // - ) - // - ) - // - ) - // - ) - // - || // // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXTDBullOverBear && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMASCFastCrossedUnderSlow) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMASCFastOverSlow) + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsUp) // || // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalCrossedUnderBear && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMin && + mConditions.isXLHHHIncreased && + mConditions.isXTDBullOverBear && + mConditions.isXCHMALCTrendsDown) // ) // @@ -4575,21 +3433,7 @@ bool XUSCHF5XTDHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - ) + false) // ) // @@ -4679,29 +3523,29 @@ bool XUSCHF5XTDHasShortSignal() // // XTAM Long Signal Checking ... -bool XUSCHF5XTAMHasLongSignal() +bool XAU5XTAMHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXTAMEnableSignaller || - !xUSCHF5MXTAMAllowLongSignals) + if (!xAU5MXTAMEnableSignaller || + !xAU5MXTAMAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XTAMHasLongConditions() + xAU5Provider.XTAMHasLongConditions() // && // @@ -4732,30 +3576,37 @@ bool XUSCHF5XTAMHasLongSignal() mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) && - ( - // - mConditions.isXTSAllSame - // - || - // - (mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalUnderBear && - mConditions.isXTDBullCrossedUnderBear) - // - ) - // - ) - // - ) - // - ) + mConditions.isXCHMASCTrendsUp + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + || + // + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && + ( + // + mConditions.isXCHMAMCTrendsUp + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXTDBearishVale && + mConditions.isXTSCurrentUnderFarest) // ) // @@ -4775,24 +3626,13 @@ bool XUSCHF5XTAMHasLongSignal() // ( // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) + (mConditions.isXCHMAMCVale && + mConditions.isXCHMAMCTrendsUp) // ) // @@ -4817,10 +3657,19 @@ bool XUSCHF5XTAMHasLongSignal() mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) + mConditions.isXCHMASCTrendsUp + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest) // ) // @@ -4839,70 +3688,7 @@ bool XUSCHF5XTAMHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXLHLowAttachedLL && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check if MC Fast Under Slow ... - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -4934,25 +3720,8 @@ bool XUSCHF5XTAMHasLongSignal() mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCOverMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural) // ) // @@ -4960,79 +3729,40 @@ bool XUSCHF5XTAMHasLongSignal() // || // + // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - ((mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown) - // - ) - // - ) + mConditions.isXCHMAMCTrendsUp // || // - ((mConditions.isXCHMAMCVale && - mConditions.isXCHMAMCTrendsUp) && - ( - // - ((mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) && - ( - // - mConditions.isXTDSignalUnderBear - // - || - // - (mConditions.isXTDBearishVale && - mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHMAMCVale && + mConditions.isXCHMAMCTrendsUp) // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) && - ( + || // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXLHLLIncreased && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentCrossedOverNearest) // ) // @@ -5051,34 +3781,6 @@ bool XUSCHF5XTAMHasLongSignal() !mConditions.isXLHHHSameInLength) && // ( - // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXLHHHDecreased) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) - // - || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || @@ -5086,18 +3788,14 @@ bool XUSCHF5XTAMHasLongSignal() ( // (mConditions.isXCHMAMCVale && - mConditions.isXCHMASCUnderMin && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) + mConditions.isXCHMAMCTrendsUp) // || // - (mConditions.isXCHMAMCTrendsUp && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTDBearishVale && + mConditions.isXTDSignalUnderBear) // ) // @@ -5122,64 +3820,61 @@ bool XUSCHF5XTAMHasLongSignal() mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - ((mConditions.isXCHMASCVale && - mConditions.isXCHMASCTrendsUp) && - ( - // - (mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXLHLLIncreased && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXLHPriceCrossedUnderSignal) - // - ) - // - ) - // - ) - // - ) + mConditions.isXCHMASCTrendsUp // || // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest) && - ( - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXTDBullUnderBear) - // - || - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXTDBullCrossedUnderBear) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHMASCVale && + mConditions.isXCHLHSCMCLLSame) + // + || + // + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural) + // + || + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest) + // + ) + // + ) + // + || + // + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && + ( + // + mConditions.isXCHMAMCTrendsUp + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXLHLLIncreased && + mConditions.isXTSCurrentCrossedOverNearest) // ) // @@ -5198,36 +3893,7 @@ bool XUSCHF5XTAMHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - || - // - (mConditions.isXCHLHSameHHs && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) - // - ) + false) // ) // @@ -5255,132 +3921,67 @@ bool XUSCHF5XTAMHasLongSignal() mConditions.isXLHHHSameInLength) && // ( + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHMALCPeak && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMAMCTrendsDown) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMax && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDSignalUnderBear && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXLHHHDecreased && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXCHMASCTrendsUp && + mConditions.isXTDBullOverBear && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsUp && + mConditions.isXTDSignalOverBear) + // + || // // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMASCTrendsUp && - ( - // - (mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check if MC Fast Under Slow ... - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) && - ( - // - ((mConditions.isXTSCurrentMax && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXTSCurrentCrossedOverNearest) && - ( - // - mConditions.isXCHLHMCLCLLSame - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXLHPriceCrossedOverSignal) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && - mConditions.isXLHLLIncreased && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXLHPriceCrossedOverSignal) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXCHMASCCrossedOverMin && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXRSICrossedOverLongExit && - mConditions.isXLHPriceCrossedOverSignal && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - ((mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale) && - ( - // - (mConditions.isXTSCurrentCrossedOverNearest && - ( - // - mConditions.isXCHMALCVale - // - || - // - (mConditions.isXLHHHDecreased && - mConditions.isXCHMASCCrossedOverMax) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXLHPriceCrossedOverSignal) - // - ) - // - ) - // - ) - // - ) + mConditions.isXCHMASCTrendsUp // ) // @@ -5400,38 +4001,58 @@ bool XUSCHF5XTAMHasLongSignal() // ( // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXTDBullOverBear && + mConditions.isXLHHighAttachedHH) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXLHHighAttachedHH && + mConditions.isXCHMALCTrendsDown) + // + || + // + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale && - mConditions.isXLHHighAttachedHH) && - ( - // - (mConditions.isXCHLHSameHHs && - mConditions.isXCHMASCPeak && - mConditions.isXCHMASCOverMax) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXLHHighAttachedHH && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMASCPeak && + mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXLHHighAttachedHH && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) // ) // @@ -5439,31 +4060,18 @@ bool XUSCHF5XTAMHasLongSignal() // || // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - ((mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXLHHighAttachedHH && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXLHLLIncreased && - mConditions.isXCHMALCTrendsUp && - mConditions.isXCHMALCFastOverSlow) - // - || - // - (mConditions.isXCHMASCOverMax && - mConditions.isXTDBullUnderBear && - mConditions.isXLHPriceCrossedOverSignal && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMAMCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXLHHighAttachedHH && + mConditions.isXTSCurrentCrossedOverNearest) // ) // @@ -5482,79 +4090,7 @@ bool XUSCHF5XTAMHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXLHLLIncreased && - mConditions.isXTDSignalUnderBear && - mConditions.isXLHPriceCrossedOverSignal) - // - ) - // - ) - // - || - // - (mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check if MC Fast Under Slow ... - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXLHPriceCrossedOverSignal && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -5567,47 +4103,7 @@ bool XUSCHF5XTAMHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXLHHighAttachedHH) - // - ) - // - ) - // - ) + false) // ) // @@ -5697,29 +4193,29 @@ bool XUSCHF5XTAMHasLongSignal() // // XTAM Short Signal Checking ... -bool XUSCHF5XTAMHasShortSignal() +bool XAU5XTAMHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXTAMEnableSignaller || - !xUSCHF5MXTAMAllowShortSignals) + if (!xAU5MXTAMEnableSignaller || + !xAU5MXTAMAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XTAMHasShortConditions() + xAU5Provider.XTAMHasShortConditions() // && // @@ -5744,43 +4240,75 @@ bool XUSCHF5XTAMHasShortSignal() mConditions.isXLHHHSameInLength) && // ( + // + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && + ( + // + mConditions.isXCHMASCTrendsUp + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXAMABullish && + mConditions.isXTSCurrentMin && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXCHMALCVale && + mConditions.isXAMANeutural && + mConditions.isXLHLLDecreased && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXCHMASCPeak && + mConditions.isXAMANeutural && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTSCurrentOverFarest) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXLHLLDecreased && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTDBullCrossedOverBear && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) + // + || // // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTSAllSame && - mConditions.isXCHMASCPeak && - mConditions.isXCHMALCVale && - mConditions.isXTDBullOverBear && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) + mConditions.isXCHMALCTrendsDown // || // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMASCOverMax && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentOverFarest && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsUp) + // + || + // + (mConditions.isXCHMASCVale && + mConditions.isXTDSignalVale && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullishVale) // ) // @@ -5799,53 +4327,7 @@ bool XUSCHF5XTAMHasShortSignal() !mConditions.isXLHHHSameInLength) && // ( - // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXAMABullish && - mConditions.isXCHMALCVale && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXTSCurrentOverFarest && - mConditions.isXCHMASCCrossedOverMin) - // - ) - // - ) - // - || - // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentCrossedUnderFarest && - mConditions.isXTSCurrentCrossedUnderMediest) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -5858,76 +4340,7 @@ bool XUSCHF5XTAMHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - ((mConditions.isXCHMAMCPeak && - mConditions.isXTDBullOverBear && - mConditions.isXCHMAMCTrendsUp) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXCHLHMCLCHHSame) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentOverFarest) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) - // - || - // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -5940,87 +4353,7 @@ bool XUSCHF5XTAMHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if MC Fast Under Slow ... - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMAMCTrendsDown && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish) && - ( - // - ((mConditions.isXCHLHSameLLs && - mConditions.isXLHLowAttachedLL) && - ( - // - mConditions.isXTSCurrentOverFarest - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMin) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXLHLowAttachedLL) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -6046,26 +4379,58 @@ bool XUSCHF5XTAMHasShortSignal() mConditions.isXLHHHSameInLength) && // ( + // + (mConditions.isXCHMALCVale && + mConditions.isXAMANeutural && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHMASCUnderMin && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentCrossedOverNearest) + // + || // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMASCTrendsUp && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) - // - ) - // - ) + mConditions.isXCHMASCTrendsUp + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXTDBullOverBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) + // + || + // + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && + ( + // + (mConditions.isXCHMASCVale && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXTSCurrentMin && + mConditions.isXCHMALCTrendsDown && + mConditions.isXLHPriceCrossedUnderSignal) // ) // @@ -6078,51 +4443,13 @@ bool XUSCHF5XTAMHasShortSignal() mConditions.isXCHMALCFastCrossedOverSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXTSCurrentMax && - mConditions.isXTSCurrentOverFarest) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMin && - mConditions.isXLHPriceCrossedUnderSignal && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMASCUnderMin && + (mConditions.isXCHMASCVale && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHMCLCLLSame && mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentCrossedUnderNearest) // ) // @@ -6141,60 +4468,7 @@ bool XUSCHF5XTAMHasShortSignal() !mConditions.isXLHHHSameInLength) && // ( - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow && - mConditions.isXLHPriceCrossedUnderSignal && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - || - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish && - mConditions.isXCHMAMCVale && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - ) + false) // ) // @@ -6207,40 +4481,26 @@ bool XUSCHF5XTAMHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( + // + (mConditions.isXCHLHSCMCLLSame && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentCrossedOverNearest) + // + || // // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTMVale && - mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMASCUnderMin) - // - || - // - (mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) - // - || - // - (mConditions.isXCHLHSameLLs && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullUnderBear && - mConditions.isXLHLowAttachedLL && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHMASCVale && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXLHLowAttachedLL && + mConditions.isXCHMASCCrossedUnderMin) // ) // @@ -6253,142 +4513,14 @@ bool XUSCHF5XTAMHasShortSignal() mConditions.isXCHMALCFastCrossedOverSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXCHLHSameLLs && - mConditions.isXTSCurrentMin) && - ( - // - ((mConditions.isXTMVale && - mConditions.isXAMAVale) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMASCUnderMin) - // - ) - // - ) - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXLHLowAttachedLL && - mConditions.isXTSCurrentCrossedUnderNearest && - mConditions.isXTSCurrentCrossedUnderMediest) - // - ) - // - ) - // - || - // - (mConditions.isXTMVale && - mConditions.isXCHMASCVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTSCurrentOverNearest && - mConditions.isXCHMASCCrossedUnderMin && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - || - // - ((mConditions.isXTMVale && - mConditions.isXAMAVale) && - ( - // - (mConditions.isXTDSignalVale && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullishVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXLHLowAttachedLL && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMin && - mConditions.isXCHMASCUnderMin && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXCHLHSameLLs && - ( - // - (mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) - // - || - // - (!mConditions.isXCHMALCTrendsUp && - !mConditions.isXCHMALCTrendsDown) - // - ) - // - ) - // - || - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXLHLowAttachedLL && - mConditions.isXCHMASCCrossedUnderMin) - // - ) - // - ) - // - || - // - ((mConditions.isXTSCurrentMin && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMASCUnderMin && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - mConditions.isXCHLHSameLLs - // - || - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXLHLowAttachedLL) - // - ) - // - ) - // - || - // - (mConditions.isXCHLHSameLLs && + (mConditions.isXCHMALCVale && + mConditions.isXTDSignalVale && mConditions.isXTSCurrentMin && - mConditions.isXCHMASCUnderMin && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastCrossedUnderSlow) + mConditions.isXTDBullishVale && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXLHLowAttachedLL && + mConditions.isXTDSignalUnderBear) // ) // @@ -6408,40 +4540,51 @@ bool XUSCHF5XTAMHasShortSignal() // ( // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHMASCVale && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHLHSameLLs && + mConditions.isXTSCurrentMin && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsUp && + mConditions.isXTDBullUnderBear && + mConditions.isXLHLowAttachedLL && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMASCFastUnderSlow && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXCHMALCFastUnderSlow && + mConditions.isXLHPriceCrossedUnderSignal) + // + || + // + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXLHLowAttachedLL && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - ((mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXLHLowAttachedLL && - mConditions.isXTDBullCrossedUnderBear && - mConditions.isXLHPriceCrossedUnderSignal) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTMStartBearish && + mConditions.isXAMAStartBearish && + mConditions.isXLHLowAttachedLL && + mConditions.isXLHPriceCrossedUnderSignal) // ) // @@ -6449,17 +4592,57 @@ bool XUSCHF5XTAMHasShortSignal() // || // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && ( // - (mConditions.isXCHLHSameLLs && - mConditions.isXTSCurrentMin && - mConditions.isXLHLLDecreased && - mConditions.isXCHMASCUnderMin && - mConditions.isXLHLowAttachedLL && - mConditions.isXLHPriceCrossedUnderSignal && - mConditions.isXTSCurrentCrossedUnderNearest) + ((mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHLHSameLLs && + mConditions.isXTSCurrentMin) && + ( + // + mConditions.isXLHLowAttachedLL + // + || + // + (mConditions.isXCHMAMCVale && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale) + // + ) + // + ) + // + || + // + (mConditions.isXLHLowAttachedLL && + ( + // + (mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + (mConditions.isXCHLHSameLLs && + mConditions.isXTSCurrentMin && + mConditions.isXLHHHDecreased && + mConditions.isXTDBullOverBear) + // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHMAMCVale && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + ) + // + ) // ) // @@ -6494,32 +4677,69 @@ bool XUSCHF5XTAMHasShortSignal() // ( // - // Check if MC Fast Under Slow ... - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && ( // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && + mConditions.isXCHMASCTrendsUp + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXLHLLIncreased && + mConditions.isXTSCurrentOverFarest && + mConditions.isXLHPriceCrossedOverSignal) + // + || + // + (mConditions.isXTMStartBullish && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXAMAStartBullish && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + (mConditions.isXTSAllSame && + mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMALCVale && + mConditions.isXLHLLIncreased && + mConditions.isXTDBullUnderBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMAMCFastUnderSlow) + // + || + // + (mConditions.isXCHMASCPeak && ( // - ((mConditions.isXCHMALCVale && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMAMCTrendsDown) && - ( - // - mConditions.isXTSCurrentOverFarest - // - || - // - (mConditions.isXTSCurrentMin && - mConditions.isXTSCurrentCrossedUnderFarest && - mConditions.isXTSCurrentCrossedUnderNearest && - mConditions.isXTSCurrentCrossedUnderMediest) - // - ) - // - ) + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTDBullOverBear && + mConditions.isXCHMASCTrendsUp && + mConditions.isXTDSignalOverBear) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest) // ) // @@ -6529,6 +4749,33 @@ bool XUSCHF5XTAMHasShortSignal() // ) // + || + // + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && + ( + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsUp) + // + || + // + (mConditions.isXTSAllSame && + mConditions.isXCHMALCVale && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMAMCTrendsDown) + // + ) + // + ) + // ) // ) @@ -6548,93 +4795,18 @@ bool XUSCHF5XTAMHasShortSignal() mConditions.isXCHMASCFastCrossedOverSlow) && ( // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - ((mConditions.isXTMEndBullish && - mConditions.isXAMAEndBullish) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXTSCurrentCrossedUnderFarest) - // - ) - // - ) - // - ) - // - ) + mConditions.isXCHMASCTrendsUp // || // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) - // - || - // - (mConditions.isXTDBullOverBear && - ( - // - (mConditions.isXTDSignalOverBear && - ( - // - ((mConditions.isXTSCurrentOverMediest || - mConditions.isXTSCurrentOverNearest) && - ( - // - mConditions.isXTSCurrentOverFarest - // - || - // - (mConditions.isXCHMASCTrendsUp && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXRSICrossedOverLongExit) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest) // ) // @@ -6653,43 +4825,7 @@ bool XUSCHF5XTAMHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXTDBullOverBear && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && - ( - // - mConditions.isXTSCurrentOverFarest - // - || - // - (mConditions.isXTSCurrentMin && - mConditions.isXTSCurrentCrossedUnderFarest && - mConditions.isXTSCurrentCrossedUnderMediest) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -6702,50 +4838,7 @@ bool XUSCHF5XTAMHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTDBullOverBear && - ( - // - (mConditions.isXTDSignalOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXTSCurrentOverNearest && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -6776,35 +4869,7 @@ bool XUSCHF5XTAMHasShortSignal() mConditions.isXLHHHSameInLength) && // ( - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -6817,29 +4882,7 @@ bool XUSCHF5XTAMHasShortSignal() !mConditions.isXLHHHSameInLength) && // ( - // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMin) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -6885,29 +4928,29 @@ bool XUSCHF5XTAMHasShortSignal() // // XSI Long Signal Checking ... -bool XUSCHF5XSIHasLongSignal() +bool XAU5XSIHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXSIEnableSignaller || - !xUSCHF5MXSIAllowLongSignals) + if (!xAU5MXSIEnableSignaller || + !xAU5MXSIAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XSIHasLongConditions() + xAU5Provider.XSIHasLongConditions() // && // @@ -6958,47 +5001,7 @@ bool XUSCHF5XSIHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXTDSignalCrossedUnderBear) - // - ) - // - ) - // - || - // - (mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) - // - ) + false) // ) // @@ -7011,36 +5014,7 @@ bool XUSCHF5XSIHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) - // - ) + false) // ) // @@ -7072,70 +5046,47 @@ bool XUSCHF5XSIHasLongSignal() mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMASCVale && + (mConditions.isXTMVale && + mConditions.isXCHMASCVale && + mConditions.isXCHMAMCVale && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural) + // + || + // + (mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHLHMCLCHHSame && mConditions.isXTDBullUnderBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMALCTrendsDown && mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentUnderFarest) // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXCHMAMCFastOverSlow) - // - || - // - (mConditions.isXCHMASCTrendsUp && - ( - // - (mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) - // - || - // - (mConditions.isXTMBearish && - mConditions.isXTSAllSame && - mConditions.isXAMABearish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // ) // ) // || - // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMAMCTrendsUp) + (mConditions.isXTMVale && + mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale) // || // - (mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && + (mConditions.isXTSCurrentMax && mConditions.isXLHLLDecreased && - mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMASCUnderMax && mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest) + mConditions.isXCHMALCTrendsDown && + mConditions.isXTDSignalUnderBear) // ) // @@ -7178,139 +5129,23 @@ bool XUSCHF5XSIHasLongSignal() // || // - ((mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) && - ( - // - (mConditions.isXAMAVale && - mConditions.isXTSAllSame && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDBullUnderBear && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTDSignalUnderBear && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXTSCurrentUnderFarest) - // - ) - // - ) + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMALCTrendsDown) // || // - ((mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) - // - || - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest) - // - ) - // - ) + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHMASCVale && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) // || // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXCHMALCFastOverSlow) - // - ) - // - ) - // - || - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - || - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMALCPeak && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXTSCurrentUnderFarest) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check if MC Fast Under Slow ... - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMASCUnderMin && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXCHMASCFastCrossedOverSlow) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHLHSameLLs && - mConditions.isXTSCurrentMax && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) + (mConditions.isXCHMALCPeak && + mConditions.isXLHLLDecreased && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHMALCTrendsDown) // ) // @@ -7335,40 +5170,30 @@ bool XUSCHF5XSIHasLongSignal() mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) + (mConditions.isXCHMASCVale && + mConditions.isXCHMASCTrendsUp) // || // - (mConditions.isXCHMASCTrendsUp && - ( - // - (mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXCHMALCFastOverSlow) - // - || - // - (mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXRSICrossedOverLongEntry) - // - ) - // - ) + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHMASCVale && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale) + // + || + // + (mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXLHLowAttachedLL && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest) // ) // @@ -7428,23 +5253,7 @@ bool XUSCHF5XSIHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTDBullUnderBear && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTDSignalUnderBear && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXLHPriceCrossedOverSignal) - // - ) - // - ) - // - ) + false) // ) // @@ -7463,18 +5272,24 @@ bool XUSCHF5XSIHasLongSignal() mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest) + mConditions.isXCHMASCTrendsUp // || // - (mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXLHPriceCrossedOverSignal) + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXTDBullUnderBear && + mConditions.isXLHHighAttachedHH && + mConditions.isXTDSignalUnderBear) // ) // @@ -7570,29 +5385,29 @@ bool XUSCHF5XSIHasLongSignal() // // XSI Short Signal Checking ... -bool XUSCHF5XSIHasShortSignal() +bool XAU5XSIHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXSIEnableSignaller || - !xUSCHF5MXSIAllowShortSignals) + if (!xAU5MXSIEnableSignaller || + !xAU5MXSIAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XSIHasShortConditions() + xAU5Provider.XSIHasShortConditions() // && // @@ -7636,26 +5451,21 @@ bool XUSCHF5XSIHasShortSignal() mConditions.isXCHMASCFastCrossedOverSlow) && ( // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && + (mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastUnderSlow && mConditions.isXCHMALCFastUnderSlow) // + || + // + (mConditions.isXTSAllSame && + mConditions.isXCHMALCVale && + mConditions.isXTMStartBearish && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXAMAStartBearish && + mConditions.isXTDSignalOverBear) + // ) // ) @@ -7673,32 +5483,7 @@ bool XUSCHF5XSIHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXLHHHIncreased && - mConditions.isXLHLLIncreased && - mConditions.isXCHMASCOverMax && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -7711,31 +5496,7 @@ bool XUSCHF5XSIHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentOverFarest && - mConditions.isXRSICrossedUnderShortExit && - mConditions.isXRSICrossedUnderShortEntry) - // - || - // - (mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMASCFastUnderSlow && - mConditions.isXCHMAMCFastUnderSlow && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) - // - ) + false) // ) // @@ -7787,33 +5548,7 @@ bool XUSCHF5XSIHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHLHSameHHs && - mConditions.isXCHLHSameLLs && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXLHPriceCrossedUnderSignal) - // - || - // - (mConditions.isXCHMASCOverMax && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) - // - ) + false) // ) // @@ -7859,38 +5594,63 @@ bool XUSCHF5XSIHasShortSignal() ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - || // (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame) + mConditions.isXCHMAMCPeak) // || // - (mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && + (mConditions.isXCHMALCVale && mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentOverFarest && mConditions.isXCHMAMCFastUnderSlow && mConditions.isXCHMALCFastUnderSlow) // + || + // + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXCHMALCFastUnderSlow) + // + ) + // + ) + // + || + // + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && + ( + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsUp) + // + || + // + (mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMASCFastUnderSlow && + mConditions.isXCHMALCFastUnderSlow) + // + || + // + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXCHMALCFastUnderSlow) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverNearest && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverNearest) + // ) // ) @@ -7914,134 +5674,33 @@ bool XUSCHF5XSIHasShortSignal() mConditions.isXCHMASCFastCrossedOverSlow) && ( // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - ((mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak) && - ( - // - mConditions.isXTSCurrentOverFarest - // - || - // - (mConditions.isXTSAllSame && - mConditions.isXCHMALCVale && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && - ( - // - (mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) - // - || - // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCTrendsUp) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow && - mConditions.isXCHMASCCrossedOverMin) - // - ) - // - ) + (mConditions.isXCHMASCPeak && + mConditions.isXCHMASCTrendsUp) // || // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - ((mConditions.isXTMEndBullish && - mConditions.isXAMAEndBullish) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && - mConditions.isXTSCurrentCrossedUnderFarest && - mConditions.isXTSCurrentCrossedUnderNearest && - mConditions.isXTSCurrentCrossedUnderMediest) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && + (mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastUnderSlow && mConditions.isXCHMALCFastUnderSlow) // - ) - // - ) - // - || - // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( + || // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXCHMAMCTrendsUp && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXTSCurrentMin && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && + mConditions.isXTSCurrentOverFarest) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalOverBear && + mConditions.isXLHHighAttachedHH && + mConditions.isXTSCurrentOverFarest) // ) // @@ -8061,68 +5720,26 @@ bool XUSCHF5XSIHasShortSignal() // ( // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && ( - // - (mConditions.isXTMBullish && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMASCFastUnderSlow && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish) && - ( - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXLHPriceCrossedOverSignal) - // - || - // - (mConditions.isXLHHHIncreased && - mConditions.isXTSCurrentOverFarest && - mConditions.isXLHPriceCrossedOverSignal) - // - ) - // - ) - // - ) - // - ) - // - || // (mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMALCTrendsDown && mConditions.isXCHMAMCFastUnderSlow && mConditions.isXCHMALCFastUnderSlow) // + || + // + (mConditions.isXCHMASCPeak && + mConditions.isXLHHHIncreased && + mConditions.isXLHLLIncreased && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverFarest) + // ) // ) @@ -8146,47 +5763,15 @@ bool XUSCHF5XSIHasShortSignal() mConditions.isXCHMASCFastCrossedOverSlow) && ( // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) + (mConditions.isXCHMASCPeak && + mConditions.isXCHMASCTrendsUp) // || // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXLHHHIncreased && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentOverFarest && - mConditions.isXCHMAMCFastUnderSlow && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXCHMALCFastUnderSlow) // ) // @@ -8282,29 +5867,29 @@ bool XUSCHF5XSIHasShortSignal() // // XTSFI Long Signal Checking ... -bool XUSCHF5XTSFIHasLongSignal() +bool XAU5XTSFIHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXTSFIEnableSignaller || - !xUSCHF5MXTSFIAllowLongSignals) + if (!xAU5MXTSFIEnableSignaller || + !xAU5MXTSFIAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XTSFIHasLongConditions() + xAU5Provider.XTSFIHasLongConditions() // && // @@ -8329,163 +5914,29 @@ bool XUSCHF5XTSFIHasLongSignal() mConditions.isXLHHHSameInLength) && // ( - // - ((mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) && - ( - // - mConditions.isXTSCurrentUnderMediest - // - ) - // - ) - // - || - // - ((mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) && - ( - // - mConditions.isXTDBullUnderBear - // - || - // - mConditions.isXTDBullCrossedUnderBear - // - ) - // - ) - // - || - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ((mConditions.isXCHMASCOverMax && - mConditions.isXCHMASCTrendsDown && - mConditions.isXTSCurrentUnderMediest) && - ( - // - ( - // - mConditions.isXTDSignalUnderBear - // - || - // - mConditions.isXTDBullCrossedUnderBear - // - ) - // - ) - // - ) - // - ) - // - ) - // - || // // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest - // - ) - // - ) + (mConditions.isXCHMASCOverMax && + mConditions.isXCHMASCTrendsUp) // || // - (mConditions.isXTSCurrentUnderMediest && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXLHHHIncreased && - mConditions.isXCHMASCOverMax && - mConditions.isXTDSignalCrossedUnderBear) - // - || - // - (mConditions.isXTDSignalUnderBear && - ( - // - ((mConditions.isXTMEndBullish && - mConditions.isXAMAEndBullish) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTDSignalCrossedUnderBear && - ( - // - (mConditions.isXTMBearish && - mConditions.isXAMANeutural && - mConditions.isXLHHHIncreased) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTDSignalUnderBear && + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentUnderMediest) // || // - (mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDBullCrossedUnderBear) + (mConditions.isXLHHHIncreased && + mConditions.isXTMStartBearish && + mConditions.isXAMAStartBearish && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) // ) // @@ -8510,31 +5961,17 @@ bool XUSCHF5XTSFIHasLongSignal() mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - (mConditions.isXTSCurrentUnderMediest && - ( - // - ( - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHMALCPeak) - // - ) - // - ) - // - || - // - (mConditions.isXLHHHDecreased && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) + // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) // ) // @@ -8547,66 +5984,21 @@ bool XUSCHF5XTSFIHasLongSignal() mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHLHSameHHs && - mConditions.isXTDSignalCrossedUnderBear) - // - || - // - (mConditions.isXTDSignalUnderBear && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHLHSameHHs) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentUnderMediest && - ( + || // - (mConditions.isXTSCurrentCrossedUnderMediest && - ( - // - ((mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMAMCFastUnderSlow) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXTDBearishVale) - // - ) - // - ) - // - ) - // - ) + (((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) || + (mConditions.isXTMEndBullish && + mConditions.isXAMAEndBullish)) && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTSCurrentCrossedUnderMediest) // ) // @@ -8631,74 +6023,31 @@ bool XUSCHF5XTSFIHasLongSignal() mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMASCOverMax && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && + (mConditions.isXCHLHSCMCLLSame && mConditions.isXTDBullUnderBear && + mConditions.isXCHMAMCTrendsDown && mConditions.isXTDSignalUnderBear && + mConditions.isXCHMAMCFastOverSlow && mConditions.isXTSCurrentUnderMediest) // || // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXCHMASCOverMax && - mConditions.isXCHMASCTrendsUp && - mConditions.isXTDBullUnderBear && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTDSignalUnderBear && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) + (mConditions.isXLHHHIncreased && + mConditions.isXTMStartBearish && + mConditions.isXAMAStartBearish && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDSignalCrossedUnderBear) // - ) - // - ) - // - || - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( + || // - (mConditions.isXTSCurrentUnderMediest && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCVale && - mConditions.isXTDBearishVale && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXAMAStartBullish) - // - ) - // - ) + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDBullCrossedUnderBear) // ) // @@ -8718,32 +6067,31 @@ bool XUSCHF5XTSFIHasLongSignal() // ( // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) + // + || + // + (mConditions.isXCHLHSameHHs && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) + // + || + // + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) && - ( - // - mConditions.isXTDBullUnderBear - // - || - // - mConditions.isXTDBullCrossedUnderBear - // - ) - // - ) - // - ) - // - ) + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXCHLHSameHHs && + mConditions.isXCHMASCOverMax && + mConditions.isXTSCurrentUnderMediest) // ) // @@ -8776,20 +6124,30 @@ bool XUSCHF5XTSFIHasLongSignal() // ( // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXLHPriceCrossedUnderSignal) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) && ( // - (mConditions.isXCHMAMCTrendsDown && + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural) + // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXTDBullUnderBear && + mConditions.isXCHMAMCFastOverSlow) + // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHMALCPeak && + mConditions.isXCHMASCTrendsUp && + mConditions.isXTDBullUnderBear && mConditions.isXCHMAMCFastOverSlow && - mConditions.isXTSCurrentUnderMediest) + mConditions.isXCHMASCFastCrossedOverSlow) // ) // @@ -8802,63 +6160,21 @@ bool XUSCHF5XTSFIHasLongSignal() mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXLHPriceCrossedUnderSignal) - // - || - // - (mConditions.isXCHMASCOverMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) - // - ) - // - ) - // - || - // - // Check if MC Fast Under Slow ... - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMAMCTrendsUp && + ((mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) && ( // - (mConditions.isXCHMAMCVale && + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && ( // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDSignalCrossedUnderBear) + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) // || // - ((mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) && - ( - // - mConditions.isXCHMALCVale - // - || - // - mConditions.isXTSCurrentUnderMediest - // - ) - // - ) + (mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHLHMCLCLLSame) // ) // @@ -8866,13 +6182,20 @@ bool XUSCHF5XTSFIHasLongSignal() // || // - ((mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsDown) && + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( // - (mConditions.isXTSCurrentUnderMediest && - (mConditions.isXCHMASCUnderMax || - mConditions.isXCHMASCCrossedUnderMax)) + (mConditions.isXLHHHIncreased && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDBullCrossedUnderBear) + // + || + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXLHPriceCrossedUnderSignal) // ) // @@ -8882,50 +6205,43 @@ bool XUSCHF5XTSFIHasLongSignal() // ) // + ) + // + ) + // + || + // + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && + ( + // + mConditions.isXCHMAMCTrendsUp + // || // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXCHLHMCLCLLSame && + (mConditions.isXAMAVale && + mConditions.isXTMNeutural && + mConditions.isXCHMAMCVale && + mConditions.isXTDSignalUnderBear && mConditions.isXCHMALCTrendsDown && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXCHMASCFastCrossedOverSlow && - mConditions.isXTSCurrentCrossedUnderMediest) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTDSignalUnderBear && - mConditions.isXCHMAMCFastOverSlow && + mConditions.isXCHMALCFastOverSlow && mConditions.isXTSCurrentUnderMediest) // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentUnderMediest && - ( + || // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) && ( // - (mConditions.isXTMBearish && - mConditions.isXAMANeutural && - mConditions.isXFIUnderZero && - mConditions.isXCHMASCOverMax) + mConditions.isXTDBullUnderBear + // + || + // + (mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) // ) // @@ -8935,6 +6251,23 @@ bool XUSCHF5XTSFIHasLongSignal() // ) // + || + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXLHHHDecreased && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // ) // ) @@ -8948,150 +6281,23 @@ bool XUSCHF5XTSFIHasLongSignal() !mConditions.isXLHHHSameInLength) && // ( - // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - ) - // - ) - // - || // // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - ((mConditions.isXCHMAMCVale && - mConditions.isXCHMAMCTrendsUp) && - ( - // - (mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDBullCrossedUnderBear) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTDBearishVale && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXLHHHDecreased && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) && - ( - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXCHMALCVale && - ( - // - (mConditions.isXTMBearish && - mConditions.isXTMStartBearish && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXAMAVale && - ( - // - (mConditions.isXAMANeutural && - mConditions.isXTDSignalCrossedUnderBear) - // - || - // - (mConditions.isXAMABearish && - mConditions.isXCHMASCUnderMin) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentCrossedUnderMediest && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXTMEndBullish && - mConditions.isXLHHHDecreased && - mConditions.isXCHMASCUnderMin) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXAMANeutural && - mConditions.isXTMStartBullish && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHMAMCVale && + mConditions.isXCHMAMCTrendsUp) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXLHHHDecreased && + mConditions.isXLHLLDecreased && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) // ) // @@ -9116,129 +6322,19 @@ bool XUSCHF5XTSFIHasLongSignal() mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - (mConditions.isXTSCurrentUnderMediest && - ( - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXLHPriceCrossedUnderSignal) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check if MC Fast Under Slow ... - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXTDBearishVale && - mConditions.isXTDSignalUnderBear) - // - || - // - ((mConditions.isXCHMAMCVale && - mConditions.isXCHMAMCTrendsUp) && - ( - // - (mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) // || // - (mConditions.isXTSCurrentUnderMediest && - ( - // - ((mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXFICrossedUnderZero && + (mConditions.isXCHLHSameHHs && + mConditions.isXLHHHIncreased && + mConditions.isXCHMASCTrendsUp && mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDSignalCrossedUnderBear && mConditions.isXLHPriceCrossedUnderSignal) // ) @@ -9286,387 +6382,101 @@ bool XUSCHF5XTSFIHasLongSignal() mConditions.isXLHHHSameInLength) && // ( + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMASCFastUnderSlow && + mConditions.isXTSCurrentUnderMediest) + // + || + // + ((mConditions.isXCHMASCOverMax && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsUp && + mConditions.isXTDBullUnderBear && + mConditions.isXCHMALCFastOverSlow) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTDBearishVale && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDBullOverBear) + // + ) + // + ) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMALCPeak && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentUnderMediest) && + ( + // + (mConditions.isXLHHHDecreased && + mConditions.isXCHMASCOverMax) + // + || + // + (mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) + // + || + // + (mConditions.isXCHLHSameLLs && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMALCTrendsUp) + // + ) + // + ) + // + || // // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXTDSignalUnderBear && - ( - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXTDBullUnderBear) - // - || - // - (mConditions.isXTDBullUnderBear && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTMStartBullish && - mConditions.isXCHMALCTrendsDown && - mConditions.isXFICrossedUnderZero && - mConditions.isXCHMALCFastOverSlow) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMASCOverMax && - mConditions.isXCHMASCTrendsUp && - mConditions.isXLHPriceCrossedOverSignal) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) - // - || - // - (mConditions.isXTMStartBullish && - mConditions.isXTDBullUnderBear && - mConditions.isXAMAStartBullish && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check if MC Fast Under Slow ... - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXLHHHDecreased && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) - // - || - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXFICrossedUnderZero && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTSCurrentCrossedUnderMediest) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXTSCurrentUnderMediest && - mConditions.isXTSCurrentCrossedUnderMediest) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXCHMASCOverMax && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDSignalCrossedUnderBear && - mConditions.isXTSCurrentCrossedUnderMediest) - // - || - // - ((!mConditions.isXCHMASCTrendsUp && - !mConditions.isXCHMASCTrendsDown) && - ( - // - mConditions.isXTSCurrentUnderMediest - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale) - // - || - // - (mConditions.isXTDSignalUnderBear && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMABearish && - mConditions.isXCHLHSCMCHHSame) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXTDBullUnderBear) - // - || - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXCHMASCFastUnderSlow) - // - ) - // - ) - // - || - // - (mConditions.isXTDBullUnderBear && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXCHMASCVale && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHMALCFastUnderSlow) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) && - ( - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame) && - ( - // - mConditions.isXLHHHDecreased - // - || - // - mConditions.isXFICrossedOverZero - // - || - // - (mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && + ((mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) && ( // (mConditions.isXCHMALCPeak && - mConditions.isXLHHHDecreased && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame) + mConditions.isXCHMALCTrendsDown && + mConditions.isXTDBullCrossedUnderBear) // || // - (mConditions.isXTDSignalUnderBear && + (mConditions.isXTDBullUnderBear && ( // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame) + (mConditions.isXTMBearish && + mConditions.isXAMABearish) + // + || + // + (mConditions.isXCHMASCOverMax && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentCrossedUnderMediest) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXAMABullish) // ) // @@ -9679,57 +6489,107 @@ bool XUSCHF5XTSFIHasLongSignal() || // (mConditions.isXCHMALCPeak && - mConditions.isXCHLHSameHHs && - mConditions.isXCHMASCOverMax && - mConditions.isXTDSignalUnderBear) + mConditions.isXCHMALCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) // || // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && + (mConditions.isXAMAVale && + (mConditions.isXTMBearish || + mConditions.isXAMABearish) && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + || + // + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHMASCOverMax && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + || + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentUnderMediest) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXFICrossedUnderZero && + mConditions.isXTSCurrentUnderMediest) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) + // + || + // + ((mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTSCurrentCrossedUnderMediest) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXTMVale && - mConditions.isXAMAVale) && - ( - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMALCPeak && - mConditions.isXLHHHDecreased && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) - // - || - // - ((mConditions.isXAMAVale && - mConditions.isXCHMASCVale && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMASCFastUnderSlow) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXLHPriceCrossedOverSignal) - // - || - // - (mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) - // - ) - // - ) + mConditions.isXTDBullCrossedUnderBear + // + || + // + (mConditions.isXCHMASCOverMax && + mConditions.isXTDBullUnderBear && + mConditions.isXCHMASCFastCrossedOverSlow) + // + ) + // + ) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentUnderMediest) && + ( + // + (mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXTDSignalCrossedUnderBear && + mConditions.isXTSCurrentCrossedUnderMediest) // ) // @@ -9752,85 +6612,21 @@ bool XUSCHF5XTSFIHasLongSignal() !mConditions.isXLHHHSameInLength) && // ( - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) && - ( - // - mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHMASCUnderMax && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest - // - ) - // - ) - // - || // // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && + ((mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) && ( // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXAMAVale && - mConditions.isXAMABearish && - mConditions.isXTMEndBearish) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - ((mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax) && - ( - // - (mConditions.isXCHMASCTrendsUp && - mConditions.isXLHPriceCrossedOverSignal) - // - || - // - (mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXLHPriceCrossedOverSignal) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) && - ( - // - (mConditions.isXCHMASCOverMax && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXLHPriceCrossedOverSignal) - // - ) - // - ) - // - ) - // - ) + mConditions.isXTDBullOverBear + // + || + (mConditions.isXLHHHDecreased && + mConditions.isXCHMASCOverMax) // ) // @@ -9839,10 +6635,8 @@ bool XUSCHF5XTSFIHasLongSignal() || // (mConditions.isXLHHHDecreased && - mConditions.isXCHMASCTrendsUp && mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXLHPriceCrossedOverSignal) + mConditions.isXCHMAMCFastOverSlow) // ) // @@ -9855,239 +6649,57 @@ bool XUSCHF5XTSFIHasLongSignal() mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXTSCurrentUnderMediest && - ( - // - mConditions.isXTDSignalCrossedUnderBear - // - || - // - (mConditions.isXTDSignalUnderBear && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXFICrossedUnderZero) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) - // - ) - // - ) - // - || - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXTMBearish && - mConditions.isXCHMAMCPeak && - mConditions.isXAMANeutural && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame) - // - ) - // - ) - // - ) - // - ) - // - || - // - (((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) || - (mConditions.isXTMEndBullish && - mConditions.isXAMAEndBullish)) && - ( - // - mConditions.isXTSCurrentUnderMediest - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsUp && - mConditions.isXCHMASCCrossedOverMax) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - mConditions.isXRSICrossedOverLongExit - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCPeak && - mConditions.isXFIUnderZero && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXFICrossedUnderZero) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCPeak && - mConditions.isXLHLLIncreased && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXFICrossedUnderZero) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXTDSignalUnderBear && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMASCCrossedOverMax) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMASCCrossedOverMax && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXLHHHDecreased && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXTDSignalUnderBear && - ( - // - (mConditions.isXCHLHSameHHs && - mConditions.isXTMEndBullish && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHMCLCLLSame) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCPeak && + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHLHSameHHs && mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH && - mConditions.isXTSCurrentCrossedOverNearest) + mConditions.isXTSCurrentUnderMediest) // || // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentCrossedOverNearest) - // - ) - // - ) + (mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentUnderMediest) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentUnderMediest) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMALCVale && + mConditions.isXCHMAMCPeak && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXLHHighAttachedHH && + mConditions.isXTSCurrentUnderMediest) // ) // ) // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXLHLLDecreased && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXLHHighAttachedHH && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXCHMAMCFastCrossedOverSlow && + mConditions.isXTSCurrentCrossedUnderMediest) + // ) // ) @@ -10102,44 +6714,27 @@ bool XUSCHF5XTSFIHasLongSignal() // ( // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXTSCurrentUnderMediest) && ( // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCPeak && - mConditions.isXTMEndBearish && - mConditions.isXLHHHIncreased && - mConditions.isXAMAStartBullish) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXAMANeutural && + mConditions.isXLHHHIncreased && + mConditions.isXCHLHSCMCHHSame) + // + || + // + (mConditions.isXCHMASCOverMax && + mConditions.isXAMAStartBullish && + mConditions.isXCHMASCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMASCFastOverSlow) // ) // @@ -10147,100 +6742,62 @@ bool XUSCHF5XTSFIHasLongSignal() // || // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHLHSameHHs && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXLHPriceCrossedOverSignal) + // + || + // // Check LC Fast Under Slow ... ((mConditions.isXCHMALCFastUnderSlow || mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXTMEndBullish && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - || - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXFICrossedUnderZero && - mConditions.isXTSCurrentCrossedOverNearest) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXCHMASCOverMin && - mConditions.isXCHMASCUnderMax && - mConditions.isXTSCurrentOverFarest) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDSignalCrossedOverBear) + (mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsDown) // || // - (mConditions.isXTDSignalUnderBear && + (mConditions.isXTSCurrentUnderMediest && ( // - (mConditions.isXTSCurrentUnderMediest && + (mConditions.isXCHMASCOverMax && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentCrossedUnderMediest) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTDSignalUnderBear) && ( // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame) + mConditions.isXTDBullUnderBear + // + || + // + (mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentCrossedUnderMediest) // ) // ) // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXLHHHIncreased && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear) + // ) // ) @@ -10268,72 +6825,12 @@ bool XUSCHF5XTSFIHasLongSignal() mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && + (mConditions.isXCHMALCVale && + mConditions.isXLHLLIncreased && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXLHHighAttachedHH && mConditions.isXTSCurrentUnderMediest) // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) && - ( - // - mConditions.isXTDBullUnderBear - // - || - // - mConditions.isXTDBullCrossedUnderBear - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXLHLLIncreased && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentCrossedUnderMediest) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // ) // ) @@ -10369,60 +6866,7 @@ bool XUSCHF5XTSFIHasLongSignal() mConditions.isXLHHHSameInLength) && // ( - // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXAMAVale && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentUnderMediest && - ( - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXAMANeutural && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHMCLCHHSame) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -10461,39 +6905,7 @@ bool XUSCHF5XTSFIHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) && - ( - // - mConditions.isXTDBullUnderBear - // - || - // - mConditions.isXTDBullCrossedUnderBear - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -10513,29 +6925,29 @@ bool XUSCHF5XTSFIHasLongSignal() // // XTSFI Short Signal Checking ... -bool XUSCHF5XTSFIHasShortSignal() +bool XAU5XTSFIHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXTSFIEnableSignaller || - !xUSCHF5MXTSFIAllowShortSignals) + if (!xAU5MXTSFIEnableSignaller || + !xAU5MXTSFIAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XTSFIHasShortConditions() + xAU5Provider.XTSFIHasShortConditions() // && // @@ -10566,55 +6978,90 @@ bool XUSCHF5XTSFIHasShortSignal() mConditions.isXCHMASCFastCrossedOverSlow) && ( // - (mConditions.isXTSCurrentOverMediest && + (mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXLHLLDecreased && + mConditions.isXTSCurrentOverMediest) && ( + // + (mConditions.isXCHMASCTrendsUp && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXTDBullCrossedOverBear) + // + ) + // + ) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMANeutural && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTDBullOverBear && + mConditions.isXCHMASCTrendsUp && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + ((mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverMediest) && + ( + // + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) + // + || // ((mConditions.isXTMNeutural && mConditions.isXAMANeutural) && ( // - mConditions.isXTSCurrentCrossedOverMediest + (mConditions.isXCHMASCTrendsUp && + mConditions.isXCHLHMCLCLLSame) // || - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) + (mConditions.isXTDBearishVale && + mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHMAMCFastCrossedOverSlow) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXCHMALCVale && - mConditions.isXAMANeutural && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCUnderMin) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXTMEndBullish && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCUnderMin && - mConditions.isXAMAStartBearish && - mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMASCFastUnderSlow && - mConditions.isXTSCurrentCrossedUnderFarest) - // ) // ) // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXTDBearishVale && + mConditions.isXLHHHDecreased && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMALCFastUnderSlow) + // ) // ) @@ -10626,124 +7073,28 @@ bool XUSCHF5XTSFIHasShortSignal() mConditions.isXCHMALCFastCrossedOverSlow) && ( // - (mConditions.isXTSCurrentOverMediest && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMANeutural && - mConditions.isXCHMAMCVale) && - ( - // - mConditions.isXCHLHSCMCLLSame - // - || - // - mConditions.isXCHMASCUnderMin - // - ) - // - ) - // - || - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) - // - || - // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXCHMASCUnderMin && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedOverMediest) // || // - (mConditions.isXCHMALCVale && - ( - // - ((mConditions.isXTMVale && - mConditions.isXAMAVale) && - ( - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) - // - ) - // - ) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXFIOverZero && - mConditions.isXAMANeutural && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCUnderMin) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCUnderMin && - mConditions.isXAMAStartBearish && - mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMASCFastUnderSlow && - mConditions.isXTSCurrentCrossedUnderFarest) - // - ) - // - ) + (mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedOverMediest) // || // (mConditions.isXTMBearish && mConditions.isXAMABearish && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXCHMASCCrossedUnderMax && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXFIOverZero && - mConditions.isXCHLHMCLCLLSame) - // - ) - // - ) + mConditions.isXCHMALCPeak && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest) // ) // @@ -10763,50 +7114,18 @@ bool XUSCHF5XTSFIHasShortSignal() // ( // - (mConditions.isXTSCurrentOverMediest && - ( - // - mConditions.isXRSICrossedUnderShortExit - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish) - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - ) - // - ) + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentOverMediest) // || // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXTMNeutural && + mConditions.isXCHMASCUnderMin && + mConditions.isXAMAStartBearish && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest) // ) // @@ -10822,67 +7141,62 @@ bool XUSCHF5XTSFIHasShortSignal() // ( // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMANeutural) && - ( - // - mConditions.isXTDBullOverBear - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXTMStartBullish && - mConditions.isXCHMASCUnderMin) - // - ) - // - ) - // - || - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTDBearishVale && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMASCFastOverSlow && - mConditions.isXCHMAMCFastUnderSlow) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHLHSameLLs && + mConditions.isXTDBullOverBear && + mConditions.isXCHMASCUnderMin && + mConditions.isXTSCurrentOverMediest && + mConditions.isXRSICrossedOverLongEntry) // || // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && + (mConditions.isXTMEndBearish && + mConditions.isXAMAEndBearish && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && ( // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && + mConditions.isXRSICrossedUnderShortExit + // + || + // + ((mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHMASCUnderMin && + mConditions.isXTSCurrentOverMediest) && ( // - (mConditions.isXCHLHSameLLs && - mConditions.isXTSCurrentOverMediest) + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXCHMASCCrossedUnderMin && + mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // + || + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXCHLHSameLLs && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedOverMediest) + // ) // ) @@ -10927,164 +7241,114 @@ bool XUSCHF5XTSFIHasShortSignal() // ( // - (mConditions.isXTSCurrentOverMediest && + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXLHLLIncreased && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXAMANeutural && + mConditions.isXTMStartBearish && + mConditions.isXTDBullUnderBear && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXTSCurrentOverMediest) && ( // - ((mConditions.isXCHMAMCVale && - mConditions.isXCHMALCFastOverSlow) && - ( - // - (mConditions.isXAMAVale && - mConditions.isXCHMASCUnderMin) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - mConditions.isXTDBullOverBear - // - || - // - mConditions.isXCHLHSCMCLLSame - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXCHMASCUnderMin && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXRSICrossedUnderShortExit) - // - || - // - (mConditions.isXCHMALCFastOverSlow && - ( - // - (mConditions.isXCHMALCTrendsDown && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTMVale && - mConditions.isXCHMASCUnderMin && - mConditions.isXCHMAMCFastOverSlow) + (mConditions.isXTDBullUnderBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMAMCFastUnderSlow) // || // (mConditions.isXCHMALCVale && - mConditions.isXAMANeutural && - mConditions.isXTMStartBearish && mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMASCFastOverSlow) + mConditions.isXCHMASCUnderMin && + mConditions.isXTSCurrentCrossedUnderNearest) // || // - (mConditions.isXTSCurrentCrossedOverMediest && + (mConditions.isXCHMAMCVale && + !mConditions.isXCHMAMCTrendsUp && + !mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + || + // + ((mConditions.isXCHMALCVale && + mConditions.isXTDBullishVale && + mConditions.isXTDSignalUnderBear) && ( // - (mConditions.isXCHMASCFastCrossedOverSlow && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCUnderMin) - // - ) - // - ) + (mConditions.isXTDSignalVale && + mConditions.isXTDBullUnderBear) // || // - (mConditions.isXCHMALCFastOverSlow && - ( - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMASCUnderMin && - mConditions.isXCHMASCCrossedUnderMin) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMASCVale && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMAMCFastOverSlow) + (mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCUnderMin) // ) // ) // + || + // + (mConditions.isXTDBullOverBear && + mConditions.isXCHMASCFastCrossedUnderSlow && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXTDSignalUnderBear && + mConditions.isXTDBullCrossedUnderBear && + mConditions.isXTSCurrentCrossedUnderNearest) + // ) // ) // || // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && ( // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXAMAVale && - mConditions.isXTMNeutural && - mConditions.isXTMEndBearish && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMASCUnderMin) - // - ) - // - ) + (mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) + // + || + // + (mConditions.isXTDBullOverBear && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverMediest) // ) // @@ -11097,74 +7361,37 @@ bool XUSCHF5XTSFIHasShortSignal() mConditions.isXCHMALCFastCrossedOverSlow) && ( // - (mConditions.isXTSCurrentOverMediest && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXAMAVale && - ( - // - (mConditions.isXCHMAMCVale && - ( - // - mConditions.isXCHMALCPeak - // - || - // - (mConditions.isXTMStartBearish && - mConditions.isXTDBullUnderBear && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCPeak && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural) - // - ) - // - ) - // - || - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) + (mConditions.isXCHMALCPeak && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHMALCPeak && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXAMAVale && + mConditions.isXAMABearish && + mConditions.isXCHMAMCVale && + mConditions.isXTMNeutural && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMAMCVale && + mConditions.isXCHMALCPeak && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentOverMediest) // ) // @@ -11184,64 +7411,13 @@ bool XUSCHF5XTSFIHasShortSignal() // ( // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXCHMALCFastOverSlow && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXLHHHDecreased) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMASCUnderMin) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCPeak && - mConditions.isXFICrossedOverZero && - mConditions.isXTDBullCrossedOverBear) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentCrossedOverMediest && - ( - // - (mConditions.isXTMVale && - mConditions.isXCHMALCVale && - mConditions.isXCHMASCUnderMin && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) - // - || - // - (mConditions.isXCHMAMCFastOverSlow && - ( - // - (mConditions.isXTMVale && - mConditions.isXCHMASCVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMASCUnderMin) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXTMNeutural && + mConditions.isXAMAStartBearish && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest && + mConditions.isXLHPriceCrossedUnderSignal && + mConditions.isXTSCurrentCrossedUnderNearest) // || // @@ -11250,17 +7426,11 @@ bool XUSCHF5XTSFIHasShortSignal() mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXAMAVale && - mConditions.isXTMNeutural && - mConditions.isXCHMAMCVale && - mConditions.isXCHMASCUnderMin) - // - ) - // - ) + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest) // ) // @@ -11273,122 +7443,49 @@ bool XUSCHF5XTSFIHasShortSignal() mConditions.isXCHMALCFastCrossedOverSlow) && ( // - (mConditions.isXTSCurrentOverMediest && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) - // - || - // - ((mConditions.isXTMVale && - mConditions.isXAMAVale) && - ( - // - (mConditions.isXTSCurrentCrossedOverMediest && - ( - // - (mConditions.isXCHMAMCVale && - ( - // - mConditions.isXCHMASCUnderMin - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHLHSameLLs && - mConditions.isXLHHHDecreased) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentCrossedOverMediest && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMASCUnderMin) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTMNeutural && - ( - // - (mConditions.isXAMAVale && - mConditions.isXCHMAMCVale) - // - || - // - (mConditions.isXFIOverZero && - mConditions.isXCHMALCPeak && - mConditions.isXTDBullOverBear && - mConditions.isXFICrossedOverZero) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHMALCPeak && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedOverMediest) // - ) - // - ) - // - || - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( + || // - (mConditions.isXTSCurrentOverMediest && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) - // - ) - // - ) - // - || - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXLHHHDecreased && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXAMAVale && + mConditions.isXTMNeutural && + mConditions.isXCHMALCPeak && + mConditions.isXAMABearish && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + (mConditions.isXAMAVale && + mConditions.isXTMNeutural && + mConditions.isXCHMAMCVale && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedUnderNearest) // ) // @@ -11408,88 +7505,20 @@ bool XUSCHF5XTSFIHasShortSignal() // ( // - (mConditions.isXTSCurrentOverMediest && - ( - // - ((mConditions.isXCHMALCVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMASCUnderMin) && - ( - // - mConditions.isXTSCurrentCrossedOverMediest - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXCHMASCFastOverSlow) - // - ) - // - ) - // - || - // - (mConditions.isXCHMAMCFastOverSlow && - ( - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMALCVale && - mConditions.isXCHMASCUnderMin) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCFastOverSlow && - ( - // - (mConditions.isXTMBullish && - mConditions.isXCHMALCVale && - mConditions.isXAMANeutural && - mConditions.isXTDBearishVale && - mConditions.isXTDBullOverBear && - mConditions.isXCHMASCUnderMin && - mConditions.isXCHMASCTrendsUp) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCFastOverSlow && - ( - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMASCUnderMin && - mConditions.isXCHMASCCrossedUnderMin) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) + // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXLHLowAttachedLL && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedOverMediest) // || // @@ -11498,30 +7527,46 @@ bool XUSCHF5XTSFIHasShortSignal() mConditions.isXCHMALCFastCrossedOverSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXCHLHSCMCLLSame && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHLHSCMCLLSame && + (mConditions.isXAMAVale && + mConditions.isXCHMAMCVale && + mConditions.isXCHLHSCMCLLSame && mConditions.isXTSCurrentOverMediest) // + || + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastUnderSlow && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXAMAVale && + mConditions.isXTMNeutural && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXAMABearish && + mConditions.isXCHMAMCVale && + mConditions.isXTMEndBearish && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXTDBullUnderBear && + mConditions.isXCHMASCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest && + mConditions.isXCHMASCCrossedOverMin) + // ) // ) @@ -11539,43 +7584,53 @@ bool XUSCHF5XTSFIHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTSCurrentOverMediest) && + ( + // + (mConditions.isXTDBullOverBear && + mConditions.isXCHMASCUnderMin && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + (mConditions.isXTDSignalUnderBear && + mConditions.isXTDBullCrossedUnderBear && + mConditions.isXRSICrossedUnderShortExit) + // + ) + // + ) + // + || // // Check LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHLHSameLLs && - mConditions.isXLHHHDecreased) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHLHSameLLs && - mConditions.isXTDSignalVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXLHHHDecreased && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHMASCUnderMin && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXTMVale && + mConditions.isXCHMAMCVale && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTMEndBearish && + mConditions.isXAMAEndBearish && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedOverMediest) // ) // @@ -11609,122 +7664,63 @@ bool XUSCHF5XTSFIHasShortSignal() mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXTMEndBearish && - mConditions.isXCHMALCFastOverSlow) - // - || - // - (mConditions.isXAMANeutural && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHLHMCLCLLSame) - // - || - // - (mConditions.isXCHMAMCFastOverSlow && - ( - // - (mConditions.isXCHMAMCTrendsUp && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) - // - || - // - (mConditions.isXTMEndBullish && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXCHLHMCLCLLSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXCHMALCFastOverSlow && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMALCVale && - mConditions.isXTDSignalVale && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) - // - ) - // - ) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXCHLHMCLCLLSame) && - ( - // - (mConditions.isXCHMALCFastOverSlow && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - (mConditions.isXAMABullish && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCFastOverSlow) - // - ) - // - ) - // - ) - // - ) - // - || // // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // - (mConditions.isXTSCurrentOverMediest && + (mConditions.isXCHMASCPeak && + mConditions.isXCHMASCTrendsUp) + // + || + // + (mConditions.isXAMAVale && + mConditions.isXAMANeutural && + mConditions.isXTMStartBullish && + mConditions.isXTSCurrentOverMediest && + mConditions.isXLHPriceCrossedOverSignal) + // + || + // + (mConditions.isXCHLHSameLLs && + mConditions.isXCHMASCUnderMin && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXTSCurrentOverMediest) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverMediest) && ( // - (mConditions.isXTMBullish && - mConditions.isXAMABullish) + mConditions.isXTDSignalCrossedOverBear + // + || + // + (mConditions.isXLHLLDecreased && + mConditions.isXCHLHMCLCLLSame) + // + || + // + ((mConditions.isXTDBearishVale && + mConditions.isXTDSignalOverBear) && + ( + // + mConditions.isXLHPriceCrossedOverSignal + // + || + // + (mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) + // + ) + // + ) // ) // @@ -11741,43 +7737,27 @@ bool XUSCHF5XTSFIHasShortSignal() mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - ((mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp) && - ( - // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsUp) // || // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMASCVale && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) + (mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && + mConditions.isXLHLLIncreased && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedOverMediest) // ) // @@ -11790,37 +7770,10 @@ bool XUSCHF5XTSFIHasShortSignal() mConditions.isXCHMALCFastCrossedOverSlow) && ( // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXLHLLDecreased && - mConditions.isXLHPriceCrossedOverSignal) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXTMNeutural && - ( - // - mConditions.isXAMANeutural - // - || - // - (mConditions.isXTMEndBearish && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTDBullCrossedOverBear) // ) // @@ -11840,61 +7793,30 @@ bool XUSCHF5XTSFIHasShortSignal() // ( // - (mConditions.isXTSCurrentOverMediest && + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && ( // (mConditions.isXTMBullish && - mConditions.isXAMABullish) + mConditions.isXAMABullish && + mConditions.isXLHHHDecreased && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverMediest) // || // - (mConditions.isXTSCurrentCrossedOverMediest && + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && ( // - (mConditions.isXLHPriceCrossedOverSignal && - ( - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMALCVale && - mConditions.isXCHLHMCLCLLSame) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTSCurrentOverMediest && - ( - // - mConditions.isXLHPriceCrossedOverSignal - // - || - // - (mConditions.isXLHPriceCrossedOverSignal && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) + (mConditions.isXCHMALCVale && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest) // ) // @@ -11917,108 +7839,21 @@ bool XUSCHF5XTSFIHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - // - (mConditions.isXTSCurrentOverMediest && - ( - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish && - mConditions.isXTMEndBullish && - mConditions.isXTDBearishVale) - // - ) - // - ) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXLHHHIncreased && - mConditions.isXLHLLIncreased && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHMCLCHHSame) - // - || - // - (mConditions.isXTSCurrentCrossedOverMediest && - ( - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMALCVale && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish) - // - ) - // - ) - // - ) - // - ) - // - || // // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural) - // - || - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXLHLLIncreased && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsUp) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentOverMediest) // ) // @@ -12068,28 +7903,7 @@ bool XUSCHF5XTSFIHasShortSignal() mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXTSCurrentOverMediest && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTDBullOverBear && - mConditions.isXCHMASCUnderMin && - mConditions.isXCHMASCFastOverSlow) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -12148,29 +7962,29 @@ bool XUSCHF5XTSFIHasShortSignal() // // XOBDLH Long Signal Checking ... -bool XUSCHF5XOBDLHHasLongSignal() +bool XAU5XOBDLHHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXOBDLHEnableSignaller || - !xUSCHF5MXOBDLHAllowLongSignals) + if (!xAU5MXOBDLHEnableSignaller || + !xAU5MXOBDLHAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XOBDLHHasLongConditions() + xAU5Provider.XOBDLHHasLongConditions() // && // @@ -12260,36 +8074,7 @@ bool XUSCHF5XOBDLHHasLongSignal() mConditions.isXLHHHSameInLength) && // ( - // - // - // Check if SC Fast Under Slow ... - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMAMCFastUnderSlow) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHLHSameLLs && - mConditions.isXCHMASCTrendsUp && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -12315,7 +8100,62 @@ bool XUSCHF5XOBDLHHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale) + // + || + // + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHMASCVale && + mConditions.isXCHMAMCVale && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXAMAVale && + mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMin && + mConditions.isXCHMASCUnderMin && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsUp && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXTSCurrentUnderFarest) + // + || + // + (mConditions.isXAMAVale && + mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHMASCVale && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMin && + mConditions.isXTMStartBearish && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXLHPriceCrossedUnderSignal) + // + ) // ) // @@ -12329,19 +8169,46 @@ bool XUSCHF5XOBDLHHasLongSignal() // ( // - ((mConditions.isXTMVale && - mConditions.isXAMAVale) && + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMAMCVale && - mConditions.isXCHLHSameLLs && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXLHLowAttachedLL && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) + ((mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHMAMCVale) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale) + // + || + // + (mConditions.isXCHMASCVale && + mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + ) + // + ) + // + || + // + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHMASCVale && + mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale) + // + || + // + ((mConditions.isXCHMAMCVale && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMAMCFastUnderSlow) && + (mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMALCFastUnderSlow)) // ) // @@ -12504,29 +8371,29 @@ bool XUSCHF5XOBDLHHasLongSignal() // // XOBDLH Short Signal Checking ... -bool XUSCHF5XOBDLHHasShortSignal() +bool XAU5XOBDLHHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXOBDLHEnableSignaller || - !xUSCHF5MXOBDLHAllowShortSignals) + if (!xAU5MXOBDLHEnableSignaller || + !xAU5MXOBDLHAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XOBDLHHasShortConditions() + xAU5Provider.XOBDLHHasShortConditions() // && // @@ -12564,7 +8431,32 @@ bool XUSCHF5XOBDLHHasShortSignal() !mConditions.isXLHHHSameInLength) && // ( - false) + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMax && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverFarest) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMAMCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) + // + ) // ) // @@ -12697,53 +8589,116 @@ bool XUSCHF5XOBDLHHasShortSignal() // ( // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMALCTrendsUp && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMASCFastOverSlow && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXCHMALCFastOverSlow) + ((mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMAMCFastOverSlow) && + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMALCFastOverSlow)) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest) + // + || + // + (mConditions.isXCHLHSameHHs && + mConditions.isXCHMASCOverMax && + mConditions.isXLHLLIncreased && + mConditions.isXTMStartBullish && + mConditions.isXTDBullOverBear && + mConditions.isXAMAStartBullish && + mConditions.isXCHMASCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMASCFastUnderSlow && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXLHPriceCrossedOverSignal) // || // ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && + mConditions.isXAMABullish && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear) && ( // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && + (mConditions.isXCHMALCPeak && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMASCFastOverSlow && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXTSCurrentOverFarest) + // + || + // + (mConditions.isXCHMASCPeak && + mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) + // + || + // + ((mConditions.isXTSCurrentMin && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentUnderMediest) && ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak) - // - || // (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && + mConditions.isXCHMALCTrendsUp && mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMALCTrendsUp) + mConditions.isXLHHighAttachedHH && + mConditions.isXCHMASCFastOverSlow && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXCHMAMCFastUnderSlow) // ) // ) // + ) + // + ) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMALCPeak && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXCHMALCFastOverSlow) && + ( + // + (mConditions.isXCHMASCOverMax && + mConditions.isXCHMALCTrendsUp && + mConditions.isXLHHighAttachedHH) + // || // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && + (mConditions.isXCHMASCPeak && + mConditions.isXCHMAMCPeak && mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsUp && mConditions.isXCHMASCFastOverSlow && - mConditions.isXCHMAMCFastOverSlow) + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXTSCurrentOverMediest) // ) // @@ -12775,7 +8730,178 @@ bool XUSCHF5XOBDLHHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + (mConditions.isXTMNeutural && + mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXAMANeutural && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsUp && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTDBullOverBear) && + (mConditions.isXTSAllSame && + mConditions.isXCHMASCPeak && + mConditions.isXCHMALCVale && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMASCFastOverSlow && + mConditions.isXCHMALCFastUnderSlow)) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMASCPeak) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMASCFastOverSlow && + mConditions.isXTSCurrentOverFarest && + mConditions.isXCHMALCFastUnderSlow) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMin && + mConditions.isXLHHHIncreased && + mConditions.isXTDBullOverBear && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXTDSignalOverBear && + mConditions.isXCHMASCFastOverSlow && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXCHMALCFastOverSlow) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMAMCPeak && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame) && + ( + // + ((mConditions.isXCHMALCPeak && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && + mConditions.isXCHMASCOverMax && + mConditions.isXTDSignalUnderBear) && + ( + // + (mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsUp && + mConditions.isXTSCurrentOverFarest) + // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastOverSlow) + // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsUp) + // + ) + // + ) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMASCPeak && + mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsUp) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXLHHHIncreased && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMASCPeak) && + ( + // + (mConditions.isXTSAllSame && + mConditions.isXCHMALCVale && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTDSignalUnderBear) + // + || + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest) && + ( + // + (mConditions.isXCHMASCOverMax && + mConditions.isXTDBullOverBear) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXTDBearishVale && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMASCTrendsDown) + // + ) + // + ) + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && + mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverNearest) + // + ) + // + ) + // + ) + // + ) + // + ) // ) // @@ -12865,29 +8991,29 @@ bool XUSCHF5XOBDLHHasShortSignal() // // XCHMACC Long Signal Checking ... -bool XUSCHF5XCHMACCHasLongSignal() +bool XAU5XCHMACCHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXCHMACCEnableSignaller || - !xUSCHF5MXCHMACCAllowLongSignals) + if (!xAU5MXCHMACCEnableSignaller || + !xAU5MXCHMACCAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XCHMACCHasLongConditions() + xAU5Provider.XCHMACCHasLongConditions() // && // @@ -12912,28 +9038,7 @@ bool XUSCHF5XCHMACCHasLongSignal() mConditions.isXLHHHSameInLength) && // ( - // - (!mConditions.isXCHMASCTrendsUp && - !mConditions.isXCHMASCTrendsDown && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDBullCrossedUnderBear) - // - || - // - ((mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMASCFastOverSlow) && - ( - // - (mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDBullCrossedUnderBear) - // - ) - // - ) - // - ) + false) // ) // @@ -12959,7 +9064,46 @@ bool XUSCHF5XCHMACCHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + (mConditions.isXAMANeutural && + mConditions.isXTSCurrentMax && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXAMANeutural && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTDBullCrossedOverBear) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXLHLLIncreased && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTSCurrentCrossedUnderMediest) + // + ) + // + ) + // + ) // ) // @@ -12998,7 +9142,61 @@ bool XUSCHF5XCHMACCHasLongSignal() mConditions.isXLHHHSameInLength) && // ( - false) + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + (mConditions.isXTMNeutural && + mConditions.isXTSCurrentMax && + mConditions.isXAMAStartBullish && + mConditions.isXTDSignalUnderBear && + mConditions.isXTDBullCrossedOverBear) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHMASCOverMin && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) + // + ) + // + ) + // + ) // ) // @@ -13066,32 +9264,84 @@ bool XUSCHF5XCHMACCHasLongSignal() // ( // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow) && + (mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXRSICrossedOverLongExit) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXTDBullUnderBear && + mConditions.isXCHMASCTrendsDown && + mConditions.isXTDSignalUnderBear) + // + || + // + ((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastOverSlow) && ( // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalUnderBear) + (mConditions.isXCHMALCPeak && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMin && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest) // || // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest) - // - || - // - (mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMALCPeak && + mConditions.isXCHMASCOverMax && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) && + ( + // + mConditions.isXCHMALCPeak + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXTDSignalUnderBear && + mConditions.isXTDBullCrossedOverBear) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) // ) // @@ -13116,10 +9366,49 @@ bool XUSCHF5XCHMACCHasLongSignal() ( // (mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && + mConditions.isXCHLHMCLCLLSame && mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderNearest) + // + || + // + (mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMax && + mConditions.isXTDBullUnderBear && + mConditions.isXLHHighAttachedHH && + mConditions.isXTDSignalUnderBear && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + || + // + ((mConditions.isXTDBearishVale && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear) && + ( + // + (mConditions.isXTSAllSame && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMAMCTrendsDown) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMAMCTrendsDown) // ) // @@ -13131,9 +9420,13 @@ bool XUSCHF5XCHMACCHasLongSignal() mConditions.isXCHMAMCFastOverSlow) && ( // - (mConditions.isXCHLHSameHHs && - mConditions.isXCHMASCOverMax && - mConditions.isXTSCurrentUnderNearest) + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMax && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentCrossedOverNearest) // ) // @@ -13153,30 +9446,23 @@ bool XUSCHF5XCHMACCHasLongSignal() // ( // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (!mConditions.isXCHMASCTrendsUp && - !mConditions.isXCHMASCTrendsDown && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXTDSignalUnderBear && - mConditions.isXRSICrossedOverLongExit) - // - || - // - (mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXTDSignalUnderBear && - mConditions.isXRSICrossedOverLongExit) - // - ) - // - ) + (mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastOverSlow) + // + || + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) // || // @@ -13184,35 +9470,27 @@ bool XUSCHF5XCHMACCHasLongSignal() mConditions.isXCHMAMCFastOverSlow) && ( // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXLHHighAttachedHH && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) + (mConditions.isXTSCurrentMax && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalUnderBear) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) && + ( + // + mConditions.isXCHLHMCLCHHSame // || // - (mConditions.isXTSCurrentUnderNearest && - ( - // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXTDBearishVale && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) + (mConditions.isXTSCurrentMax && + mConditions.isXTDSignalUnderBear && + mConditions.isXTDBullCrossedOverBear) // ) // @@ -13231,35 +9509,35 @@ bool XUSCHF5XCHMACCHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - mConditions.isXRSICrossedOverLongExit - // - || - // - ((mConditions.isXCHMASCFastOverSlow && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXCHMALCFastOverSlow) && - ( - // - (mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - || // ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCOverMax && + mConditions.isXRSICrossedOverLongExit + // + || + // + (mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) + // + || + // + (mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMax && mConditions.isXTDBullUnderBear && + mConditions.isXLHHighAttachedHH && mConditions.isXTDSignalUnderBear) // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentCrossedOverNearest) + // ) // ) @@ -13354,29 +9632,29 @@ bool XUSCHF5XCHMACCHasLongSignal() // // XCHMACC Short Signal Checking ... -bool XUSCHF5XCHMACCHasShortSignal() +bool XAU5XCHMACCHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXCHMACCEnableSignaller || - !xUSCHF5MXCHMACCAllowShortSignals) + if (!xAU5MXCHMACCEnableSignaller || + !xAU5MXCHMACCAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XCHMACCHasShortConditions() + xAU5Provider.XCHMACCHasShortConditions() // && // @@ -13402,51 +9680,49 @@ bool XUSCHF5XCHMACCHasShortSignal() // ( // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMin && + mConditions.isXTMStartBearish && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCUnderMin && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCUnderMin && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXCHMASCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCUnderMin && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentCrossedOverFarest) + // + || + // + ((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastUnderSlow) && ( // - (mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXTDBullCrossedUnderBear && - ( - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXTDBullOverBear && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXTMNeutural && + mConditions.isXAMABullish && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentCrossedUnderNearest) // ) // @@ -13478,7 +9754,23 @@ bool XUSCHF5XCHMACCHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + ((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastUnderSlow) && + ( + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) + // + ) // ) // @@ -13491,7 +9783,21 @@ bool XUSCHF5XCHMACCHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && + ( + // + (mConditions.isXTDSignalVale && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentCrossedUnderNearest) + // + ) + // + ) + // + ) // ) // @@ -13518,22 +9824,25 @@ bool XUSCHF5XCHMACCHasShortSignal() // ( // - ((mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMASCFastUnderSlow) && + (mConditions.isXCHMASCUnderMin && ( // (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverNearest) + // + || + // + ((mConditions.isXCHMAMCVale && + !mConditions.isXCHMAMCTrendsUp && + !mConditions.isXCHMAMCTrendsDown) && ( // - (mConditions.isXFIOverZero && - mConditions.isXTSCurrentMax && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentOverFarest && + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && mConditions.isXTSCurrentOverMediest) // ) @@ -13542,25 +9851,191 @@ bool XUSCHF5XCHMACCHasShortSignal() // || // - ((mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish) && + (mConditions.isXTSCurrentMin && + mConditions.isXTMStartBearish && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXAMAStartBearish && + mConditions.isXTDSignalUnderBear && + mConditions.isXLHPriceCrossedUnderSignal) + // + || + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( // - (mConditions.isXFIOverZero && + (mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTDBullCrossedUnderBear && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentUnderMediest) + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXLHLLIncreased && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTSCurrentOverFarest && + mConditions.isXCHMALCFastUnderSlow) + // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTMStartBearish && + mConditions.isXAMAStartBearish && + mConditions.isXTDBullUnderBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMAMCFastUnderSlow) + // + || + // + (mConditions.isXCHMALCVale && mConditions.isXTSCurrentMin && + mConditions.isXTDBearishVale && + mConditions.isXLHLLIncreased && + mConditions.isXTDBullUnderBear && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + ((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastUnderSlow) && + ( + // + (mConditions.isXTSCurrentMin && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDBullCrossedUnderBear) + // + ) + // + ) + // + || + // + (((mConditions.isXTSCurrentOverNearest || + mConditions.isXTSCurrentCrossedOverNearest) && + (mConditions.isXTSCurrentOverMediest || + mConditions.isXTSCurrentCrossedOverMediest)) && + ( + // + (mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHLHMCLCLLSame) + // + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastUnderSlow) && + ( + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXAMABullish && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHLHMCLCLLSame) + // + || + // + ((mConditions.isXAMANeutural || + mConditions.isXAMAEndBullish) && + (mConditions.isXTMStartBearish) && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCUnderMin && - mConditions.isXTSCurrentUnderFarest && mConditions.isXLHPriceCrossedUnderSignal) // ) // ) // + || + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && + ( + // + ((mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentCrossedOverNearest) && + ( + // + mConditions.isXAMANeutural + // + || + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) && + ( + // + (mConditions.isXTSCurrentMin && + mConditions.isXLHHHDecreased && + mConditions.isXTDSignalUnderBear && + mConditions.isXTDBullCrossedUnderBear) + // + ) + // + ) + // ) // ) // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentCrossedOverNearest) + // ) // ) @@ -13575,81 +10050,9 @@ bool XUSCHF5XCHMACCHasShortSignal() // ( // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastUnderSlow) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXLHHHDecreased && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentOverNearest) - // - || - // - ((mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear) && - ( - // - mConditions.isXTSCurrentCrossedUnderFarest - // - || - // - (mConditions.isXTDSignalCrossedUnderBear && - mConditions.isXLHPriceCrossedUnderSignal) - // - || - // - (mConditions.isXLHHHDecreased && - mConditions.isXCHMASCUnderMin && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) && - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentCrossedOverNearest) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXLHPriceCrossedUnderSignal) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXTDBullOverBear && + (mConditions.isXTSCurrentOverNearest || + mConditions.isXTSCurrentCrossedOverNearest)) // ) // @@ -13665,31 +10068,82 @@ bool XUSCHF5XCHMACCHasShortSignal() // ( // - ((mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMASCFastUnderSlow) && + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && + (mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXCHMASCUnderMin) + // + || + // + ((mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) && ( // - (mConditions.isXCHLHSameLLs && - mConditions.isXLHLowAttachedLL && - mConditions.isXRSICrossedUnderShortExit) + (mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest) // || // - (mConditions.isXTSCurrentMin && - mConditions.isXLHHHIncreased && - mConditions.isXTDBullOverBear && + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMin && mConditions.isXLHLowAttachedLL && - mConditions.isXTDSignalCrossedUnderBear && - mConditions.isXLHPriceCrossedUnderSignal) + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXCHLHSameLLs && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) + // + || + // + (mConditions.isXCHLHSameLLs && + mConditions.isXTSCurrentMin && + mConditions.isXLHLowAttachedLL && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXRSICrossedUnderShortExit) // ) // ) // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHMASCUnderMin && + mConditions.isXLHLowAttachedLL && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDBullCrossedUnderBear && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXCHLHSameLLs && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMASCUnderMin && + mConditions.isXLHLowAttachedLL && + mConditions.isXTDBullUnderBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXTSCurrentCrossedUnderFarest && + mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXTSCurrentCrossedUnderMediest) + // ) // ) @@ -13700,69 +10154,65 @@ bool XUSCHF5XCHMACCHasShortSignal() mConditions.isXCHMAMCFastUnderSlow) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXLHPriceCrossedUnderSignal) + // + || + // + ((mConditions.isXTSCurrentOverNearest || + mConditions.isXTSCurrentCrossedOverNearest) && ( // - ((mConditions.isXTSCurrentMin && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDBullCrossedUnderBear) - // - || - // - (mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMASCUnderMax && - mConditions.isXCHMASCUnderMin && - mConditions.isXTDBullUnderBear) - // - ) - // - ) - // - || - // - (mConditions.isXCHLHSCMCLLSame && + (mConditions.isXTMBearish && + mConditions.isXAMABearish && mConditions.isXCHLHMCLCHHSame && - mConditions.isXTSCurrentOverNearest) + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) // ) // ) // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) && - ( + || // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && + (mConditions.isXCHMASCUnderMin && ( // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXTSCurrentMin && + mConditions.isXLHLowAttachedLL && + mConditions.isXRSICrossedUnderShortExit) + // + || + // + ((mConditions.isXTSCurrentOverNearest || + mConditions.isXTSCurrentCrossedOverNearest) && ( // - (mConditions.isXLHLowAttachedLL && + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( // - (mConditions.isXTSCurrentMin && - mConditions.isXTSCurrentUnderFarest) - // - || - // - (mConditions.isXTSAllSame && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMASCUnderMin) + ((mConditions.isXCHLHMCLCHHSame) && + ( + // + (mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverFarest) + // + || + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXFICrossedOverZero) + // + ) + // + ) // ) // @@ -13794,19 +10244,56 @@ bool XUSCHF5XCHMACCHasShortSignal() // ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && + (mConditions.isXCHMASCUnderMin && ( // - ((mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsUp) && + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( + // + mConditions.isXRSICrossedUnderShortExit + // + || // (mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMASCUnderMin && - mConditions.isXTDBullCrossedUnderBear) + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) + // + || + // + (mConditions.isXTDBullOverBear && + (mConditions.isXTSCurrentOverMediest || + mConditions.isXTSCurrentCrossedOverMediest)) + // + || + // + (mConditions.isXCHLHSameLLs && + mConditions.isXTSCurrentMin && + mConditions.isXLHLowAttachedLL && + mConditions.isXTDBullCrossedUnderBear && + mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXTSCurrentCrossedUnderMediest) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && + ( + // + (mConditions.isXCHLHSameLLs && + mConditions.isXTSCurrentMin && + mConditions.isXLHLowAttachedLL && + mConditions.isXCHMASCCrossedUnderMin) // ) // @@ -13848,23 +10335,47 @@ bool XUSCHF5XCHMACCHasShortSignal() ((mConditions.isXCHMAMCTrendsDown && mConditions.isXCHMAMCFastUnderSlow) && ( + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + ((mConditions.isXTDSignalUnderBear && + mConditions.isXTDBullCrossedUnderBear) && + ( + // + mConditions.isXTSCurrentOverFarest + // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + ) + // + ) + // + || // (mConditions.isXAMABullish && - mConditions.isXTDBullOverBear) + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXTSCurrentCrossedUnderMediest) // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastUnderSlow) && - ( + || // - (mConditions.isXCHMALCVale && + (mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTSCurrentOverFarest && mConditions.isXTSCurrentOverNearest && - mConditions.isXLHPriceCrossedOverSignal && mConditions.isXTSCurrentCrossedOverNearest) // ) @@ -13897,7 +10408,32 @@ bool XUSCHF5XCHMACCHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && + ( + // + (mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentCrossedUnderFarest && + mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXTSCurrentCrossedUnderMediest) + // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABullish && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXTSCurrentCrossedUnderMediest) + // + ) + // + ) + // + ) // ) // @@ -14000,29 +10536,29 @@ bool XUSCHF5XCHMACCHasShortSignal() // // XCHMAMN Long Signal Checking ... -bool XUSCHF5XCHMAMNHasLongSignal() +bool XAU5XCHMAMNHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXCHMAMNEnableSignaller || - !xUSCHF5MXCHMAMNAllowLongSignals) + if (!xAU5MXCHMAMNEnableSignaller || + !xAU5MXCHMAMNAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XCHMAMNHasLongConditions() + xAU5Provider.XCHMAMNHasLongConditions() // && // @@ -14048,40 +10584,14 @@ bool XUSCHF5XCHMAMNHasLongSignal() // ( // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && ( // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest) - // - ) - // - ) - // - || - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && - mConditions.isXLHLLIncreased && - mConditions.isXTSCurrentCrossedOverFarest && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) + (mConditions.isXTSCurrentMax && + mConditions.isXLHLLIncreased && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) // ) // @@ -14100,7 +10610,49 @@ bool XUSCHF5XCHMAMNHasLongSignal() !mConditions.isXLHHHSameInLength) && // ( - false) + // + (((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) || + (mConditions.isXTMEndBullish && + mConditions.isXAMAEndBullish)) && + ( + // + (mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMALCFastUnderSlow) && + ( + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXTSCurrentMax && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDSignalOverBear && + mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastOverSlow) + // + ) + // + ) + // + ) + // + ) + // + ) // ) // @@ -14114,43 +10666,46 @@ bool XUSCHF5XCHMAMNHasLongSignal() // ( // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTSCurrentMax && + mConditions.isXLHLLIncreased && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXCHMALCVale && + mConditions.isXAMANeutural && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXCHMALCFastUnderSlow && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXCHMASCFastCrossedUnderSlow) + // + || + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && ( // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && - mConditions.isXLHLLIncreased && - mConditions.isXTSCurrentCrossedOverFarest && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMAMCFastOverSlow && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) + (mConditions.isXTSCurrentMax && + mConditions.isXTDSignalUnderBear && + mConditions.isXTDBullCrossedOverBear) // ) // ) // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXCHMALCFastUnderSlow && + mConditions.isXCHMASCFastCrossedUnderSlow && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest) + // ) // ) @@ -14191,30 +10746,18 @@ bool XUSCHF5XCHMAMNHasLongSignal() // ( // - // Check if MC Fast Under Slow ... - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && ( // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsDown && - mConditions.isXCHMALCFastOverSlow) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) + (mConditions.isXAMAVale && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXLHLLIncreased && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverMediest) // ) // @@ -14246,39 +10789,7 @@ bool XUSCHF5XCHMAMNHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMALCTrendsUp && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - mConditions.isXTDSignalUnderBear - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // @@ -14320,22 +10831,116 @@ bool XUSCHF5XCHMAMNHasLongSignal() // ( // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && + (mConditions.isXCHMASCPeak && + mConditions.isXCHMAMCVale && + mConditions.isXTSCurrentMax && + mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXLHPriceCrossedOverSignal) + // + || + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) && ( // - (mConditions.isXCHMALCVale && - mConditions.isXCHMALCTrendsUp) + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) // || // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && + (mConditions.isXTSCurrentMax && + mConditions.isXLHLLIncreased && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentCrossedOverFarest) + // + ) + // + ) + // + || + // + (((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastOverSlow) && + (mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow)) && + ( + // + (mConditions.isXTDSignalVale && + mConditions.isXTSCurrentMax && + mConditions.isXTDBullishVale && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDSignalOverBear) + // + ) + // + ) + // + || + // + (((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && + (mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow)) && + ( + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + ((mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalUnderBear) && ( + // + mConditions.isXLHPriceCrossedOverSignal + // + || // (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) + mConditions.isXCHMASCFastCrossedOverSlow) + // + ) + // + ) + // + || + // + ((mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverNearest) && + ( + // + (mConditions.isXCHMASCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXCHMASCTrendsDown) + // + || + // + (mConditions.isXCHMASCPeak && + mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish) // ) // @@ -14359,49 +10964,92 @@ bool XUSCHF5XCHMAMNHasLongSignal() // ( // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXTSCurrentCrossedUnderMediest) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXCHMALCFastUnderSlow && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + mConditions.isXTDBullUnderBear && + mConditions.isXLHHighAttachedHH && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXLHPriceCrossedOverSignal) + // + || + // + ((mConditions.isXCHMASCPeak && + mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastOverSlow) && ( // - (mConditions.isXLHHHIncreased && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) + (mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) // || // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH && - mConditions.isXLHPriceCrossedOverSignal && - mConditions.isXCHMASCFastCrossedOverSlow && - mConditions.isXTSCurrentCrossedOverFarest && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) - // - || - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH && - mConditions.isXLHPriceCrossedOverSignal && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest) - // - ) - // - ) + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXTSCurrentMax && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentCrossedOverFarest) // ) // ) // + || + // + ((mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMALCFastUnderSlow) && + ( + // + (mConditions.isXCHMASCPeak && + mConditions.isXCHMAMCVale && + mConditions.isXTSCurrentMax && + mConditions.isXLHHHDecreased && + mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastUnderSlow && + mConditions.isXCHMAMCFastUnderSlow) + // + ) + // + ) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXTMStartBullish && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDBullOverBear && + mConditions.isXAMAStartBullish && + mConditions.isXTDSignalOverBear && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXCHMALCFastUnderSlow && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverMediest) + // ) // ) @@ -14416,21 +11064,24 @@ bool XUSCHF5XCHMAMNHasLongSignal() // ( // - // Check LC Fast Under Slow ... - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && + (mConditions.isXCHMASCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMASCFastOverSlow && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + ((mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMALCFastUnderSlow) && ( // - (mConditions.isXCHMALCTrendsUp && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) + (mConditions.isXTSCurrentMax && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMAMCFastUnderSlow) // ) // @@ -14539,29 +11190,29 @@ bool XUSCHF5XCHMAMNHasLongSignal() // // XCHMAMN Short Signal Checking ... -bool XUSCHF5XCHMAMNHasShortSignal() +bool XAU5XCHMAMNHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXCHMAMNEnableSignaller || - !xUSCHF5MXCHMAMNAllowShortSignals) + if (!xAU5MXCHMAMNEnableSignaller || + !xAU5MXCHMAMNAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XCHMAMNHasShortConditions() + xAU5Provider.XCHMAMNHasShortConditions() // && // @@ -14652,20 +11303,31 @@ bool XUSCHF5XCHMAMNHasShortSignal() // ( // - // Check if SC Fast Over Slow ... - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMBearish && - mConditions.isXTSAllSame && - mConditions.isXAMABearish && - mConditions.isXLHLLDecreased && - mConditions.isXCHMALCFastOverSlow) - // - ) - // - ) + (mConditions.isXCHMASCVale && + mConditions.isXCHMASCTrendsDown) + // + || + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMAMCTrendsDown) + // + || + // + (mConditions.isXCHMASCFastOverSlow && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXTSCurrentOverNearest) // || // @@ -14673,23 +11335,15 @@ bool XUSCHF5XCHMAMNHasShortSignal() mConditions.isXCHMAMCFastUnderSlow) && ( // - ((mConditions.isXFIOverZero && - mConditions.isXTDBullOverBear && - mConditions.isXFICrossedOverZero) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXTSAllSame && - mConditions.isXCHMASCCrossedUnderMin && - mConditions.isXCHMASCFastCrossedUnderSlow) - // - ) - // - ) + (mConditions.isXCHMALCVale && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMASCCrossedUnderMin && + mConditions.isXTSCurrentCrossedUnderFarest) // ) // @@ -14891,29 +11545,29 @@ bool XUSCHF5XCHMAMNHasShortSignal() // // XCHMAMX Long Signal Checking ... -bool XUSCHF5XCHMAMXHasLongSignal() +bool XAU5XCHMAMXHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXCHMAMXEnableSignaller || - !xUSCHF5MXCHMAMXAllowLongSignals) + if (!xAU5MXCHMAMXEnableSignaller || + !xAU5MXCHMAMXAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XCHMAMXHasLongConditions() + xAU5Provider.XCHMAMXHasLongConditions() // && // @@ -14938,7 +11592,55 @@ bool XUSCHF5XCHMAMXHasLongSignal() mConditions.isXLHHHSameInLength) && // ( - false) + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) && + ( + // + (mConditions.isXTMEndBullish && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) && + ( + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXCHMASCFastCrossedOverSlow && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + ) // ) // @@ -14964,7 +11666,28 @@ bool XUSCHF5XCHMAMXHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + (((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + (mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow)) && + ( + // + (mConditions.isXTSCurrentMin && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTMStartBearish && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXAMAStartBearish && + mConditions.isXTDBullUnderBear && + mConditions.isXLHLowAttachedLL && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMASCFastCrossedUnderSlow) + // + ) + // + ) + // + ) // ) // @@ -15003,7 +11726,25 @@ bool XUSCHF5XCHMAMXHasLongSignal() mConditions.isXLHHHSameInLength) && // ( - false) + // + ((mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTDBearishVale && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + ) // ) // @@ -15029,7 +11770,36 @@ bool XUSCHF5XCHMAMXHasLongSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + ( + mConditions.isXCHMAMCPeak && + ( + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + ) + // + ) + // + ) + // + ) + // + )) + // + ) // ) // @@ -15199,29 +11969,29 @@ bool XUSCHF5XCHMAMXHasLongSignal() // // XCHMAMX Short Signal Checking ... -bool XUSCHF5XCHMAMXHasShortSignal() +bool XAU5XCHMAMXHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xUSCHF5MXCHMAMXEnableSignaller || - !xUSCHF5MXCHMAMXAllowShortSignals) + if (!xAU5MXCHMAMXEnableSignaller || + !xAU5MXCHMAMXAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xAU5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xUSCHF5Provider.XCHMAMXHasShortConditions() + xAU5Provider.XCHMAMXHasShortConditions() // && // @@ -15246,7 +12016,86 @@ bool XUSCHF5XCHMAMXHasShortSignal() mConditions.isXLHHHSameInLength) && // ( - false) + // + (mConditions.isXAMANeutural && + mConditions.isXTSCurrentMin && + (!mConditions.isXCHMAMCTrendsUp && + !mConditions.isXCHMAMCTrendsDown) && + mConditions.isXCHMAMCFastOverSlow) + // + || + // + (((mConditions.isXTMNeutural && + mConditions.isXTMEndBearish) && + (mConditions.isXAMANeutural && + mConditions.isXAMAEndBearish)) && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear) + // + ) + // + ) + // + || + // + (((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastUnderSlow) && + (mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow)) && + ( + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsUp) + // + ) + // + ) + // + || + // + (((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && + (mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow)) && + ( + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXTSCurrentMin && + mConditions.isXTDSignalUnderBear && + mConditions.isXTDBullCrossedUnderBear && + mConditions.isXTSCurrentCrossedUnderNearest) + // + ) + // + ) + // + || + // + (mConditions.isXCHMASCVale && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMASCFastOverSlow && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXCHMALCFastOverSlow) + // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXTMStartBearish && + mConditions.isXAMAStartBearish && + mConditions.isXTDBullUnderBear && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMALCFastUnderSlow) + // + ) // ) // @@ -15259,7 +12108,15 @@ bool XUSCHF5XCHMAMXHasShortSignal() !mConditions.isXLHHHSameInLength) && // ( - false) + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) + // + ) // ) // @@ -15272,7 +12129,35 @@ bool XUSCHF5XCHMAMXHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + (mConditions.isXTSCurrentMin && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTMStartBearish && + mConditions.isXLHLowAttachedLL && + mConditions.isXAMAStartBearish && + mConditions.isXCHMASCFastCrossedUnderSlow) + // + || + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) && + ( + // + (mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXTMStartBearish && + mConditions.isXAMAStartBearish && + mConditions.isXTDSignalOverBear && + mConditions.isXCHMAMCFastOverSlow) + // + ) + // + ) + // + ) // ) // @@ -15286,20 +12171,43 @@ bool XUSCHF5XCHMAMXHasShortSignal() // ( // - // Check LC Fast Over Slow ... - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && ( // - (mConditions.isXCHLHSameLLs && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHLowAttachedLL) + ((mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXLHLowAttachedLL) && + ( + // + mConditions.isXTDSignalCrossedUnderBear + // + || + // + (mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentCrossedUnderFarest) + // + ) + // + ) // ) // ) // + || + // + (mConditions.isXTMNeutural && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXAMAStartBearish && + mConditions.isXLHLowAttachedLL && + mConditions.isXTDSignalOverBear && + mConditions.isXTSCurrentCrossedUnderFarest) + // ) // ) @@ -15327,26 +12235,40 @@ bool XUSCHF5XCHMAMXHasShortSignal() // ( // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && + ((mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear) && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && + (mConditions.isXLHHHDecreased && + mConditions.isXTSCurrentOverFarest && + mConditions.isXLHPriceCrossedUnderSignal) + // + ) + // + ) + // + || + // + ((mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) && + ( + // + ((mConditions.isXTMStartBearish && + mConditions.isXAMAStartBearish) && ( // - (mConditions.isXCHMALCFastOverSlow && + (mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastUnderSlow) && + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow)) && ( // - (mConditions.isXCHMALCTrendsUp && - mConditions.isXCHMASCFastOverSlow) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMin && - mConditions.isXTSCurrentCrossedUnderNearest) + mConditions.isXTSCurrentOverFarest // ) // @@ -15356,6 +12278,16 @@ bool XUSCHF5XCHMAMXHasShortSignal() // ) // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTMStartBearish && + mConditions.isXAMAStartBearish && + mConditions.isXTSCurrentCrossedUnderNearest) + // ) // ) @@ -15373,7 +12305,36 @@ bool XUSCHF5XCHMAMXHasShortSignal() !mConditions.isXLHHHSameInLength) && // ( - false) + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest + // + ) + // + ) + // + || + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXTDBullOverBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + ) // ) // @@ -15387,28 +12348,36 @@ bool XUSCHF5XCHMAMXHasShortSignal() // ( // - // Check if MC Fast Over Slow ... - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && + ((mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMALCFastOverSlow) && ( // - (mConditions.isXCHMALCFastOverSlow && - ( - // - (mConditions.isXTSAllSame && - mConditions.isXCHMALCPeak && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXLHLowAttachedLL && - mConditions.isXLHPriceCrossedUnderSignal) - // - ) - // - ) + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXLHLowAttachedLL && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentCrossedOverNearest) // ) // ) // + || + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXLHLowAttachedLL && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMASCFastCrossedUnderSlow && + mConditions.isXTSCurrentCrossedUnderNearest) + // ) // ) @@ -15450,7 +12419,95 @@ bool XUSCHF5XCHMAMXHasShortSignal() mConditions.isXLHHHSameInLength) && // ( - false) + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && + ( + // + (mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTDSignalCrossedUnderBear) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear) + // + || + // + (mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest) + // + ) + // + ) + // + ) + // + ) + // + || + // + (((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastUnderSlow) && + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow)) && + ( + // + (mConditions.isXAMABullish && + mConditions.isXTSCurrentMin && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentCrossedUnderFarest && + mConditions.isXTSCurrentCrossedUnderMediest) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXAMABullish && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentCrossedUnderMediest) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) && + ( + // + (mConditions.isXAMANeutural && + mConditions.isXTSCurrentMin && + mConditions.isXAMAEndBullish && + mConditions.isXTDBullOverBear && + mConditions.isXTMStartBearish && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCCrossedUnderMax && + mConditions.isXTDSignalCrossedUnderBear && + mConditions.isXCHMASCFastCrossedUnderSlow) + // + ) + // + ) + // + ) // ) // @@ -15476,7 +12533,25 @@ bool XUSCHF5XCHMAMXHasShortSignal() !mConditions.isXLHLLSameInLength) && // ( - false) + // + (((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastUnderSlow) && + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow)) && + ( + // + (mConditions.isXTMBearish && + mConditions.isXAMABullish && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + ) // ) // diff --git a/BKP/Main/Providers/x-saherelm.xau5.provider.inputs.lib.mq5 b/BKP/Main/Providers/x-saherelm.xau5.provider.inputs.lib.mq5 new file mode 100644 index 00000000..94956f64 --- /dev/null +++ b/BKP/Main/Providers/x-saherelm.xau5.provider.inputs.lib.mq5 @@ -0,0 +1,283 @@ +/////////////////////////////////////////////////////////////// +// +// SaherElm IT Center MQL5 XAU5 Signal Provider Library Inputs +// ----------------------------------------------------------- +// +// 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 Logger ... +#include "../Libraries/x-saherelm.log.lib.mq5" + +// +// Include Classes ... +#include "../Classes/x-saherelm.class.lib.mq5" + +// +input group "XAU5 Provider"; + +// +// Commonly Used Configurations ... +input group "XAU5 Common"; +// +// Provider ... +input bool xAU5EnableProvider = true; // Enable Provider +input int xAU5NumberOfItemsPerTick = 30; // Number Of items Readed In Each Tick +// +// Alerts ... +input bool xAU5EnableAlerts = true; // Enable Events Alert +input bool xAU5EnableHourlyAlerts = false; // Send Alert on each new Hour +input bool xAU5EnableDailyAlerts = false; // Send Alert on each new Day +input bool xAU5EnableWeeklyAlerts = false; // Send Alert on each new Week +input bool xAU5EnableMonthlyAlerts = false; // Send Alert on each new Month +// +// Reports ... +input bool xAU5EnableDailyReports = false; // Send Report on each new Day +input bool xAU5EnableWeeklyReports = false; // Send Report on each new Week +input bool xAU5EnableMonthlyReports = false; // Send Report on each new Month + +// +// Trader and Expert Specific Configurations ... +input group "XAU5 Trader"; +input int xAU5MagicNumber = 16940561; // Trader MagicNumber +input int xAU5Slippage = 10; // Trader Slippage + +// +// Trades Management Configurations ... +input group "XAU5 Trade Management"; +input bool xAU5AllowLongTrades = true; // Allow Long Trades +input bool xAU5AllowShortTrades = true; // Allow Short Trades + +// +// Risk Management Configurations ... +input group "XAU5 Risk Management"; +// +// Trade Count ... +input int xAU5MaxAllowedTrades = 10; // Max Allowed Trades at Same Time +input ENUM_X_CROSS_SIGNAL_METHOD xAU5CrossSignalsMethod = X_CROSS_SIGNAL_REGULAR; // Handle Cross Signals Method +// +// Max Allowed Trade Age ... +input int xAU5MaxAllowedTradeAge = 1500; // Detect Long Time Trades +input ENUM_X_GUARD_ACTIONS xAU5OldTradesAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_1; // What to do with Old Trades +// +// Trade Volume Specific Configurations ... +input double xAU5StaticVolumeFactor = 0.0001; // Static Volume baesd on Balance +input ENUM_STATIC_VOLUME_METHODS xAU5StaticVolumeMethod = X_STATIC_VOLUME_BASED_ON_BALANCE; // How to Calculate Static Volume +input double xAU5VolumeMultiplier = 0; // Volume Increase Multiplier +input double xAU5ApplyVolumeMultiplierFactor = 0; // Apply Volume Multiplier Rate based on Balance +input double xAU5MaxSupportedVolumePerTradeFactor = 0; // Max Supported Volume Per Trade Factor based on Balance +input double xAU5IncreasedMaxSupportedVolumeRate = 0; // Increase Max Supported Volume based on Balance +// +// Trade Profits ... +input double xAU5MinRewardInPips = 60; // Minimum Reward Per Trade in Pips +input double xAU5RiskFreeStepInPips = 0; // Make Trades Risk Free Steps in Pips +input double xAU5RiskFreeRate = 0; // Volume Multiplier for Risk Free Trades +// +// Guard Riskable Money and Profits ... +input double xAU5CriticalDrawDownFactor = 0.20; // Critical Allowed Drawdown Factor based on Balance +input ENUM_X_GUARD_ACTIONS xAU5CriticalGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_1; // Specify Guard Action on Critical Drawdown +input double xAU5MaxAllowedDrawDownFactor = 0.25; // Max Allowed Drawdown Factor based on Balance +input ENUM_X_GUARD_ACTIONS xAU5MaxAllowedGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_5; // Specify Guard Action on Max Allowed Drawdown +input int xAU5GuardStopoutFiredAfterTouches = 5; // Guard Stopout all Trades if Max Allowed Drawdown touched + +// +// Account Conditions for Trading ... +input double xAU5BalanceFactorForOpenTrades = 0.5; // Minimum Balance for Open Trades +input double xAU5FreeMarginFactorForOpenTrades = 0.8; // Minimum Free Margin for Open Trades + +// +// May be Used Later as Input Params ... +bool xAU5UseVirtualTPSl = false; // Use Virtual TP SL +bool xAU5EnableSignalAlerts = false; // Send Signal Alert + +// +// Validate Inputs before Initialization ... +bool XAU5ValidateInputs() +{ + // + bool result = false; + + // + // Implement Other Verifications ... + + // + // Check Trading Availability ... + bool isTradeAvailable = xAU5AllowLongTrades || xAU5AllowShortTrades; + if (!isTradeAvailable) + { + LogMessage("XAU5 => Warning: Trading disabled ..."); + } + + // + // Chekc Number of reading items per tick ... + result = xAU5NumberOfItemsPerTick >= 5; + if (!result) + { + // + LogMessage("XAU5 invalid Number of items Reading Per Tick ..."); + + // + return result; + } + + // + // Check Max Allowed Trades Count ... + result = isTradeAvailable && xAU5MaxAllowedTrades >= 1; + if (!result) + { + // + LogMessage("XAU5 Number of Trades not valid ..."); + + // + return result; + } + + // + // Check Free Margin ... + result = + isTradeAvailable && + xAU5FreeMarginFactorForOpenTrades > 0 && + xAU5FreeMarginFactorForOpenTrades < 1; + if (!result) + { + // + LogMessage("XAU5 Invalid Free Margin ..."); + + // + return result; + } + + // + // Check min Balance for Open Trades ... + result = + isTradeAvailable && + xAU5BalanceFactorForOpenTrades > 0 && + xAU5BalanceFactorForOpenTrades < 1; + if (!result) + { + // + LogMessage("XAU5 Invalid Min Balance for Open Trades ..."); + + // + return result; + } + + // + // Check Min Reward Per Trade ... + result = xAU5MinRewardInPips > 0; + if (!result) + { + // + LogMessage("XAU5 Invalid Min Reward Per Trade ..."); + + // + return result; + } + + // + // Check Trades Volume ... + result = xAU5StaticVolumeFactor > 0; + if (!result) + { + // + LogMessage("XAU5 Invalid Static Volume ..."); + + // + return result; + } + + // + // Check Volume Multiplier ... + result = xAU5VolumeMultiplier >= 0; + if (!result) + { + // + LogMessage("XAU5 Invalid Volume Multiplier ..."); + + // + return result; + } + + // + result = + xAU5CriticalDrawDownFactor == 0 || (xAU5CriticalDrawDownFactor > 0 && + xAU5CriticalDrawDownFactor < 1); + if (!result) + { + // + LogMessage("XAU5 Invalid Critical DrawDown Factor ..."); + + // + return result; + } + + // + result = + xAU5MaxAllowedDrawDownFactor == 0 || (xAU5MaxAllowedDrawDownFactor > 0 && + xAU5MaxAllowedDrawDownFactor < 1); + if (!result) + { + // + LogMessage("XAU5 Invalid Max Allowed DrawDown Factor ..."); + + // + return result; + } + + // + // Check Guard Actions ... + // + result = + xAU5CriticalDrawDownFactor > 0 && + xAU5CriticalDrawDownFactor < 1 && + xAU5MaxAllowedDrawDownFactor > 0 && + xAU5MaxAllowedDrawDownFactor < 1; + if (!result) + { + // + LogMessage("XAU5 For Critical Drawdown, you have to Specify Max Drawdown also ..."); + + // + return result; + } + + // + result = xAU5CriticalDrawDownFactor > 0 && xAU5CriticalDrawDownFactor < xAU5MaxAllowedDrawDownFactor; + if (!result) + { + // + LogMessage("XAU5 Critical Drawdown must Smaller than Max Drawdown ..."); + + // + return result; + } + + // + if (xAU5CriticalDrawDownFactor > 0 && xAU5CriticalGuardAction == X_GUARD_DO_NOTHING) + { + LogMessage("XAU5 IMPORTANT you Specified Critical Drawdown, but there is no any Guard Action ..."); + } + + // + if (xAU5MaxAllowedDrawDownFactor > 0 && xAU5MaxAllowedGuardAction == X_GUARD_DO_NOTHING) + { + LogMessage("XAU5 IMPORTANT you Specified Max Allowed Drawdown, but there is no any Guard Action ..."); + } + + // + result = true; + + // + return result; +} \ No newline at end of file diff --git a/BKP/Main/Providers/x-saherelm.xuschf5.provider.lib.mq5 b/BKP/Main/Providers/x-saherelm.xau5.provider.lib.mq5 similarity index 60% rename from BKP/Main/Providers/x-saherelm.xuschf5.provider.lib.mq5 rename to BKP/Main/Providers/x-saherelm.xau5.provider.lib.mq5 index 46e26734..96e5fdbd 100644 --- a/BKP/Main/Providers/x-saherelm.xuschf5.provider.lib.mq5 +++ b/BKP/Main/Providers/x-saherelm.xau5.provider.lib.mq5 @@ -1,9 +1,9 @@ //////////////////////////////////////////////////////////// // -// SaherElm IT Center MQL5 XUSCHF5 Signal Provider Library +// SaherElm IT Center MQL5 XAU5 Signal Provider Library // -------------------------------------------------------- -// Name: XUSCHF5SignalProvider -// Description: XUSCHF5 based signal provider ... +// Name: XAU5SignalProvider +// Description: XAU5 based signal provider ... // // // Maintainer: @@ -19,13 +19,13 @@ #property version "1.00" #property strict -#define XUSCHF5ProviderName "XUSCHF5" +#define XAU5ProviderName "XAU5" // // START Inputs ... // -#include "x-saherelm.xuschf5.provider.inputs.lib.mq5"; +#include "x-saherelm.xau5.provider.inputs.lib.mq5"; // // END Inputs ... @@ -56,42 +56,42 @@ // // -XCGuard *xUSCHF5Guard; -XCTrade *xUSCHF5Trader; -XCReporter *xUSCHF5Reporter; -XCCollector *xUSCHF5Collector; -XCAccountInfo *xUSCHF5AccountInfo; -XCVolumeManager *xUSCHF5VolumeManager; +XCGuard *xAU5Guard; +XCTrade *xAU5Trader; +XCReporter *xAU5Reporter; +XCCollector *xAU5Collector; +XCAccountInfo *xAU5AccountInfo; +XCVolumeManager *xAU5VolumeManager; // -#include "x-saherelm.xuschf5.provider.indicators.lib.mq5" +#include "x-saherelm.xau5.provider.indicators.lib.mq5" // // Controlling Variables ... -bool xUSCHF5MEnableProvider = false; -bool xUSCHF5MAllowLongTrades = false; -bool xUSCHF5MAllowShortTrades = false; +bool xAU5MEnableProvider = false; +bool xAU5MAllowLongTrades = false; +bool xAU5MAllowShortTrades = false; // -double xUSCHF5Deposit = 0; -double xUSCHF5Balance = 0; -double xUSCHF5MinReward = 0; -double xUSCHF5FreeMargin = 0; -double xUSCHF5BalanceForOpenTrades = 0; -double xUSCHF5FreeMarginForOpenTrades = 0; +double xAU5Deposit = 0; +double xAU5Balance = 0; +double xAU5MinReward = 0; +double xAU5FreeMargin = 0; +double xAU5BalanceForOpenTrades = 0; +double xAU5FreeMarginForOpenTrades = 0; // // Guard ... -double xUSCHF5CriticalDrawDown = 0; -double xUSCHF5MaxAllowedDrawDown = 0; +double xAU5CriticalDrawDown = 0; +double xAU5MaxAllowedDrawDown = 0; // -double xUSCHF5MaxDrawUp = 0; -double xUSCHF5MaxDrawDown = 0; +double xAU5MaxDrawUp = 0; +double xAU5MaxDrawDown = 0; // int NOT_ENOUGH_MONEY_ERROR = 4756; -const string XUSCHF5_SUPPORT_ID = "SP"; +const string XAU5_SUPPORT_ID = "SP"; // // END Global Definitions: Variables, Properties and etc ... @@ -103,26 +103,26 @@ const string XUSCHF5_SUPPORT_ID = "SP"; // // Initial Library if required ... -bool XUSCHF5InitSignalProviderLibrary() +bool XAU5InitSignalProviderLibrary() { // bool result = false; // - if (!xUSCHF5EnableProvider) + if (!xAU5EnableProvider) { return result; } // // Controlling Variables ... - xUSCHF5MEnableProvider = xUSCHF5EnableProvider; - xUSCHF5MAllowLongTrades = xUSCHF5AllowLongTrades; - xUSCHF5MAllowShortTrades = xUSCHF5AllowShortTrades; + xAU5MEnableProvider = xAU5EnableProvider; + xAU5MAllowLongTrades = xAU5AllowLongTrades; + xAU5MAllowShortTrades = xAU5AllowShortTrades; // // Validate Inputs ... - result = XUSCHF5ValidateInputs(); + result = XAU5ValidateInputs(); if (!result) { return result; @@ -130,113 +130,113 @@ bool XUSCHF5InitSignalProviderLibrary() // // Init Indicators ... - result = XUSCHF5InitIndicators(); + result = XAU5InitIndicators(); if (!result) { return result; } // - xUSCHF5Reporter = new XCReporter(); - xUSCHF5Collector = new XCCollector(); - xUSCHF5AccountInfo = new XCAccountInfo(); + xAU5Reporter = new XCReporter(); + xAU5Collector = new XCCollector(); + xAU5AccountInfo = new XCAccountInfo(); // // Calculate Account Deposit ... - xUSCHF5Deposit = xUSCHF5AccountInfo.GetInitialBalance(); + xAU5Deposit = xAU5AccountInfo.GetInitialBalance(); // // Prepare Min Reward ... - if (xUSCHF5MinRewardInPips > 0) + if (xAU5MinRewardInPips > 0) { - xUSCHF5MinReward = PipsToPrice(xUSCHF5MinRewardInPips); + xAU5MinReward = PipsToPrice(xAU5MinRewardInPips); } // // Calculate Min Balance for Trades ... - if (xUSCHF5BalanceFactorForOpenTrades > 0) + if (xAU5BalanceFactorForOpenTrades > 0) { - xUSCHF5BalanceForOpenTrades = xUSCHF5BalanceFactorForOpenTrades * xUSCHF5Deposit; + xAU5BalanceForOpenTrades = xAU5BalanceFactorForOpenTrades * xAU5Deposit; } // // Claculate Min Free Marging for Trades ... - if (xUSCHF5FreeMarginFactorForOpenTrades > 0) + if (xAU5FreeMarginFactorForOpenTrades > 0) { - xUSCHF5FreeMarginForOpenTrades = xUSCHF5FreeMarginFactorForOpenTrades * xUSCHF5Deposit; + xAU5FreeMarginForOpenTrades = xAU5FreeMarginFactorForOpenTrades * xAU5Deposit; } // // Calculate Init Time Critical DrawDown Value ... - if (xUSCHF5CriticalDrawDownFactor > 0) + if (xAU5CriticalDrawDownFactor > 0) { - xUSCHF5CriticalDrawDown = xUSCHF5CriticalDrawDownFactor * xUSCHF5Deposit; + xAU5CriticalDrawDown = xAU5CriticalDrawDownFactor * xAU5Deposit; } // // Calculate Init Time Max Allowed DrawDown Value ... - if (xUSCHF5MaxAllowedDrawDownFactor > 0) + if (xAU5MaxAllowedDrawDownFactor > 0) { - xUSCHF5MaxAllowedDrawDown = xUSCHF5MaxAllowedDrawDownFactor * xUSCHF5Deposit; + xAU5MaxAllowedDrawDown = xAU5MaxAllowedDrawDownFactor * xAU5Deposit; } // // Instant Volume Manager ... - xUSCHF5VolumeManager = new XCVolumeManager( - xUSCHF5StaticVolumeFactor, - xUSCHF5StaticVolumeMethod, - xUSCHF5VolumeMultiplier, - xUSCHF5ApplyVolumeMultiplierFactor, - xUSCHF5MaxSupportedVolumePerTradeFactor, - xUSCHF5IncreasedMaxSupportedVolumeRate); + xAU5VolumeManager = new XCVolumeManager( + xAU5StaticVolumeFactor, + xAU5StaticVolumeMethod, + xAU5VolumeMultiplier, + xAU5ApplyVolumeMultiplierFactor, + xAU5MaxSupportedVolumePerTradeFactor, + xAU5IncreasedMaxSupportedVolumeRate); // // Make XCTrader instance ... - xUSCHF5Trader = new XCTrade( - XUSCHF5ProviderName, + xAU5Trader = new XCTrade( + XAU5ProviderName, _Symbol, - xUSCHF5Slippage, - xUSCHF5MagicNumber, - xUSCHF5UseVirtualTPSl, - xUSCHF5MaxAllowedTrades, - xUSCHF5FreeMarginForOpenTrades, - xUSCHF5BalanceForOpenTrades); + xAU5Slippage, + xAU5MagicNumber, + xAU5UseVirtualTPSl, + xAU5MaxAllowedTrades, + xAU5FreeMarginForOpenTrades, + xAU5BalanceForOpenTrades); // // Instantiate Account Guard ... - xUSCHF5Guard = new XCGuard( + xAU5Guard = new XCGuard( // // Old Trades ... - xUSCHF5MaxAllowedTradeAge, - xUSCHF5OldTradesAction, + xAU5MaxAllowedTradeAge, + xAU5OldTradesAction, // // Critical DrawDown ... - xUSCHF5CriticalDrawDownFactor, - xUSCHF5CriticalGuardAction, + xAU5CriticalDrawDownFactor, + xAU5CriticalGuardAction, // // Max Allowed DrawDown ... - xUSCHF5MaxAllowedDrawDownFactor, - xUSCHF5MaxAllowedGuardAction, - xUSCHF5GuardStopoutFiredAfterTouches, + xAU5MaxAllowedDrawDownFactor, + xAU5MaxAllowedGuardAction, + xAU5GuardStopoutFiredAfterTouches, // - // xUSCHF5GuardSupportMethod + // xAU5GuardSupportMethod X_SUPPORT_DO_NOTHING // ); // // Reset Calculations Buffers and Variables ... - XUSCHF5ResetCollectors(); + XAU5ResetCollectors(); // - XUSCHF5UpdateReports(); + XAU5UpdateReports(); // result = true; // // Logging State ... - XUSCHF5IssueInitializationSucceedAlert(); + XAU5IssueInitializationSucceedAlert(); // return result; @@ -244,65 +244,65 @@ bool XUSCHF5InitSignalProviderLibrary() // // DeInitial Library if required ... -void XUSCHF5DeinitSignalProviderLibrary(const int reason) +void XAU5DeinitSignalProviderLibrary(const int reason) { // // Release Handlers ... - XUSCHF5ReleaseIndicators(); + XAU5ReleaseIndicators(); // // Logging State ... - XUSCHF5IssueDeinitializationSucceedAlert(); + XAU5IssueDeinitializationSucceedAlert(); } // // this is a Globally Function which do all of // checkings and positions handling ... -void XUSCHF5SignalProviderHandleTick() +void XAU5SignalProviderHandleTick() { // // Check Provider is Enable or Not ... - if (!xUSCHF5MEnableProvider) + if (!xAU5MEnableProvider) { return; } // - XUSCHF5SignalProviderDoControlState(); + XAU5SignalProviderDoControlState(); // // Reading Indicator Buffers ... - XUSCHF5HandleReadingBuffers(); - if (xUSCHF5CalculatedBars < xUSCHF5MaxLengthOfInputs) + XAU5HandleReadingBuffers(); + if (xAU5CalculatedBars < xAU5MaxLengthOfInputs) { return; } // // Handle Open Trades ... - XUSCHF5HandleOpenTrades(); + XAU5HandleOpenTrades(); // // Handle Close Trades ... - XUSCHF5HandleCloseTrades(); + XAU5HandleCloseTrades(); // // DrawDown and DrawUp ... - XUSCHF5HandleCalculateDrawDownUp(); + XAU5HandleCalculateDrawDownUp(); } // // Do Control Checks here ... -void XUSCHF5SignalProviderDoControlState() +void XAU5SignalProviderDoControlState() { // // Update account Balance ... - xUSCHF5Balance = xUSCHF5AccountInfo.GetBalance(); - xUSCHF5FreeMargin = xUSCHF5AccountInfo.GetFreeMargin(); + xAU5Balance = xAU5AccountInfo.GetBalance(); + xAU5FreeMargin = xAU5AccountInfo.GetFreeMargin(); // // Check Provider is Enable or Not ... - if (!xUSCHF5MEnableProvider) + if (!xAU5MEnableProvider) { return; } @@ -312,10 +312,10 @@ void XUSCHF5SignalProviderDoControlState() // TODO: add Guard Result here ... string guardMessage = ""; XGuardHandlerResult guardHandlerResult; - bool isGuarded = xUSCHF5Guard.Guard( + bool isGuarded = xAU5Guard.Guard( guardHandlerResult, guardMessage, - xUSCHF5Trader, + xAU5Trader, _Period); if (isGuarded) { @@ -331,7 +331,7 @@ void XUSCHF5SignalProviderDoControlState() XSignal iSignal = guardHandlerResult.criticals[i]; // - XUSCHF5OnGuard( + XAU5OnGuard( iSignal, X_GUARDED_CRITICAL, guardMessage); @@ -350,7 +350,7 @@ void XUSCHF5SignalProviderDoControlState() XSignal iSignal = guardHandlerResult.maxes[i]; // - XUSCHF5OnGuard( + XAU5OnGuard( iSignal, X_GUARDED_MAX, guardMessage, @@ -370,7 +370,7 @@ void XUSCHF5SignalProviderDoControlState() XSignal iSignal = guardHandlerResult.olds[i]; // - XUSCHF5OnGuard( + XAU5OnGuard( iSignal, X_GUARDED_OLD, guardMessage); @@ -381,9 +381,9 @@ void XUSCHF5SignalProviderDoControlState() // // Signal Protection ... XSignal protectSupports[]; - bool isSupported = xUSCHF5Guard.ProtectSignals( + bool isSupported = xAU5Guard.ProtectSignals( protectSupports, - xUSCHF5Trader); + xAU5Trader); if (isSupported) { // @@ -393,7 +393,7 @@ void XUSCHF5SignalProviderDoControlState() // // Handling Signals ... XTraderHandlerResult signalHandlerResult; - xUSCHF5Trader.HandleSignals( + xAU5Trader.HandleSignals( signalHandlerResult, false // Ignore Risk Free Trdaes ); @@ -408,7 +408,7 @@ void XUSCHF5SignalProviderDoControlState() { // XSignal iSignal = signalHandlerResult.sl[i]; - XUSCHF5OnSL(iSignal); + XAU5OnSL(iSignal); } } @@ -422,7 +422,7 @@ void XUSCHF5SignalProviderDoControlState() { // XSignal iSignal = signalHandlerResult.tp[i]; - XUSCHF5OnTP(iSignal); + XAU5OnTP(iSignal); } } @@ -436,18 +436,18 @@ void XUSCHF5SignalProviderDoControlState() { // XSignal iSignal = signalHandlerResult.rf[i]; - XUSCHF5OnRF(iSignal); + XAU5OnRF(iSignal); } } } // // Handle Trades when OnTrade Event Hnadler Calls ... -void XUSCHF5SignalProviderHandleTrade() +void XAU5SignalProviderHandleTrade() { // // Check Provider Enabled ... - if (!xUSCHF5MEnableProvider) + if (!xAU5MEnableProvider) { return; } @@ -455,7 +455,7 @@ void XUSCHF5SignalProviderHandleTrade() // // Handle OnTrade Event ... XOnTradeHandlerResult result = {}; - xUSCHF5Trader.HandleOnTradeEvent( + xAU5Trader.HandleOnTradeEvent( result); // @@ -463,27 +463,27 @@ void XUSCHF5SignalProviderHandleTrade() if (result.hasNewDeal) { // - XDeal last = xUSCHF5Trader.GetLastDeal(); + XDeal last = xAU5Trader.GetLastDeal(); // if (last.reason == DEAL_REASON_SL) { - xUSCHF5Reporter.AddTradeSLInReports(); + xAU5Reporter.AddTradeSLInReports(); } else if (last.reason == DEAL_REASON_TP) { - xUSCHF5Reporter.AddTradeTPInReports(); + xAU5Reporter.AddTradeTPInReports(); } } } // // Handle Open Trades ... -void XUSCHF5HandleOpenTrades() +void XAU5HandleOpenTrades() { // // Check Can Trade ... - bool canTrade = xUSCHF5MAllowLongTrades || xUSCHF5MAllowShortTrades; + bool canTrade = xAU5MAllowLongTrades || xAU5MAllowShortTrades; if (!canTrade) { return; @@ -491,8 +491,8 @@ void XUSCHF5HandleOpenTrades() // // Check Max Open Trades ... - int openSignals = xUSCHF5Trader.Count(); - bool canOpenPositions = openSignals < xUSCHF5MaxAllowedTrades; + int openSignals = xAU5Trader.Count(); + bool canOpenPositions = openSignals < xAU5MaxAllowedTrades; if (!canOpenPositions) { return; @@ -502,8 +502,8 @@ void XUSCHF5HandleOpenTrades() // Check Signals Exists ... XProvidedSignal longSignalInfo; XProvidedSignal shortSignalInfo; - bool hasLongSignal = XUSCHF5CanOpenLongTrade(longSignalInfo); - bool hasShortSignal = XUSCHF5CanOpenShortTrade(shortSignalInfo); + bool hasLongSignal = XAU5CanOpenLongTrade(longSignalInfo); + bool hasShortSignal = XAU5CanOpenShortTrade(shortSignalInfo); if (!hasLongSignal && !hasShortSignal) { return; @@ -511,20 +511,20 @@ void XUSCHF5HandleOpenTrades() // // Update Reports ... - XUSCHF5UpdateReports(); + XAU5UpdateReports(); // - xUSCHF5WaitUntilNextCandle = true; + xAU5WaitUntilNextCandle = true; // // Open Long Trades ... if ( // hasLongSignal && - xUSCHF5MAllowLongTrades) + xAU5MAllowLongTrades) { // - bool isOpened = XUSCHF5OpenLongPosition(longSignalInfo); + bool isOpened = XAU5OpenLongPosition(longSignalInfo); } // @@ -532,29 +532,29 @@ void XUSCHF5HandleOpenTrades() if ( // hasShortSignal && - xUSCHF5MAllowShortTrades) + xAU5MAllowShortTrades) { // - bool isOpened = XUSCHF5OpenShortPosition(shortSignalInfo); + bool isOpened = XAU5OpenShortPosition(shortSignalInfo); } } // // Handle Close Trades ... -void XUSCHF5HandleCloseTrades() +void XAU5HandleCloseTrades() { // // Force Close Long Trades ... bool isClosedLongTrades = false; - bool canCloseLongTrades = XUSCHF5CanCloseLongTrade(); - if (xUSCHF5MAllowLongTrades && canCloseLongTrades) + bool canCloseLongTrades = XAU5CanCloseLongTrade(); + if (xAU5MAllowLongTrades && canCloseLongTrades) { // ENUM_X_SIGNAL_TYPE type = X_SIGNAL_LONG; // XSignal closed[]; - xUSCHF5Trader.CloseSignals( + xAU5Trader.CloseSignals( closed, type); @@ -568,7 +568,7 @@ void XUSCHF5HandleCloseTrades() { // XSignal iSignal = closed[i]; - XUSCHF5OnFC(iSignal); + XAU5OnFC(iSignal); } } } @@ -576,15 +576,15 @@ void XUSCHF5HandleCloseTrades() // // Force Close Short Trades ... bool isClosedShortTrades = false; - bool canCloseShortTrades = XUSCHF5CanCloseShortTrade(); - if (xUSCHF5MAllowShortTrades && canCloseShortTrades) + bool canCloseShortTrades = XAU5CanCloseShortTrade(); + if (xAU5MAllowShortTrades && canCloseShortTrades) { // ENUM_X_SIGNAL_TYPE type = X_SIGNAL_SHORT; // XSignal closed[]; - xUSCHF5Trader.CloseSignals( + xAU5Trader.CloseSignals( closed, type); @@ -598,7 +598,7 @@ void XUSCHF5HandleCloseTrades() { // XSignal iSignal = closed[i]; - XUSCHF5OnFC(iSignal); + XAU5OnFC(iSignal); } } } @@ -606,7 +606,7 @@ void XUSCHF5HandleCloseTrades() // // Open Long Position ... -bool XUSCHF5OpenLongPosition( +bool XAU5OpenLongPosition( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -619,14 +619,14 @@ bool XUSCHF5OpenLongPosition( double sl = info.sl > 0 ? info.sl : 0; // entry - (200 * _Point); // info.sl > 0 ? info.sl : 0; - double tp = info.tp > 0 ? info.tp : entry + xUSCHF5MinReward; - double riskFreeRate = xUSCHF5RiskFreeRate; - double riskFreeStep = xUSCHF5RiskFreeStepInPips; - double volume = XUSCHF5CalculateVolume(ArraySize(info.signallers)); + double tp = info.tp > 0 ? info.tp : entry + xAU5MinReward; + double riskFreeRate = xAU5RiskFreeRate; + double riskFreeStep = xAU5RiskFreeStepInPips; + double volume = XAU5CalculateVolume(ArraySize(info.signallers)); // XSignal signal = {}; - signal = xUSCHF5Trader.GenerateSignal( + signal = xAU5Trader.GenerateSignal( X_SIGNAL_LONG, tp, sl, @@ -635,20 +635,20 @@ bool XUSCHF5OpenLongPosition( riskFreeRate); bool isValidSignal = IsValid( signal, - xUSCHF5MagicNumber); + xAU5MagicNumber); if (!isValidSignal) { return result; } // - int signalsCount = xUSCHF5Trader.Count(); + int signalsCount = xAU5Trader.Count(); bool isCross = signalsCount >= 1; if (isCross) { // // Handle Cross Signals ... - XUSCHF5HnadleCrossSignal(signal); + XAU5HnadleCrossSignal(signal); } // @@ -661,7 +661,7 @@ bool XUSCHF5OpenLongPosition( ( // isCross && - xUSCHF5CrossSignalsMethod != X_CROSS_SIGNAL_DO_NOTHING + xAU5CrossSignalsMethod != X_CROSS_SIGNAL_DO_NOTHING // ); if (!canExecuteSignal) @@ -671,7 +671,7 @@ bool XUSCHF5OpenLongPosition( // // Execute Signal ... - ENUM_EXECUTION_SIGNAL_RESULT executionResult = xUSCHF5Trader.ExecuteSignal( + ENUM_EXECUTION_SIGNAL_RESULT executionResult = xAU5Trader.ExecuteSignal( signal, false, // Ignore Number of Trades ... true // Check Account Conditions ... @@ -688,16 +688,16 @@ bool XUSCHF5OpenLongPosition( ); // - XSignal tSignal = xUSCHF5Trader.GetSignal(signal.ticket); + XSignal tSignal = xAU5Trader.GetSignal(signal.ticket); // - XUSCHF5OnSignal( + XAU5OnSignal( tSignal, providers); } else { - XUSCHF5IssueSignalExecutionError(executionResult); + XAU5IssueSignalExecutionError(executionResult); } // @@ -706,7 +706,7 @@ bool XUSCHF5OpenLongPosition( // // Open Short Position ... -bool XUSCHF5OpenShortPosition( +bool XAU5OpenShortPosition( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -719,14 +719,14 @@ bool XUSCHF5OpenShortPosition( double sl = info.sl > 0 ? info.sl : 0; // entry + (200 * _Point); // info.sl > 0 ? info.sl : 0; - double tp = info.tp > 0 ? info.tp : entry - xUSCHF5MinReward; - double riskFreeRate = xUSCHF5RiskFreeRate; - double riskFreeStep = xUSCHF5RiskFreeStepInPips; - double volume = XUSCHF5CalculateVolume(ArraySize(info.signallers)); + double tp = info.tp > 0 ? info.tp : entry - xAU5MinReward; + double riskFreeRate = xAU5RiskFreeRate; + double riskFreeStep = xAU5RiskFreeStepInPips; + double volume = XAU5CalculateVolume(ArraySize(info.signallers)); // XSignal signal = {}; - signal = xUSCHF5Trader.GenerateSignal( + signal = xAU5Trader.GenerateSignal( X_SIGNAL_SHORT, tp, sl, @@ -735,20 +735,20 @@ bool XUSCHF5OpenShortPosition( riskFreeRate); bool isValidSignal = IsValid( signal, - xUSCHF5MagicNumber); + xAU5MagicNumber); if (!isValidSignal) { return result; } // - int signalsCount = xUSCHF5Trader.Count(); + int signalsCount = xAU5Trader.Count(); bool isCross = signalsCount >= 1; if (isCross) { // // Handle Cross Signals ... - XUSCHF5HnadleCrossSignal(signal); + XAU5HnadleCrossSignal(signal); } // @@ -761,7 +761,7 @@ bool XUSCHF5OpenShortPosition( ( // isCross && - xUSCHF5CrossSignalsMethod != X_CROSS_SIGNAL_DO_NOTHING + xAU5CrossSignalsMethod != X_CROSS_SIGNAL_DO_NOTHING // ); if (!canExecuteSignal) @@ -771,7 +771,7 @@ bool XUSCHF5OpenShortPosition( // // Execute Signal ... - ENUM_EXECUTION_SIGNAL_RESULT executionResult = xUSCHF5Trader.ExecuteSignal( + ENUM_EXECUTION_SIGNAL_RESULT executionResult = xAU5Trader.ExecuteSignal( signal, false, // Ignore Number of Trades ... true // Check Account Conditions ... @@ -786,16 +786,16 @@ bool XUSCHF5OpenShortPosition( ); // - XSignal tSignal = xUSCHF5Trader.GetSignal(signal.ticket); + XSignal tSignal = xAU5Trader.GetSignal(signal.ticket); // - XUSCHF5OnSignal( + XAU5OnSignal( tSignal, providers); } else { - XUSCHF5IssueSignalExecutionError(executionResult); + XAU5IssueSignalExecutionError(executionResult); } // @@ -804,20 +804,20 @@ bool XUSCHF5OpenShortPosition( // // Apply Cross Signal Actions ... -void XUSCHF5HnadleCrossSignal( +void XAU5HnadleCrossSignal( XSignal &signal // Specified Signal ... ) { // // Check Cross Signal Handling Enabled ... - if (xUSCHF5CrossSignalsMethod == X_CROSS_SIGNAL_DO_NOTHING) + if (xAU5CrossSignalsMethod == X_CROSS_SIGNAL_DO_NOTHING) { return; } // // First We have to Change Cross Signals Comment ... - string comment = xUSCHF5Trader.GenerateSignalComment( + string comment = xAU5Trader.GenerateSignalComment( signal, true); @@ -826,21 +826,21 @@ void XUSCHF5HnadleCrossSignal( // // If Every thing is Regular, prevent any changes here ... - if (xUSCHF5CrossSignalsMethod == X_CROSS_SIGNAL_REGULAR) + if (xAU5CrossSignalsMethod == X_CROSS_SIGNAL_REGULAR) { return; } // // Retrieve Max in Drawdown Signal ... - XSignal maxInDDSignal = xUSCHF5Trader.GetMaxInDrawdownSignal(); + XSignal maxInDDSignal = xAU5Trader.GetMaxInDrawdownSignal(); // // Validate Signal ... bool isValidSignal = maxInDDSignal.ticket > 0 && maxInDDSignal.symbol == signal.symbol && - IsValid(maxInDDSignal, xUSCHF5MagicNumber); + IsValid(maxInDDSignal, xAU5MagicNumber); if (!isValidSignal) { return; @@ -856,14 +856,14 @@ void XUSCHF5HnadleCrossSignal( isDirectional ? ( // - xUSCHF5CrossSignalsMethod == X_CROSS_SIGNAL_DIRECTION_REGULAR || - xUSCHF5CrossSignalsMethod == X_CROSS_SIGNAL_DIRECTION_REGULAR_INDIRECTION_IMPORTANT + xAU5CrossSignalsMethod == X_CROSS_SIGNAL_DIRECTION_REGULAR || + xAU5CrossSignalsMethod == X_CROSS_SIGNAL_DIRECTION_REGULAR_INDIRECTION_IMPORTANT // ) : ( // - xUSCHF5CrossSignalsMethod == X_CROSS_SIGNAL_INDIRECTION_REGULAR || - xUSCHF5CrossSignalsMethod == X_CROSS_SIGNAL_DIRECTION_IMPORTANT_INDIRECTION_REGULAR + xAU5CrossSignalsMethod == X_CROSS_SIGNAL_INDIRECTION_REGULAR || + xAU5CrossSignalsMethod == X_CROSS_SIGNAL_DIRECTION_IMPORTANT_INDIRECTION_REGULAR // ); if (isRegular) @@ -882,11 +882,11 @@ void XUSCHF5HnadleCrossSignal( // // Calculate Usefull data ... -void XUSCHF5HandleCalculateDrawDownUp() +void XAU5HandleCalculateDrawDownUp() { // XSignal signals[]; - xUSCHF5Trader.GetSignals(signals); + xAU5Trader.GetSignals(signals); int signalsCount = ArraySize(signals); if (signalsCount <= 0) { @@ -897,7 +897,7 @@ void XUSCHF5HandleCalculateDrawDownUp() double profit = 0; double volume = 0; XCollector collector = {}; - double maxAllowedVolume = xUSCHF5VolumeManager.GetMaxAllowedVolume(); + double maxAllowedVolume = xAU5VolumeManager.GetMaxAllowedVolume(); for (int i = 0; i < signalsCount; i++) { // @@ -918,11 +918,11 @@ void XUSCHF5HandleCalculateDrawDownUp() if (profit < 0) { // - xUSCHF5MaxDrawDown = - xUSCHF5MaxDrawDown == 0 || - xUSCHF5MaxDrawDown > MathAbs(profit) + xAU5MaxDrawDown = + xAU5MaxDrawDown == 0 || + xAU5MaxDrawDown > MathAbs(profit) ? MathAbs(profit) - : xUSCHF5MaxDrawDown; + : xAU5MaxDrawDown; // // Update Buffers ... @@ -933,29 +933,29 @@ void XUSCHF5HandleCalculateDrawDownUp() // collector.time = time; collector.volume = volume; - collector.maxDrawDown = xUSCHF5MaxDrawDown; + collector.maxDrawDown = xAU5MaxDrawDown; collector.maxAllowedVolume = maxAllowedVolume; - collector.minBalanceForOpenTrade = xUSCHF5Trader.GetMinBalanceForOpenTrades(); + collector.minBalanceForOpenTrade = xAU5Trader.GetMinBalanceForOpenTrades(); } else { // - xUSCHF5MaxDrawUp = - xUSCHF5MaxDrawUp == 0 || - xUSCHF5MaxDrawUp < profit + xAU5MaxDrawUp = + xAU5MaxDrawUp == 0 || + xAU5MaxDrawUp < profit ? profit - : xUSCHF5MaxDrawUp; + : xAU5MaxDrawUp; } // // Update Collector ... - xUSCHF5Collector.Add(collector); + xAU5Collector.Add(collector); // // Update Reports ... - xUSCHF5Reporter.UpdateMaxDrawUpInReports(xUSCHF5MaxDrawUp); - xUSCHF5Reporter.UpdateMaxDrawDownInReports(xUSCHF5MaxDrawDown); - xUSCHF5Reporter.UpdateMaxSameTimeTradesInReports(signalsCount); + xAU5Reporter.UpdateMaxDrawUpInReports(xAU5MaxDrawUp); + xAU5Reporter.UpdateMaxDrawDownInReports(xAU5MaxDrawDown); + xAU5Reporter.UpdateMaxSameTimeTradesInReports(signalsCount); } // @@ -964,116 +964,116 @@ void XUSCHF5HandleCalculateDrawDownUp() // // Runs When a Signal Successfully Executed ... -void XUSCHF5OnSignal( +void XAU5OnSignal( XSignal &signal, // Specified Signal string &providers[] // Signal Providers ) { // // Issue Propper Alert ... - XUSCHF5IssueSignalExecutionAlert( + XAU5IssueSignalExecutionAlert( signal, providers); // // Add Signal To Supports on Guard ... - xUSCHF5Guard.AddSupport(signal); + xAU5Guard.AddSupport(signal); // // Update Reports ... - xUSCHF5Reporter.AddSignalToReports( + xAU5Reporter.AddSignalToReports( signal, providers); } // // Runs when a Position Got Take Profit ... -void XUSCHF5OnTP( +void XAU5OnTP( XSignal &signal // Specified Signal ) { // // Issue Propper Alert ... - XUSCHF5IssueTPAlert(signal); + XAU5IssueTPAlert(signal); // // Remove Signal From Guard Protector ... - xUSCHF5Guard.Remove(signal.ticket); - xUSCHF5Guard.RemoveSupport(signal.ticket); + xAU5Guard.Remove(signal.ticket); + xAU5Guard.RemoveSupport(signal.ticket); // // Update Reports ... - xUSCHF5Reporter.AddTradeTPInReports(); - XUSCHF5UpdateReports(); + xAU5Reporter.AddTradeTPInReports(); + XAU5UpdateReports(); } // // Runs when a Position Got Stop Loss ... -void XUSCHF5OnSL( +void XAU5OnSL( XSignal &signal // Specified Signal ) { // // Issue Propper Alert ... - XUSCHF5IssueSLAlert(signal); + XAU5IssueSLAlert(signal); // // Remove Signal From Guard Protector ... - xUSCHF5Guard.Remove(signal.ticket); - xUSCHF5Guard.RemoveSupport(signal.ticket); + xAU5Guard.Remove(signal.ticket); + xAU5Guard.RemoveSupport(signal.ticket); // // Update Reports ... - xUSCHF5Reporter.AddTradeSLInReports(); - XUSCHF5UpdateReports(); + xAU5Reporter.AddTradeSLInReports(); + XAU5UpdateReports(); } // // Runs when a Position Risk Free ... -void XUSCHF5OnRF( +void XAU5OnRF( XSignal &signal // Specified Signal ) { // // Issue Propper Alert ... - XUSCHF5IssueRFAlert(signal); + XAU5IssueRFAlert(signal); // // Remove Signal From Guard Protector ... // since RiskFree Signals has SL ... - xUSCHF5Guard.Remove(signal.ticket); - xUSCHF5Guard.RemoveSupport(signal.ticket); + xAU5Guard.Remove(signal.ticket); + xAU5Guard.RemoveSupport(signal.ticket); // // Update Reports ... - xUSCHF5Reporter.AddTradeSLInReports(); - XUSCHF5UpdateReports(); + xAU5Reporter.AddTradeSLInReports(); + XAU5UpdateReports(); } // // Runs when a Position Force Closed ... -void XUSCHF5OnFC( +void XAU5OnFC( XSignal &signal // Specified Signal ) { // // Issue Propper Alert ... - XUSCHF5IssueFCAlert(signal); + XAU5IssueFCAlert(signal); // // Remove Signal From Guard Protector ... - xUSCHF5Guard.Remove(signal.ticket); - xUSCHF5Guard.RemoveSupport(signal.ticket); + xAU5Guard.Remove(signal.ticket); + xAU5Guard.RemoveSupport(signal.ticket); // // Update Reports ... - xUSCHF5Reporter.AddTradeSLInReports(); - XUSCHF5UpdateReports(); + xAU5Reporter.AddTradeSLInReports(); + XAU5UpdateReports(); } // // Runs when a Position Guarded ... -void XUSCHF5OnGuard( +void XAU5OnGuard( XSignal &signal, // Specified Signal ENUM_X_GUARD_REASONS reason, // Reason of Guard Applied string message, // Guard Returned Message @@ -1088,17 +1088,17 @@ void XUSCHF5OnGuard( LogMessage(message); // - xUSCHF5MEnableProvider = false; + xAU5MEnableProvider = false; } // // Issue Propper Alert ... - XUSCHF5IssueGuardAlert(signal, reason, isStopOut); + XAU5IssueGuardAlert(signal, reason, isStopOut); // // Update Reports ... - xUSCHF5Reporter.AddTradeSLInReports(); - XUSCHF5UpdateReports(); + xAU5Reporter.AddTradeSLInReports(); + XAU5UpdateReports(); } // @@ -1119,16 +1119,16 @@ void XUSCHF5OnGuard( // // Calculating Volume for Tradings ... -double XUSCHF5CalculateVolume( +double XAU5CalculateVolume( double forceMultiplier = 0 // some times we get more than one signal at the same time, here we increase volume using this ... ) { // // Check Open Trades ... - int openSignals = xUSCHF5Trader.Count(); + int openSignals = xAU5Trader.Count(); // - double result = xUSCHF5VolumeManager.CalculateVolume( + double result = xAU5VolumeManager.CalculateVolume( openSignals, _Symbol); @@ -1153,20 +1153,20 @@ double XUSCHF5CalculateVolume( // // Update Report Info ... -void XUSCHF5UpdateReports() +void XAU5UpdateReports() { // - double staticVolume = xUSCHF5VolumeManager.GetStaticVolume(); - string staticVolumeCalculationMethod = EnumToString(xUSCHF5StaticVolumeMethod); - double maxAllowedVolume = xUSCHF5VolumeManager.GetMaxAllowedVolume(); - double volumeIncreaseMultiplier = xUSCHF5VolumeManager.GetVolumeMultiplier(); - double balanceGowingToApplyMultiplier = xUSCHF5VolumeManager.GetIncreaseMultiplierBalance(); + double staticVolume = xAU5VolumeManager.GetStaticVolume(); + string staticVolumeCalculationMethod = EnumToString(xAU5StaticVolumeMethod); + double maxAllowedVolume = xAU5VolumeManager.GetMaxAllowedVolume(); + double volumeIncreaseMultiplier = xAU5VolumeManager.GetVolumeMultiplier(); + double balanceGowingToApplyMultiplier = xAU5VolumeManager.GetIncreaseMultiplierBalance(); - double balanceGrowingToIncreaseMaxAllowedVolume = xUSCHF5VolumeManager.GetIncreaseMaxAllowedVolumeBalance(); + double balanceGrowingToIncreaseMaxAllowedVolume = xAU5VolumeManager.GetIncreaseMaxAllowedVolumeBalance(); // // Update Reports Volume Info ... - xUSCHF5Reporter.UpdateReportsVolumeInfo( + xAU5Reporter.UpdateReportsVolumeInfo( staticVolume, staticVolumeCalculationMethod, maxAllowedVolume, @@ -1176,24 +1176,24 @@ void XUSCHF5UpdateReports() // // Calculate Max Allowed Drawdown ... - double minBalanceForTradeBasedOnBalance = xUSCHF5Trader.GetMinBalanceForOpenTrades(); - xUSCHF5Reporter.UpdateMinBalanceForOpenTradesInReports(minBalanceForTradeBasedOnBalance); + double minBalanceForTradeBasedOnBalance = xAU5Trader.GetMinBalanceForOpenTrades(); + xAU5Reporter.UpdateMinBalanceForOpenTradesInReports(minBalanceForTradeBasedOnBalance); } // -// Reset XUSCHF5 Info Buffers ... -void XUSCHF5ResetCollectors() +// Reset XAU5 Info Buffers ... +void XAU5ResetCollectors() { // // Reset Calculations Buffers and Variables ... - xUSCHF5MaxDrawUp = 0; - xUSCHF5MaxDrawDown = 0; + xAU5MaxDrawUp = 0; + xAU5MaxDrawDown = 0; // - xUSCHF5Trader.Reset(); - xUSCHF5Reporter.Reset(); - xUSCHF5Collector.Reset(); - xUSCHF5VolumeManager.ResetForceVolumeMultiplier(); + xAU5Trader.Reset(); + xAU5Reporter.Reset(); + xAU5Collector.Reset(); + xAU5VolumeManager.ResetForceVolumeMultiplier(); } // @@ -1206,7 +1206,7 @@ void XUSCHF5ResetCollectors() // // Send Alert ... -void XUSCHF5IssueAlert(string message) +void XAU5IssueAlert(string message) { // // Validate Args ... @@ -1216,7 +1216,7 @@ void XUSCHF5IssueAlert(string message) } // - if (xUSCHF5EnableAlerts) + if (xAU5EnableAlerts) { SendAlert(message); } @@ -1228,7 +1228,7 @@ void XUSCHF5IssueAlert(string message) // // Send Take Profit Alert on Specific Signal ... -void XUSCHF5IssueTPAlert( +void XAU5IssueTPAlert( XSignal &signal // Specified Signal ) { @@ -1236,15 +1236,15 @@ void XUSCHF5IssueTPAlert( string message = ""; // - message = xUSCHF5Trader.GenerateSignalTPComment(signal); + message = xAU5Trader.GenerateSignalTPComment(signal); // - XUSCHF5IssueAlert(message); + XAU5IssueAlert(message); } // // Send Stop Loss Alert on Specific Signal ... -void XUSCHF5IssueSLAlert( +void XAU5IssueSLAlert( XSignal &signal // Specified Signal ) { @@ -1252,15 +1252,15 @@ void XUSCHF5IssueSLAlert( string message = ""; // - message = xUSCHF5Trader.GenerateSignalSLComment(signal); + message = xAU5Trader.GenerateSignalSLComment(signal); // - XUSCHF5IssueAlert(message); + XAU5IssueAlert(message); } // // Send Force Close Alert on Specific Signal ... -void XUSCHF5IssueFCAlert( +void XAU5IssueFCAlert( XSignal &signal // Specified Signal ) { @@ -1268,15 +1268,15 @@ void XUSCHF5IssueFCAlert( string message = ""; // - message = xUSCHF5Trader.GenerateSignalForceCloseComment(signal); + message = xAU5Trader.GenerateSignalForceCloseComment(signal); // - XUSCHF5IssueAlert(message); + XAU5IssueAlert(message); } // // Send Risk Free Alert on Specific Signal ... -void XUSCHF5IssueRFAlert( +void XAU5IssueRFAlert( XSignal &signal // Specified Signal ) { @@ -1284,15 +1284,15 @@ void XUSCHF5IssueRFAlert( string message = ""; // - message = xUSCHF5Trader.GenerateSignalRFComment(signal, 0); + message = xAU5Trader.GenerateSignalRFComment(signal, 0); // - XUSCHF5IssueAlert(message); + XAU5IssueAlert(message); } // // Send Guard Alert on Specific Signal ... -void XUSCHF5IssueGuardAlert( +void XAU5IssueGuardAlert( XSignal &signal, // Specified Signal ENUM_X_GUARD_REASONS reason, // Specified Guard Reason bool isStopOut = false // Specified StopOut Fired or not @@ -1302,41 +1302,41 @@ void XUSCHF5IssueGuardAlert( string message = ""; // - message = xUSCHF5Guard.GenerateGuardedSignalComment( + message = xAU5Guard.GenerateGuardedSignalComment( signal, reason); // - XUSCHF5IssueAlert(message); + XAU5IssueAlert(message); } // // Send Initialization Succeed Alert ... -void XUSCHF5IssueInitializationSucceedAlert() +void XAU5IssueInitializationSucceedAlert() { // - string message = "Initializion of (" + XUSCHF5ProviderName + " Provider" + " _ " + _Symbol + " _ " + EnumToString(_Period) + ") Succeeded ..."; - XUSCHF5IssueAlert(message); + string message = "Initializion of (" + XAU5ProviderName + " Provider" + " _ " + _Symbol + " _ " + EnumToString(_Period) + ") Succeeded ..."; + XAU5IssueAlert(message); } // // Send De Initialization Succeed Alert ... -void XUSCHF5IssueDeinitializationSucceedAlert() +void XAU5IssueDeinitializationSucceedAlert() { // - string message = "De Initializion of (" + XUSCHF5ProviderName + " Provider" + ") Succeeded ..."; - XUSCHF5IssueAlert(message); + string message = "De Initializion of (" + XAU5ProviderName + " Provider" + ") Succeeded ..."; + XAU5IssueAlert(message); } // // Send Signal Successfully Execution Alert ... -void XUSCHF5IssueSignalExecutionAlert( +void XAU5IssueSignalExecutionAlert( XSignal &signal, // Specified Signal string &providers[] // Signal Providers ) { // - string message = xUSCHF5Trader.ToString(signal); + string message = xAU5Trader.ToString(signal); // string providersMsg = ToString(providers); @@ -1346,12 +1346,12 @@ void XUSCHF5IssueSignalExecutionAlert( } // - XUSCHF5IssueAlert(message); + XAU5IssueAlert(message); } // // Send Signal Execution Alert ... -void XUSCHF5IssueSignalExecutionError(int error) +void XAU5IssueSignalExecutionError(int error) { // string message = GetSignalExecutionError(error); @@ -1361,7 +1361,7 @@ void XUSCHF5IssueSignalExecutionError(int error) } // - XUSCHF5IssueAlert(message); + XAU5IssueAlert(message); } // diff --git a/BKP/Main/Providers/x-saherelm.xuschf5.provider.inputs.lib.mq5 b/BKP/Main/Providers/x-saherelm.xuschf5.provider.inputs.lib.mq5 deleted file mode 100644 index 45ae41b9..00000000 --- a/BKP/Main/Providers/x-saherelm.xuschf5.provider.inputs.lib.mq5 +++ /dev/null @@ -1,283 +0,0 @@ -/////////////////////////////////////////////////////////////// -// -// SaherElm IT Center MQL5 XUSCHF5 Signal Provider Library Inputs -// ----------------------------------------------------------- -// -// 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 Logger ... -#include "../Libraries/x-saherelm.log.lib.mq5" - -// -// Include Classes ... -#include "../Classes/x-saherelm.class.lib.mq5" - -// -input group "XUSCHF5 Provider"; - -// -// Commonly Used Configurations ... -input group "XUSCHF5 Common"; -// -// Provider ... -input bool xUSCHF5EnableProvider = true; // Enable Provider -input int xUSCHF5NumberOfItemsPerTick = 30; // Number Of items Readed In Each Tick -// -// Alerts ... -input bool xUSCHF5EnableAlerts = true; // Enable Events Alert -input bool xUSCHF5EnableHourlyAlerts = false; // Send Alert on each new Hour -input bool xUSCHF5EnableDailyAlerts = false; // Send Alert on each new Day -input bool xUSCHF5EnableWeeklyAlerts = false; // Send Alert on each new Week -input bool xUSCHF5EnableMonthlyAlerts = true; // Send Alert on each new Month -// -// Reports ... -input bool xUSCHF5EnableDailyReports = false; // Send Report on each new Day -input bool xUSCHF5EnableWeeklyReports = false; // Send Report on each new Week -input bool xUSCHF5EnableMonthlyReports = true; // Send Report on each new Month - -// -// Trader and Expert Specific Configurations ... -input group "XUSCHF5 Trader"; -input int xUSCHF5MagicNumber = 16940562; // Trader MagicNumber -input int xUSCHF5Slippage = 10; // Trader Slippage - -// -// Trades Management Configurations ... -input group "XUSCHF5 Trade Management"; -input bool xUSCHF5AllowLongTrades = true; // Allow Long Trades -input bool xUSCHF5AllowShortTrades = true; // Allow Short Trades - -// -// Risk Management Configurations ... -input group "XUSCHF5 Risk Management"; -// -// Trade Count ... -input int xUSCHF5MaxAllowedTrades = 10; // Max Allowed Trades at Same Time -input ENUM_X_CROSS_SIGNAL_METHOD xUSCHF5CrossSignalsMethod = X_CROSS_SIGNAL_REGULAR; // Handle Cross Signals Method -// -// Max Allowed Trade Age ... -input int xUSCHF5MaxAllowedTradeAge = 1500; // Detect Long Time Trades -input ENUM_X_GUARD_ACTIONS xUSCHF5OldTradesAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_1; // What to do with Old Trades -// -// Trade Volume Specific Configurations ... -input double xUSCHF5StaticVolumeFactor = 0.0001; // Static Volume baesd on Balance -input ENUM_STATIC_VOLUME_METHODS xUSCHF5StaticVolumeMethod = X_STATIC_VOLUME_BASED_ON_BALANCE; // How to Calculate Static Volume -input double xUSCHF5VolumeMultiplier = 0; // Volume Increase Multiplier -input double xUSCHF5ApplyVolumeMultiplierFactor = 0; // Apply Volume Multiplier Rate based on Balance -input double xUSCHF5MaxSupportedVolumePerTradeFactor = 0; // Max Supported Volume Per Trade Factor based on Balance -input double xUSCHF5IncreasedMaxSupportedVolumeRate = 0; // Increase Max Supported Volume based on Balance -// -// Trade Profits ... -input double xUSCHF5MinRewardInPips = 6; // Minimum Reward Per Trade in Pips -input double xUSCHF5RiskFreeStepInPips = 0; // Make Trades Risk Free Steps in Pips -input double xUSCHF5RiskFreeRate = 0; // Volume Multiplier for Risk Free Trades -// -// Guard Riskable Money and Profits ... -input double xUSCHF5CriticalDrawDownFactor = 0.15; // Critical Allowed Drawdown Factor based on Balance -input ENUM_X_GUARD_ACTIONS xUSCHF5CriticalGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_5; // Specify Guard Action on Critical Drawdown -input double xUSCHF5MaxAllowedDrawDownFactor = 0.20; // Max Allowed Drawdown Factor based on Balance -input ENUM_X_GUARD_ACTIONS xUSCHF5MaxAllowedGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_10; // Specify Guard Action on Max Allowed Drawdown -input int xUSCHF5GuardStopoutFiredAfterTouches = 5; // Guard Stopout all Trades if Max Allowed Drawdown touched - -// -// Account Conditions for Trading ... -input double xUSCHF5BalanceFactorForOpenTrades = 0.5; // Minimum Balance for Open Trades -input double xUSCHF5FreeMarginFactorForOpenTrades = 0.8; // Minimum Free Margin for Open Trades - -// -// May be Used Later as Input Params ... -bool xUSCHF5UseVirtualTPSl = false; // Use Virtual TP SL -bool xUSCHF5EnableSignalAlerts = false; // Send Signal Alert - -// -// Validate Inputs before Initialization ... -bool XUSCHF5ValidateInputs() -{ - // - bool result = false; - - // - // Implement Other Verifications ... - - // - // Check Trading Availability ... - bool isTradeAvailable = xUSCHF5AllowLongTrades || xUSCHF5AllowShortTrades; - if (!isTradeAvailable) - { - LogMessage("XUSCHF5 => Warning: Trading disabled ..."); - } - - // - // Chekc Number of reading items per tick ... - result = xUSCHF5NumberOfItemsPerTick >= 5; - if (!result) - { - // - LogMessage("XUSCHF5 invalid Number of items Reading Per Tick ..."); - - // - return result; - } - - // - // Check Max Allowed Trades Count ... - result = isTradeAvailable && xUSCHF5MaxAllowedTrades >= 1; - if (!result) - { - // - LogMessage("XUSCHF5 Number of Trades not valid ..."); - - // - return result; - } - - // - // Check Free Margin ... - result = - isTradeAvailable && - xUSCHF5FreeMarginFactorForOpenTrades > 0 && - xUSCHF5FreeMarginFactorForOpenTrades < 1; - if (!result) - { - // - LogMessage("XUSCHF5 Invalid Free Margin ..."); - - // - return result; - } - - // - // Check min Balance for Open Trades ... - result = - isTradeAvailable && - xUSCHF5BalanceFactorForOpenTrades > 0 && - xUSCHF5BalanceFactorForOpenTrades < 1; - if (!result) - { - // - LogMessage("XUSCHF5 Invalid Min Balance for Open Trades ..."); - - // - return result; - } - - // - // Check Min Reward Per Trade ... - result = xUSCHF5MinRewardInPips > 0; - if (!result) - { - // - LogMessage("XUSCHF5 Invalid Min Reward Per Trade ..."); - - // - return result; - } - - // - // Check Trades Volume ... - result = xUSCHF5StaticVolumeFactor > 0; - if (!result) - { - // - LogMessage("XUSCHF5 Invalid Static Volume ..."); - - // - return result; - } - - // - // Check Volume Multiplier ... - result = xUSCHF5VolumeMultiplier >= 0; - if (!result) - { - // - LogMessage("XUSCHF5 Invalid Volume Multiplier ..."); - - // - return result; - } - - // - result = - xUSCHF5CriticalDrawDownFactor == 0 || (xUSCHF5CriticalDrawDownFactor > 0 && - xUSCHF5CriticalDrawDownFactor < 1); - if (!result) - { - // - LogMessage("XUSCHF5 Invalid Critical DrawDown Factor ..."); - - // - return result; - } - - // - result = - xUSCHF5MaxAllowedDrawDownFactor == 0 || (xUSCHF5MaxAllowedDrawDownFactor > 0 && - xUSCHF5MaxAllowedDrawDownFactor < 1); - if (!result) - { - // - LogMessage("XUSCHF5 Invalid Max Allowed DrawDown Factor ..."); - - // - return result; - } - - // - // Check Guard Actions ... - // - result = - xUSCHF5CriticalDrawDownFactor > 0 && - xUSCHF5CriticalDrawDownFactor < 1 && - xUSCHF5MaxAllowedDrawDownFactor > 0 && - xUSCHF5MaxAllowedDrawDownFactor < 1; - if (!result) - { - // - LogMessage("XUSCHF5 For Critical Drawdown, you have to Specify Max Drawdown also ..."); - - // - return result; - } - - // - result = xUSCHF5CriticalDrawDownFactor > 0 && xUSCHF5CriticalDrawDownFactor < xUSCHF5MaxAllowedDrawDownFactor; - if (!result) - { - // - LogMessage("XUSCHF5 Critical Drawdown must Smaller than Max Drawdown ..."); - - // - return result; - } - - // - if (xUSCHF5CriticalDrawDownFactor > 0 && xUSCHF5CriticalGuardAction == X_GUARD_DO_NOTHING) - { - LogMessage("XUSCHF5 IMPORTANT you Specified Critical Drawdown, but there is no any Guard Action ..."); - } - - // - if (xUSCHF5MaxAllowedDrawDownFactor > 0 && xUSCHF5MaxAllowedGuardAction == X_GUARD_DO_NOTHING) - { - LogMessage("XUSCHF5 IMPORTANT you Specified Max Allowed Drawdown, but there is no any Guard Action ..."); - } - - // - result = true; - - // - return result; -} \ No newline at end of file diff --git a/Projects/XAU5/Classes/x-saherelm.provider.lib.mq5 b/Projects/XAU5/Classes/x-saherelm.provider.lib.mq5 index 765544c7..63279162 100644 --- a/Projects/XAU5/Classes/x-saherelm.provider.lib.mq5 +++ b/Projects/XAU5/Classes/x-saherelm.provider.lib.mq5 @@ -254,14 +254,14 @@ struct XMarketConditions // // -class XCPriver : public XCBase +class XCProvider : public XCBase { // // Public ... public: // // Constructor ... - XCPriver( + XCProvider( // // Common Requirements ... string xSymbol, // Which Symbol is Used @@ -362,7 +362,7 @@ public: // // Deconstructor ... - ~XCPriver() {} + ~XCProvider() {} // // START Common Functions ... diff --git a/Projects/XAU5/Providers/x-saherelm.xau5.provider.indicators.lib.mq5 b/Projects/XAU5/Providers/x-saherelm.xau5.provider.indicators.lib.mq5 index dcc52278..b666d0db 100644 --- a/Projects/XAU5/Providers/x-saherelm.xau5.provider.indicators.lib.mq5 +++ b/Projects/XAU5/Providers/x-saherelm.xau5.provider.indicators.lib.mq5 @@ -58,10 +58,10 @@ input bool xAU5XTSFIAllowShortSignals = true; // Enable Short Signals // // XOBDLH ... -input group "XAU5 XOBDLH Signaller"; -input bool xAU5XOBDLHEnableSignaller = true; // Enable Signaller -input bool xAU5XOBDLHAllowLongSignals = true; // Enable Long Signals -input bool xAU5XOBDLHAllowShortSignals = true; // Enable Short Signals +// input group "XAU5 XOBDLH Signaller"; +// input bool xAU5XOBDLHEnableSignaller = true; // Enable Signaller +// input bool xAU5XOBDLHAllowLongSignals = true; // Enable Long Signals +// input bool xAU5XOBDLHAllowShortSignals = true; // Enable Short Signals // // XCHMACC ... @@ -72,17 +72,17 @@ input bool xAU5XCHMACCAllowShortSignals = true; // Enable Short Signals // // XCHMAMX ... -input group "XAU5 XCHMAMX Signaller"; -input bool xAU5XCHMAMXEnableSignaller = true; // Enable Signaller -input bool xAU5XCHMAMXAllowLongSignals = true; // Enable Long Signals -input bool xAU5XCHMAMXAllowShortSignals = true; // Enable Short Signals +// input group "XAU5 XCHMAMX Signaller"; +// input bool xAU5XCHMAMXEnableSignaller = true; // Enable Signaller +// input bool xAU5XCHMAMXAllowLongSignals = true; // Enable Long Signals +// input bool xAU5XCHMAMXAllowShortSignals = true; // Enable Short Signals // // XCHMAMN ... -input group "XAU5 XCHMAMN Signaller"; -input bool xAU5XCHMAMNEnableSignaller = true; // Enable Signaller -input bool xAU5XCHMAMNAllowLongSignals = true; // Enable Long Signals -input bool xAU5XCHMAMNAllowShortSignals = true; // Enable Short Signals +// input group "XAU5 XCHMAMN Signaller"; +// input bool xAU5XCHMAMNEnableSignaller = true; // Enable Signaller +// input bool xAU5XCHMAMNAllowLongSignals = true; // Enable Long Signals +// input bool xAU5XCHMAMNAllowShortSignals = true; // Enable Short Signals // // Check in Test Mode or not ... @@ -128,9 +128,9 @@ bool xAU5MXTSFIAllowShortSignals = xAU5XTSFIAllowShortSignals; // // XOBDLH ... -bool xAU5MXOBDLHEnableSignaller = xAU5XOBDLHEnableSignaller; -bool xAU5MXOBDLHAllowLongSignals = xAU5XOBDLHAllowLongSignals; -bool xAU5MXOBDLHAllowShortSignals = xAU5XOBDLHAllowShortSignals; +bool xAU5MXOBDLHEnableSignaller = false; //xAU5XOBDLHEnableSignaller; +bool xAU5MXOBDLHAllowLongSignals = false; //xAU5XOBDLHAllowLongSignals; +bool xAU5MXOBDLHAllowShortSignals = false; //xAU5XOBDLHAllowShortSignals; // // XCHMACC ... @@ -140,18 +140,18 @@ bool xAU5MXCHMACCAllowShortSignals = xAU5XCHMACCAllowShortSignals; // // XCHMAMX ... -bool xAU5MXCHMAMXEnableSignaller = xAU5XCHMAMXEnableSignaller; -bool xAU5MXCHMAMXAllowLongSignals = xAU5XCHMAMXAllowLongSignals; -bool xAU5MXCHMAMXAllowShortSignals = xAU5XCHMAMXAllowShortSignals; +bool xAU5MXCHMAMXEnableSignaller = false; // xAU5XCHMAMXEnableSignaller; +bool xAU5MXCHMAMXAllowLongSignals = false; // xAU5XCHMAMXAllowLongSignals; +bool xAU5MXCHMAMXAllowShortSignals = false; // xAU5XCHMAMXAllowShortSignals; // // XCHMAMN ... -bool xAU5MXCHMAMNEnableSignaller = xAU5XCHMAMNEnableSignaller; -bool xAU5MXCHMAMNAllowLongSignals = xAU5XCHMAMNAllowLongSignals; -bool xAU5MXCHMAMNAllowShortSignals = xAU5XCHMAMNAllowShortSignals; +bool xAU5MXCHMAMNEnableSignaller = false; // xAU5XCHMAMNEnableSignaller; +bool xAU5MXCHMAMNAllowLongSignals = false; // xAU5XCHMAMNAllowLongSignals; +bool xAU5MXCHMAMNAllowShortSignals = false; // xAU5XCHMAMNAllowShortSignals; // -XCPriver *xAU5Provider; +XCProvider *xAU5Provider; // // Validate Indicators Inputs ... @@ -241,8 +241,8 @@ bool XAU5ValidateIndicatorsInputs() } // - // Make an Instance Of XCPriver Class for Use ... - xAU5Provider = new XCPriver( + // Make an Instance Of XCProvider Class for Use ... + xAU5Provider = new XCProvider( // // Commons ... _Symbol, @@ -436,10 +436,10 @@ bool XAU5InitIndicators() // // XOBDLH ... - bool isXOBDLHEnable = - xAU5XOBDLHEnableSignaller && - (xAU5XOBDLHAllowLongSignals || - xAU5XOBDLHAllowShortSignals); + bool isXOBDLHEnable = false; + // xAU5XOBDLHEnableSignaller && + // (xAU5XOBDLHAllowLongSignals || + // xAU5XOBDLHAllowShortSignals); // // XCHMACC ... @@ -450,17 +450,17 @@ bool XAU5InitIndicators() // // XCHMAMX ... - bool isXCHMAMXEnable = - xAU5XCHMAMXEnableSignaller && - (xAU5XCHMAMXAllowLongSignals || - xAU5XCHMAMXAllowShortSignals); + bool isXCHMAMXEnable = false; + // xAU5XCHMAMXEnableSignaller && + // (xAU5XCHMAMXAllowLongSignals || + // xAU5XCHMAMXAllowShortSignals); // // XCHMAMN ... - bool isXCHMAMNEnable = - xAU5XCHMAMNEnableSignaller && - (xAU5XCHMAMNAllowLongSignals || - xAU5XCHMAMNAllowShortSignals); + bool isXCHMAMNEnable = false; + // xAU5XCHMAMNEnableSignaller && + // (xAU5XCHMAMNAllowLongSignals || + // xAU5XCHMAMNAllowShortSignals); // bool hasSignaller = @@ -1103,12 +1103,12 @@ void XAU5DisableLongSignallers() // // XOBDLH ... - if (xAU5MXOBDLHEnableSignaller) - { - // - xAU5Provider.DisbaleXOBDLHLongs(); - xAU5MXOBDLHAllowLongSignals = false; - } + // if (xAU5MXOBDLHEnableSignaller) + // { + // // + // xAU5Provider.DisbaleXOBDLHLongs(); + // xAU5MXOBDLHAllowLongSignals = false; + // } // // XCHMACC ... @@ -1121,21 +1121,21 @@ void XAU5DisableLongSignallers() // // XCHMAMX ... - if (xAU5MXCHMAMXEnableSignaller) - { - // - xAU5Provider.DisbaleXCHMAMXLongs(); - xAU5MXCHMAMXAllowLongSignals = false; - } + // if (xAU5MXCHMAMXEnableSignaller) + // { + // // + // xAU5Provider.DisbaleXCHMAMXLongs(); + // xAU5MXCHMAMXAllowLongSignals = false; + // } // // XCHMAMN ... - if (xAU5MXCHMAMNEnableSignaller) - { - // - xAU5Provider.DisbaleXCHMAMNLongs(); - xAU5MXCHMAMNAllowLongSignals = false; - } + // if (xAU5MXCHMAMNEnableSignaller) + // { + // // + // xAU5Provider.DisbaleXCHMAMNLongs(); + // xAU5MXCHMAMNAllowLongSignals = false; + // } } // @@ -1213,20 +1213,20 @@ void XAU5EnableLongSignallers() // // XOBDLH ... - if (xAU5MXOBDLHEnableSignaller) - { - // - xAU5MXOBDLHAllowLongSignals = - xAU5XOBDLHAllowLongSignals - ? true - : xAU5MXOBDLHAllowLongSignals; + // if (xAU5MXOBDLHEnableSignaller) + // { + // // + // xAU5MXOBDLHAllowLongSignals = + // xAU5XOBDLHAllowLongSignals + // ? true + // : xAU5MXOBDLHAllowLongSignals; - // - if (xAU5MXOBDLHAllowLongSignals) - { - xAU5Provider.EnableXOBDLHLongs(); - } - } + // // + // if (xAU5MXOBDLHAllowLongSignals) + // { + // xAU5Provider.EnableXOBDLHLongs(); + // } + // } // // XCHMACC ... @@ -1247,37 +1247,37 @@ void XAU5EnableLongSignallers() // // XCHMAMX ... - if (xAU5MXCHMAMXEnableSignaller) - { - // - xAU5MXCHMAMXAllowLongSignals = - xAU5XCHMAMXAllowLongSignals - ? true - : xAU5MXCHMAMXAllowLongSignals; + // if (xAU5MXCHMAMXEnableSignaller) + // { + // // + // xAU5MXCHMAMXAllowLongSignals = + // xAU5XCHMAMXAllowLongSignals + // ? true + // : xAU5MXCHMAMXAllowLongSignals; - // - if (xAU5MXCHMAMXAllowLongSignals) - { - xAU5Provider.EnableXCHMAMXLongs(); - } - } + // // + // if (xAU5MXCHMAMXAllowLongSignals) + // { + // xAU5Provider.EnableXCHMAMXLongs(); + // } + // } // // XCHMAMN ... - if (xAU5MXCHMAMNEnableSignaller) - { - // - xAU5MXCHMAMNAllowLongSignals = - xAU5XCHMAMNAllowLongSignals - ? true - : xAU5MXCHMAMNAllowLongSignals; + // if (xAU5MXCHMAMNEnableSignaller) + // { + // // + // xAU5MXCHMAMNAllowLongSignals = + // xAU5XCHMAMNAllowLongSignals + // ? true + // : xAU5MXCHMAMNAllowLongSignals; - // - if (xAU5MXCHMAMNAllowLongSignals) - { - xAU5Provider.EnableXCHMAMNLongs(); - } - } + // // + // if (xAU5MXCHMAMNAllowLongSignals) + // { + // xAU5Provider.EnableXCHMAMNLongs(); + // } + // } } // @@ -1322,12 +1322,12 @@ void XAU5DisableShortSignallers() // // XOBDLH ... - if (xAU5MXOBDLHEnableSignaller) - { - // - xAU5Provider.DisableXOBDLHShorts(); - xAU5MXOBDLHAllowShortSignals = false; - } + // if (xAU5MXOBDLHEnableSignaller) + // { + // // + // xAU5Provider.DisableXOBDLHShorts(); + // xAU5MXOBDLHAllowShortSignals = false; + // } // // XCHMACC ... @@ -1340,21 +1340,21 @@ void XAU5DisableShortSignallers() // // XCHMAMX ... - if (xAU5MXCHMAMXEnableSignaller) - { - // - xAU5Provider.DisableXCHMAMXShorts(); - xAU5MXCHMAMXAllowShortSignals = false; - } + // if (xAU5MXCHMAMXEnableSignaller) + // { + // // + // xAU5Provider.DisableXCHMAMXShorts(); + // xAU5MXCHMAMXAllowShortSignals = false; + // } // // XCHMAMN ... - if (xAU5MXCHMAMNEnableSignaller) - { - // - xAU5Provider.DisableXCHMAMNShorts(); - xAU5MXCHMAMNAllowShortSignals = false; - } + // if (xAU5MXCHMAMNEnableSignaller) + // { + // // + // xAU5Provider.DisableXCHMAMNShorts(); + // xAU5MXCHMAMNAllowShortSignals = false; + // } } // @@ -1432,20 +1432,20 @@ void XAU5EnableShortSignallers() // // XOBDLH ... - if (xAU5MXOBDLHEnableSignaller) - { - // - xAU5MXOBDLHAllowShortSignals = - xAU5XOBDLHAllowShortSignals - ? true - : xAU5MXOBDLHAllowShortSignals; + // if (xAU5MXOBDLHEnableSignaller) + // { + // // + // xAU5MXOBDLHAllowShortSignals = + // xAU5XOBDLHAllowShortSignals + // ? true + // : xAU5MXOBDLHAllowShortSignals; - // - if (xAU5MXOBDLHAllowShortSignals) - { - xAU5Provider.EnableXOBDLHShorts(); - } - } + // // + // if (xAU5MXOBDLHAllowShortSignals) + // { + // xAU5Provider.EnableXOBDLHShorts(); + // } + // } // // XCHMACC ... @@ -1466,37 +1466,37 @@ void XAU5EnableShortSignallers() // // XCHMAMX ... - if (xAU5MXCHMAMXEnableSignaller) - { - // - xAU5MXCHMAMXAllowShortSignals = - xAU5XCHMAMXAllowShortSignals - ? true - : xAU5MXCHMAMXAllowShortSignals; + // if (xAU5MXCHMAMXEnableSignaller) + // { + // // + // xAU5MXCHMAMXAllowShortSignals = + // xAU5XCHMAMXAllowShortSignals + // ? true + // : xAU5MXCHMAMXAllowShortSignals; - // - if (xAU5MXCHMAMXAllowShortSignals) - { - xAU5Provider.EnableXCHMAMXShorts(); - } - } + // // + // if (xAU5MXCHMAMXAllowShortSignals) + // { + // xAU5Provider.EnableXCHMAMXShorts(); + // } + // } // // XCHMAMN ... - if (xAU5MXCHMAMNEnableSignaller) - { - // - xAU5MXCHMAMNAllowShortSignals = - xAU5XCHMAMNAllowShortSignals - ? true - : xAU5MXCHMAMNAllowShortSignals; + // if (xAU5MXCHMAMNEnableSignaller) + // { + // // + // xAU5MXCHMAMNAllowShortSignals = + // xAU5XCHMAMNAllowShortSignals + // ? true + // : xAU5MXCHMAMNAllowShortSignals; - // - if (xAU5MXCHMAMNAllowShortSignals) - { - xAU5Provider.EnableXCHMAMNShorts(); - } - } + // // + // if (xAU5MXCHMAMNAllowShortSignals) + // { + // xAU5Provider.EnableXCHMAMNShorts(); + // } + // } } // diff --git a/Projects/XAU5/Providers/x-saherelm.xau5.provider.inputs.lib.mq5 b/Projects/XAU5/Providers/x-saherelm.xau5.provider.inputs.lib.mq5 index 2b9b906f..94956f64 100644 --- a/Projects/XAU5/Providers/x-saherelm.xau5.provider.inputs.lib.mq5 +++ b/Projects/XAU5/Providers/x-saherelm.xau5.provider.inputs.lib.mq5 @@ -36,15 +36,15 @@ input bool xAU5EnableProvider = true; // Enable Provider input int xAU5NumberOfItemsPerTick = 30; // Number Of items Readed In Each Tick // // Alerts ... -input bool xAU5EnableAlerts = true; // Enable Events Alert -input bool xAU5EnableHourlyAlerts = false; // Send Alert on each new Hour -input bool xAU5EnableDailyAlerts = true; // Send Alert on each new Day -input bool xAU5EnableWeeklyAlerts = true; // Send Alert on each new Week -input bool xAU5EnableMonthlyAlerts = true; // Send Alert on each new Month +input bool xAU5EnableAlerts = true; // Enable Events Alert +input bool xAU5EnableHourlyAlerts = false; // Send Alert on each new Hour +input bool xAU5EnableDailyAlerts = false; // Send Alert on each new Day +input bool xAU5EnableWeeklyAlerts = false; // Send Alert on each new Week +input bool xAU5EnableMonthlyAlerts = false; // Send Alert on each new Month // // Reports ... -input bool xAU5EnableDailyReports = false; // Send Report on each new Day -input bool xAU5EnableWeeklyReports = false; // Send Report on each new Week +input bool xAU5EnableDailyReports = false; // Send Report on each new Day +input bool xAU5EnableWeeklyReports = false; // Send Report on each new Week input bool xAU5EnableMonthlyReports = false; // Send Report on each new Month // @@ -68,11 +68,11 @@ input int xAU5MaxAllowedTrades = 10; input ENUM_X_CROSS_SIGNAL_METHOD xAU5CrossSignalsMethod = X_CROSS_SIGNAL_REGULAR; // Handle Cross Signals Method // // Max Allowed Trade Age ... -input int xAU5MaxAllowedTradeAge = 1800; // Detect Long Time Trades +input int xAU5MaxAllowedTradeAge = 1500; // Detect Long Time Trades input ENUM_X_GUARD_ACTIONS xAU5OldTradesAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_1; // What to do with Old Trades // // Trade Volume Specific Configurations ... -input double xAU5StaticVolumeFactor = 0.0002; // Static Volume baesd on Balance +input double xAU5StaticVolumeFactor = 0.0001; // Static Volume baesd on Balance input ENUM_STATIC_VOLUME_METHODS xAU5StaticVolumeMethod = X_STATIC_VOLUME_BASED_ON_BALANCE; // How to Calculate Static Volume input double xAU5VolumeMultiplier = 0; // Volume Increase Multiplier input double xAU5ApplyVolumeMultiplierFactor = 0; // Apply Volume Multiplier Rate based on Balance @@ -82,14 +82,14 @@ input double xAU5IncreasedMaxSupportedVolumeRate = 0; // Trade Profits ... input double xAU5MinRewardInPips = 60; // Minimum Reward Per Trade in Pips input double xAU5RiskFreeStepInPips = 0; // Make Trades Risk Free Steps in Pips -input double xAU5RiskFreeRate = 0; // Volume Multiplier for Risk Free Trades +input double xAU5RiskFreeRate = 0; // Volume Multiplier for Risk Free Trades // // Guard Riskable Money and Profits ... -input double xAU5CriticalDrawDownFactor = 0.30; // Critical Allowed Drawdown Factor based on Balance -input ENUM_X_GUARD_ACTIONS xAU5CriticalGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_5; // Specify Guard Action on Critical Drawdown -input double xAU5MaxAllowedDrawDownFactor = 0.40; // Max Allowed Drawdown Factor based on Balance -input ENUM_X_GUARD_ACTIONS xAU5MaxAllowedGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_10; // Specify Guard Action on Max Allowed Drawdown -input int xAU5GuardStopoutFiredAfterTouches = 5; // Guard Stopout all Trades if Max Allowed Drawdown touched +input double xAU5CriticalDrawDownFactor = 0.20; // Critical Allowed Drawdown Factor based on Balance +input ENUM_X_GUARD_ACTIONS xAU5CriticalGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_1; // Specify Guard Action on Critical Drawdown +input double xAU5MaxAllowedDrawDownFactor = 0.25; // Max Allowed Drawdown Factor based on Balance +input ENUM_X_GUARD_ACTIONS xAU5MaxAllowedGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_5; // Specify Guard Action on Max Allowed Drawdown +input int xAU5GuardStopoutFiredAfterTouches = 5; // Guard Stopout all Trades if Max Allowed Drawdown touched // // Account Conditions for Trading ...