diff --git a/BKP/Main/Providers/x-saherelm.xeu5.provider.inputs.lib.mq5 b/BKP/Main/Providers/x-saherelm.xeu5.provider.inputs.lib.mq5 deleted file mode 100644 index d991bf5b..00000000 --- a/BKP/Main/Providers/x-saherelm.xeu5.provider.inputs.lib.mq5 +++ /dev/null @@ -1,283 +0,0 @@ -/////////////////////////////////////////////////////////////// -// -// SaherElm IT Center MQL5 XEU5 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 "XEU5 Provider"; - -// -// Commonly Used Configurations ... -input group "XEU5 Common"; -// -// Provider ... -input bool xEU5EnableProvider = true; // Enable Provider -input int xEU5NumberOfItemsPerTick = 30; // Number Of items Readed In Each Tick -// -// Alerts ... -input bool xEU5EnableAlerts = true; // Enable Events Alert -input bool xEU5EnableHourlyAlerts = false; // Send Alert on each new Hour -input bool xEU5EnableDailyAlerts = false; // Send Alert on each new Day -input bool xEU5EnableWeeklyAlerts = false; // Send Alert on each new Week -input bool xEU5EnableMonthlyAlerts = false; // Send Alert on each new Month -// -// Reports ... -input bool xEU5EnableDailyReports = false; // Send Report on each new Day -input bool xEU5EnableWeeklyReports = false; // Send Report on each new Week -input bool xEU5EnableMonthlyReports = false; // Send Report on each new Month - -// -// Trader and Expert Specific Configurations ... -input group "XEU5 Trader"; -input int xEU5MagicNumber = 16940560; // Trader MagicNumber -input int xEU5Slippage = 10; // Trader Slippage - -// -// Trades Management Configurations ... -input group "XEU5 Trade Management"; -input bool xEU5AllowLongTrades = true; // Allow Long Trades -input bool xEU5AllowShortTrades = true; // Allow Short Trades - -// -// Risk Management Configurations ... -input group "XEU5 Risk Management"; -// -// Trade Count ... -input int xEU5MaxAllowedTrades = 10; // Max Allowed Trades at Same Time -input ENUM_X_CROSS_SIGNAL_METHOD xEU5CrossSignalsMethod = X_CROSS_SIGNAL_REGULAR; // Handle Cross Signals Method -// -// Max Allowed Trade Age ... -input int xEU5MaxAllowedTradeAge = 1500; // Detect Long Time Trades -input ENUM_X_GUARD_ACTIONS xEU5OldTradesAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_1; // What to do with Old Trades -// -// Trade Volume Specific Configurations ... -input double xEU5StaticVolumeFactor = 0.0002; // Static Volume baesd on Balance -input ENUM_STATIC_VOLUME_METHODS xEU5StaticVolumeMethod = X_STATIC_VOLUME_BASED_ON_BALANCE; // How to Calculate Static Volume -input double xEU5VolumeMultiplier = 0; // Volume Increase Multiplier -input double xEU5ApplyVolumeMultiplierFactor = 0; // Apply Volume Multiplier Rate based on Balance -input double xEU5MaxSupportedVolumePerTradeFactor = 0; // Max Supported Volume Per Trade Factor based on Balance -input double xEU5IncreasedMaxSupportedVolumeRate = 0; // Increase Max Supported Volume based on Balance -// -// Trade Profits ... -input double xEU5MinRewardInPips = 6; // Minimum Reward Per Trade in Pips -input double xEU5RiskFreeStepInPips = 0; // Make Trades Risk Free Steps in Pips -input double xEU5RiskFreeRate = 0; // Volume Multiplier for Risk Free Trades -// -// Guard Riskable Money and Profits ... -input double xEU5CriticalDrawDownFactor = 0.20; // Critical Allowed Drawdown Factor based on Balance -input ENUM_X_GUARD_ACTIONS xEU5CriticalGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_1; // Specify Guard Action on Critical Drawdown -input double xEU5MaxAllowedDrawDownFactor = 0.25; // Max Allowed Drawdown Factor based on Balance -input ENUM_X_GUARD_ACTIONS xEU5MaxAllowedGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_5; // Specify Guard Action on Max Allowed Drawdown -input int xEU5GuardStopoutFiredAfterTouches = 5; // Guard Stopout all Trades if Max Allowed Drawdown touched - -// -// Account Conditions for Trading ... -input double xEU5BalanceFactorForOpenTrades = 0.5; // Minimum Balance for Open Trades -input double xEU5FreeMarginFactorForOpenTrades = 0.8; // Minimum Free Margin for Open Trades - -// -// May be Used Later as Input Params ... -bool xEU5UseVirtualTPSl = false; // Use Virtual TP SL -bool xEU5EnableSignalAlerts = false; // Send Signal Alert - -// -// Validate Inputs before Initialization ... -bool XEU5ValidateInputs() -{ - // - bool result = false; - - // - // Implement Other Verifications ... - - // - // Check Trading Availability ... - bool isTradeAvailable = xEU5AllowLongTrades || xEU5AllowShortTrades; - if (!isTradeAvailable) - { - LogMessage("XEU5 => Warning: Trading disabled ..."); - } - - // - // Chekc Number of reading items per tick ... - result = xEU5NumberOfItemsPerTick >= 5; - if (!result) - { - // - LogMessage("XEU5 invalid Number of items Reading Per Tick ..."); - - // - return result; - } - - // - // Check Max Allowed Trades Count ... - result = isTradeAvailable && xEU5MaxAllowedTrades >= 1; - if (!result) - { - // - LogMessage("XEU5 Number of Trades not valid ..."); - - // - return result; - } - - // - // Check Free Margin ... - result = - isTradeAvailable && - xEU5FreeMarginFactorForOpenTrades > 0 && - xEU5FreeMarginFactorForOpenTrades < 1; - if (!result) - { - // - LogMessage("XEU5 Invalid Free Margin ..."); - - // - return result; - } - - // - // Check min Balance for Open Trades ... - result = - isTradeAvailable && - xEU5BalanceFactorForOpenTrades > 0 && - xEU5BalanceFactorForOpenTrades < 1; - if (!result) - { - // - LogMessage("XEU5 Invalid Min Balance for Open Trades ..."); - - // - return result; - } - - // - // Check Min Reward Per Trade ... - result = xEU5MinRewardInPips > 0; - if (!result) - { - // - LogMessage("XEU5 Invalid Min Reward Per Trade ..."); - - // - return result; - } - - // - // Check Trades Volume ... - result = xEU5StaticVolumeFactor > 0; - if (!result) - { - // - LogMessage("XEU5 Invalid Static Volume ..."); - - // - return result; - } - - // - // Check Volume Multiplier ... - result = xEU5VolumeMultiplier >= 0; - if (!result) - { - // - LogMessage("XEU5 Invalid Volume Multiplier ..."); - - // - return result; - } - - // - result = - xEU5CriticalDrawDownFactor == 0 || (xEU5CriticalDrawDownFactor > 0 && - xEU5CriticalDrawDownFactor < 1); - if (!result) - { - // - LogMessage("XEU5 Invalid Critical DrawDown Factor ..."); - - // - return result; - } - - // - result = - xEU5MaxAllowedDrawDownFactor == 0 || (xEU5MaxAllowedDrawDownFactor > 0 && - xEU5MaxAllowedDrawDownFactor < 1); - if (!result) - { - // - LogMessage("XEU5 Invalid Max Allowed DrawDown Factor ..."); - - // - return result; - } - - // - // Check Guard Actions ... - // - result = - xEU5CriticalDrawDownFactor > 0 && - xEU5CriticalDrawDownFactor < 1 && - xEU5MaxAllowedDrawDownFactor > 0 && - xEU5MaxAllowedDrawDownFactor < 1; - if (!result) - { - // - LogMessage("XEU5 For Critical Drawdown, you have to Specify Max Drawdown also ..."); - - // - return result; - } - - // - result = xEU5CriticalDrawDownFactor > 0 && xEU5CriticalDrawDownFactor < xEU5MaxAllowedDrawDownFactor; - if (!result) - { - // - LogMessage("XEU5 Critical Drawdown must Smaller than Max Drawdown ..."); - - // - return result; - } - - // - if (xEU5CriticalDrawDownFactor > 0 && xEU5CriticalGuardAction == X_GUARD_DO_NOTHING) - { - LogMessage("XEU5 IMPORTANT you Specified Critical Drawdown, but there is no any Guard Action ..."); - } - - // - if (xEU5MaxAllowedDrawDownFactor > 0 && xEU5MaxAllowedGuardAction == X_GUARD_DO_NOTHING) - { - LogMessage("XEU5 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/Classes/x-saherelm.class.lib.mq5 b/Classes/x-saherelm.class.lib.mq5 similarity index 100% rename from BKP/Main/Classes/x-saherelm.class.lib.mq5 rename to Classes/x-saherelm.class.lib.mq5 diff --git a/BKP/Main/Classes/x-saherelm.nn.lib.mq5 b/Classes/x-saherelm.nn.lib.mq5 similarity index 100% rename from BKP/Main/Classes/x-saherelm.nn.lib.mq5 rename to Classes/x-saherelm.nn.lib.mq5 diff --git a/BKP/Main/Classes/x-saherelm.provider.lib.mq5 b/Classes/x-saherelm.provider.lib.mq5 similarity index 99% rename from BKP/Main/Classes/x-saherelm.provider.lib.mq5 rename to Classes/x-saherelm.provider.lib.mq5 index 1dbdcd3f..765544c7 100644 --- a/BKP/Main/Classes/x-saherelm.provider.lib.mq5 +++ b/Classes/x-saherelm.provider.lib.mq5 @@ -254,14 +254,14 @@ struct XMarketConditions // // -class XCProvider : public XCBase +class XCPriver : public XCBase { // // Public ... public: // // Constructor ... - XCProvider( + XCPriver( // // Common Requirements ... string xSymbol, // Which Symbol is Used @@ -285,9 +285,9 @@ public: bool xSIAllowShortSignals, // Allow Short Signals // // XTSFI ... - bool xTSFIEnableSignaller, // Enable Signaller - bool xTSFIAllowLongSignals, // Allow Long Signals - bool xTSFIAllowShortSignals, // Allow Short Signals + bool XTSFIEnableSignaller, // Enable Signaller + bool XTSFIAllowLongSignals, // Allow Long Signals + bool XTSFIAllowShortSignals, // Allow Short Signals // // XOBDLH ... bool xOBDLHEnableSignaller, // Enable Signaller @@ -331,9 +331,9 @@ public: // // XTSFI ... - mXTSFIEnableSignaller = xTSFIEnableSignaller; - mXTSFIAllowLongSignals = xTSFIAllowLongSignals; - mXTSFIAllowShortSignals = xTSFIAllowShortSignals; + mXTSFIEnableSignaller = XTSFIEnableSignaller; + mXTSFIAllowLongSignals = XTSFIAllowLongSignals; + mXTSFIAllowShortSignals = XTSFIAllowShortSignals; // // XOBDLH ... @@ -362,7 +362,7 @@ public: // // Deconstructor ... - ~XCProvider() {} + ~XCPriver() {} // // START Common Functions ... diff --git a/Documents/Templates/Brokers List.txt b/Documents/Templates/Brokers List.txt index e196572c..cb347682 100644 --- a/Documents/Templates/Brokers List.txt +++ b/Documents/Templates/Brokers List.txt @@ -38,14 +38,6 @@ Resolve XUSCHF5 XTSFI All Critical Guard Attacks in All Markets ... Resolve XUSCHF5 XTSFI All Guard Attacks in All Markets ... -XOBDLH --------- -Resolve XUSCHF5 XOBDLH All Stopouts in All Markets ... -Resolve XUSCHF5 XOBDLH Longs All Critical Guard Attacks in AMarkets-Real ... -Resolve XUSCHF5 XOBDLH Shorts All Critical Guard Attacks in All Markets ... -Resolve XUSCHF5 XOBDLH All Guard Attacks in All Markets ... - - XCHMACC -------- Resolve XUSCHF5 XCHMACC All Stopouts in All Markets ... @@ -54,6 +46,14 @@ Resolve XUSCHF5 XCHMACC Shorts All Critical Guard Attacks in All Markets ... Resolve XUSCHF5 XCHMACC All Guard Attacks in All Markets ... +XOBDLH +-------- +Resolve XUSCHF5 XOBDLH All Stopouts in All Markets ... +Resolve XUSCHF5 XOBDLH Longs All Critical Guard Attacks in AMarkets-Real ... +Resolve XUSCHF5 XOBDLH Shorts All Critical Guard Attacks in All Markets ... +Resolve XUSCHF5 XOBDLH All Guard Attacks in All Markets ... + + XCHMAMX -------- Resolve XUSCHF5 XCHMAMX All Stopouts in All Markets ... diff --git a/BKP/Main/Experts/x-saherelm.xeu5.ea.mq5 b/Experts/x-saherelm.xuschf5.ea.mq5 similarity index 67% rename from BKP/Main/Experts/x-saherelm.xeu5.ea.mq5 rename to Experts/x-saherelm.xuschf5.ea.mq5 index 5d90b797..0838146b 100644 --- a/BKP/Main/Experts/x-saherelm.xeu5.ea.mq5 +++ b/Experts/x-saherelm.xuschf5.ea.mq5 @@ -17,21 +17,20 @@ #property copyright "Copyright 2023, SaherElm IT Center" #property link "https://saherelm.ir" #property version "1.00" -#property description "SaherElm XEU5 EA" +#property description "SaherElm XUSCHF5 EA" #property strict // // START Inputs ... // -// input group "Commons"; // // XCTIMER inputs ... -input bool xEU5ShowCandleTimer = true; // Show Condle Remaining Time -input color xEU5CandleTimerColot = clrYellow; // Candle Timer Color -input ENUM_BASE_CORNER xEU5CandleTimerCorner = CORNER_RIGHT_LOWER; // Where to Show Candle Timer +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 // // END Inputs ... @@ -58,8 +57,8 @@ input ENUM_BASE_CORNER xEU5CandleTimerCorner = CORNER_RIGHT_LOWER; // Where to S #include "../Libraries/x-saherelm.draw.lib.mq5" // -// XEU5 Signal Provider ... -#include "../Providers/x-saherelm.xeu5.provider.lib.mq5" +// XUSCHF5 Signal Provider ... +#include "../Providers/x-saherelm.xuschf5.provider.lib.mq5" // // END Including Providers ... @@ -68,13 +67,13 @@ input ENUM_BASE_CORNER xEU5CandleTimerCorner = CORNER_RIGHT_LOWER; // Where to S // // START Global Definitions: Variables, Properties and etc ... // -bool isXEU5NewHour; -bool isXEU5NewDay; -bool isXEU5NewWeek; -bool isXEU5NewMonth; +bool isXUSCHF5NewHour; +bool isXUSCHF5NewDay; +bool isXUSCHF5NewWeek; +bool isXUSCHF5NewMonth; // -int xEU5CTimerHandler = INVALID_HANDLE; +int xUSCHF5CTimerHandler = INVALID_HANDLE; // // END Global Definitions: Variables, Properties and etc ... // @@ -88,7 +87,7 @@ int xEU5CTimerHandler = INVALID_HANDLE; int OnInit() { // - logTag = "XEU5EA"; + logTag = "XUSCHF5EA"; drawPrefix = logTag; alertPrefix = logTag; @@ -108,17 +107,17 @@ int OnInit() } // - // Initialize XEU5 Provider ... - if (!XEU5InitSignalProviderLibrary()) + // Initialize XUSCHF5 Provider ... + if (!XUSCHF5InitSignalProviderLibrary()) { return INIT_PARAMETERS_INCORRECT; } // // Init XCTimer ... - if (xEU5ShowCandleTimer) + if (xUSCHF5ShowCandleTimer) { - if (!XEU5CTimerInit()) + if (!XUSCHF5CTimerInit()) { return INIT_FAILED; } @@ -149,15 +148,15 @@ void OnDeinit(const int reason) // Here we can handle De Initialization Reasons ... // - // De Initialize XEU5 Provider ... - XEU5DeinitSignalProviderLibrary(reason); + // De Initialize XUSCHF5 Provider ... + XUSCHF5DeinitSignalProviderLibrary(reason); // // De Init XDraw Library ... // OnDeinitDrawLibrary(); // - IndicatorRelease(xEU5CTimerHandler); + IndicatorRelease(xUSCHF5CTimerHandler); } // @@ -167,15 +166,15 @@ void OnTick() // // Handle Monthly Alert ... bool isFirstMonth = xMonth == -1; - isXEU5NewMonth = IsNewMonth(); + isXUSCHF5NewMonth = IsNewMonth(); bool canMonthlyAlert = - isXEU5NewMonth && - xEU5EnableAlerts && - xEU5EnableMonthlyAlerts; + isXUSCHF5NewMonth && + xUSCHF5EnableAlerts && + xUSCHF5EnableMonthlyAlerts; bool canMonthlyReport = !isFirstMonth && canMonthlyAlert && - xEU5EnableMonthlyReports; + xUSCHF5EnableMonthlyReports; if (canMonthlyAlert) { // @@ -186,7 +185,7 @@ void OnTick() if (canMonthlyReport) { // - string report = xEU5Reporter.GenerateReportString(XREPORT_MONTHLY); + string report = xUSCHF5Reporter.GenerateReportString(XREPORT_MONTHLY); // message = "Last Month Report:\n" + report; @@ -194,7 +193,7 @@ void OnTick() // // Reset Report ... - xEU5Reporter.Reset(XREPORT_MONTHLY); + xUSCHF5Reporter.Reset(XREPORT_MONTHLY); // SendAlert(message); @@ -203,15 +202,15 @@ void OnTick() // // Handle Weekly Alert ... bool isFirstWeek = xDayOfWeek == -1; - isXEU5NewWeek = IsNewWeek(); + isXUSCHF5NewWeek = IsNewWeek(); bool canWeeklyAlert = - isXEU5NewWeek && - xEU5EnableAlerts && - xEU5EnableWeeklyAlerts; + isXUSCHF5NewWeek && + xUSCHF5EnableAlerts && + xUSCHF5EnableWeeklyAlerts; bool canWeeklyReport = !isFirstWeek && canWeeklyAlert && - xEU5EnableWeeklyReports; + xUSCHF5EnableWeeklyReports; if (canWeeklyAlert) { // @@ -222,7 +221,7 @@ void OnTick() if (canWeeklyReport) { // - string report = xEU5Reporter.GenerateReportString(XREPORT_WEEKLY); + string report = xUSCHF5Reporter.GenerateReportString(XREPORT_WEEKLY); // message = "Last Week Report:\n" + report; @@ -230,7 +229,7 @@ void OnTick() // // Reset Report ... - xEU5Reporter.Reset(XREPORT_WEEKLY); + xUSCHF5Reporter.Reset(XREPORT_WEEKLY); // SendAlert(message); @@ -239,15 +238,15 @@ void OnTick() // // Handle Daily Alert ... bool isFirstDay = xDay == -1; - isXEU5NewDay = IsNewDay(); + isXUSCHF5NewDay = IsNewDay(); bool canDailyAlert = - isXEU5NewDay && - xEU5EnableAlerts && - xEU5EnableDailyAlerts; + isXUSCHF5NewDay && + xUSCHF5EnableAlerts && + xUSCHF5EnableDailyAlerts; bool canDailyReport = !isFirstDay && canDailyAlert && - xEU5EnableDailyReports; + xUSCHF5EnableDailyReports; if (canDailyAlert) { // @@ -258,7 +257,7 @@ void OnTick() if (canDailyReport) { // - string report = xEU5Reporter.GenerateReportString(XREPORT_DAILY); + string report = xUSCHF5Reporter.GenerateReportString(XREPORT_DAILY); // message = "Last Week Report:\n" + report; @@ -266,7 +265,7 @@ void OnTick() // // Reset Report ... - xEU5Reporter.Reset(XREPORT_DAILY); + xUSCHF5Reporter.Reset(XREPORT_DAILY); // SendAlert(message); @@ -275,11 +274,11 @@ void OnTick() // // Handle Hourly Alert ... bool isFirstHour = xHour == -1; - isXEU5NewHour = IsNewHour(); + isXUSCHF5NewHour = IsNewHour(); bool canHourlyAlert = - isXEU5NewHour && - xEU5EnableAlerts && - xEU5EnableHourlyAlerts; + isXUSCHF5NewHour && + xUSCHF5EnableAlerts && + xUSCHF5EnableHourlyAlerts; if (canHourlyAlert) { // @@ -291,33 +290,33 @@ void OnTick() // // Prevent Going Forward if user Disable it ... - if (xEU5EnableProvider) + if (xUSCHF5EnableProvider) { // - // Handle Processing on XEU5 Signal Provider ... - XEU5SignalProviderDoControlState(); + // Handle Processing on XUSCHF5 Signal Provider ... + XUSCHF5SignalProviderDoControlState(); } // // Check Can Ignore Tick or not .. - bool canIgnoreTick = xEU5IsTestMode + bool canIgnoreTick = xUSCHF5IsTestMode ? !IsNewCandle() - : !IsNewCandle() && xEU5WaitUntilNextCandle; + : !IsNewCandle() && xUSCHF5WaitUntilNextCandle; if (canIgnoreTick) { return; } // - xEU5WaitUntilNextCandle = false; + xUSCHF5WaitUntilNextCandle = false; // // Prevent Going Forward if user Disable it ... - if (xEU5EnableProvider) + if (xUSCHF5EnableProvider) { // - // Handle Processing on XEU5 Signal Provider ... - XEU5SignalProviderHandleTick(); + // Handle Processing on XUSCHF5 Signal Provider ... + XUSCHF5SignalProviderHandleTick(); } } @@ -328,11 +327,11 @@ void OnTrade() // // Prevent Going Forward if user Disable it ... - if (xEU5EnableProvider) + if (xUSCHF5EnableProvider) { // - // Handle Processing Trades on XEU5 Signal Provider ... - XEU5SignalProviderHandleTrade(); + // Handle Processing Trades on XUSCHF5 Signal Provider ... + XUSCHF5SignalProviderHandleTrade(); } } @@ -355,8 +354,8 @@ bool ValidateInputs() // Validate Args ... // - // Validate XEU5 Provider Inputs ... - result = XEU5ValidateInputs(); + // Validate XUSCHF5 Provider Inputs ... + result = XUSCHF5ValidateInputs(); if (!result) { return false; @@ -371,24 +370,24 @@ bool ValidateInputs() return result; } -bool XEU5CTimerInit() +bool XUSCHF5CTimerInit() { // bool result = true; // - xEU5CTimerHandler = iCustom( + xUSCHF5CTimerHandler = iCustom( _Symbol, _Period, "x-saherelm.xctimer.indicator", // // Inputs ... - xEU5CandleTimerColot, - xEU5CandleTimerCorner - ); + xUSCHF5CandleTimerColot, + xUSCHF5CandleTimerCorner); // - if (xEU5CTimerHandler == INVALID_HANDLE) { + if (xUSCHF5CTimerHandler == INVALID_HANDLE) + { result = false; } diff --git a/BKP/Main/Helpers/x-saherelm.xama.indicator.helper.lib.mq5 b/Helpers/x-saherelm.xama.indicator.helper.lib.mq5 similarity index 100% rename from BKP/Main/Helpers/x-saherelm.xama.indicator.helper.lib.mq5 rename to Helpers/x-saherelm.xama.indicator.helper.lib.mq5 diff --git a/BKP/Main/Helpers/x-saherelm.xchlh.oscillator.helper.lib.mq5 b/Helpers/x-saherelm.xchlh.oscillator.helper.lib.mq5 similarity index 100% rename from BKP/Main/Helpers/x-saherelm.xchlh.oscillator.helper.lib.mq5 rename to Helpers/x-saherelm.xchlh.oscillator.helper.lib.mq5 diff --git a/BKP/Main/Helpers/x-saherelm.xchma.oscillator.helper.lib.mq5 b/Helpers/x-saherelm.xchma.oscillator.helper.lib.mq5 similarity index 100% rename from BKP/Main/Helpers/x-saherelm.xchma.oscillator.helper.lib.mq5 rename to Helpers/x-saherelm.xchma.oscillator.helper.lib.mq5 diff --git a/BKP/Main/Helpers/x-saherelm.xfi.oscillator.helper.lib.mq5 b/Helpers/x-saherelm.xfi.oscillator.helper.lib.mq5 similarity index 100% rename from BKP/Main/Helpers/x-saherelm.xfi.oscillator.helper.lib.mq5 rename to Helpers/x-saherelm.xfi.oscillator.helper.lib.mq5 diff --git a/BKP/Main/Helpers/x-saherelm.xlh.indicator.helper.lib.mq5 b/Helpers/x-saherelm.xlh.indicator.helper.lib.mq5 similarity index 100% rename from BKP/Main/Helpers/x-saherelm.xlh.indicator.helper.lib.mq5 rename to Helpers/x-saherelm.xlh.indicator.helper.lib.mq5 diff --git a/BKP/Main/Helpers/x-saherelm.xobd.indicator.helper.lib.mq5 b/Helpers/x-saherelm.xobd.indicator.helper.lib.mq5 similarity index 100% rename from BKP/Main/Helpers/x-saherelm.xobd.indicator.helper.lib.mq5 rename to Helpers/x-saherelm.xobd.indicator.helper.lib.mq5 diff --git a/BKP/Main/Helpers/x-saherelm.xrsi.oscillator.helper.lib.mq5 b/Helpers/x-saherelm.xrsi.oscillator.helper.lib.mq5 similarity index 100% rename from BKP/Main/Helpers/x-saherelm.xrsi.oscillator.helper.lib.mq5 rename to Helpers/x-saherelm.xrsi.oscillator.helper.lib.mq5 diff --git a/BKP/Main/Helpers/x-saherelm.xtd.oscillator.helper.lib.mq5 b/Helpers/x-saherelm.xtd.oscillator.helper.lib.mq5 similarity index 100% rename from BKP/Main/Helpers/x-saherelm.xtd.oscillator.helper.lib.mq5 rename to Helpers/x-saherelm.xtd.oscillator.helper.lib.mq5 diff --git a/BKP/Main/Helpers/x-saherelm.xtm.indicator.helper.lib.mq5 b/Helpers/x-saherelm.xtm.indicator.helper.lib.mq5 similarity index 100% rename from BKP/Main/Helpers/x-saherelm.xtm.indicator.helper.lib.mq5 rename to Helpers/x-saherelm.xtm.indicator.helper.lib.mq5 diff --git a/BKP/Main/Helpers/x-saherelm.xts.oscillator.helper.lib.mq5 b/Helpers/x-saherelm.xts.oscillator.helper.lib.mq5 similarity index 100% rename from BKP/Main/Helpers/x-saherelm.xts.oscillator.helper.lib.mq5 rename to Helpers/x-saherelm.xts.oscillator.helper.lib.mq5 diff --git a/BKP/Main/Indicators/x-saherelm.xama.indicator.mq5 b/Indicators/x-saherelm.xama.indicator.mq5 similarity index 100% rename from BKP/Main/Indicators/x-saherelm.xama.indicator.mq5 rename to Indicators/x-saherelm.xama.indicator.mq5 diff --git a/BKP/Main/Indicators/x-saherelm.xchlh.oscillator.mq5 b/Indicators/x-saherelm.xchlh.oscillator.mq5 similarity index 100% rename from BKP/Main/Indicators/x-saherelm.xchlh.oscillator.mq5 rename to Indicators/x-saherelm.xchlh.oscillator.mq5 diff --git a/BKP/Main/Indicators/x-saherelm.xchma.oscillator.mq5 b/Indicators/x-saherelm.xchma.oscillator.mq5 similarity index 100% rename from BKP/Main/Indicators/x-saherelm.xchma.oscillator.mq5 rename to Indicators/x-saherelm.xchma.oscillator.mq5 diff --git a/BKP/Main/Indicators/x-saherelm.xctimer.indicator.mq5 b/Indicators/x-saherelm.xctimer.indicator.mq5 similarity index 100% rename from BKP/Main/Indicators/x-saherelm.xctimer.indicator.mq5 rename to Indicators/x-saherelm.xctimer.indicator.mq5 diff --git a/BKP/Main/Indicators/x-saherelm.xfi.oscillator.mq5 b/Indicators/x-saherelm.xfi.oscillator.mq5 similarity index 100% rename from BKP/Main/Indicators/x-saherelm.xfi.oscillator.mq5 rename to Indicators/x-saherelm.xfi.oscillator.mq5 diff --git a/BKP/Main/Indicators/x-saherelm.xlh.indicator.mq5 b/Indicators/x-saherelm.xlh.indicator.mq5 similarity index 100% rename from BKP/Main/Indicators/x-saherelm.xlh.indicator.mq5 rename to Indicators/x-saherelm.xlh.indicator.mq5 diff --git a/BKP/Main/Indicators/x-saherelm.xobd.indicator.mq5 b/Indicators/x-saherelm.xobd.indicator.mq5 similarity index 100% rename from BKP/Main/Indicators/x-saherelm.xobd.indicator.mq5 rename to Indicators/x-saherelm.xobd.indicator.mq5 diff --git a/BKP/Main/Indicators/x-saherelm.xrsi.oscillator.mq5 b/Indicators/x-saherelm.xrsi.oscillator.mq5 similarity index 100% rename from BKP/Main/Indicators/x-saherelm.xrsi.oscillator.mq5 rename to Indicators/x-saherelm.xrsi.oscillator.mq5 diff --git a/BKP/Main/Indicators/x-saherelm.xtd.oscillator.mq5 b/Indicators/x-saherelm.xtd.oscillator.mq5 similarity index 100% rename from BKP/Main/Indicators/x-saherelm.xtd.oscillator.mq5 rename to Indicators/x-saherelm.xtd.oscillator.mq5 diff --git a/BKP/Main/Indicators/x-saherelm.xtm.indicator.mq5 b/Indicators/x-saherelm.xtm.indicator.mq5 similarity index 100% rename from BKP/Main/Indicators/x-saherelm.xtm.indicator.mq5 rename to Indicators/x-saherelm.xtm.indicator.mq5 diff --git a/BKP/Main/Indicators/x-saherelm.xts.oscillator.mq5 b/Indicators/x-saherelm.xts.oscillator.mq5 similarity index 100% rename from BKP/Main/Indicators/x-saherelm.xts.oscillator.mq5 rename to Indicators/x-saherelm.xts.oscillator.mq5 diff --git a/BKP/Main/Libraries/x-saherelm.alert.lib.mq5 b/Libraries/x-saherelm.alert.lib.mq5 similarity index 100% rename from BKP/Main/Libraries/x-saherelm.alert.lib.mq5 rename to Libraries/x-saherelm.alert.lib.mq5 diff --git a/BKP/Main/Libraries/x-saherelm.common.lib.mq5 b/Libraries/x-saherelm.common.lib.mq5 similarity index 100% rename from BKP/Main/Libraries/x-saherelm.common.lib.mq5 rename to Libraries/x-saherelm.common.lib.mq5 diff --git a/BKP/Main/Libraries/x-saherelm.draw.lib.mq5 b/Libraries/x-saherelm.draw.lib.mq5 similarity index 100% rename from BKP/Main/Libraries/x-saherelm.draw.lib.mq5 rename to Libraries/x-saherelm.draw.lib.mq5 diff --git a/BKP/Main/Libraries/x-saherelm.http.lib.mq5 b/Libraries/x-saherelm.http.lib.mq5 similarity index 100% rename from BKP/Main/Libraries/x-saherelm.http.lib.mq5 rename to Libraries/x-saherelm.http.lib.mq5 diff --git a/BKP/Main/Libraries/x-saherelm.log.lib.mq5 b/Libraries/x-saherelm.log.lib.mq5 similarity index 100% rename from BKP/Main/Libraries/x-saherelm.log.lib.mq5 rename to Libraries/x-saherelm.log.lib.mq5 diff --git a/BKP/Main/Libraries/x-saherelm.models.lib.mq5 b/Libraries/x-saherelm.models.lib.mq5 similarity index 100% rename from BKP/Main/Libraries/x-saherelm.models.lib.mq5 rename to Libraries/x-saherelm.models.lib.mq5 diff --git a/BKP/Main/Providers/x-saherelm.xeu5.provider.indicators.lib.mq5 b/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 similarity index 56% rename from BKP/Main/Providers/x-saherelm.xeu5.provider.indicators.lib.mq5 rename to Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 index 9dcb2cac..c58d8730 100644 --- a/BKP/Main/Providers/x-saherelm.xeu5.provider.indicators.lib.mq5 +++ b/Providers/x-saherelm.xuschf5.provider.indicators.lib.mq5 @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////// // -// SaherElm IT Center MQL5 XEU5 Signal Provider Indicators Library +// SaherElm IT Center MQL5 XUSCHF5 Signal Provider Indicators Library // ---------------------------------------------------------------- // // Maintainer: @@ -18,7 +18,7 @@ // // Include Provider Inputs ... -#include "x-saherelm.xeu5.provider.inputs.lib.mq5" +#include "x-saherelm.xuschf5.provider.inputs.lib.mq5" // // Include Provider Class ... @@ -26,136 +26,136 @@ // // Signallers ... -input group "XEU5 Signallers"; +input group "XUSCHF5 Signallers"; // // XTD ... -input group "XEU5 XTD Signaller"; -input bool xEU5XTDEnableSignaller = true; // Enable Signaller -input bool xEU5XTDAllowLongSignals = true; // Enable Long Signals -input bool xEU5XTDAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XTD Signaller"; +input bool xUSCHF5XTDEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XTDAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XTDAllowShortSignals = true; // Enable Short Signals // // XTAM ... -input group "XEU5 XTAM Signaller"; -input bool xEU5XTAMEnableSignaller = true; // Enable Signaller -input bool xEU5XTAMAllowLongSignals = true; // Enable Long Signals -input bool xEU5XTAMAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XTAM Signaller"; +input bool xUSCHF5XTAMEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XTAMAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XTAMAllowShortSignals = true; // Enable Short Signals // // XSI ... -input group "XEU5 XSI Signaller"; -input bool xEU5XSIEnableSignaller = true; // Enable Signaller -input bool xEU5XSIAllowLongSignals = true; // Enable Long Signals -input bool xEU5XSIAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XSI Signaller"; +input bool xUSCHF5XSIEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XSIAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XSIAllowShortSignals = true; // Enable Short Signals // // XTSFI ... -input group "XEU5 XTSFI Signaller"; -input bool xEU5XTSFIEnableSignaller = true; // Enable Signaller -input bool xEU5XTSFIAllowLongSignals = true; // Enable Long Signals -input bool xEU5XTSFIAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XTSFI Signaller"; +input bool xUSCHF5XTSFIEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XTSFIAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XTSFIAllowShortSignals = true; // Enable Short Signals -// -// XOBDLH ... -// input group "XEU5 XOBDLH Signaller"; -// input bool xEU5XOBDLHEnableSignaller = true; // Enable Signaller -// input bool xEU5XOBDLHAllowLongSignals = true; // Enable Long Signals -// input bool xEU5XOBDLHAllowShortSignals = 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 // // XCHMACC ... -input group "XEU5 XCHMACC Signaller"; -input bool xEU5XCHMACCEnableSignaller = true; // Enable Signaller -input bool xEU5XCHMACCAllowLongSignals = true; // Enable Long Signals -input bool xEU5XCHMACCAllowShortSignals = true; // Enable Short Signals +input group "XUSCHF5 XCHMACC Signaller"; +input bool xUSCHF5XCHMACCEnableSignaller = true; // Enable Signaller +input bool xUSCHF5XCHMACCAllowLongSignals = true; // Enable Long Signals +input bool xUSCHF5XCHMACCAllowShortSignals = true; // Enable Short Signals -// -// XCHMAMX ... -// input group "XEU5 XCHMAMX Signaller"; -// input bool xEU5XCHMAMXEnableSignaller = true; // Enable Signaller -// input bool xEU5XCHMAMXAllowLongSignals = true; // Enable Long Signals -// input bool xEU5XCHMAMXAllowShortSignals = 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 -// -// XCHMAMN ... -// input group "XEU5 XCHMAMN Signaller"; -// input bool xEU5XCHMAMNEnableSignaller = true; // Enable Signaller -// input bool xEU5XCHMAMNAllowLongSignals = true; // Enable Long Signals -// input bool xEU5XCHMAMNAllowShortSignals = 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 // // Check in Test Mode or not ... -bool xEU5IsTestMode = false; +bool xUSCHF5IsTestMode = false; // // Detect max Input Length of Indicators ... -int xEU5MaxLengthOfInputs = 0; +int xUSCHF5MaxLengthOfInputs = 0; // // Detect Calculated Bars ... -int xEU5CalculatedBars = 0; +int xUSCHF5CalculatedBars = 0; // // Check prevent Double Signalling on Same Candle ... -bool xEU5WaitUntilNextCandle = false; +bool xUSCHF5WaitUntilNextCandle = false; // // Signaller Variables ... // // XTD ... -bool xEU5MXTDEnableSignaller = xEU5XTDEnableSignaller; -bool xEU5MXTDAllowLongSignals = xEU5XTDAllowLongSignals; -bool xEU5MXTDAllowShortSignals = xEU5XTDAllowShortSignals; +bool xUSCHF5MXTDEnableSignaller = xUSCHF5XTDEnableSignaller; +bool xUSCHF5MXTDAllowLongSignals = xUSCHF5XTDAllowLongSignals; +bool xUSCHF5MXTDAllowShortSignals = xUSCHF5XTDAllowShortSignals; // // XTAM ... -bool xEU5MXTAMEnableSignaller = xEU5XTAMEnableSignaller; -bool xEU5MXTAMAllowLongSignals = xEU5XTAMAllowLongSignals; -bool xEU5MXTAMAllowShortSignals = xEU5XTAMAllowShortSignals; +bool xUSCHF5MXTAMEnableSignaller = xUSCHF5XTAMEnableSignaller; +bool xUSCHF5MXTAMAllowLongSignals = xUSCHF5XTAMAllowLongSignals; +bool xUSCHF5MXTAMAllowShortSignals = xUSCHF5XTAMAllowShortSignals; // // XSI ... -bool xEU5MXSIEnableSignaller = xEU5XSIEnableSignaller; -bool xEU5MXSIAllowLongSignals = xEU5XSIAllowLongSignals; -bool xEU5MXSIAllowShortSignals = xEU5XSIAllowShortSignals; +bool xUSCHF5MXSIEnableSignaller = xUSCHF5XSIEnableSignaller; +bool xUSCHF5MXSIAllowLongSignals = xUSCHF5XSIAllowLongSignals; +bool xUSCHF5MXSIAllowShortSignals = xUSCHF5XSIAllowShortSignals; // // XTSFI ... -bool xEU5MXTSFIEnableSignaller = xEU5XTSFIEnableSignaller; -bool xEU5MXTSFIAllowLongSignals = xEU5XTSFIAllowLongSignals; -bool xEU5MXTSFIAllowShortSignals = xEU5XTSFIAllowShortSignals; +bool xUSCHF5MXTSFIEnableSignaller = xUSCHF5XTSFIEnableSignaller; +bool xUSCHF5MXTSFIAllowLongSignals = xUSCHF5XTSFIAllowLongSignals; +bool xUSCHF5MXTSFIAllowShortSignals = xUSCHF5XTSFIAllowShortSignals; // // XOBDLH ... -bool xEU5MXOBDLHEnableSignaller = false; // xEU5XOBDLHEnableSignaller; -bool xEU5MXOBDLHAllowLongSignals = false; // xEU5XOBDLHAllowLongSignals; -bool xEU5MXOBDLHAllowShortSignals = false; // xEU5XOBDLHAllowShortSignals; +bool xUSCHF5MXOBDLHEnableSignaller = false; // xUSCHF5XOBDLHEnableSignaller; +bool xUSCHF5MXOBDLHAllowLongSignals = false; // xUSCHF5XOBDLHAllowLongSignals; +bool xUSCHF5MXOBDLHAllowShortSignals = false; // xUSCHF5XOBDLHAllowShortSignals; // // XCHMACC ... -bool xEU5MXCHMACCEnableSignaller = xEU5XCHMACCEnableSignaller; -bool xEU5MXCHMACCAllowLongSignals = xEU5XCHMACCAllowLongSignals; -bool xEU5MXCHMACCAllowShortSignals = xEU5XCHMACCAllowShortSignals; +bool xUSCHF5MXCHMACCEnableSignaller = xUSCHF5XCHMACCEnableSignaller; +bool xUSCHF5MXCHMACCAllowLongSignals = xUSCHF5XCHMACCAllowLongSignals; +bool xUSCHF5MXCHMACCAllowShortSignals = xUSCHF5XCHMACCAllowShortSignals; // // XCHMAMX ... -bool xEU5MXCHMAMXEnableSignaller = false; // xEU5XCHMAMXEnableSignaller; -bool xEU5MXCHMAMXAllowLongSignals = false; // xEU5XCHMAMXAllowLongSignals; -bool xEU5MXCHMAMXAllowShortSignals = false; // xEU5XCHMAMXAllowShortSignals; +bool xUSCHF5MXCHMAMXEnableSignaller = false; // xUSCHF5XCHMAMXEnableSignaller; +bool xUSCHF5MXCHMAMXAllowLongSignals = false; // xUSCHF5XCHMAMXAllowLongSignals; +bool xUSCHF5MXCHMAMXAllowShortSignals = false; // xUSCHF5XCHMAMXAllowShortSignals; // // XCHMAMN ... -bool xEU5MXCHMAMNEnableSignaller = false; // xEU5XCHMAMNEnableSignaller; -bool xEU5MXCHMAMNAllowLongSignals = false; // xEU5XCHMAMNAllowLongSignals; -bool xEU5MXCHMAMNAllowShortSignals = false; // xEU5XCHMAMNAllowShortSignals; +bool xUSCHF5MXCHMAMNEnableSignaller = false; // xUSCHF5XCHMAMNEnableSignaller; +bool xUSCHF5MXCHMAMNAllowLongSignals = false; // xUSCHF5XCHMAMNAllowLongSignals; +bool xUSCHF5MXCHMAMNAllowShortSignals = false; // xUSCHF5XCHMAMNAllowShortSignals; // -XCProvider *xEU5Provider; +XCPriver *xUSCHF5Provider; // // Validate Indicators Inputs ... -bool XEU5ValidateIndicatorsInputs() +bool XUSCHF5ValidateIndicatorsInputs() { // bool result = false; @@ -241,8 +241,8 @@ bool XEU5ValidateIndicatorsInputs() } // - // Make an Instance Of XCProvider Class for Use ... - xEU5Provider = new XCProvider( + // Make an Instance Of XCPriver Class for Use ... + xUSCHF5Provider = new XCPriver( // // Commons ... _Symbol, @@ -251,44 +251,44 @@ bool XEU5ValidateIndicatorsInputs() // Signallers ... // // XTD ... - xEU5MXTDEnableSignaller, - xEU5MXTDAllowLongSignals, - xEU5MXTDAllowShortSignals, + xUSCHF5MXTDEnableSignaller, + xUSCHF5MXTDAllowLongSignals, + xUSCHF5MXTDAllowShortSignals, // // XTAM ... - xEU5MXTAMEnableSignaller, - xEU5MXTAMAllowLongSignals, - xEU5MXTAMAllowShortSignals, + xUSCHF5MXTAMEnableSignaller, + xUSCHF5MXTAMAllowLongSignals, + xUSCHF5MXTAMAllowShortSignals, // // XSI ... - xEU5MXSIEnableSignaller, - xEU5MXSIAllowLongSignals, - xEU5MXSIAllowShortSignals, + xUSCHF5MXSIEnableSignaller, + xUSCHF5MXSIAllowLongSignals, + xUSCHF5MXSIAllowShortSignals, // // XTSFI ... - xEU5MXTSFIEnableSignaller, - xEU5MXTSFIAllowLongSignals, - xEU5MXTSFIAllowShortSignals, + xUSCHF5MXTSFIEnableSignaller, + xUSCHF5MXTSFIAllowLongSignals, + xUSCHF5MXTSFIAllowShortSignals, // // XOBDLH ... - xEU5MXOBDLHEnableSignaller, - xEU5MXOBDLHAllowLongSignals, - xEU5MXOBDLHAllowShortSignals, + xUSCHF5MXOBDLHEnableSignaller, + xUSCHF5MXOBDLHAllowLongSignals, + xUSCHF5MXOBDLHAllowShortSignals, // // XCHMACC ... - xEU5MXCHMACCEnableSignaller, - xEU5MXCHMACCAllowLongSignals, - xEU5MXCHMACCAllowShortSignals, + xUSCHF5MXCHMACCEnableSignaller, + xUSCHF5MXCHMACCAllowLongSignals, + xUSCHF5MXCHMACCAllowShortSignals, // // XCHMAMX ... - xEU5MXCHMAMXEnableSignaller, - xEU5MXCHMAMXAllowLongSignals, - xEU5MXCHMAMXAllowShortSignals, + xUSCHF5MXCHMAMXEnableSignaller, + xUSCHF5MXCHMAMXAllowLongSignals, + xUSCHF5MXCHMAMXAllowShortSignals, // // XCHMAMN ... - xEU5MXCHMAMNEnableSignaller, - xEU5MXCHMAMNAllowLongSignals, - xEU5MXCHMAMNAllowShortSignals + xUSCHF5MXCHMAMNEnableSignaller, + xUSCHF5MXCHMAMNAllowLongSignals, + xUSCHF5MXCHMAMNAllowShortSignals // ); @@ -301,14 +301,14 @@ bool XEU5ValidateIndicatorsInputs() // // Init Indicators ... -bool XEU5InitIndicators() +bool XUSCHF5InitIndicators() { // bool result = false; // // Make it Enable when we need to Log Market Conditions ... - xEU5IsTestMode = IsRunningOnTestMode(); + xUSCHF5IsTestMode = IsRunningOnTestMode(); // // Check and Calculate Max Length in Inputs ... @@ -316,88 +316,88 @@ bool XEU5InitIndicators() // // XTM ... - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xTMMaPeriod, - xEU5NumberOfItemsPerTick); + xUSCHF5NumberOfItemsPerTick); // // XAMA ... - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xAMALength, - xEU5NumberOfItemsPerTick); - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5NumberOfItemsPerTick); + xUSCHF5MaxLengthOfInputs = MathMax( xAMAFastEMA, - xEU5NumberOfItemsPerTick); - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5NumberOfItemsPerTick); + xUSCHF5MaxLengthOfInputs = MathMax( xAMASlowEMA, - xEU5NumberOfItemsPerTick); + xUSCHF5NumberOfItemsPerTick); // // XLH ... - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xLHLength, - xEU5NumberOfItemsPerTick); + xUSCHF5NumberOfItemsPerTick); // // XTD ... - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xTDLength, - xEU5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs); // // XFI ... - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xFILength, - xEU5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs); // // XRSI ... - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xRSILength, - xEU5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs); // // XOBD ... - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xOBDLength, - xEU5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs); // // XCHLH ... - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xCHLHLcLength, - xEU5MaxLengthOfInputs); - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHLHMcLength, - xEU5MaxLengthOfInputs); - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHLHScLength, - xEU5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs); // // XCHMA ... - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs = MathMax( xCHMAScFastLength, - xEU5MaxLengthOfInputs); - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHMAScSlowLength, - xEU5MaxLengthOfInputs); - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHMAMcFastLength, - xEU5MaxLengthOfInputs); - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHMAMcSlowLength, - xEU5MaxLengthOfInputs); - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHMALcFastLength, - xEU5MaxLengthOfInputs); - xEU5MaxLengthOfInputs = MathMax( + xUSCHF5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs = MathMax( xCHMALcSlowLength, - xEU5MaxLengthOfInputs); + xUSCHF5MaxLengthOfInputs); // // Validate Indicators Inputs before Initialization ... - result = XEU5ValidateIndicatorsInputs(); + result = XUSCHF5ValidateIndicatorsInputs(); if (!result) { return result; @@ -409,58 +409,58 @@ bool XEU5InitIndicators() // // XTD ... bool isXTDEnable = - xEU5XTDEnableSignaller && - (xEU5XTDAllowLongSignals || - xEU5XTDAllowShortSignals); + xUSCHF5XTDEnableSignaller && + (xUSCHF5XTDAllowLongSignals || + xUSCHF5XTDAllowShortSignals); // // XTAM ... bool isXTAMEnable = - xEU5XTAMEnableSignaller && - (xEU5XTAMAllowLongSignals || - xEU5XTAMAllowShortSignals); + xUSCHF5XTAMEnableSignaller && + (xUSCHF5XTAMAllowLongSignals || + xUSCHF5XTAMAllowShortSignals); // // XSI ... bool isXSIEnable = - xEU5XSIEnableSignaller && - (xEU5XSIAllowLongSignals || - xEU5XSIAllowShortSignals); + xUSCHF5XSIEnableSignaller && + (xUSCHF5XSIAllowLongSignals || + xUSCHF5XSIAllowShortSignals); // // XTSFI ... bool isXTSFIEnable = - xEU5XTSFIEnableSignaller && - (xEU5XTSFIAllowLongSignals || - xEU5XTSFIAllowShortSignals); + xUSCHF5XTSFIEnableSignaller && + (xUSCHF5XTSFIAllowLongSignals || + xUSCHF5XTSFIAllowShortSignals); // // XOBDLH ... bool isXOBDLHEnable = false; - // xEU5XOBDLHEnableSignaller && - // (xEU5XOBDLHAllowLongSignals || - // xEU5XOBDLHAllowShortSignals); + // xUSCHF5XOBDLHEnableSignaller && + // (xUSCHF5XOBDLHAllowLongSignals || + // xUSCHF5XOBDLHAllowShortSignals); // // XCHMACC ... bool isXCHMACCEnable = - xEU5XCHMACCEnableSignaller && - (xEU5XCHMACCAllowLongSignals || - xEU5XCHMACCAllowShortSignals); + xUSCHF5XCHMACCEnableSignaller && + (xUSCHF5XCHMACCAllowLongSignals || + xUSCHF5XCHMACCAllowShortSignals); // // XCHMAMX ... bool isXCHMAMXEnable = false; - // xEU5XCHMAMXEnableSignaller && - // (xEU5XCHMAMXAllowLongSignals || - // xEU5XCHMAMXAllowShortSignals); + // xUSCHF5XCHMAMXEnableSignaller && + // (xUSCHF5XCHMAMXAllowLongSignals || + // xUSCHF5XCHMAMXAllowShortSignals); // // XCHMAMN ... bool isXCHMAMNEnable = false; - // xEU5XCHMAMNEnableSignaller && - // (xEU5XCHMAMNAllowLongSignals || - // xEU5XCHMAMNAllowShortSignals); + // xUSCHF5XCHMAMNEnableSignaller && + // (xUSCHF5XCHMAMNAllowLongSignals || + // xUSCHF5XCHMAMNAllowShortSignals); // bool hasSignaller = @@ -479,7 +479,7 @@ bool XEU5InitIndicators() if (!result) { // - LogMessage("XEU5 doesn't enable any Signaller ..."); + LogMessage("XUSCHF5 doesn't enable any Signaller ..."); // return result; @@ -578,7 +578,7 @@ bool XEU5InitIndicators() // // Release Indicators ... -void XEU5ReleaseIndicators() +void XUSCHF5ReleaseIndicators() { // // Release Handlers ... @@ -596,27 +596,27 @@ void XEU5ReleaseIndicators() // // Handle Reading Buffers ... -void XEU5HandleReadingBuffers() +void XUSCHF5HandleReadingBuffers() { // // Reading Calculated Bars for a Simple Handler ... - xEU5CalculatedBars = BarsCalculated(xTMHandler); + xUSCHF5CalculatedBars = BarsCalculated(xTMHandler); // // Read Indicators Buffers ... - XTMReadBuffers(xEU5NumberOfItemsPerTick); - XAMAReadBuffers(xEU5NumberOfItemsPerTick); - XLHReadBuffers(xEU5NumberOfItemsPerTick); - XTDReadBuffers(xEU5NumberOfItemsPerTick); - XFIReadBuffers(xEU5NumberOfItemsPerTick); - XTSReadBuffers(xEU5NumberOfItemsPerTick); - XRSIReadBuffers(xEU5NumberOfItemsPerTick); - XOBDReadBuffers(xEU5NumberOfItemsPerTick); - XCHMAReadBuffers(xEU5NumberOfItemsPerTick); - XCHLHReadBuffers(xEU5NumberOfItemsPerTick); + XTMReadBuffers(xUSCHF5NumberOfItemsPerTick); + XAMAReadBuffers(xUSCHF5NumberOfItemsPerTick); + XLHReadBuffers(xUSCHF5NumberOfItemsPerTick); + XTDReadBuffers(xUSCHF5NumberOfItemsPerTick); + XFIReadBuffers(xUSCHF5NumberOfItemsPerTick); + XTSReadBuffers(xUSCHF5NumberOfItemsPerTick); + XRSIReadBuffers(xUSCHF5NumberOfItemsPerTick); + XOBDReadBuffers(xUSCHF5NumberOfItemsPerTick); + XCHMAReadBuffers(xUSCHF5NumberOfItemsPerTick); + XCHLHReadBuffers(xUSCHF5NumberOfItemsPerTick); // - xEU5Provider.ReadConditions(); + xUSCHF5Provider.ReadConditions(); } // @@ -629,7 +629,7 @@ void XEU5HandleReadingBuffers() // Can Open Long Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Long Signals ... -bool XEU5CanOpenLongTrade( +bool XUSCHF5CanOpenLongTrade( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -644,7 +644,7 @@ bool XEU5CanOpenLongTrade( 0); // - bool hasSignal = XEU5HasLongSignal(info); + bool hasSignal = XUSCHF5HasLongSignal(info); // result = @@ -656,7 +656,7 @@ bool XEU5CanOpenLongTrade( // if (result) { - xEU5Provider.ClearConditions(); + xUSCHF5Provider.ClearConditions(); } // @@ -667,7 +667,7 @@ bool XEU5CanOpenLongTrade( // Can Close Long Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Long Signals ... -bool XEU5CanCloseLongTrade() +bool XUSCHF5CanCloseLongTrade() { // bool result = false; @@ -680,7 +680,7 @@ bool XEU5CanCloseLongTrade() // Can Open Short Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Short Signals ... -bool XEU5CanOpenShortTrade( +bool XUSCHF5CanOpenShortTrade( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -695,7 +695,7 @@ bool XEU5CanOpenShortTrade( 0); // - bool hasSignal = XEU5HasShortSignal(info); + bool hasSignal = XUSCHF5HasShortSignal(info); // result = @@ -707,7 +707,7 @@ bool XEU5CanOpenShortTrade( // if (result) { - xEU5Provider.ClearConditions(); + xUSCHF5Provider.ClearConditions(); } // @@ -718,7 +718,7 @@ bool XEU5CanOpenShortTrade( // Can Close Short Trade ... // this is a Function will Check all market Conditions and get all // Strategy requirement Verifications for Short Signals ... -bool XEU5CanCloseShortTrade() +bool XUSCHF5CanCloseShortTrade() { // bool result = false; @@ -741,7 +741,7 @@ bool XEU5CanCloseShortTrade() // // Check Market Conditions by Combination of Power of All tools for LONGs ... -bool XEU5HasLongSignal( +bool XUSCHF5HasLongSignal( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -750,7 +750,7 @@ bool XEU5HasLongSignal( // // XTD ... - bool isXTDHasSignal = XEU5XTDHasLongSignal(); + bool isXTDHasSignal = XUSCHF5XTDHasLongSignal(); if (isXTDHasSignal) { // @@ -761,7 +761,7 @@ bool XEU5HasLongSignal( // // XTAM ... - bool isXTAMHasSignal = XEU5XTAMHasLongSignal(); + bool isXTAMHasSignal = XUSCHF5XTAMHasLongSignal(); if (isXTAMHasSignal) { // @@ -772,7 +772,7 @@ bool XEU5HasLongSignal( // // XSI ... - bool isXSIHasSignal = XEU5XSIHasLongSignal(); + bool isXSIHasSignal = XUSCHF5XSIHasLongSignal(); if (isXSIHasSignal) { // @@ -783,7 +783,7 @@ bool XEU5HasLongSignal( // // XTSFI ... - bool isXTSFIHasSignal = XEU5XTSFIHasLongSignal(); + bool isXTSFIHasSignal = XUSCHF5XTSFIHasLongSignal(); if (isXTSFIHasSignal) { // @@ -794,7 +794,7 @@ bool XEU5HasLongSignal( // // XOBD XLH ... - bool isXOBDLHHasSignal = XEU5XOBDLHHasLongSignal(); + bool isXOBDLHHasSignal = XUSCHF5XOBDLHHasLongSignal(); if (isXOBDLHHasSignal) { // @@ -805,7 +805,7 @@ bool XEU5HasLongSignal( // // XCHMA Cycles Cross ... - bool isXCHMACCHasSignal = XEU5XCHMACCHasLongSignal(); + bool isXCHMACCHasSignal = XUSCHF5XCHMACCHasLongSignal(); if (isXCHMACCHasSignal) { // @@ -816,7 +816,7 @@ bool XEU5HasLongSignal( // // XCHMA Cycles Min ... - bool isXCHMAMNHasSignal = XEU5XCHMAMNHasLongSignal(); + bool isXCHMAMNHasSignal = XUSCHF5XCHMAMNHasLongSignal(); if (isXCHMAMNHasSignal) { // @@ -827,7 +827,7 @@ bool XEU5HasLongSignal( // // XCHMA Cycles Max - bool isXCHMAMXHasSignal = XEU5XCHMAMXHasLongSignal(); + bool isXCHMAMXHasSignal = XUSCHF5XCHMAMXHasLongSignal(); if (isXCHMAMXHasSignal) { // @@ -876,11 +876,11 @@ bool XEU5HasLongSignal( { // // Only Log Signals Time Market Conditions if is in Testing Mode ... - if (xEU5IsTestMode || xEU5EnableSignalAlerts) + if (xUSCHF5IsTestMode || xUSCHF5EnableSignalAlerts) { // - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); - string message = xEU5Provider.GenerateConditionsString(mConditions); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + string message = xUSCHF5Provider.GenerateConditionsString(mConditions); // LogMessage( @@ -897,7 +897,7 @@ bool XEU5HasLongSignal( // // Check Market Conditions by Combination of Power of All tools for SHORTs ... -bool XEU5HasShortSignal( +bool XUSCHF5HasShortSignal( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -906,7 +906,7 @@ bool XEU5HasShortSignal( // // XTD ... - bool isXTDHasSignal = XEU5XTDHasShortSignal(); + bool isXTDHasSignal = XUSCHF5XTDHasShortSignal(); if (isXTDHasSignal) { // @@ -917,7 +917,7 @@ bool XEU5HasShortSignal( // // XTAM ... - bool isXTAMHasSignal = XEU5XTAMHasShortSignal(); + bool isXTAMHasSignal = XUSCHF5XTAMHasShortSignal(); if (isXTAMHasSignal) { // @@ -928,7 +928,7 @@ bool XEU5HasShortSignal( // // XSI ... - bool isXSIHasSignal = XEU5XSIHasShortSignal(); + bool isXSIHasSignal = XUSCHF5XSIHasShortSignal(); if (isXSIHasSignal) { // @@ -939,7 +939,7 @@ bool XEU5HasShortSignal( // // XTSFI ... - bool isXTSFIHasSignal = XEU5XTSFIHasShortSignal(); + bool isXTSFIHasSignal = XUSCHF5XTSFIHasShortSignal(); if (isXTSFIHasSignal) { // @@ -950,7 +950,7 @@ bool XEU5HasShortSignal( // // XOBD XLH ... - bool isXOBDLHHasSignal = XEU5XOBDLHHasShortSignal(); + bool isXOBDLHHasSignal = XUSCHF5XOBDLHHasShortSignal(); if (isXOBDLHHasSignal) { // @@ -961,7 +961,7 @@ bool XEU5HasShortSignal( // // XCHMA Cycles Cross ... - bool isXCHMACCHasSignal = XEU5XCHMACCHasShortSignal(); + bool isXCHMACCHasSignal = XUSCHF5XCHMACCHasShortSignal(); if (isXCHMACCHasSignal) { // @@ -972,7 +972,7 @@ bool XEU5HasShortSignal( // // XCHMA Cycles Min ... - bool isXCHMAMNHasSignal = XEU5XCHMAMNHasShortSignal(); + bool isXCHMAMNHasSignal = XUSCHF5XCHMAMNHasShortSignal(); if (isXCHMAMNHasSignal) { // @@ -983,7 +983,7 @@ bool XEU5HasShortSignal( // // XCHMA Cycles Max - bool isXCHMAMXHasSignal = XEU5XCHMAMXHasShortSignal(); + bool isXCHMAMXHasSignal = XUSCHF5XCHMAMXHasShortSignal(); if (isXCHMAMXHasSignal) { // @@ -1032,11 +1032,11 @@ bool XEU5HasShortSignal( { // // Only Log Signals Time Market Conditions if is in Testing Mode ... - if (xEU5IsTestMode || xEU5EnableSignalAlerts) + if (xUSCHF5IsTestMode || xUSCHF5EnableSignalAlerts) { // - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); - string message = xEU5Provider.GenerateConditionsString(mConditions); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + string message = xUSCHF5Provider.GenerateConditionsString(mConditions); // LogMessage( @@ -1063,438 +1063,438 @@ bool XEU5HasShortSignal( // // Disbale All Signallers Longs ... -void XEU5DisableLongSignallers() +void XUSCHF5DisableLongSignallers() { // // XTD ... - if (xEU5MXTDEnableSignaller) + if (xUSCHF5MXTDEnableSignaller) { // - xEU5Provider.DisbaleXTDLongs(); - xEU5MXTDAllowLongSignals = false; + xUSCHF5Provider.DisbaleXTDLongs(); + xUSCHF5MXTDAllowLongSignals = false; } // // XTAM ... - if (xEU5MXTAMEnableSignaller) + if (xUSCHF5MXTAMEnableSignaller) { // - xEU5Provider.DisbaleXTAMLongs(); - xEU5MXTAMAllowLongSignals = false; + xUSCHF5Provider.DisbaleXTAMLongs(); + xUSCHF5MXTAMAllowLongSignals = false; } // // XSI ... - if (xEU5MXSIEnableSignaller) + if (xUSCHF5MXSIEnableSignaller) { // - xEU5Provider.DisbaleXSILongs(); - xEU5MXSIAllowLongSignals = false; + xUSCHF5Provider.DisbaleXSILongs(); + xUSCHF5MXSIAllowLongSignals = false; } // // XTSFI ... - if (xEU5MXTSFIEnableSignaller) + if (xUSCHF5MXTSFIEnableSignaller) { // - xEU5Provider.DisbaleXTSFILongs(); - xEU5MXTSFIAllowLongSignals = false; + xUSCHF5Provider.DisbaleXTSFILongs(); + xUSCHF5MXTSFIAllowLongSignals = false; } // // XOBDLH ... - // if (xEU5MXOBDLHEnableSignaller) + // if (xUSCHF5MXOBDLHEnableSignaller) // { // // - // xEU5Provider.DisbaleXOBDLHLongs(); - // xEU5MXOBDLHAllowLongSignals = false; + // xUSCHF5Provider.DisbaleXOBDLHLongs(); + // xUSCHF5MXOBDLHAllowLongSignals = false; // } // // XCHMACC ... - if (xEU5MXCHMACCEnableSignaller) + if (xUSCHF5MXCHMACCEnableSignaller) { // - xEU5Provider.DisbaleXCHMACCLongs(); - xEU5MXCHMACCAllowLongSignals = false; + xUSCHF5Provider.DisbaleXCHMACCLongs(); + xUSCHF5MXCHMACCAllowLongSignals = false; } // // XCHMAMX ... - // if (xEU5MXCHMAMXEnableSignaller) + // if (xUSCHF5MXCHMAMXEnableSignaller) // { // // - // xEU5Provider.DisbaleXCHMAMXLongs(); - // xEU5MXCHMAMXAllowLongSignals = false; + // xUSCHF5Provider.DisbaleXCHMAMXLongs(); + // xUSCHF5MXCHMAMXAllowLongSignals = false; // } // // XCHMAMN ... - // if (xEU5MXCHMAMNEnableSignaller) + // if (xUSCHF5MXCHMAMNEnableSignaller) // { // // - // xEU5Provider.DisbaleXCHMAMNLongs(); - // xEU5MXCHMAMNAllowLongSignals = false; + // xUSCHF5Provider.DisbaleXCHMAMNLongs(); + // xUSCHF5MXCHMAMNAllowLongSignals = false; // } } // // Enable All Signallers Longs ... // Only if they are Configured as Enable at Settings ... -void XEU5EnableLongSignallers() +void XUSCHF5EnableLongSignallers() { // // XTD ... - if (xEU5MXTDEnableSignaller) + if (xUSCHF5MXTDEnableSignaller) { // - xEU5MXTDAllowLongSignals = - xEU5XTDAllowLongSignals + xUSCHF5MXTDAllowLongSignals = + xUSCHF5XTDAllowLongSignals ? true - : xEU5MXTDAllowLongSignals; + : xUSCHF5MXTDAllowLongSignals; // - if (xEU5MXTDAllowLongSignals) + if (xUSCHF5MXTDAllowLongSignals) { - xEU5Provider.EnableXTDLongs(); + xUSCHF5Provider.EnableXTDLongs(); } } // // XTAM ... - if (xEU5MXTAMEnableSignaller) + if (xUSCHF5MXTAMEnableSignaller) { // - xEU5MXTAMAllowLongSignals = - xEU5XTAMAllowLongSignals + xUSCHF5MXTAMAllowLongSignals = + xUSCHF5XTAMAllowLongSignals ? true - : xEU5MXTAMAllowLongSignals; + : xUSCHF5MXTAMAllowLongSignals; // - if (xEU5MXTAMAllowLongSignals) + if (xUSCHF5MXTAMAllowLongSignals) { - xEU5Provider.EnableXTAMLongs(); + xUSCHF5Provider.EnableXTAMLongs(); } } // // XSI ... - if (xEU5MXSIEnableSignaller) + if (xUSCHF5MXSIEnableSignaller) { // - xEU5MXSIAllowLongSignals = - xEU5XSIAllowLongSignals + xUSCHF5MXSIAllowLongSignals = + xUSCHF5XSIAllowLongSignals ? true - : xEU5MXSIAllowLongSignals; + : xUSCHF5MXSIAllowLongSignals; // - if (xEU5MXSIAllowLongSignals) + if (xUSCHF5MXSIAllowLongSignals) { - xEU5Provider.EnableXSILongs(); + xUSCHF5Provider.EnableXSILongs(); } } // // XTSFI ... - if (xEU5MXTSFIEnableSignaller) + if (xUSCHF5MXTSFIEnableSignaller) { // - xEU5MXTSFIAllowLongSignals = - xEU5XTSFIAllowLongSignals + xUSCHF5MXTSFIAllowLongSignals = + xUSCHF5XTSFIAllowLongSignals ? true - : xEU5MXTSFIAllowLongSignals; + : xUSCHF5MXTSFIAllowLongSignals; // - if (xEU5MXTSFIAllowLongSignals) + if (xUSCHF5MXTSFIAllowLongSignals) { - xEU5Provider.EnableXTSFILongs(); + xUSCHF5Provider.EnableXTSFILongs(); } } // // XOBDLH ... - // if (xEU5MXOBDLHEnableSignaller) + // if (xUSCHF5MXOBDLHEnableSignaller) // { // // - // xEU5MXOBDLHAllowLongSignals = - // xEU5XOBDLHAllowLongSignals + // xUSCHF5MXOBDLHAllowLongSignals = + // xUSCHF5XOBDLHAllowLongSignals // ? true - // : xEU5MXOBDLHAllowLongSignals; + // : xUSCHF5MXOBDLHAllowLongSignals; // // - // if (xEU5MXOBDLHAllowLongSignals) + // if (xUSCHF5MXOBDLHAllowLongSignals) // { - // xEU5Provider.EnableXOBDLHLongs(); + // xUSCHF5Provider.EnableXOBDLHLongs(); // } // } // // XCHMACC ... - if (xEU5MXCHMACCEnableSignaller) + if (xUSCHF5MXCHMACCEnableSignaller) { // - xEU5MXCHMACCAllowLongSignals = - xEU5XCHMACCAllowLongSignals + xUSCHF5MXCHMACCAllowLongSignals = + xUSCHF5XCHMACCAllowLongSignals ? true - : xEU5MXCHMACCAllowLongSignals; + : xUSCHF5MXCHMACCAllowLongSignals; // - if (xEU5MXCHMACCAllowLongSignals) + if (xUSCHF5MXCHMACCAllowLongSignals) { - xEU5Provider.EnableXCHMACCLongs(); + xUSCHF5Provider.EnableXCHMACCLongs(); } } // // XCHMAMX ... - // if (xEU5MXCHMAMXEnableSignaller) + // if (xUSCHF5MXCHMAMXEnableSignaller) // { // // - // xEU5MXCHMAMXAllowLongSignals = - // xEU5XCHMAMXAllowLongSignals + // xUSCHF5MXCHMAMXAllowLongSignals = + // xUSCHF5XCHMAMXAllowLongSignals // ? true - // : xEU5MXCHMAMXAllowLongSignals; + // : xUSCHF5MXCHMAMXAllowLongSignals; // // - // if (xEU5MXCHMAMXAllowLongSignals) + // if (xUSCHF5MXCHMAMXAllowLongSignals) // { - // xEU5Provider.EnableXCHMAMXLongs(); + // xUSCHF5Provider.EnableXCHMAMXLongs(); // } // } // // XCHMAMN ... - // if (xEU5MXCHMAMNEnableSignaller) + // if (xUSCHF5MXCHMAMNEnableSignaller) // { // // - // xEU5MXCHMAMNAllowLongSignals = - // xEU5XCHMAMNAllowLongSignals + // xUSCHF5MXCHMAMNAllowLongSignals = + // xUSCHF5XCHMAMNAllowLongSignals // ? true - // : xEU5MXCHMAMNAllowLongSignals; + // : xUSCHF5MXCHMAMNAllowLongSignals; // // - // if (xEU5MXCHMAMNAllowLongSignals) + // if (xUSCHF5MXCHMAMNAllowLongSignals) // { - // xEU5Provider.EnableXCHMAMNLongs(); + // xUSCHF5Provider.EnableXCHMAMNLongs(); // } // } } // // Disable All Signallers Shorts ... -void XEU5DisableShortSignallers() +void XUSCHF5DisableShortSignallers() { // // XTD ... - if (xEU5MXTDEnableSignaller) + if (xUSCHF5MXTDEnableSignaller) { // - xEU5Provider.DisableXTDShorts(); - xEU5MXTDAllowShortSignals = false; + xUSCHF5Provider.DisableXTDShorts(); + xUSCHF5MXTDAllowShortSignals = false; } // // XTAM ... - if (xEU5MXTAMEnableSignaller) + if (xUSCHF5MXTAMEnableSignaller) { // - xEU5Provider.DisableXTAMShorts(); - xEU5MXTAMAllowShortSignals = false; + xUSCHF5Provider.DisableXTAMShorts(); + xUSCHF5MXTAMAllowShortSignals = false; } // // XSI ... - if (xEU5MXSIEnableSignaller) + if (xUSCHF5MXSIEnableSignaller) { // - xEU5Provider.DisableXSIShorts(); - xEU5MXSIAllowShortSignals = false; + xUSCHF5Provider.DisableXSIShorts(); + xUSCHF5MXSIAllowShortSignals = false; } // // XTSFI ... - if (xEU5MXTSFIEnableSignaller) + if (xUSCHF5MXTSFIEnableSignaller) { // - xEU5Provider.DisableXTSFIShorts(); - xEU5MXTSFIAllowShortSignals = false; + xUSCHF5Provider.DisableXTSFIShorts(); + xUSCHF5MXTSFIAllowShortSignals = false; } // // XOBDLH ... - // if (xEU5MXOBDLHEnableSignaller) + // if (xUSCHF5MXOBDLHEnableSignaller) // { // // - // xEU5Provider.DisableXOBDLHShorts(); - // xEU5MXOBDLHAllowShortSignals = false; + // xUSCHF5Provider.DisableXOBDLHShorts(); + // xUSCHF5MXOBDLHAllowShortSignals = false; // } // // XCHMACC ... - if (xEU5MXCHMACCEnableSignaller) + if (xUSCHF5MXCHMACCEnableSignaller) { // - xEU5Provider.DisableXCHMACCShorts(); - xEU5MXCHMACCAllowShortSignals = false; + xUSCHF5Provider.DisableXCHMACCShorts(); + xUSCHF5MXCHMACCAllowShortSignals = false; } // // XCHMAMX ... - // if (xEU5MXCHMAMXEnableSignaller) + // if (xUSCHF5MXCHMAMXEnableSignaller) // { // // - // xEU5Provider.DisableXCHMAMXShorts(); - // xEU5MXCHMAMXAllowShortSignals = false; + // xUSCHF5Provider.DisableXCHMAMXShorts(); + // xUSCHF5MXCHMAMXAllowShortSignals = false; // } // // XCHMAMN ... - // if (xEU5MXCHMAMNEnableSignaller) + // if (xUSCHF5MXCHMAMNEnableSignaller) // { // // - // xEU5Provider.DisableXCHMAMNShorts(); - // xEU5MXCHMAMNAllowShortSignals = false; + // xUSCHF5Provider.DisableXCHMAMNShorts(); + // xUSCHF5MXCHMAMNAllowShortSignals = false; // } } // // Enable All Signallers Shorts ... // Only if they are Configured as Enable at Settings ... -void XEU5EnableShortSignallers() +void XUSCHF5EnableShortSignallers() { // // XTD ... - if (xEU5MXTDEnableSignaller) + if (xUSCHF5MXTDEnableSignaller) { // - xEU5MXTDAllowShortSignals = - xEU5XTDAllowShortSignals + xUSCHF5MXTDAllowShortSignals = + xUSCHF5XTDAllowShortSignals ? true - : xEU5MXTDAllowShortSignals; + : xUSCHF5MXTDAllowShortSignals; // - if (xEU5MXTDAllowShortSignals) + if (xUSCHF5MXTDAllowShortSignals) { - xEU5Provider.EnableXTDShorts(); + xUSCHF5Provider.EnableXTDShorts(); } } // // XTAM ... - if (xEU5MXTAMEnableSignaller) + if (xUSCHF5MXTAMEnableSignaller) { // - xEU5MXTAMAllowShortSignals = - xEU5XTAMAllowShortSignals + xUSCHF5MXTAMAllowShortSignals = + xUSCHF5XTAMAllowShortSignals ? true - : xEU5MXTAMAllowShortSignals; + : xUSCHF5MXTAMAllowShortSignals; // - if (xEU5MXTAMAllowShortSignals) + if (xUSCHF5MXTAMAllowShortSignals) { - xEU5Provider.EnableXTAMShorts(); + xUSCHF5Provider.EnableXTAMShorts(); } } // // XSI ... - if (xEU5MXSIEnableSignaller) + if (xUSCHF5MXSIEnableSignaller) { // - xEU5MXSIAllowShortSignals = - xEU5XSIAllowShortSignals + xUSCHF5MXSIAllowShortSignals = + xUSCHF5XSIAllowShortSignals ? true - : xEU5MXSIAllowShortSignals; + : xUSCHF5MXSIAllowShortSignals; // - if (xEU5MXSIAllowShortSignals) + if (xUSCHF5MXSIAllowShortSignals) { - xEU5Provider.EnableXSIShorts(); + xUSCHF5Provider.EnableXSIShorts(); } } // // XTSFI ... - if (xEU5MXTSFIEnableSignaller) + if (xUSCHF5MXTSFIEnableSignaller) { // - xEU5MXTSFIAllowShortSignals = - xEU5XTSFIAllowShortSignals + xUSCHF5MXTSFIAllowShortSignals = + xUSCHF5XTSFIAllowShortSignals ? true - : xEU5MXTSFIAllowShortSignals; + : xUSCHF5MXTSFIAllowShortSignals; // - if (xEU5MXTSFIAllowShortSignals) + if (xUSCHF5MXTSFIAllowShortSignals) { - xEU5Provider.EnableXTSFIShorts(); + xUSCHF5Provider.EnableXTSFIShorts(); } } // // XOBDLH ... - // if (xEU5MXOBDLHEnableSignaller) + // if (xUSCHF5MXOBDLHEnableSignaller) // { // // - // xEU5MXOBDLHAllowShortSignals = - // xEU5XOBDLHAllowShortSignals + // xUSCHF5MXOBDLHAllowShortSignals = + // xUSCHF5XOBDLHAllowShortSignals // ? true - // : xEU5MXOBDLHAllowShortSignals; + // : xUSCHF5MXOBDLHAllowShortSignals; // // - // if (xEU5MXOBDLHAllowShortSignals) + // if (xUSCHF5MXOBDLHAllowShortSignals) // { - // xEU5Provider.EnableXOBDLHShorts(); + // xUSCHF5Provider.EnableXOBDLHShorts(); // } // } // // XCHMACC ... - if (xEU5MXCHMACCEnableSignaller) + if (xUSCHF5MXCHMACCEnableSignaller) { // - xEU5MXCHMACCAllowShortSignals = - xEU5XCHMACCAllowShortSignals + xUSCHF5MXCHMACCAllowShortSignals = + xUSCHF5XCHMACCAllowShortSignals ? true - : xEU5MXCHMACCAllowShortSignals; + : xUSCHF5MXCHMACCAllowShortSignals; // - if (xEU5MXCHMACCAllowShortSignals) + if (xUSCHF5MXCHMACCAllowShortSignals) { - xEU5Provider.EnableXCHMACCShorts(); + xUSCHF5Provider.EnableXCHMACCShorts(); } } // // XCHMAMX ... - // if (xEU5MXCHMAMXEnableSignaller) + // if (xUSCHF5MXCHMAMXEnableSignaller) // { // // - // xEU5MXCHMAMXAllowShortSignals = - // xEU5XCHMAMXAllowShortSignals + // xUSCHF5MXCHMAMXAllowShortSignals = + // xUSCHF5XCHMAMXAllowShortSignals // ? true - // : xEU5MXCHMAMXAllowShortSignals; + // : xUSCHF5MXCHMAMXAllowShortSignals; // // - // if (xEU5MXCHMAMXAllowShortSignals) + // if (xUSCHF5MXCHMAMXAllowShortSignals) // { - // xEU5Provider.EnableXCHMAMXShorts(); + // xUSCHF5Provider.EnableXCHMAMXShorts(); // } // } // // XCHMAMN ... - // if (xEU5MXCHMAMNEnableSignaller) + // if (xUSCHF5MXCHMAMNEnableSignaller) // { // // - // xEU5MXCHMAMNAllowShortSignals = - // xEU5XCHMAMNAllowShortSignals + // xUSCHF5MXCHMAMNAllowShortSignals = + // xUSCHF5XCHMAMNAllowShortSignals // ? true - // : xEU5MXCHMAMNAllowShortSignals; + // : xUSCHF5MXCHMAMNAllowShortSignals; // // - // if (xEU5MXCHMAMNAllowShortSignals) + // if (xUSCHF5MXCHMAMNAllowShortSignals) // { - // xEU5Provider.EnableXCHMAMNShorts(); + // xUSCHF5Provider.EnableXCHMAMNShorts(); // } // } } @@ -1505,29 +1505,29 @@ void XEU5EnableShortSignallers() // // XTD Long Signal Checking ... -bool XEU5XTDHasLongSignal() +bool XUSCHF5XTDHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xEU5MXTDEnableSignaller || - !xEU5MXTDAllowLongSignals) + if (!xUSCHF5MXTDEnableSignaller || + !xUSCHF5MXTDAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xEU5Provider.XTDHasLongConditions() + xUSCHF5Provider.XTDHasLongConditions() // && // @@ -1545,1012 +1545,62 @@ bool XEU5XTDHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XTD Long ... + // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( // - (mConditions.isXTSCurrentMin && - mConditions.isXTDSignalCrossedOverBear && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) - // - || - // - ((mConditions.isXTSCurrentUnderNearest || - mConditions.isXTSCurrentCrossedUnderNearest) && - (mConditions.isXTSCurrentUnderMediest || - mConditions.isXTSCurrentCrossedUnderMediest) && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCLLSame) - // - || - // + // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCCrossedOverMin && - mConditions.isXTDSignalCrossedOverBear && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) - // - || - // - ( - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXTSCurrentMax) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentUnderNearest) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural) - // - || - // - (mConditions.isXFICrossedOverZero && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - || - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ( - (mConditions.isXCHMAMCVale && - mConditions.isXTDBearishVale) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXCHLHMCLCLLSame) - // - || - // - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) - // - || - // - (mConditions.isXLHLLIncreased && - mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish && - mConditions.isXTSCurrentUnderFarest && - (mConditions.isXTSCurrentUnderNearest || - mConditions.isXTSCurrentCrossedUnderNearest)) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMAMCTrendsDown) - // - ) - // - ) - // - || - // - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ( - (mConditions.isXCHMAMCVale && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) && - ( - // - ( - // - mConditions.isXAMANeutural - // - || - // - (mConditions.isXLHLLDecreased && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXAMAStartBullish) - // - ) - // - ) - // - ) - // - || - // - // - ((mConditions.isXTSCurrentMax && - mConditions.isXLHHHDecreased) && ( // - (mConditions.isXTDBearishVale && - mConditions.isXCHLHMCLCLLSame && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + ((mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHLHMCLCLLSame) && + ( + // + (mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + ) + // + ) + // + ) + // + ) // || // - (mConditions.isXCHMALCVale && - mConditions.isXTDSignalCrossedOverBear && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) - // - ) - // - ) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXTMEndBullish && - mConditions.isXAMANeutural && - mConditions.isXAMAEndBullish && - mConditions.isXTDSignalCrossedOverBear && - (mConditions.isXTSCurrentUnderNearest || - mConditions.isXTSCurrentCrossedUnderNearest) && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) - // - || - // - (mConditions.isXAMANeutural && - mConditions.isXLHHHDecreased && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTDSignalCrossedOverBear && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) - // - ) - // - ) - // - || - // - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMANeutural && - mConditions.isXAMAEndBearish && - mConditions.isXTDBearishVale && - mConditions.isXTMStartBullish && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTSCurrentUnderFarest) - // - ) - // - ) - // - || - // - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is Under Signal ... - ( - // - ((mConditions.isXLHPriceUnderSignal || - mConditions.isXLHPriceCrossedUnderSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXCHMAMCVale && - // - ( - // - (mConditions.isXTMNeutural && - mConditions.isXTMEndBullish) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXCHMALCVale && - mConditions.isXTMStartBullish && - mConditions.isXCHLHMCLCLLSame) - // - || - // - (mConditions.isXAMANeutural && - mConditions.isXTDBearishVale && - mConditions.isXCHLHMCLCHHSame) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXLHHHDecreased) - // - || - // - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) - // - ) - // - ) - // - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - ) - // - ) - // - || - // - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXCHMAMCVale && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale && - mConditions.isXCHLHSCMCLLSame) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXLHHHDecreased && - mConditions.isXFICrossedOverZero) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXAMAStartBearish && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXAMANeutural && - mConditions.isXTSCurrentUnderFarest && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - (mConditions.isXAMAVale && - mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale && - mConditions.isXLHLLIncreased) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCVale && - mConditions.isXAMANeutural && - mConditions.isXFICrossedOverZero && - mConditions.isXTDSignalCrossedOverBear && - mConditions.isXLHPriceCrossedUnderSignal) - // - ) - // - ) - // - || - // - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXAMANeutural && - mConditions.isXTSCurrentMax && - mConditions.isXTMStartBullish && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTSCurrentCrossedOverFarest && - mConditions.isXTSCurrentCrossedOverNearest && - mConditions.isXTSCurrentCrossedOverMediest && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is Over Signal ... - ( - // - ((mConditions.isXLHPriceOverSignal || - mConditions.isXLHPriceCrossedOverSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXLHHHIncreased && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDSignalCrossedOverBear && - (mConditions.isXCHMASCTrendsUp && - (mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow))) - // - || - // - (mConditions.isXTDSignalCrossedOverBear && - (mConditions.isXCHMALCVale && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow))) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentUnderNearest) - // - || - // - (mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentUnderNearest) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXTDBearishVale && - mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) - // - || - // - ((mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - ( - // - mConditions.isXCHMASCCrossedOverMax - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCCrossedOverMax && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - ( - // - (mConditions.isXTSCurrentUnderFarest || - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale && - mConditions.isXTDSignalCrossedOverBear) - // - ) && - (mConditions.isXCHMALCVale && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCVale && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) && - ( - // - mConditions.isXRSICrossedOverLongExit - // - || - // - (mConditions.isXTSAllSame && - mConditions.isXAMAStartBullish && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXAMAStartBullish) - // - || - // - ((mConditions.isXTSCurrentUnderNearest || - mConditions.isXTSCurrentCrossedUnderNearest) && - (mConditions.isXTSCurrentUnderMediest || - mConditions.isXTSCurrentCrossedUnderMediest)) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXTSCurrentMax || - mConditions.isXTSCurrentUnderFarest) && - mConditions.isXTDBearishVale && - mConditions.isXLHLLDecreased && - mConditions.isXLHPriceCrossedOverSignal && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) - // - || - // - ((mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXLHHighAttachedHH) - // - || - // - (mConditions.isXCHLHMCLCLLSame && - ( - // - (mConditions.isXCHMASCCrossedOverMin && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) - // - || - // - (mConditions.isXCHMASCCrossedOverMax && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) - // - ) - // - ) - // - || - // - (((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) || - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) && - // - ( - // - ((mConditions.isXTSCurrentUnderNearest || - mConditions.isXTSCurrentCrossedUnderNearest) && - (mConditions.isXTSCurrentUnderMediest || - mConditions.isXTSCurrentCrossedUnderMediest)) - // - ) - // - ) - // - ) - // - ) - // - || - // - (( - // - (mConditions.isXFICrossedOverZero && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - ) && - (mConditions.isXCHMALCVale && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow))) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXFIOverZero && - mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXCHMASCCrossedOverMax && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXTDBearishVale && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXAMAStartBullish) - // - ) - // - ) - // - || - // - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - (mConditions.isXTDBearishVale && - mConditions.isXCHLHMCLCHHSame && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) - // - || - // - (mConditions.isXTMEndBullish && - mConditions.isXTDBearishVale && - mConditions.isXFICrossedOverZero && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) - // - || - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCVale && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXFICrossedOverZero && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - || - // - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXTSCurrentMax && - mConditions.isXTDSignalCrossedOverBear) && - ( - // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH) - // - || - // - (mConditions.isXAMAEndBullish && - mConditions.isXCHLHSCMCLLSame && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is not has clear state ... - ( - // - ((!mConditions.isXLHPriceOverSignal && - !mConditions.isXLHPriceUnderSignal && - !mConditions.isXLHPriceInSignalRange && - !mConditions.isXLHPriceCrossedOverSignal && - !mConditions.isXLHPriceCrossedUnderSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural) - // - || - // - (mConditions.isXCHMALCVale && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) - // - ) - // - ) - // - || - // - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - ) - // - ) - // - || - // - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ; - - // - return result; -} - -// -// XTD Short Signal Checking ... -bool XEU5XTDHasShortSignal() -{ - // - bool result = false; - - // - // Validate Args ... - if (!xEU5MXTDEnableSignaller || - !xEU5MXTDAllowShortSignals) - { - return result; - } - - // - // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); - - // - // Start Analysing Market based On Conditions ... - result = - // - // Base Condition: - xEU5Provider.XTDHasShortConditions() - // - && - // - // Exceptions: - // there some commonly Exceptions which makes our choice incorrect, - // here we are combined knownly Exceptions ... - !( - // - // for Exception we used XLH Conditions as follow ... - // - // Check Conditions if Price In Signal Range ... - (mConditions.isXLHPriceInSignalRange && - // - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceInSignalRange ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXFICrossedOverZero && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - || - // - // PriceInSignalRange ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXTDBullOverBear && + (mConditions.isXCHMAMCTrendsUp && ( // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp) + mConditions.isXCHMAMCVale // || // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) // || // - (mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) + (mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) // ) // @@ -2560,37 +1610,162 @@ bool XEU5XTDHasShortSignal() // ) // - ) - // - ) - // - || - // - // PriceInSignalRange ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( + || // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXFIOverZero && + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + ((mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTDBearishVale && + mConditions.isXLHLLIncreased) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTSCurrentCrossedOverMediest) + // + || + // + (mConditions.isXCHMALCVale && + mConditions.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.isXAMANeutural && - mConditions.isXTDBullOverBear) + mConditions.isXAMABearish && + mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest) // - || + ) + // + ) + // + || + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( // - ((mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest) && + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && ( // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural) + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) // ) // @@ -2600,519 +1775,13 @@ bool XEU5XTDHasShortSignal() // ) // - || - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - ((mConditions.isXAMANeutural || - mConditions.isXAMAEndBullish) && - mConditions.isXTDBullOverBear) - // - || - // - (mConditions.isXCHLHSameLLs && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXLHLowAttachedLL) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceInSignalRange ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is Under Signal ... - ( - // - ((mConditions.isXLHPriceUnderSignal || - mConditions.isXLHPriceCrossedUnderSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceUnderSignal ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear) - // - || - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXTDBullOverBear && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural) - // - || - // - (mConditions.isXCHMASCTrendsUp && - mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - mConditions.isXCHMASCTrendsUp - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is Over Signal ... - ( - // - ((mConditions.isXLHPriceOverSignal || - mConditions.isXLHPriceCrossedOverSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceOverSignal ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMALCTrendsDown && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXTDBullOverBear && - (mConditions.isXAMANeutural || - mConditions.isXTSCurrentOverFarest)) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXCHMALCTrendsUp && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXCHMASCTrendsUp) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXTDBullOverBear && - ( - // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTMEndBullish && - mConditions.isXAMAEndBullish && - mConditions.isXLHHighAttachedHH) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - mConditions.isXCHMAMCTrendsUp - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXFIOverZero && - mConditions.isXTDBullOverBear) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is not has clear state ... - ( - // - ((!mConditions.isXLHPriceOverSignal && - !mConditions.isXLHPriceUnderSignal && - !mConditions.isXLHPriceInSignalRange && - !mConditions.isXLHPriceCrossedOverSignal && - !mConditions.isXLHPriceCrossedUnderSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceFree ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceFree ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceFree ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceFree ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ; - - // - return result; -} - -// -// XTAM Long Signal Checking ... -bool XEU5XTAMHasLongSignal() -{ - // - bool result = false; - - // - // Validate Args ... - if (!xEU5MXTAMEnableSignaller || - !xEU5MXTAMAllowLongSignals) - { - return result; - } - - // - // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); - - // - // Start Analysing Market based On Conditions ... - result = - // - // Base Condition: - xEU5Provider.XTAMHasLongConditions() - // - && - // - // Exceptions: - // there some commonly Exceptions which makes our choice incorrect, - // here we are combined knownly Exceptions ... - !( - // - // for Exception we used XLH Conditions as follow ... - // - // Check Conditions if Price In Signal Range ... - (mConditions.isXLHPriceInSignalRange && - // - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceInSignalRange ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMAMCVale && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) && - ( - // - (mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXLHLLIncreased && - mConditions.isXCHLHMCLCHHSame) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // ) // ) // || // + // XTD Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -3120,19 +1789,52 @@ bool XEU5XTAMHasLongSignal() // ( // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && ( + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMAMCTrendsUp) + // + || + // + ((mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) && + ( + // + (mConditions.isXTSCurrentMax && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish && + !mConditions.isXCHMAMCTrendsUp && + !mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXCHMAMCVale && + mConditions.isXTMEndBullish && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + || // (mConditions.isXTMBullish && mConditions.isXAMABullish && - mConditions.isXTSCurrentMax) + mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXLHLLDecreased && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCUnderMin && + mConditions.isXTDSignalCrossedOverBear) // ) // @@ -3144,6 +1846,7 @@ bool XEU5XTAMHasLongSignal() // || // + // XTD Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && @@ -3151,1465 +1854,31 @@ bool XEU5XTAMHasLongSignal() // ( // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHLHSCMCLLSame) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceInSignalRange ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is Under Signal ... - ( - // - ((mConditions.isXLHPriceUnderSignal || - mConditions.isXLHPriceCrossedUnderSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceUnderSignal ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMAMCVale && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCPeak && - (mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - ((mConditions.isXCHMAMCVale && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) && - (mConditions.isXCHMALCVale && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow))) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMAMCVale && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentMax && - mConditions.isXLHLLDecreased && - mConditions.isXCHLHMCLCLLSame) - // - || - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMABearish && - mConditions.isXTMEndBearish && - mConditions.isXTSCurrentUnderFarest) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHLHSCMCLLSame && - (mConditions.isXTSCurrentUnderFarest || - mConditions.isXTSCurrentUnderMediest)) - // - || - // - (mConditions.isXCHLHMCLCHHSame && - (mConditions.isXTSCurrentUnderNearest || - mConditions.isXTSCurrentCrossedUnderNearest)) - // - || - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXTSAllSame && - mConditions.isXCHMASCVale && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ( - (mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDBullCrossedUnderBear) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is Over Signal ... - ( - // - ((mConditions.isXLHPriceOverSignal || - mConditions.isXLHPriceCrossedOverSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceOverSignal ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMASCVale && - mConditions.isXTMNeutural && - mConditions.isXAMANeutural) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentMax && - mConditions.isXLHPriceCrossedOverSignal && - mConditions.isXTSCurrentCrossedOverFarest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMALCVale && - ( - // - mConditions.isXLHHHDecreased - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBearishVale) - // - ) + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentUnderMediest) // ) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMASCFastCrossedOverSlow) - // - ) - // - ) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) && - ( - // - (mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXTMStartBullish && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXAMAStartBullish && - mConditions.isXLHHighAttachedHH) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCVale || - mConditions.isXCHLHSameHHs) && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHLHSameHHs && - mConditions.isXLHLLDecreased && - mConditions.isXLHHighAttachedHH) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBearishVale && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMASCPeak && - (mConditions.isXCHMAMCTrendsDown || - mConditions.isXCHMAMCFastUnderSlow)) - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXTMEndBearish && - mConditions.isXAMANeutural && - mConditions.isXAMAEndBearish && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXFICrossedOverZero && - mConditions.isXTSCurrentUnderFarest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTSCurrentMax && - mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) - // - ) - // - ) - // - || - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is not has clear state ... - ( - // - ((!mConditions.isXLHPriceOverSignal && - !mConditions.isXLHPriceUnderSignal && - !mConditions.isXLHPriceInSignalRange && - !mConditions.isXLHPriceCrossedOverSignal && - !mConditions.isXLHPriceCrossedUnderSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceFree ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceFree ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceFree ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceFree ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ; - - // - return result; -} - -// -// XTAM Short Signal Checking ... -bool XEU5XTAMHasShortSignal() -{ - // - bool result = false; - - // - // Validate Args ... - if (!xEU5MXTAMEnableSignaller || - !xEU5MXTAMAllowShortSignals) - { - return result; - } - - // - // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); - - // - // Start Analysing Market based On Conditions ... - result = - // - // Base Condition: - xEU5Provider.XTAMHasShortConditions() - // - && - // - // Exceptions: - // there some commonly Exceptions which makes our choice incorrect, - // here we are combined knownly Exceptions ... - !( - // - // for Exception we used XLH Conditions as follow ... - // - // Check Conditions if Price In Signal Range ... - (mConditions.isXLHPriceInSignalRange && - // - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceInSignalRange ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXFIOverZero && - mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentOverFarest) - // - || - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMNeutural || - mConditions.isXTMEndBullish) && - mConditions.isXAMABullish && - mConditions.isXFIOverZero && - mConditions.isXTDBullOverBear) + // + ) // || // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHMASCTrendsUp && - mConditions.isXTSCurrentOverNearest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHMASCTrendsUp) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceInSignalRange ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - || - // - (mConditions.isXFIOverZero && - mConditions.isXCHMASCPeak && - mConditions.isXTSCurrentOverFarest) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceInSignalRange ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ( - // - mConditions.isXCHMAMCTrendsUp - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCVale && - mConditions.isXAMANeutural) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceInSignalRange ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is Under Signal ... - ( - // - ((mConditions.isXLHPriceUnderSignal || - mConditions.isXLHPriceCrossedUnderSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceUnderSignal ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXCHMALCTrendsUp && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXFIOverZero && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTSCurrentMin && - mConditions.isXCHMALCTrendsUp && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) - // - || - // - ((mConditions.isXAMAVale && - mConditions.isXCHMASCVale && - mConditions.isXTSCurrentMin) && - ( - // - mConditions.isXRSICrossedUnderShortExit - // - || - // - mConditions.isXTDBullishVale - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ((mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXLHLowAttachedLL) && - ( - // - mConditions.isXCHMALCTrendsDown - // - || - // - (mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXLHPriceCrossedUnderSignal) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - mConditions.isXRSICrossedUnderShortExit - // - || - // - (mConditions.isXAMAVale && - mConditions.isXTMBearish && - mConditions.isXCHMASCVale && - mConditions.isXAMABearish && - mConditions.isXCHLHSameLLs && - mConditions.isXTSCurrentMin && - mConditions.isXCHMASCTrendsUp && - mConditions.isXLHLowAttachedLL) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - ( - // - mConditions.isXRSICrossedUnderShortExit - // - || - // - (mConditions.isXAMAVale && - mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHMASCVale && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTSCurrentMin && - mConditions.isXLHLowAttachedLL) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHLHSameLLs && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXCHMAMCTrendsUp) - // - || - // - (mConditions.isXCHMASCVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - ( - // - mConditions.isXRSICrossedUnderShortExit - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTDSignalVale && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullishVale) && - ( - // - (mConditions.isXTSAllSame && - mConditions.isXLHHHDecreased && - mConditions.isXCHLHSCMCLLSame) - // - || - // - (mConditions.isXLHLowAttachedLL && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is Over Signal ... - ( - // - ((mConditions.isXLHPriceOverSignal || - mConditions.isXLHPriceCrossedOverSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceOverSignal ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHLHMCLCLLSame) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && - mConditions.isXTSCurrentOverFarest) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullOverBear) && - ( - // - (mConditions.isXCHMASCTrendsUp && - mConditions.isXTDSignalOverBear) - // - || - // - (mConditions.isXFIOverZero && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - (mConditions.isXTDBullOverBear || - mConditions.isXTSCurrentOverFarest)) - // - || - // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - (mConditions.isXTSCurrentOverFarest || - mConditions.isXTSCurrentOverMediest)) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXLHLLDecreased && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentMin && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMASCTrendsUp) - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && - mConditions.isXTSCurrentOverFarest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish) - // - || - // - (mConditions.isXFIOverZero && - mConditions.isXCHMALCVale && - mConditions.isXLHHHIncreased && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is not has clear state ... - ( - // - ((!mConditions.isXLHPriceOverSignal && - !mConditions.isXLHPriceUnderSignal && - !mConditions.isXLHPriceInSignalRange && - !mConditions.isXLHPriceCrossedOverSignal && - !mConditions.isXLHPriceCrossedUnderSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceFree ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceFree ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceFree ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHMAMCTrendsUp) - // - || - // - (mConditions.isXTSCurrentMin && - mConditions.isXTDSignalUnderBear && - mConditions.isXFICrossedUnderZero && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTDBullCrossedUnderBear) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceFree ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ; - - // - return result; -} - -// -// XSI Long Signal Checking ... -bool XEU5XSIHasLongSignal() -{ - // - bool result = false; - - // - // Validate Args ... - if (!xEU5MXSIEnableSignaller || - !xEU5MXSIAllowLongSignals) - { - return result; - } - - // - // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); - - // - // Start Analysing Market based On Conditions ... - result = - // - // Base Condition: - xEU5Provider.XSIHasLongConditions() - // - && - // - // Exceptions: - // there some commonly Exceptions which makes our choice incorrect, - // here we are combined knownly Exceptions ... - !( - // - // for Exception we used XLH Conditions as follow ... - // - // Check Conditions if Price In Signal Range ... - (mConditions.isXLHPriceInSignalRange && - // - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceInSignalRange ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMASCVale && + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && mConditions.isXTMNeutural && mConditions.isXAMANeutural && - mConditions.isXTSCurrentUnderNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceInSignalRange ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceInSignalRange ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXTSAllSame && - mConditions.isXCHLHSameLLs && - mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) - // - || - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale && - mConditions.isXAMANeutural && - mConditions.isXLHHHDecreased && - mConditions.isXTMStartBullish && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTSCurrentUnderFarest) - // - || - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale) - // - || - // - (mConditions.isXAMANeutural && - mConditions.isXTMStartBullish) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXTSCurrentMax) + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXCHMASCCrossedOverMin) // ) // @@ -4621,16 +1890,14 @@ bool XEU5XSIHasLongSignal() // || // + // XTD Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -4649,6 +1916,7 @@ bool XEU5XSIHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XTD Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -4656,663 +1924,112 @@ bool XEU5XSIHasLongSignal() // ( // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - (mConditions.isXAMANeutural || - mConditions.isXAMAEndBearish)) - // - || - // - (mConditions.isXTMVale && - mConditions.isXAMANeutural && - mConditions.isXAMAEndBullish && - mConditions.isXLHLLDecreased && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHLHMCLCLLSame) - // - || - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXAMAEndBearish && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest) - // - || - // - ((mConditions.isXTMVale && - mConditions.isXAMAVale) - // - && - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale) - // - && - // - (mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame)) - // - ) - // - ) - // - || - // + // Check if MC Fast Under Slow ... ((mConditions.isXCHMAMCFastUnderSlow || mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale) - // - || - // - (mConditions.isXTMVale && - mConditions.isXTMNeutural && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXAMAStartBullish && - mConditions.isXTSCurrentUnderFarest) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale) - // - || - // - (mConditions.isXLHHHDecreased && - mConditions.isXLHLLDecreased) - // - || - // - ((mConditions.isXTMVale || - mConditions.isXTMNeutural || - mConditions.isXTMEndBearish) && - mConditions.isXAMANeutural) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHLHSCMCLLSame) - // - || - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) - // - || - // - (mConditions.isXCHMASCVale && - mConditions.isXCHLHSCMCLLSame) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is Over Signal ... - ( - // - ((mConditions.isXLHPriceOverSignal || - mConditions.isXLHPriceCrossedOverSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceOverSignal ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is not has clear state ... - ( - // - ((!mConditions.isXLHPriceOverSignal && - !mConditions.isXLHPriceUnderSignal && - !mConditions.isXLHPriceInSignalRange && - !mConditions.isXLHPriceCrossedOverSignal && - !mConditions.isXLHPriceCrossedUnderSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceFree ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceFree ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceFree ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceFree ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ; - - // - return result; -} - -// -// XSI Short Signal Checking ... -bool XEU5XSIHasShortSignal() -{ - // - bool result = false; - - // - // Validate Args ... - if (!xEU5MXSIEnableSignaller || - !xEU5MXSIAllowShortSignals) - { - return result; - } - - // - // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); - - // - // Start Analysing Market based On Conditions ... - result = - // - // Base Condition: - xEU5Provider.XSIHasShortConditions() - // - && - // - // Exceptions: - // there some commonly Exceptions which makes our choice incorrect, - // here we are combined knownly Exceptions ... - !( - // - // for Exception we used XLH Conditions as follow ... - // - // Check Conditions if Price In Signal Range ... - (mConditions.isXLHPriceInSignalRange && - // - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceInSignalRange ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceInSignalRange ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXLHHHIncreased && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceInSignalRange ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceInSignalRange ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is Under Signal ... - ( - // - ((mConditions.isXLHPriceUnderSignal || - mConditions.isXLHPriceCrossedUnderSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceUnderSignal ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXLHHHIncreased && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - // Check Conditions if Price is Over Signal ... - ( - // - ((mConditions.isXLHPriceOverSignal || - mConditions.isXLHPriceCrossedOverSignal) && - ( - // - // Next Step is to Check LL and HH Same Style ... - // - // PriceOverSignal ... - // Check if Both LL and HH Same In Length ... - ((mConditions.isXLHLLSameInLength && - mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXFIOverZero && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTDSignalOverBear) - // - || - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTMBullish && - (mConditions.isXAMANeutural || - mConditions.isXAMAEndBullish)) && - mConditions.isXFIOverZero && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXLHHHIncreased && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - || - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && + (mConditions.isXCHMAMCTrendsUp && ( // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTSCurrentOverFarest) + mConditions.isXCHMAMCVale // || // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMASCTrendsUp && + (mConditions.isXTSAllSame && + mConditions.isXTMNeutural && + mConditions.isXAMANeutural && mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHLHMCLCLLSame) + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) + // + || + // + (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) + // + ) + // + ) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + ((mConditions.isXAMANeutural && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + mConditions.isXTSCurrentUnderFarest // || // - ((mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) && - ( - // - (mConditions.isXFIOverZero && - mConditions.isXCHMAMCPeak && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXAMABearish && - mConditions.isXTSCurrentMin && - mConditions.isXTMStartBearish && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTSCurrentCrossedUnderFarest && - mConditions.isXTSCurrentCrossedUnderNearest && - mConditions.isXTSCurrentCrossedUnderMediest) - // - )) + (mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentUnderNearest) + // + ) + // + ) + // + || + // + (mConditions.isXTDBearishVale && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXTMEndBullish && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalCrossedOverBear) // ) // @@ -5322,111 +2039,55 @@ bool XEU5XSIHasShortSignal() // ) // - || - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak) - // - || - // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentOverNearest) - // - || - // - (((mConditions.isXTMBullish || - mConditions.isXTMStartBullish) && - (mConditions.isXAMABullish || - mConditions.isXAMAStartBullish)) && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXLHHHIncreased && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) - // ) // ) // || // - // PriceOverSignal ... + // XTD Long ... + // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && + (mConditions.isXCHMAMCVale && ( // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXFIOverZero) + mConditions.isXCHMAMCTrendsUp // || // - (mConditions.isXTMBullish && - mConditions.isXFIOverZero && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXCHLHSCMCHHSame) - // - || - // - (mConditions.isXCHMASCPeak && - mConditions.isXTMEndBullish && - mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXAMAStartBearish) - // - || - // - ((mConditions.isXCHMASCPeak && - mConditions.isXTSCurrentOverFarest) && + (mConditions.isXCHMALCVale && ( // - mConditions.isXTMNeutural + (mConditions.isXAMAEndBullish && + mConditions.isXLHHHDecreased && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXTSCurrentUnderFarest) // || // - mConditions.isXTSCurrentOverMediest - // - || - // - (mConditions.isXTMBullish && - mConditions.isXCHMALCVale && - mConditions.isXAMANeutural && - mConditions.isXLHHHIncreased) + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHMASCUnderMin && + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) // ) // @@ -5434,34 +2095,1469 @@ bool XEU5XSIHasShortSignal() // || // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish) + (mConditions.isXTSCurrentMax && + mConditions.isXLHLLDecreased && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest) // || // - ((mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale) && + (mConditions.isXAMAVale && + mConditions.isXAMABearish && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTD Long ... + // PriceUnderSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + ((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.isXCHMAMCTrendsUp && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedUnderNearest) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTD Long ... + // PriceUnderSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is Over Signal ... + ( + // + ((mConditions.isXLHPriceOverSignal || + mConditions.isXLHPriceCrossedOverSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTD Long ... + // PriceOverSignal ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXCHMAMCVale && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXLHHHDecreased && + mConditions.isXTSCurrentUnderNearest && + 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.isXCHMASCCrossedOverMax) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && ( // - (mConditions.isXLHHHIncreased && + (mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXLHPriceCrossedOverSignal) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + mConditions.isXRSICrossedOverLongExit + // + || + // + (mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXTSCurrentCrossedUnderMediest) + // + || + // + ((mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + 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.isXTSCurrentUnderMediest) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXTDBearishVale && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest) + // + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + (mConditions.isXTDBearishVale && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedUnderNearest) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTD Long ... + // PriceOverSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && + ( + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXTSCurrentMax && + ( + // + (mConditions.isXCHLHSameHHs && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCCrossedOverMax && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTDSignalCrossedOverBear) + // + || + // (mConditions.isXCHLHSCMCHHSame && ( // - (mConditions.isXTMBullish && - mConditions.isXAMANeutural) + (mConditions.isXCHLHMCLCLLSame && + mConditions.isXLHHighAttachedHH && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + ) + // + ) + // + || + // + (mConditions.isXTSCurrentUnderNearest && + ( + // + ((mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHLHMCLCLLSame) && + ( + // + mConditions.isXCHMASCCrossedOverMax // || // - (mConditions.isXTMNeutural && - mConditions.isXTSCurrentMin) + (mConditions.isXCHMASCPeak && + mConditions.isXCHMAMCTrendsDown) + // + ) + // + ) + // + || + // + (mConditions.isXTSCurrentCrossedUnderNearest && + ( + // + (mConditions.isXLHHighAttachedHH && + mConditions.isXTDSignalCrossedOverBear) + // + || + // + (mConditions.isXLHLLIncreased && + mConditions.isXCHLHSCMCHHSame) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsDown) + // + ) + // + ) + // + || + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + mConditions.isXRSICrossedOverLongExit + // + || + // + ((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.isXAMABullish && + mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + (mConditions.isXLHHighAttachedHH && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMASCCrossedOverMax) + // + || + // + (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.isXCHMASCCrossedOverMax + // + || + // + mConditions.isXTSCurrentCrossedOverMediest + // + ) + // + ) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHLHSameHHs && + mConditions.isXLHLLDecreased && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsUp && + mConditions.isXTSCurrentOverNearest) + // + ) + // + ) + // + || + // + ((mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) + // + || + // + (mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + ((mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish) && + ( + // + (mConditions.isXTSCurrentMax && + mConditions.isXLHHHDecreased && + mConditions.isXCHMASCOverMax && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + ) + // + ) + // + || + // + ((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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTD Long ... + // PriceOverSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // 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.isXTMNeutural && + mConditions.isXAMABullish && + 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.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.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + (mConditions.isXTSCurrentUnderMediest && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMASCOverMax && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) + // + || + // + (mConditions.isXTSCurrentUnderFarest && + ( + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish && + mConditions.isXCHMALCPeak && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTD Long ... + // PriceOverSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && + ( + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest && + mConditions.isXTDSignalCrossedOverBear) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + ((mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalCrossedOverBear) && + ( + // + (mConditions.isXLHLLIncreased && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXCHMASCUnderMax && + mConditions.isXCHMALCTrendsDown) + // + || + // + ((mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale) && + ( + // + (mConditions.isXLHHighAttachedHH && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXRSICrossedOverLongExit && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverNearest && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) + // + ) + // + ) + // + || + // + (mConditions.isXCHMAMCPeak && + 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) // ) // @@ -5481,78 +3577,18 @@ bool XEU5XSIHasShortSignal() // || // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && ( // - (mConditions.isXCHLHSameHHs && - mConditions.isXLHHHIncreased && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - false - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ((mConditions.isXTDBullOverBear && - (mConditions.isXTDSignalOverBear || - mConditions.isXTDSignalCrossedOverBear)) && + (mConditions.isXTSCurrentUnderMediest && ( // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - (mConditions.isXFIOverZero || - mConditions.isXTSCurrentOverFarest)) - // - || - // - (mConditions.isXAMABullish && - mConditions.isXFIOverZero && - mConditions.isXTSCurrentMax && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMAMCPeak && + (mConditions.isXCHMASCOverMax && + mConditions.isXTDBullOverBear && mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMASCTrendsUp) + mConditions.isXTSCurrentOverFarest && + mConditions.isXTDSignalCrossedOverBear) // ) // @@ -5560,30 +3596,33 @@ bool XEU5XSIHasShortSignal() // || // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMASCTrendsUp) + (mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDSignalCrossedOverBear && + mConditions.isXRSICrossedUnderShortEntry && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) // || // - ((mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale) && - ( - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && - ( - // - (mConditions.isXTMBullish && - mConditions.isXCHLHSCMCHHSame) - // - ) - // - ) - // - ) - // - ) + (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) // ) // @@ -5613,6 +3652,7 @@ bool XEU5XSIHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XTD Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -5620,7 +3660,45 @@ bool XEU5XSIHasShortSignal() // ( // - false + (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) + // + ) + // + ) + // + ) + // + ) // ) // @@ -5628,46 +3706,40 @@ bool XEU5XSIHasShortSignal() // || // + // XTD Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XTD Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XTD Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -5686,30 +3758,30 @@ bool XEU5XSIHasShortSignal() } // -// XTSFI Long Signal Checking ... -bool XEU5XTSFIHasLongSignal() +// XTD Short Signal Checking ... +bool XUSCHF5XTDHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xEU5MXTSFIEnableSignaller || - !xEU5MXTSFIAllowLongSignals) + if (!xUSCHF5MXTDEnableSignaller || + !xUSCHF5MXTDAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xEU5Provider.XTSFIHasLongConditions() + xUSCHF5Provider.XTDHasShortConditions() // && // @@ -5727,6 +3799,7 @@ bool XEU5XTSFIHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XTD Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -5734,33 +3807,15 @@ bool XEU5XTSFIHasLongSignal() // ( // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && ( // - (mConditions.isXAMANeutural && - mConditions.isXAMAEndBearish && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXCHLHMCLCHHSame) + (mConditions.isXCHMASCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverMediest) // ) // @@ -5768,21 +3823,55 @@ bool XEU5XTSFIHasLongSignal() // || // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - ((mConditions.isXTMNeutural && - mConditions.isXTSCurrentUnderMediest) && + (mConditions.isXTDBullOverBear && ( // - (mConditions.isXAMANeutural && - mConditions.isXTSCurrentUnderMediest) + (mConditions.isXTSCurrentMin && + mConditions.isXAMAEndBearish && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCUnderMin && + mConditions.isXCHMASCTrendsDown && + mConditions.isXTDSignalCrossedUnderBear) // - || + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && + ( + // + (mConditions.isXTDBullOverBear && + ( // - (mConditions.isXTDSignalUnderBear && - mConditions.isXFICrossedUnderZero) + ((mConditions.isXTSCurrentMin && + mConditions.isXTSCurrentCrossedUnderFarest) && + ( + // + (mConditions.isXTDSignalCrossedUnderBear && + mConditions.isXTSCurrentCrossedUnderMediest) + // + || + // + (mConditions.isXAMANeutural && + mConditions.isXTMStartBearish && + mConditions.isXCHMASCFastCrossedUnderSlow && + mConditions.isXTSCurrentCrossedUnderNearest) + // + ) + // + ) // ) // @@ -5798,67 +3887,20 @@ bool XEU5XTSFIHasLongSignal() // || // + // XTD Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTMNeutural && - (mConditions.isXAMANeutural || - mConditions.isXAMAEndBullish) && - mConditions.isXCHLHSameHHs && - mConditions.isXLHLLIncreased && - mConditions.isXLHHighAttachedHH) - // - ) - // - ) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTDBearishVale && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) - // - ) + false) // ) // || // + // XTD Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && @@ -5866,26 +3908,36 @@ bool XEU5XTSFIHasLongSignal() // ( // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - (mConditions.isXTMNeutural && - mConditions.isXTDSignalUnderBear && - mConditions.isXFICrossedUnderZero && - mConditions.isXTSCurrentUnderMediest) + (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) + // + ) + // + ) + // + ) + // + ) // ) // @@ -5897,16 +3949,14 @@ bool XEU5XTSFIHasLongSignal() // || // + // XTD Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -5925,6 +3975,7 @@ bool XEU5XTSFIHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XTD Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -5932,44 +3983,23 @@ bool XEU5XTSFIHasLongSignal() // ( // - (mConditions.isXCHMASCPeak && - (mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMABearish && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMAMCTrendsDown && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHMASCOverMax && - mConditions.isXCHMASCOverMin && - mConditions.isXTSCurrentUnderMediest) + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXTDBullOverBear && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) + // + ) + // + ) // ) // @@ -5977,37 +4007,24 @@ bool XEU5XTSFIHasLongSignal() // || // - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && ( // - (mConditions.isXCHMAMCVale && + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && ( // - mConditions.isXCHMALCVale - // - || - // - (mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentUnderMediest) + (mConditions.isXCHMASCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXTDBullOverBear && + mConditions.isXCHMASCTrendsUp) // ) // ) // - || - // - (mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXAMAStartBullish) - // - || - // - (mConditions.isXLHLLDecreased && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderMediest) - // ) // ) @@ -6018,6 +4035,7 @@ bool XEU5XTSFIHasLongSignal() // || // + // XTD Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -6025,35 +4043,57 @@ bool XEU5XTSFIHasLongSignal() // ( // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXTMNeutural || - mConditions.isXTMStartBullish) && - mConditions.isXLHHHDecreased && - (mConditions.isXAMANeutural || - mConditions.isXAMAStartBearish) && - mConditions.isXTSCurrentUnderMediest) - // - || - // - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && ( // - (mConditions.isXCHMAMCVale && + (mConditions.isXTDBullOverBear && ( // - mConditions.isXCHMALCVale + (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.isXTMNeutural && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentUnderMediest) + (mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalCrossedUnderBear && + mConditions.isXLHPriceCrossedUnderSignal) // ) // @@ -6069,6 +4109,7 @@ bool XEU5XTSFIHasLongSignal() // || // + // XTD Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && @@ -6076,15 +4117,86 @@ bool XEU5XTSFIHasLongSignal() // ( // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && + ( + // + mConditions.isXRSICrossedUnderShortExit + // + || + // + (mConditions.isXLHHHIncreased && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXTDBullOverBear) + // + ) + // + ) // || // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && + ( + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHMASCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXTDBullOverBear) + // + ) + // + ) + // + || + // + (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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) // ) // @@ -6092,6 +4204,7 @@ bool XEU5XTSFIHasLongSignal() // || // + // XTD Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && @@ -6099,7 +4212,34 @@ bool XEU5XTSFIHasLongSignal() // ( // - false + // 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) + // + ) + // + ) + // + ) + // + ) // ) // @@ -6122,6 +4262,7 @@ bool XEU5XTSFIHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XTD Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -6129,120 +4270,111 @@ bool XEU5XTSFIHasLongSignal() // ( // - (mConditions.isXCHMASCPeak && - (mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && ( // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalUnderBear) + (mConditions.isXCHMASCTrendsUp && + mConditions.isXTSCurrentOverFarest) // || // - (mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMASCPeak && - (mConditions.isXAMANeutural || - mConditions.isXAMAEndBullish)) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural) - // - || - // - (mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXCHMALCVale && - (mConditions.isXAMANeutural || - mConditions.isXAMAEndBullish) && - mConditions.isXTMStartBearish) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - ((mConditions.isXCHLHSCMCHHSame && - mConditions.isXTSCurrentUnderMediest) && + (mConditions.isXTDBullOverBear && ( // - mConditions.isXCHMALCVale + (mConditions.isXCHMASCTrendsUp && + mConditions.isXTSCurrentOverFarest) // || // - (mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentCrossedUnderMediest) + ((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) // ) // @@ -6258,41 +4390,54 @@ bool XEU5XTSFIHasLongSignal() // || // + // XTD Short ... // PriceOverSignal ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && // ( // - (mConditions.isXCHMASCPeak && - (mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && ( // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCVale && - mConditions.isXAMAStartBullish && - mConditions.isXFICrossedOverZero && - mConditions.isXTDBullCrossedOverBear && - mConditions.isXTSCurrentUnderMediest) + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && + ( + // + (mConditions.isXCHMALCVale && + ( + // + (mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMALCFastUnderSlow) + // + || + // + ((mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDBullOverBear) && + ( + // + (mConditions.isXCHMASCPeak && + mConditions.isXTSCurrentOverFarest) + // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXTDSignalCrossedUnderBear) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) // ) // @@ -6300,13 +4445,29 @@ bool XEU5XTSFIHasLongSignal() // || // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXCHMALCVale && - mConditions.isXTMNeutural && - mConditions.isXAMANeutural) + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXLHPriceCrossedOverSignal) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) // ) // @@ -6318,6 +4479,96 @@ bool XEU5XTSFIHasLongSignal() // || // + // XTD Short ... + // PriceOverSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !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.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXTSCurrentMin && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalCrossedUnderBear && + mConditions.isXTSCurrentCrossedUnderNearest) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTD Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && @@ -6325,19 +4576,14 @@ bool XEU5XTSFIHasLongSignal() // ( // - (mConditions.isXCHMAMCPeak && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && ( // (mConditions.isXCHMALCVale && - mConditions.isXTDBearishVale && - mConditions.isXCHLHSCMCHHSame) + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentCrossedUnderNearest) // ) // @@ -6367,6 +4613,2163 @@ bool XEU5XTSFIHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XTD Short ... + // PriceFree ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XTD Short ... + // PriceFree ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XTD Short ... + // PriceFree ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + || + // + // XTD Short ... + // PriceFree ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ; + + // + return result; +} + +// +// XTAM Long Signal Checking ... +bool XUSCHF5XTAMHasLongSignal() +{ + // + bool result = false; + + // + // Validate Args ... + if (!xUSCHF5MXTAMEnableSignaller || + !xUSCHF5MXTAMAllowLongSignals) + { + return result; + } + + // + // Retrieve Market Condition ... + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + + // + // Start Analysing Market based On Conditions ... + result = + // + // Base Condition: + xUSCHF5Provider.XTAMHasLongConditions() + // + && + // + // Exceptions: + // there some commonly Exceptions which makes our choice incorrect, + // here we are combined knownly Exceptions ... + !( + // + // for Exception we used XLH Conditions as follow ... + // + // Check Conditions if Price In Signal Range ... + (mConditions.isXLHPriceInSignalRange && + // + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTAM Long ... + // PriceInSignalRange ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && + ( + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + ((mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + mConditions.isXTSAllSame + // + || + // + (mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDSignalUnderBear && + mConditions.isXTDBullCrossedUnderBear) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Long ... + // PriceInSignalRange ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && + ( + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Long ... + // PriceInSignalRange ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && + ( + // + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Long ... + // PriceInSignalRange ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is Under Signal ... + ( + // + ((mConditions.isXLHPriceUnderSignal || + mConditions.isXLHPriceCrossedUnderSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTAM Long ... + // PriceUnderSignal ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && + ( + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + || + // + (mConditions.isXCHMASCOverMax && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) + // + ) + // + ) + // + || + // + // 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.isXCHMAMCVale && + mConditions.isXCHMAMCTrendsUp) && + ( + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) && + ( + // + mConditions.isXTDSignalUnderBear + // + || + // + (mConditions.isXTDBearishVale && + mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Long ... + // PriceUnderSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !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 || + mConditions.isXCHMAMCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMASCUnderMin && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) + // + || + // + (mConditions.isXCHMAMCTrendsUp && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Long ... + // PriceUnderSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + 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.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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Long ... + // PriceUnderSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is Over Signal ... + ( + // + ((mConditions.isXLHPriceOverSignal || + mConditions.isXLHPriceCrossedOverSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTAM Long ... + // PriceOverSignal ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + // + // 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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Long ... + // PriceOverSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + ((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.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + ((mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMax && + mConditions.isXLHHighAttachedHH && + mConditions.isXTDSignalUnderBear) && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXLHLLIncreased && + mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMALCFastOverSlow) + // + || + // + (mConditions.isXCHMASCOverMax && + mConditions.isXTDBullUnderBear && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Long ... + // PriceOverSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Long ... + // PriceOverSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is not has clear state ... + ( + // + ((!mConditions.isXLHPriceOverSignal && + !mConditions.isXLHPriceUnderSignal && + !mConditions.isXLHPriceInSignalRange && + !mConditions.isXLHPriceCrossedOverSignal && + !mConditions.isXLHPriceCrossedUnderSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTAM Long ... + // PriceFree ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XTAM Long ... + // PriceFree ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XTAM Long ... + // PriceFree ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + || + // + // XTAM Long ... + // PriceFree ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ; + + // + return result; +} + +// +// XTAM Short Signal Checking ... +bool XUSCHF5XTAMHasShortSignal() +{ + // + bool result = false; + + // + // Validate Args ... + if (!xUSCHF5MXTAMEnableSignaller || + !xUSCHF5MXTAMAllowShortSignals) + { + return result; + } + + // + // Retrieve Market Condition ... + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + + // + // Start Analysing Market based On Conditions ... + result = + // + // Base Condition: + xUSCHF5Provider.XTAMHasShortConditions() + // + && + // + // Exceptions: + // there some commonly Exceptions which makes our choice incorrect, + // here we are combined knownly Exceptions ... + !( + // + // for Exception we used XLH Conditions as follow ... + // + // Check Conditions if Price In Signal Range ... + (mConditions.isXLHPriceInSignalRange && + // + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTAM Short ... + // PriceInSignalRange ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && + ( + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXTSAllSame && + mConditions.isXCHMASCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTDBullOverBear && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) + // + ) + // + ) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHMASCOverMax && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTSCurrentOverFarest && + mConditions.isXCHMALCFastUnderSlow) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Short ... + // PriceInSignalRange ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Short ... + // PriceInSignalRange ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Short ... + // PriceInSignalRange ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is Under Signal ... + ( + // + ((mConditions.isXLHPriceUnderSignal || + mConditions.isXLHPriceCrossedUnderSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTAM Short ... + // PriceUnderSignal ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && + ( + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHMASCPeak && + mConditions.isXCHMASCTrendsUp && + mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + 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.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Short ... + // PriceUnderSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Short ... + // PriceUnderSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // 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) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + 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.isXTSCurrentMin && + mConditions.isXCHMASCUnderMin && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastCrossedUnderSlow) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Short ... + // PriceUnderSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && + ( + // + ((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.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXCHLHSameLLs && + mConditions.isXTSCurrentMin && + mConditions.isXLHLLDecreased && + mConditions.isXCHMASCUnderMin && + mConditions.isXLHLowAttachedLL && + mConditions.isXLHPriceCrossedUnderSignal && + mConditions.isXTSCurrentCrossedUnderNearest) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is Over Signal ... + ( + // + ((mConditions.isXLHPriceOverSignal || + mConditions.isXLHPriceCrossedOverSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTAM Short ... + // PriceOverSignal ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && + ( + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + ((mConditions.isXCHMALCVale && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMAMCTrendsDown) && + ( + // + mConditions.isXTSCurrentOverFarest + // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXTSCurrentCrossedUnderFarest && + mConditions.isXTSCurrentCrossedUnderNearest && + mConditions.isXTSCurrentCrossedUnderMediest) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Short ... + // PriceOverSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + 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.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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Short ... + // PriceOverSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTAM Short ... + // PriceOverSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is not has clear state ... + ( + // + ((!mConditions.isXLHPriceOverSignal && + !mConditions.isXLHPriceUnderSignal && + !mConditions.isXLHPriceInSignalRange && + !mConditions.isXLHPriceCrossedOverSignal && + !mConditions.isXLHPriceCrossedUnderSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTAM Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -6374,9 +6777,32 @@ bool XEU5XTSFIHasLongSignal() // ( // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) + // 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) + // + ) + // + ) + // + ) + // + ) // ) // @@ -6384,6 +6810,7 @@ bool XEU5XTSFIHasLongSignal() // || // + // XTAM Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -6391,7 +6818,26 @@ bool XEU5XTSFIHasLongSignal() // ( // - false + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && + ( + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMin) + // + ) + // + ) + // + ) + // + ) // ) // @@ -6399,16 +6845,301 @@ bool XEU5XTSFIHasLongSignal() // || // + // XTAM Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // + ( + false) + // + ) + // + || + // + // XTAM Short ... + // PriceFree ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ; + + // + return result; +} + +// +// XSI Long Signal Checking ... +bool XUSCHF5XSIHasLongSignal() +{ + // + bool result = false; + + // + // Validate Args ... + if (!xUSCHF5MXSIEnableSignaller || + !xUSCHF5MXSIAllowLongSignals) + { + return result; + } + + // + // Retrieve Market Condition ... + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + + // + // Start Analysing Market based On Conditions ... + result = + // + // Base Condition: + xUSCHF5Provider.XSIHasLongConditions() + // + && + // + // Exceptions: + // there some commonly Exceptions which makes our choice incorrect, + // here we are combined knownly Exceptions ... + !( + // + // for Exception we used XLH Conditions as follow ... + // + // Check Conditions if Price In Signal Range ... + (mConditions.isXLHPriceInSignalRange && + // + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XSI Long ... + // PriceInSignalRange ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Long ... + // PriceInSignalRange ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Long ... + // PriceInSignalRange ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // 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) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XSI Long ... + // PriceInSignalRange ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is Under Signal ... + ( + // + ((mConditions.isXLHPriceUnderSignal || + mConditions.isXLHPriceCrossedUnderSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XSI Long ... + // PriceUnderSignal ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // ( // - (mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHMASCVale && + mConditions.isXTDBullUnderBear && + 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.isXCHMASCVale && + mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale && + mConditions.isXLHLLDecreased && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest) + // + ) + // + ) // ) // @@ -6416,6 +7147,3314 @@ bool XEU5XTSFIHasLongSignal() // || // + // XSI Long ... + // PriceUnderSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Long ... + // PriceUnderSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHMASCVale && + mConditions.isXCHMASCTrendsUp) + // + || + // + ((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.isXCHMASCVale && + mConditions.isXCHMAMCVale) && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) + // + || + // + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest) + // + ) + // + ) + // + || + // + ((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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XSI Long ... + // PriceUnderSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && + ( + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHMASCVale && + mConditions.isXCHMAMCVale && + mConditions.isXCHMALCPeak && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + ) + // + ) + // + || + // + (mConditions.isXCHMASCTrendsUp && + ( + // + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXCHMALCFastOverSlow) + // + || + // + (mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXRSICrossedOverLongEntry) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is Over Signal ... + ( + // + ((mConditions.isXLHPriceOverSignal || + mConditions.isXLHPriceCrossedOverSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XSI Long ... + // PriceOverSignal ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Long ... + // PriceOverSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Long ... + // PriceOverSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && + ( + // + (mConditions.isXTDBullUnderBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXLHPriceCrossedOverSignal) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XSI Long ... + // PriceOverSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && + ( + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest) + // + || + // + (mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXLHPriceCrossedOverSignal) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is not has clear state ... + ( + // + ((!mConditions.isXLHPriceOverSignal && + !mConditions.isXLHPriceUnderSignal && + !mConditions.isXLHPriceInSignalRange && + !mConditions.isXLHPriceCrossedOverSignal && + !mConditions.isXLHPriceCrossedUnderSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XSI Long ... + // PriceFree ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Long ... + // PriceFree ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Long ... + // PriceFree ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Long ... + // PriceFree ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ; + + // + return result; +} + +// +// XSI Short Signal Checking ... +bool XUSCHF5XSIHasShortSignal() +{ + // + bool result = false; + + // + // Validate Args ... + if (!xUSCHF5MXSIEnableSignaller || + !xUSCHF5MXSIAllowShortSignals) + { + return result; + } + + // + // Retrieve Market Condition ... + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + + // + // Start Analysing Market based On Conditions ... + result = + // + // Base Condition: + xUSCHF5Provider.XSIHasShortConditions() + // + && + // + // Exceptions: + // there some commonly Exceptions which makes our choice incorrect, + // here we are combined knownly Exceptions ... + !( + // + // for Exception we used XLH Conditions as follow ... + // + // Check Conditions if Price In Signal Range ... + (mConditions.isXLHPriceInSignalRange && + // + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XSI Short ... + // PriceInSignalRange ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Short ... + // PriceInSignalRange ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && + ( + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDBullOverBear && + mConditions.isXTSCurrentOverFarest) + // + ) + // + ) + // + || + // + (mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXCHMALCFastUnderSlow) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XSI Short ... + // PriceInSignalRange ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XSI Short ... + // PriceInSignalRange ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is Under Signal ... + ( + // + ((mConditions.isXLHPriceUnderSignal || + mConditions.isXLHPriceCrossedUnderSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XSI Short ... + // PriceUnderSignal ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Short ... + // PriceUnderSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Short ... + // PriceUnderSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // 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) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XSI Short ... + // PriceUnderSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is Over Signal ... + ( + // + ((mConditions.isXLHPriceOverSignal || + mConditions.isXLHPriceCrossedOverSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XSI Short ... + // PriceOverSignal ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if SC Fast Over Slow ... + ((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.isXTDBullOverBear && + mConditions.isXTDSignalOverBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTSCurrentOverFarest && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXCHMALCFastUnderSlow) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XSI Short ... + // PriceOverSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + 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.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.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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XSI Short ... + // PriceOverSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && + ( + // + (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) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XSI Short ... + // PriceOverSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + 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.isXTDBullOverBear && + mConditions.isXTDSignalOverBear) && + ( + // + (mConditions.isXCHMASCPeak && + mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXLHHHIncreased && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTSCurrentOverFarest && + mConditions.isXCHMAMCFastUnderSlow && + mConditions.isXCHMALCFastUnderSlow) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is not has clear state ... + ( + // + ((!mConditions.isXLHPriceOverSignal && + !mConditions.isXLHPriceUnderSignal && + !mConditions.isXLHPriceInSignalRange && + !mConditions.isXLHPriceCrossedOverSignal && + !mConditions.isXLHPriceCrossedUnderSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XSI Short ... + // PriceFree ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Short ... + // PriceFree ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Short ... + // PriceFree ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + || + // + // XSI Short ... + // PriceFree ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ; + + // + return result; +} + +// +// XTSFI Long Signal Checking ... +bool XUSCHF5XTSFIHasLongSignal() +{ + // + bool result = false; + + // + // Validate Args ... + if (!xUSCHF5MXTSFIEnableSignaller || + !xUSCHF5MXTSFIAllowLongSignals) + { + return result; + } + + // + // Retrieve Market Condition ... + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); + + // + // Start Analysing Market based On Conditions ... + result = + // + // Base Condition: + xUSCHF5Provider.XTSFIHasLongConditions() + // + && + // + // Exceptions: + // there some commonly Exceptions which makes our choice incorrect, + // here we are combined knownly Exceptions ... + !( + // + // for Exception we used XLH Conditions as follow ... + // + // Check Conditions if Price In Signal Range ... + (mConditions.isXLHPriceInSignalRange && + // + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTSFI Long ... + // PriceInSignalRange ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + // + ((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.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.isXTSCurrentUnderMediest) + // + || + // + (mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDBullCrossedUnderBear) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTSFI Long ... + // PriceInSignalRange ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && + ( + // + (mConditions.isXTSCurrentUnderMediest && + ( + // + ( + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) && + ( + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHMALCPeak) + // + ) + // + ) + // + || + // + (mConditions.isXLHHHDecreased && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + 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.isXTSCurrentUnderMediest && + ( + // + (mConditions.isXTSCurrentCrossedUnderMediest && + ( + // + ((mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMAMCFastUnderSlow) && + ( + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMALCPeak && + mConditions.isXTDBearishVale) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTSFI Long ... + // PriceInSignalRange ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHMASCOverMax && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) + // + || + // + (mConditions.isXAMAVale && + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) + // + || + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXCHMASCOverMax && + mConditions.isXCHMASCTrendsUp && + mConditions.isXTDBullUnderBear && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + ) + // + ) + // + || + // + // 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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTSFI Long ... + // PriceInSignalRange ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + ((mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) && + ( + // + mConditions.isXTDBullUnderBear + // + || + // + mConditions.isXTDBullCrossedUnderBear + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is Under Signal ... + ( + // + ((mConditions.isXLHPriceUnderSignal || + mConditions.isXLHPriceCrossedUnderSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTSFI Long ... + // PriceUnderSignal ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXLHPriceCrossedUnderSignal) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + || + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + 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.isXCHMAMCVale && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDSignalCrossedUnderBear) + // + || + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) && + ( + // + mConditions.isXCHMALCVale + // + || + // + mConditions.isXTSCurrentUnderMediest + // + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMALCPeak && + mConditions.isXCHMALCTrendsDown) && + ( + // + (mConditions.isXTSCurrentUnderMediest && + (mConditions.isXCHMASCUnderMax || + mConditions.isXCHMASCCrossedUnderMax)) + // + ) + // + ) + // + ) + // + ) + // + || + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMALCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXCHMASCFastCrossedOverSlow && + mConditions.isXTSCurrentCrossedUnderMediest) + // + ) + // + ) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXTSCurrentUnderMediest) + // + ) + // + ) + // + || + // + (mConditions.isXTSCurrentUnderMediest && + ( + // + ((mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) && + ( + // + (mConditions.isXTMBearish && + mConditions.isXAMANeutural && + mConditions.isXFIUnderZero && + mConditions.isXCHMASCOverMax) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTSFI Long ... + // PriceUnderSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTSFI Long ... + // PriceUnderSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + 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.isXTSCurrentUnderMediest && + ( + // + ((mConditions.isXTMStartBullish && + mConditions.isXAMAStartBullish) && + ( + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCVale && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTDSignalUnderBear) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXFICrossedUnderZero && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDSignalCrossedUnderBear && + mConditions.isXLHPriceCrossedUnderSignal) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTSFI Long ... + // PriceUnderSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is Over Signal ... + ( + // + ((mConditions.isXLHPriceOverSignal || + mConditions.isXLHPriceCrossedOverSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTSFI Long ... + // PriceOverSignal ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + // + // 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.isXCHMALCPeak && + mConditions.isXLHHHDecreased && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame) + // + || + // + (mConditions.isXTDSignalUnderBear && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame) + // + ) + // + ) + // + ) + // + ) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHLHSameHHs && + mConditions.isXCHMASCOverMax && + mConditions.isXTDSignalUnderBear) + // + || + // + ((mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) && + ( + // + ((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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTSFI Long ... + // PriceOverSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !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.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.isXLHHHDecreased && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXLHPriceCrossedOverSignal) + // + ) + // + ) + // + || + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + 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.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXLHHighAttachedHH && + mConditions.isXTSCurrentCrossedOverNearest) + // + || + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTSFI Long ... + // PriceOverSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check if SC Fast Under Slow ... + ((mConditions.isXCHMASCFastUnderSlow || + mConditions.isXCHMASCFastCrossedUnderSlow) && + ( + // + ((mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) && + ( + // + (mConditions.isXTSCurrentUnderMediest && + ( + // + (mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale) + // + || + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + (mConditions.isXTMNeutural && + mConditions.isXCHMALCPeak && + mConditions.isXTMEndBearish && + mConditions.isXLHHHIncreased && + mConditions.isXAMAStartBullish) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // 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.isXTDSignalUnderBear && + ( + // + (mConditions.isXTSCurrentUnderMediest && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTSFI Long ... + // PriceOverSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + (mConditions.isXCHLHSCMCHHSame && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + 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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check Conditions if Price is not has clear state ... + ( + // + ((!mConditions.isXLHPriceOverSignal && + !mConditions.isXLHPriceUnderSignal && + !mConditions.isXLHPriceInSignalRange && + !mConditions.isXLHPriceCrossedOverSignal && + !mConditions.isXLHPriceCrossedUnderSignal) && + ( + // + // Next Step is to Check LL and HH Same Style ... + // + // XTSFI Long ... + // PriceFree ... + // Check if Both LL and HH Same In Length ... + ((mConditions.isXLHLLSameInLength && + mConditions.isXLHHHSameInLength) && + // + ( + // + // 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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XTSFI Long ... + // PriceFree ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + false) + // + ) + // + || + // + // XTSFI Long ... + // PriceFree ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // + || + // + // XTSFI Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && @@ -6423,7 +10462,36 @@ bool XEU5XTSFIHasLongSignal() // ( // - false + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + ((mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest) && + ( + // + mConditions.isXTDBullUnderBear + // + || + // + mConditions.isXTDBullCrossedUnderBear + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) // ) // @@ -6445,29 +10513,29 @@ bool XEU5XTSFIHasLongSignal() // // XTSFI Short Signal Checking ... -bool XEU5XTSFIHasShortSignal() +bool XUSCHF5XTSFIHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xEU5MXTSFIEnableSignaller || - !xEU5MXTSFIAllowShortSignals) + if (!xUSCHF5MXTSFIEnableSignaller || + !xUSCHF5MXTSFIAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xEU5Provider.XTSFIHasShortConditions() + xUSCHF5Provider.XTSFIHasShortConditions() // && // @@ -6485,6 +10553,7 @@ bool XEU5XTSFIHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XTSFI Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -6492,134 +10561,55 @@ bool XEU5XTSFIHasShortSignal() // ( // - ((mConditions.isXCHMALCVale && - mConditions.isXCHLHMCLCLLSame) && - ( - // - mConditions.isXCHMASCTrendsDown - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXTMEndBearish && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - || - // - (((mConditions.isXTMVale || - mConditions.isXTMNeutural) && - mConditions.isXAMANeutural) && - (mConditions.isXFIOverZero || - mConditions.isXFICrossedOverZero) && - mConditions.isXTSCurrentOverMediest) - // - || - // + // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ( - // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalCrossedOverBear) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXFIOverZero && - mConditions.isXTDBullOverBear) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXFIOverZero) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXCHLHSCMCLLSame) - // - || - // - (mConditions.isXTDBearishVale && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXFIOverZero && - mConditions.isXTDBullOverBear) && - ( - // - (mConditions.isXAMANeutural && - mConditions.isXTMStartBullish) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDSignalOverBear) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && ( // (mConditions.isXTSCurrentOverMediest && ( // - (mConditions.isXCHMASCVale && - mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + mConditions.isXTSCurrentCrossedOverMediest + // + || + // + (mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + ) + // + ) // || // (mConditions.isXTMBullish && mConditions.isXAMABullish && - mConditions.isXFIOverZero && - mConditions.isXTDBullOverBear) + 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) // ) // @@ -6631,6 +10621,7 @@ bool XEU5XTSFIHasShortSignal() // || // + // Check LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( @@ -6638,21 +10629,117 @@ bool XEU5XTSFIHasShortSignal() (mConditions.isXTSCurrentOverMediest && ( // - (mConditions.isXCHMALCPeak && - (mConditions.isXTMNeutural || - mConditions.isXTMEndBullish) && - (mConditions.isXAMANeutural || - mConditions.isXAMAEndBullish) && + ((mConditions.isXTMBullish && + mConditions.isXAMANeutural && + mConditions.isXCHMAMCVale) && + ( + // + mConditions.isXCHLHSCMCLLSame + // + || + // + mConditions.isXCHMASCUnderMin + // + ) + // + ) + // + || + // + (mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) // || // - (mConditions.isXAMAVale && - mConditions.isXCHMALCPeak && - mConditions.isXTDBullOverBear && - (mConditions.isXFIOverZero || - mConditions.isXFICrossedOverZero)) + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale) + // + || + // + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + (mConditions.isXTSCurrentOverMediest && + ( + // + (mConditions.isXCHMASCUnderMin && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) + // + || + // + (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.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXCHMASCCrossedUnderMax && + mConditions.isXTSCurrentCrossedUnderNearest) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXFIOverZero && + mConditions.isXCHLHMCLCLLSame) // ) // @@ -6668,6 +10755,7 @@ bool XEU5XTSFIHasShortSignal() // || // + // XTSFI Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -6675,26 +10763,25 @@ bool XEU5XTSFIHasShortSignal() // ( // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && + (mConditions.isXTSCurrentOverMediest && ( // - ((mConditions.isXAMANeutural && - mConditions.isXFIOverZero && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverMediest) && - ( - // - mConditions.isXTMNeutural - // - || - // - (mConditions.isXTMBullish && - mConditions.isXLHLLDecreased) - // - ) - // - ) + mConditions.isXRSICrossedUnderShortExit + // + || + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural) + // + || + // + (mConditions.isXTMBullish && + mConditions.isXAMABullish) + // + || + // + (mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear) // ) // @@ -6702,46 +10789,20 @@ bool XEU5XTSFIHasShortSignal() // || // + // Check LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // - (mConditions.isXFIOverZero && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXLHHHDecreased && - (mConditions.isXTMBullish || - mConditions.isXTMStartBullish) && - mConditions.isXAMABullish && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTDBullCrossedOverBear) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXLHHHDecreased && - mConditions.isXFICrossedOverZero && - mConditions.isXTDBullCrossedOverBear) - // - || - // - (mConditions.isXFIOverZero && - mConditions.isXCHMALCPeak && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXFIOverZero && - mConditions.isXCHMALCPeak && - mConditions.isXLHHHDecreased && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTDBullCrossedUnderBear) + (mConditions.isXTSCurrentOverMediest && + ( + // + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural) + // + ) + // + ) // ) // @@ -6753,6 +10814,7 @@ bool XEU5XTSFIHasShortSignal() // || // + // XTSFI Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && @@ -6763,51 +10825,38 @@ bool XEU5XTSFIHasShortSignal() (mConditions.isXTSCurrentOverMediest && ( // - (mConditions.isXCHMALCVale && - mConditions.isXTMNeutural && + (mConditions.isXTMNeutural && mConditions.isXAMANeutural) // || - // - (mConditions.isXAMANeutural && - mConditions.isXTMStartBearish && - mConditions.isXTDBullUnderBear && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTDSignalUnderBear) - // - || - // - ((mConditions.isXTMBullish || - mConditions.isXTMStartBullish) && - (mConditions.isXAMABullish || - mConditions.isXAMAStartBullish) && - (mConditions.isXFIOverZero || - mConditions.isXFICrossedOverZero) && - mConditions.isXCHLHSameLLs) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( // ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && + mConditions.isXAMANeutural) && ( // - (mConditions.isXCHMALCVale && - mConditions.isXCHMASCTrendsUp) + mConditions.isXTDBullOverBear // || // - (mConditions.isXCHLHSameLLs && + (mConditions.isXCHMALCVale && + mConditions.isXTMStartBullish && + mConditions.isXCHMASCUnderMin) + // + ) + // + ) + // + || + // + ((mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear) && + ( + // + (mConditions.isXCHMALCVale && mConditions.isXTDBearishVale && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverMediest) + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMASCFastOverSlow && + mConditions.isXCHMAMCFastUnderSlow) // ) // @@ -6819,35 +10868,16 @@ bool XEU5XTSFIHasShortSignal() // || // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && ( // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCPeak && - mConditions.isXAMANeutural && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTSCurrentCrossedUnderFarest) - // - || - // - ((mConditions.isXCHMAMCVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTSCurrentOverMediest) && + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && ( // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXTMEndBearish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) + (mConditions.isXCHLHSameLLs && + mConditions.isXTSCurrentOverMediest) // ) // @@ -6863,16 +10893,14 @@ bool XEU5XTSFIHasShortSignal() // || // + // XTSFI Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -6891,6 +10919,7 @@ bool XEU5XTSFIHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XTSFI Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -6901,74 +10930,24 @@ bool XEU5XTSFIHasShortSignal() (mConditions.isXTSCurrentOverMediest && ( // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest) && + ((mConditions.isXCHMAMCVale && + mConditions.isXCHMALCFastOverSlow) && ( // - mConditions.isXTSCurrentUnderNearest + (mConditions.isXAMAVale && + mConditions.isXCHMASCUnderMin) // || // - (mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXCHMASCTrendsUp) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXLHHHDecreased && - mConditions.isXLHLLDecreased && - mConditions.isXTSCurrentOverMediest) - // - || - // - ((mConditions.isXFIOverZero && - mConditions.isXTSCurrentOverMediest) && - ( - // - (mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish) - // - || - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && ( // - (mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish) + mConditions.isXTDBullOverBear + // + || + // + mConditions.isXCHLHSCMCLLSame // ) // @@ -6978,158 +10957,34 @@ bool XEU5XTSFIHasShortSignal() // ) // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXTSCurrentOverMediest && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTDBullOverBear) - // - || - // - (mConditions.isXCHMALCVale && - mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish && - mConditions.isXCHLHSCMCLLSame) - // - || - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMALCVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - mConditions.isXOBDSwingLow - // || // - (mConditions.isXTSCurrentOverMediest && + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHLHSameLLs && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXTDBullCrossedUnderBear && - mConditions.isXTSCurrentCrossedOverMediest) - // - || // ((mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) && ( // - mConditions.isXCHMALCPeak + (mConditions.isXCHMASCUnderMin && + mConditions.isXCHMALCFastOverSlow && + mConditions.isXRSICrossedUnderShortExit) // || // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTSCurrentCrossedOverMediest) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXTMNeutural && - mConditions.isXFIOverZero && - mConditions.isXTSCurrentCrossedOverMediest) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXTMBearish && - mConditions.isXCHMAMCVale && - mConditions.isXCHLHMCLCLLSame) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXFIOverZero && - mConditions.isXLHHHIncreased && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXFICrossedOverZero) - // - || - // - (mConditions.isXAMABearish && - mConditions.isXCHMAMCVale && - mConditions.isXCHLHMCLCLLSame && - (mConditions.isXTMNeutural || - mConditions.isXTMEndBearish)) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXCHMAMCVale && - mConditions.isXTMStartBearish && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentUnderFarest) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXTMNeutural && - mConditions.isXCHMAMCVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXFICrossedUnderZero && - mConditions.isXTSCurrentCrossedUnderNearest) - // - || - // - ((mConditions.isXAMAVale && - mConditions.isXTMNeutural && - mConditions.isXCHMALCPeak && - mConditions.isXCHMAMCVale) && + (mConditions.isXCHMALCFastOverSlow && ( // - mConditions.isXLHPriceCrossedUnderSignal - // - || - // - (mConditions.isXCHLHSCMCLLSame && - mConditions.isXFICrossedUnderZero && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) + (mConditions.isXCHMALCTrendsDown && + ( + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMALCPeak) + // + ) + // + ) // ) // @@ -7145,85 +11000,63 @@ bool XEU5XTSFIHasShortSignal() // || // - (((mConditions.isXTMBullish || - mConditions.isXTMNeutural || - mConditions.isXTMStartBullish) && - mConditions.isXTSCurrentOverMediest) && - ( - // - (mConditions.isXAMAVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - (mConditions.isXTMStartBullish || - mConditions.isXTMEndBullish)) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXAMAStartBearish) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXFIOverZero && - mConditions.isXTMEndBearish && - mConditions.isXFICrossedOverZero) - // - ) - // - ) + (mConditions.isXTMVale && + mConditions.isXCHMASCUnderMin && + mConditions.isXCHMAMCFastOverSlow) // || // - ((mConditions.isXCHMAMCVale && - mConditions.isXTSCurrentOverMediest) && + (mConditions.isXCHMALCVale && + mConditions.isXAMANeutural && + mConditions.isXTMStartBearish && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMASCFastOverSlow) + // + || + // + (mConditions.isXTSCurrentCrossedOverMediest && ( // - (mConditions.isXCHMALCPeak && - mConditions.isXLHHHDecreased && - mConditions.isXCHLHSCMCLLSame) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMAStartBearish) && + (mConditions.isXCHMASCFastCrossedOverSlow && ( // - (mConditions.isXCHLHSameLLs && - mConditions.isXTDBullOverBear) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXCHLHMCLCLLSame) + (mConditions.isXCHMALCVale && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCUnderMin) // ) // ) // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentOverMediest) && - ( + || // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXLHHHDecreased) + (mConditions.isXCHMALCFastOverSlow && + ( + // + ((mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) && + ( + // + (mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHMASCUnderMin && + mConditions.isXCHMASCCrossedUnderMin) + // + ) + // + ) + // + ) + // + ) // || // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHMCLCLLSame) + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHMASCVale && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMAMCFastOverSlow) // ) // @@ -7233,41 +11066,99 @@ bool XEU5XTSFIHasShortSignal() // ) // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) - // || // - (mConditions.isXTSCurrentOverMediest && + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - ((mConditions.isXCHMALCVale && - mConditions.isXCHLHSCMCLLSame) && + (mConditions.isXTSCurrentOverMediest && ( // (mConditions.isXAMAVale && - mConditions.isXCHMASCUnderMax && + mConditions.isXTMNeutural && + mConditions.isXTMEndBearish && + mConditions.isXCHLHMCLCHHSame && mConditions.isXCHMASCUnderMin) // + ) + // + ) + // + ) + // + ) + // + || + // + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + 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) // @@ -7279,23 +11170,74 @@ bool XEU5XTSFIHasShortSignal() // ) // - || + ) + // + ) + // + || + // + // XTSFI Short ... + // PriceUnderSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && + (mConditions.isXTSCurrentOverMediest && ( // - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCTrendsUp && - 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) + // + ) + // + ) // ) // @@ -7303,56 +11245,147 @@ bool XEU5XTSFIHasShortSignal() // || // + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && + ( + // + (mConditions.isXTSCurrentOverMediest && + ( + // + (mConditions.isXAMAVale && + mConditions.isXTMNeutural && + mConditions.isXCHMAMCVale && + mConditions.isXCHMASCUnderMin) + // + ) + // + ) + // + ) + // + ) + // + || + // + // Check LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // - ((mConditions.isXCHMAMCVale && - mConditions.isXTSCurrentOverMediest) && + (mConditions.isXTSCurrentOverMediest && ( // - mConditions.isXLHHHDecreased - // - || - // - mConditions.isXTSCurrentCrossedOverMediest - // - || - // - (mConditions.isXTMVale && - mConditions.isXTMNeutural && - mConditions.isXAMAVale && - mConditions.isXAMANeutural) - // - || - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHMALCTrendsDown) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXFIOverZero && - mConditions.isXTMEndBearish && - mConditions.isXTDBullOverBear) - // - || - // - (mConditions.isXCHMALCPeak && + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( // - mConditions.isXCHLHMCLCLLSame + (mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale) // || // - (mConditions.isXTMVale && - mConditions.isXAMAVale) + ((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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // 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) + // ) // ) @@ -7367,6 +11400,7 @@ bool XEU5XTSFIHasShortSignal() // || // + // XTSFI Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && @@ -7377,221 +11411,74 @@ bool XEU5XTSFIHasShortSignal() (mConditions.isXTSCurrentOverMediest && ( // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentCrossedOverMediest) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish && + ((mConditions.isXCHMALCVale && mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDSignalUnderBear) && + mConditions.isXCHMASCUnderMin) && ( // - mConditions.isXTDBullCrossedUnderBear + mConditions.isXTSCurrentCrossedOverMediest // || // - (mConditions.isXCHMALCVale && - mConditions.isXLHHHIncreased && - mConditions.isXTDBullUnderBear) + (mConditions.isXTMNeutural && + mConditions.isXCHMASCFastOverSlow) // ) // ) // - ) - // - ) - // - || - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - ( - // - ((mConditions.isXCHMALCVale && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverMediest) && - ( - // - (mConditions.isXFIOverZero && - mConditions.isXCHMASCTrendsUp) - // - || - // - (mConditions.isXAMANeutural && - mConditions.isXLHHHIncreased && - mConditions.isXTMStartBearish && - mConditions.isXCHLHSCMCHHSame) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentOverMediest) - // || // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMASCVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - (mConditions.isXTSCurrentOverMediest && + (mConditions.isXCHMAMCFastOverSlow && ( - // - mConditions.isXCHLHSameLLs - // - || - // - (mConditions.isXAMAVale && - mConditions.isXTMNeutural && - mConditions.isXFIOverZero && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXLHHHDecreased) - // - || // (mConditions.isXTMVale && mConditions.isXAMAVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXLHHHDecreased && - mConditions.isXTSCurrentCrossedUnderNearest) + mConditions.isXCHMALCVale && + mConditions.isXCHMASCUnderMin) // - || + ) + // + ) + // + || + // + (mConditions.isXCHMASCFastOverSlow && + ( // - (mConditions.isXCHLHSCMCLLSame && + (mConditions.isXTMBullish && + mConditions.isXCHMALCVale && + mConditions.isXAMANeutural && + mConditions.isXTDBearishVale && + mConditions.isXTDBullOverBear && + mConditions.isXCHMASCUnderMin && + mConditions.isXCHMASCTrendsUp) + // + ) + // + ) + // + || + // + (mConditions.isXCHMALCFastOverSlow && + ( + // + ((mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) && ( // - (mConditions.isXCHLHMCLCHHSame && + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( // - (mConditions.isXAMAVale && - mConditions.isXCHMAMCVale && - mConditions.isXTMStartBearish) - // - || - // - ((mConditions.isXTMNeutural || - mConditions.isXTMEndBearish) && - (mConditions.isXAMANeutural || - mConditions.isXAMAEndBearish)) - // - || - // - (mConditions.isXTMVale && - mConditions.isXCHMAMCVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest) + (mConditions.isXCHMASCVale && + mConditions.isXCHMASCUnderMin && + mConditions.isXCHMASCCrossedUnderMin) // ) // ) // - || - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish) - // - || - // - (mConditions.isXFIOverZero && - mConditions.isXCHMAMCVale && - mConditions.isXTMEndBearish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXCHMALCPeak && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMABearish && - mConditions.isXFIOverZero && - mConditions.isXCHMAMCVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMABearish && - mConditions.isXCHMAMCVale && - mConditions.isXLHHHDecreased && - mConditions.isXFICrossedUnderZero && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - || - // - ((mConditions.isXAMAVale && - mConditions.isXCHMALCPeak) && - ( - // - mConditions.isXTMNeutural - // - || - // - (mConditions.isXTMVale && - mConditions.isXTMEndBearish && - mConditions.isXLHLLDecreased) - // - ) - // - ) - // - || - // - (mConditions.isXTMVale && - mConditions.isXTMNeutural && - mConditions.isXAMABearish && - mConditions.isXCHMAMCVale && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) - // ) // ) @@ -7604,12 +11491,48 @@ bool XEU5XTSFIHasShortSignal() // ) // + || + // + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && + ( + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXCHLHSCMCLLSame && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHLHSCMCLLSame && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) + // ) // ) // || // + // XTSFI Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && @@ -7617,64 +11540,38 @@ bool XEU5XTSFIHasShortSignal() // ( // - ((mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMASCUnderMax && - mConditions.isXCHMASCUnderMin && - mConditions.isXTSCurrentOverMediest) && - ( - // - mConditions.isXCHMAMCTrendsDown - // - || - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMASCTrendsUp && - mConditions.isXTMStartBearish && - mConditions.isXTDBullOverBear && - mConditions.isXAMAStartBearish && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - || - // + // Check LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( // - ((mConditions.isXCHMAMCVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTSCurrentOverMediest) && + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( // - (mConditions.isXAMAVale && - mConditions.isXTMBullish) - // - || - // - (mConditions.isXAMAVale && - (mConditions.isXTMNeutural || - mConditions.isXTMEndBearish)) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) + (mConditions.isXTSCurrentOverMediest && + ( + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHLHSameLLs && + mConditions.isXLHHHDecreased) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXCHLHSameLLs && + mConditions.isXTDSignalVale && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXLHHHDecreased && + mConditions.isXTSCurrentCrossedOverMediest) + // + ) + // + ) // ) // @@ -7705,6 +11602,7 @@ bool XEU5XTSFIHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XTSFI Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -7712,20 +11610,104 @@ bool XEU5XTSFIHasShortSignal() // ( // - ((mConditions.isXTMNeutural && - mConditions.isXCHMALCVale && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentOverMediest) && + (mConditions.isXTSCurrentOverMediest && ( // - (mConditions.isXCHLHMCLCLLSame && - mConditions.isXLHPriceCrossedOverSignal) + (mConditions.isXTMBullish && + mConditions.isXAMABullish) // || // - (mConditions.isXTDBullUnderBear && + (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.isXTDSignalUnderBear) + 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) + // + ) + // + ) // ) // @@ -7733,28 +11715,45 @@ bool XEU5XTSFIHasShortSignal() // || // + // Check if SC Fast Over Slow ... ((mConditions.isXCHMASCFastOverSlow || mConditions.isXCHMASCFastCrossedOverSlow) && ( // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTSCurrentOverMediest) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXFIOverZero && - mConditions.isXTSCurrentOverMediest) && + (mConditions.isXTSCurrentOverMediest && ( // - (mConditions.isXAMANeutural && - mConditions.isXTDBullOverBear) + (mConditions.isXTMBullish && + mConditions.isXAMABullish) // - || + ) + // + ) + // + ) + // + ) + // + || + // + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && + ( + // + ((mConditions.isXCHMAMCPeak && + mConditions.isXCHMAMCTrendsUp) && + ( // - (mConditions.isXAMABullish && - mConditions.isXTDBullCrossedOverBear) + (mConditions.isXTSCurrentOverMediest && + ( + // + (mConditions.isXTMBearish && + mConditions.isXAMABearish) + // + ) + // + ) // ) // @@ -7765,12 +11764,16 @@ bool XEU5XTSFIHasShortSignal() (mConditions.isXTSCurrentOverMediest && ( // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCVale && - mConditions.isXAMANeutural && - mConditions.isXLHLLIncreased && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMASCTrendsUp) + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHMASCVale && + mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTMStartBearish && + mConditions.isXAMAStartBearish && + mConditions.isXTSCurrentCrossedUnderNearest) // ) // @@ -7782,33 +11785,7 @@ bool XEU5XTSFIHasShortSignal() // || // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp) - // - || - // - (mConditions.isXCHMAMCTrendsUp && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - || - // + // Check LC Fast Over Slow ... ((mConditions.isXCHMALCFastOverSlow || mConditions.isXCHMALCFastCrossedOverSlow) && ( @@ -7816,20 +11793,30 @@ bool XEU5XTSFIHasShortSignal() (mConditions.isXTSCurrentOverMediest && ( // - (mConditions.isXFIOverZero && - mConditions.isXCHMALCPeak) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHLHSCMCLLSame) + (mConditions.isXLHLLDecreased && + mConditions.isXLHPriceCrossedOverSignal) // || // (mConditions.isXCHMALCPeak && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXLHHHDecreased) + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXTMNeutural && + ( + // + mConditions.isXAMANeutural + // + || + // + (mConditions.isXTMEndBearish && + mConditions.isXTSCurrentCrossedUnderNearest) + // + ) + // + ) // ) // @@ -7845,6 +11832,7 @@ bool XEU5XTSFIHasShortSignal() // || // + // XTSFI Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -7852,21 +11840,28 @@ bool XEU5XTSFIHasShortSignal() // ( // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && + (mConditions.isXTSCurrentOverMediest && ( // - ((mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) && + (mConditions.isXTMBullish && + mConditions.isXAMABullish) + // + || + // + (mConditions.isXTSCurrentCrossedOverMediest && ( // - ((mConditions.isXTMBullish || - mConditions.isXTMStartBullish) + (mConditions.isXLHPriceCrossedOverSignal && + ( + // + (mConditions.isXTMVale && + mConditions.isXAMAVale && + mConditions.isXCHMALCVale && + mConditions.isXCHLHMCLCLLSame) + // + ) // - && - // - (mConditions.isXAMABullish || - mConditions.isXAMAStartBullish)) + ) // ) // @@ -7878,24 +11873,28 @@ bool XEU5XTSFIHasShortSignal() // || // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && ( // - (mConditions.isXTSCurrentOverMediest && + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTDBullCrossedUnderBear) + (mConditions.isXTSCurrentOverMediest && + ( + // + mConditions.isXLHPriceCrossedOverSignal + // + || + // + (mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverMediest) + // + ) + // + ) // ) // @@ -7911,6 +11910,7 @@ bool XEU5XTSFIHasShortSignal() // || // + // XTSFI Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && @@ -7921,64 +11921,38 @@ bool XEU5XTSFIHasShortSignal() (mConditions.isXTSCurrentOverMediest && ( // - (mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish && - mConditions.isXLHPriceCrossedOverSignal) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXLHLLIncreased && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXLHHHIncreased && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMASCTrendsUp) - // - || - // - (mConditions.isXTSCurrentOverMediest && + ((mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear) && ( - // - (mConditions.isXAMANeutural && - mConditions.isXTMStartBearish && - mConditions.isXTDBullOverBear) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXFIOverZero && - mConditions.isXTDBullOverBear) - // - || // (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.isXCHLHSCMCHHSame && - mConditions.isXCHMASCTrendsUp) + mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale) // ) // @@ -7990,32 +11964,20 @@ bool XEU5XTSFIHasShortSignal() // || // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && ( // - (mConditions.isXCHMAMCTrendsUp && + (mConditions.isXTSCurrentOverMediest && ( // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp) + (mConditions.isXTMBullish && + mConditions.isXAMABullish) // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentOverMediest) - // - || - // - ((mConditions.isXTMBullish || - mConditions.isXTMStartBullish) && - (mConditions.isXAMABullish || - mConditions.isXAMAStartBullish) && - (mConditions.isXTSCurrentOverMediest || - mConditions.isXTSCurrentCrossedOverMediest)) - // - )) + ) + // + ) // ) // @@ -8023,29 +11985,36 @@ bool XEU5XTSFIHasShortSignal() // || // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - ((mConditions.isXTSCurrentOverMediest || - mConditions.isXTSCurrentCrossedOverMediest) && + (mConditions.isXTSCurrentOverMediest && ( // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHMAMCVale && - mConditions.isXLHHHDecreased && + (mConditions.isXTMNeutural && + mConditions.isXAMANeutural) + // + || + // + (mConditions.isXTDSignalVale && + mConditions.isXTDBullishVale && mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) // || // - (mConditions.isXAMAVale && - mConditions.isXTMNeutural && - mConditions.isXFIOverZero && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXTDBullCrossedUnderBear) + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXLHLLIncreased && + mConditions.isXTSCurrentCrossedOverMediest) + // + ) + // + ) // ) // @@ -8061,38 +12030,14 @@ bool XEU5XTSFIHasShortSignal() // || // + // XTSFI Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverMediest) && - ( - // - (mConditions.isXAMANeutural && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTMStartBearish) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHLHSameLLs) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCTrendsUp && - (mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow)) - // - ) + false) // ) // @@ -8116,6 +12061,7 @@ bool XEU5XTSFIHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XTSFI Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -8123,7 +12069,25 @@ bool XEU5XTSFIHasShortSignal() // ( // - false + (mConditions.isXTSCurrentOverMediest && + ( + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTDBullOverBear && + mConditions.isXCHMASCUnderMin && + mConditions.isXCHMASCFastOverSlow) + // + ) + // + ) + // + ) + // + ) // ) // @@ -8131,46 +12095,40 @@ bool XEU5XTSFIHasShortSignal() // || // + // XTSFI Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XTSFI Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XTSFI Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -8190,32 +12148,29 @@ bool XEU5XTSFIHasShortSignal() // // XOBDLH Long Signal Checking ... -bool XEU5XOBDLHHasLongSignal() +bool XUSCHF5XOBDLHHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xEU5MXOBDLHEnableSignaller || - !xEU5MXOBDLHAllowLongSignals) + if (!xUSCHF5MXOBDLHEnableSignaller || + !xUSCHF5MXOBDLHAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); - - // - XMarketConditions xMConditions2 = xEU5Provider.GenerateMarketConditions(2); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xEU5Provider.XOBDLHHasLongConditions() + xUSCHF5Provider.XOBDLHHasLongConditions() // && // @@ -8233,61 +12188,53 @@ bool XEU5XOBDLHHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XOBDLH Long ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -8306,6 +12253,7 @@ bool XEU5XOBDLHHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XOBDLH Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -8313,16 +12261,29 @@ bool XEU5XOBDLHHasLongSignal() // ( // + // + // Check if SC Fast Under Slow ... ((mConditions.isXCHMASCFastUnderSlow || mConditions.isXCHMASCFastCrossedUnderSlow) && ( // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMALCVale && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXCHLHSCMCLLSame) + (mConditions.isXCHMAMCVale && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMAMCFastUnderSlow) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHLHSameLLs && + mConditions.isXCHMASCTrendsUp && + mConditions.isXTDSignalUnderBear) + // + ) + // + ) // ) // @@ -8334,157 +12295,33 @@ bool XEU5XOBDLHHasLongSignal() // || // + // XOBDLH Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXLHLLDecreased && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTSCurrentUnderFarest) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTMEndBearish && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXCHLHSCMCLLSame) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCPeak && - mConditions.isXCHLHSCMCLLSame) - // - || - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale) - // - || - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMALCPeak && - mConditions.isXCHLHSCMCLLSame) - // - || - // - (mConditions.isXTMVale && - mConditions.isXLHLLDecreased && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXAMAStartBearish) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHLHMCLCHHSame) - // - || - // - ((mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHLHSameLLs) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXLHHHDecreased) - // - ) - // - ) - // - || - // - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) - // - || - // - ((mConditions.isXCHMASCVale && - mConditions.isXCHMALCPeak && - mConditions.isXCHLHSCMCLLSame) && - ( - // - mConditions.isXTSCurrentMax - // - || - // - mConditions.isXLHLowAttachedLL - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // || // + // XOBDLH Long ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && @@ -8492,79 +12329,19 @@ bool XEU5XOBDLHHasLongSignal() // ( // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && + ((mConditions.isXTMVale && + mConditions.isXAMAVale) && ( // - (mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale) - // - || - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTSCurrentUnderFarest) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXCHMALCPeak && - mConditions.isXTMEndBearish && - mConditions.isXCHLHSCMCLLSame) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXTMNeutural && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXTDBearishVale && - mConditions.isXCHLHSCMCLLSame) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXTMStartBearish && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXAMAStartBearish) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXTSAllSame && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXTMStartBearish && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXLHLowAttachedLL) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXAMANeutural && - mConditions.isXCHLHSameLLs) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXAMANeutural && - mConditions.isXTMStartBullish && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDSignalCrossedOverBear) + (mConditions.isXCHMAMCVale && + mConditions.isXCHLHSameLLs && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXLHLowAttachedLL && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentUnderMediest) // ) // @@ -8591,61 +12368,53 @@ bool XEU5XOBDLHHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XOBDLH Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Long ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -8669,61 +12438,53 @@ bool XEU5XOBDLHHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XOBDLH Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -8743,29 +12504,29 @@ bool XEU5XOBDLHHasLongSignal() // // XOBDLH Short Signal Checking ... -bool XEU5XOBDLHHasShortSignal() +bool XUSCHF5XOBDLHHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xEU5MXOBDLHEnableSignaller || - !xEU5MXOBDLHAllowShortSignals) + if (!xUSCHF5MXOBDLHEnableSignaller || + !xUSCHF5MXOBDLHAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xEU5Provider.XOBDLHHasShortConditions() + xUSCHF5Provider.XOBDLHHasShortConditions() // && // @@ -8783,105 +12544,53 @@ bool XEU5XOBDLHHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XOBDLH Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - (((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) && - ( - // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMASCCrossedUnderMax) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // || // + // XOBDLH Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - (((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCPeak && - mConditions.isXCHMALCTrendsUp) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentMax && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - ) + false) // ) // || // + // XOBDLH Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -8900,61 +12609,53 @@ bool XEU5XOBDLHHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XOBDLH Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -8975,21 +12676,20 @@ bool XEU5XOBDLHHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XOBDLH Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -8997,217 +12697,54 @@ bool XEU5XOBDLHHasShortSignal() // ( // - ((mConditions.isXFIOverZero && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDBullOverBear) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish && - mConditions.isXTDSignalOverBear) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish && - mConditions.isXTMEndBullish && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish && - mConditions.isXTMEndBullish) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish && - mConditions.isXTSCurrentMin && - mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) - // - ) - // - ) + (mConditions.isXCHMASCPeak && + mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMASCFastOverSlow && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXCHMALCFastOverSlow) // || // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - || - // - (mConditions.isXFIOverZero && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMASCPeak && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - ) - // - ) - // - || - // - (((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ((mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak) && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXCHLHSameHHs && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverMediest && - mConditions.isXTDSignalCrossedOverBear) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - || - // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - (((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullCrossedOverBear) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsUp) - // - || // ((mConditions.isXTDBullOverBear && mConditions.isXTDSignalOverBear) && ( // (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak) - // - ) - // - ) - // - ) - // - ) - // - || - // - (((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - || - // - ((mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak) && - ( - // - (mConditions.isXCHMAMCTrendsUp && - mConditions.isXCHMALCTrendsUp) + mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCPeak) // || // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && - mConditions.isXTSCurrentOverFarest) + (mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMALCTrendsUp) // ) // ) // + || + // + (mConditions.isXCHMAMCPeak && + mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMASCFastOverSlow && + mConditions.isXCHMAMCFastOverSlow) + // ) // ) @@ -9218,118 +12755,27 @@ bool XEU5XOBDLHHasShortSignal() // || // + // XOBDLH Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - (((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - ) - // - ) - // - ) + false) // ) // || // + // XOBDLH Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMStartBullish && - mConditions.isXTDBullOverBear && - mConditions.isXAMAStartBullish && - mConditions.isXTDSignalOverBear) - // - ) - // - ) - // - || - // - (((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish && - mConditions.isXFIOverZero && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMASCTrendsUp && - mConditions.isXCHMAMCTrendsUp) - // - ) - // - ) - // - || - // - (((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) && - ( - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXFIOverZero && - mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - ) - // - ) - // - ) + false) // ) // @@ -9353,61 +12799,53 @@ bool XEU5XOBDLHHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XOBDLH Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XOBDLH Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -9427,29 +12865,29 @@ bool XEU5XOBDLHHasShortSignal() // // XCHMACC Long Signal Checking ... -bool XEU5XCHMACCHasLongSignal() +bool XUSCHF5XCHMACCHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xEU5MXCHMACCEnableSignaller || - !xEU5MXCHMACCAllowLongSignals) + if (!xUSCHF5MXCHMACCEnableSignaller || + !xUSCHF5MXCHMACCAllowLongSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xEU5Provider.XCHMACCHasLongConditions() + xUSCHF5Provider.XCHMACCHasLongConditions() // && // @@ -9467,6 +12905,7 @@ bool XEU5XCHMACCHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMACC Long ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -9474,87 +12913,21 @@ bool XEU5XCHMACCHasLongSignal() // ( // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && + (!mConditions.isXCHMASCTrendsUp && + !mConditions.isXCHMASCTrendsDown && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDBullCrossedUnderBear) + // + || + // + ((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastOverSlow) && ( // - (mConditions.isXCHMAMCTrendsDown && - ( - // - (mConditions.isXCHMALCPeak && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame && - (mConditions.isXTSCurrentOverFarest || - mConditions.isXTDSignalCrossedUnderBear)) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMANeutural && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXTMStartBullish && - mConditions.isXFICrossedUnderZero) - // - || - // - ( - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && - ( - // - (mConditions.isXTMBullish && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXAMAStartBullish) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXLHLLDecreased) - // - ) - // - ) - // - ) - // - ) - // - )) - // - || - // - (((mConditions.isXTMNeutural && - mConditions.isXTMEndBullish && - mConditions.isXFICrossedUnderZero) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullOverBear)) - // - && - // - (mConditions.isXCHMALCPeak && - ( - // - mConditions.isXCHMALCTrendsDown - // - || - // - (mConditions.isXCHLHMCLCHHSame && - (mConditions.isXTDSignalUnderBear || - mConditions.isXTDSignalCrossedUnderBear)) - // - ) - // - ) - // - ) + (mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDBullCrossedUnderBear) // ) // @@ -9566,70 +12939,40 @@ bool XEU5XCHMACCHasLongSignal() // || // + // XCHMACC Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMACC Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMAMCTrendsDown && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMACC Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -9648,195 +12991,53 @@ bool XEU5XCHMACCHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMACC Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMAMCTrendsDown && - ( - // - (mConditions.isXCHMALCPeak && - ( - // - (mConditions.isXTDSignalUnderBear && - ( - // - (mConditions.isXAMAVale && - mConditions.isXAMABearish) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMAStartBearish && - mConditions.isXFICrossedUnderZero) - // - || - // - ((mConditions.isXAMANeutural || - mConditions.isXAMAEndBearish) && - mConditions.isXTMStartBullish && - mConditions.isXFICrossedOverZero) - // - || - // - (mConditions.isXCHLHMCLCHHSame && - mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish && - mConditions.isXTSCurrentUnderFarest) - // - ) - // - ) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentMax && - mConditions.isXTMStartBullish && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDBullUnderBear) - // - ) - // - ) - // - || - // - ((mConditions.isXAMABearish && - (mConditions.isXTMNeutural || - mConditions.isXTMBearish)) && - mConditions.isXTSCurrentUnderMediest && - (mConditions.isXTDBullCrossedUnderBear || - (mConditions.isXTDBullUnderBear && - mConditions.isXFICrossedUnderZero))) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXLHPriceCrossedUnderSignal) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMACC Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMAMCTrendsDown && - ( - // - (mConditions.isXCHMALCPeak && - ( - // - (mConditions.isXTSCurrentMax && - ( - // - (mConditions.isXAMABearish && - mConditions.isXTDBullCrossedOverBear) - // - || - // - (mConditions.isXTMStartBullish && - ( - // - ( - // - mConditions.isXAMAStartBullish - // - || - // - (mConditions.isXAMAEndBearish && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - (mConditions.isXLHLLDecreased && - mConditions.isXTMStartBullish && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMACC Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMACC Long ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -9857,6 +13058,7 @@ bool XEU5XCHMACCHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMACC Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -9864,21 +13066,13 @@ bool XEU5XCHMACCHasLongSignal() // ( // - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && ( - // - (mConditions.isXTMEndBullish && - mConditions.isXAMAEndBullish) - // - || // (mConditions.isXTSCurrentMax && - (mConditions.isXTMBullish || - mConditions.isXTMStartBullish) && - (mConditions.isXAMABullish || - mConditions.isXAMAStartBullish) && - mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMASCOverMax && + mConditions.isXCHLHMCLCHHSame && mConditions.isXTDSignalUnderBear) // || @@ -9886,170 +13080,19 @@ bool XEU5XCHMACCHasLongSignal() ((mConditions.isXTMBullish && mConditions.isXAMABullish) && ( - // - mConditions.isXTDBearishVale - // - || - // - mConditions.isXRSICrossedOverLongExit - // - || - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHLHMCLCLLSame) - // - || // (mConditions.isXTDSignalUnderBear && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentUnderFarest) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXCHMASCTrendsDown && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) + mConditions.isXTSCurrentUnderFarest) // || // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame) - // - || - // - (mConditions.isXCHMASCVale && - mConditions.isXFIUnderZero && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentMax && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXLHPriceCrossedOverSignal) + (mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) // ) // ) // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame && - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsDown)) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMALCPeak && - ( - // - ( - // - mConditions.isXCHMALCTrendsDown - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - ( - mConditions.isXTDSignalUnderBear && - ( - // - mConditions.isXTSAllSame - // - || - // - ((mConditions.isXTSCurrentUnderNearest || - mConditions.isXTSCurrentCrossedUnderNearest)) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXCHMALCTrendsUp && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXTDBullOverBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXLHPriceCrossedOverSignal && - (mConditions.isXCHMAMCTrendsDown && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow))) - // - || - // - (mConditions.isXTSCurrentMax && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear && - mConditions.isXCHMAMCTrendsDown) - // - ) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH) - // ) // ) @@ -10060,6 +13103,7 @@ bool XEU5XCHMACCHasLongSignal() // || // + // XCHMACC Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -10067,75 +13111,15 @@ bool XEU5XCHMACCHasLongSignal() // ( // - ((mConditions.isXCHMALCPeak && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) && + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && ( // - (mConditions.isXCHMALCTrendsDown && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish) && - ( - // - (mConditions.isXTSCurrentMax && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH) - // - ) - // - ) - // - ) - // - ) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHLHSameHHs && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderNearest) - // - || - // - ( - (mConditions.isXAMABullish && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXTMEndBullish && - mConditions.isXTDSignalUnderBear) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXTSCurrentMax) && - ( - // - (mConditions.isXTDBullOverBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXTDBullCrossedOverBear && - mConditions.isXLHPriceCrossedOverSignal) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) // ) // @@ -10143,56 +13127,13 @@ bool XEU5XCHMACCHasLongSignal() // || // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && ( // - ( - (mConditions.isXCHMAMCTrendsDown && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish) - // - || - (mConditions.isXLHLLDecreased && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXCHMAMCPeak && - ( - // - (mConditions.isXTDBearishVale && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) - // - ) - // - ) - // - )) - // - || - // - (mConditions.isXCHMASCPeak && - mConditions.isXCHLHSameHHs && - (mConditions.isXTSCurrentUnderNearest || - mConditions.isXTSCurrentCrossedUnderNearest) && - (mConditions.isXTSCurrentUnderMediest || - mConditions.isXTSCurrentCrossedUnderMediest)) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXTSCurrentMax && - mConditions.isXTMStartBullish && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH && - mConditions.isXTDSignalCrossedOverBear) - // - ) + (mConditions.isXCHLHSameHHs && + mConditions.isXCHMASCOverMax && + mConditions.isXTSCurrentUnderNearest) // ) // @@ -10204,6 +13145,7 @@ bool XEU5XCHMACCHasLongSignal() // || // + // XCHMACC Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && @@ -10211,18 +13153,44 @@ bool XEU5XCHMACCHasLongSignal() // ( // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && ( // - (mConditions.isXCHMAMCTrendsDown && + (!mConditions.isXCHMASCTrendsUp && + !mConditions.isXCHMASCTrendsDown && + mConditions.isXTDSignalUnderBear) + // + || + // + (mConditions.isXTSCurrentMax && + mConditions.isXTDSignalUnderBear && + mConditions.isXRSICrossedOverLongExit) + // + || + // + (mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalUnderBear && + mConditions.isXRSICrossedOverLongExit) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastOverSlow) && + ( + // + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && ( // - (mConditions.isXCHMALCPeak && - mConditions.isXTMNeutural && - mConditions.isXTMEndBullish && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDBullUnderBear && + (mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMax && + mConditions.isXLHHighAttachedHH && mConditions.isXTDSignalUnderBear) // ) @@ -10231,52 +13199,21 @@ bool XEU5XCHMACCHasLongSignal() // || // - (mConditions.isXCHMALCTrendsDown && + (mConditions.isXTSCurrentUnderNearest && ( // - (((mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTSCurrentMax) && - ( - // - mConditions.isXCHLHMCLCHHSame - // - || - // - (mConditions.isXTDSignalUnderBear && - mConditions.isXCHMALCPeak) - // - || - // - (mConditions.isXTDSignalUnderBear && - mConditions.isXFICrossedOverZero) - // - ) - // - ) - // - ) + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) // || // - (mConditions.isXTMNeutural && - mConditions.isXCHMAMCPeak && - mConditions.isXTMEndBullish && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTSCurrentUnderNearest) + (mConditions.isXTDBearishVale && + mConditions.isXTSCurrentCrossedUnderNearest) // ) // ) // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHMALCPeak && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDSignalUnderBear) - // ) // ) @@ -10287,6 +13224,7 @@ bool XEU5XCHMACCHasLongSignal() // || // + // XCHMACC Long ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && @@ -10294,35 +13232,18 @@ bool XEU5XCHMACCHasLongSignal() // ( // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && + mConditions.isXRSICrossedOverLongExit + // + || + // + ((mConditions.isXCHMASCFastOverSlow && + mConditions.isXCHMAMCFastOverSlow && + mConditions.isXCHMALCFastOverSlow) && ( // - (mConditions.isXCHMAMCTrendsDown && - ( - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHLHSCMCHHSame) && - ( - // - mConditions.isXTSCurrentUnderNearest - // - || - // - (mConditions.isXLHLLIncreased && - mConditions.isXTDBullUnderBear && - mConditions.isXLHHighAttachedHH && - mConditions.isXTDSignalUnderBear && - mConditions.isXFICrossedUnderZero) - // - ) - // - ) - // - ) - // - ) + (mConditions.isXCHLHSameHHs && + mConditions.isXTSCurrentMax && + mConditions.isXTDSignalUnderBear) // ) // @@ -10330,51 +13251,14 @@ bool XEU5XCHMACCHasLongSignal() // || // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && ( // - (mConditions.isXCHMALCTrendsDown && - ( - // - (mConditions.isXCHMALCPeak && - ( - // - (mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMax && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBullish && - mConditions.isXAMABullish && - (mConditions.isXTSCurrentMin || - mConditions.isXTSCurrentMax)) && - ( - // - (mConditions.isXCHMALCPeak && - mConditions.isXCHLHSameHHs && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXLHLLIncreased && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXTDBullUnderBear && - mConditions.isXLHHighAttachedHH && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) + (mConditions.isXTSCurrentMax && + mConditions.isXCHMASCOverMax && + mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) // ) // @@ -10404,61 +13288,53 @@ bool XEU5XCHMACCHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMACC Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMACC Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMACC Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMACC Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -10478,29 +13354,29 @@ bool XEU5XCHMACCHasLongSignal() // // XCHMACC Short Signal Checking ... -bool XEU5XCHMACCHasShortSignal() +bool XUSCHF5XCHMACCHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xEU5MXCHMACCEnableSignaller || - !xEU5MXCHMACCAllowShortSignals) + if (!xUSCHF5MXCHMACCEnableSignaller || + !xUSCHF5MXCHMACCAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xEU5Provider.XCHMACCHasShortConditions() + xUSCHF5Provider.XCHMACCHasShortConditions() // && // @@ -10518,6 +13394,7 @@ bool XEU5XCHMACCHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMACC Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -10525,85 +13402,48 @@ bool XEU5XCHMACCHasShortSignal() // ( // - (mConditions.isXTDBullOverBear && + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && ( // - (mConditions.isXAMANeutural && - mConditions.isXTMStartBullish && - mConditions.isXTDSignalOverBear && + (mConditions.isXTDBullOverBear && mConditions.isXTSCurrentOverFarest) // || // - ((mConditions.isXFIOverZero && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) && + (mConditions.isXTDBullCrossedUnderBear && ( // - (mConditions.isXAMAStartBearish && - mConditions.isXFICrossedOverZero) + (mConditions.isXTMBearish && + mConditions.isXAMABearish && + mConditions.isXTSCurrentOverFarest) // || // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish && - mConditions.isXAMAStartBullish) + (mConditions.isXTSCurrentMin && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXTSCurrentCrossedUnderNearest) // ) // ) // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCVale && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) && - ( + || // - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( // - (mConditions.isXTMBearish && - mConditions.isXLHLLIncreased && - mConditions.isXAMAStartBearish && - mConditions.isXTSCurrentOverNearest) - // - || - // - (((mConditions.isXTMNeutural || - mConditions.isXTMEndBearish) && - (mConditions.isXAMANeutural || - mConditions.isXAMAEndBullish)) && + (mConditions.isXTDBullOverBear && ( // - (mConditions.isXTSCurrentMax && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXTSAllSame && - mConditions.isXCHMAMCTrendsDown) + (mConditions.isXTSCurrentMin && + mConditions.isXTSCurrentCrossedUnderNearest) // ) // ) // - || - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTSCurrentMin && - mConditions.isXCHMALCTrendsUp && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) - // ) // ) @@ -10618,125 +13458,40 @@ bool XEU5XCHMACCHasShortSignal() // || // + // XCHMACC Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMALCVale && - ( - // - ((mConditions.isXTMEndBearish || - mConditions.isXTMNeutural) && - (mConditions.isXAMABearish || - mConditions.isXAMANeutural) && - mConditions.isXFIOverZero && - mConditions.isXTDBullOverBear && - mConditions.isXFICrossedOverZero && - mConditions.isXTSCurrentOverFarest) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMACC Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - (mConditions.isXAMANeutural && - mConditions.isXTMStartBearish && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXCHMALCVale && - ( - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXAMANeutural && - mConditions.isXTMStartBearish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentOverMediest) - // - || - // - ((mConditions.isXTMNeutural || - mConditions.isXTMEndBearish) && - (mConditions.isXAMANeutural || - mConditions.isXAMAEndBearish) && - mConditions.isXLHHHIncreased && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest) - // - || - // - ((mConditions.isXTMNeutural && - mConditions.isXAMABearish && - mConditions.isXTMEndBearish && - mConditions.isXTDBullOverBear) && - ( - // - mConditions.isXCHLHSCMCLLSame - // - || - // - (mConditions.isXFIOverZero && - mConditions.isXFICrossedOverZero && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentCrossedOverFarest) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMACC Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -10755,6 +13510,7 @@ bool XEU5XCHMACCHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMACC Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -10762,90 +13518,172 @@ bool XEU5XCHMACCHasShortSignal() // ( // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullOverBear && - mConditions.isXAMAStartBearish && - mConditions.isXTDSignalUnderBear) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && + ((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastUnderSlow) && ( // - (mConditions.isXTSCurrentMax && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXTSCurrentMin && - mConditions.isXCHMASCUnderMin) - // - ) - // - ) - // - || - // - ((mConditions.isXTMStartBearish && - mConditions.isXTDBullOverBear && - mConditions.isXAMAStartBearish) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXTSCurrentOverFarest && - mConditions.isXLHPriceCrossedUnderSignal) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCVale && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) && - ( - // - mConditions.isXCHMALCTrendsDown - // - || - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXFIOverZero && - mConditions.isXFICrossedOverZero) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTSCurrentMin) && + (mConditions.isXTMNeutural && ( // - (mConditions.isXFICrossedUnderZero && - mConditions.isXTDBullCrossedUnderBear) - // - || - // - (mConditions.isXCHMALCTrendsUp && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) + (mConditions.isXFIOverZero && + mConditions.isXTSCurrentMax && + mConditions.isXTSCurrentOverFarest) // || // (mConditions.isXTDBullOverBear && mConditions.isXCHLHMCLCLLSame && - mConditions.isXFICrossedUnderZero && + mConditions.isXTSCurrentOverFarest && + mConditions.isXTSCurrentOverMediest) + // + ) + // + ) + // + || + // + ((mConditions.isXTMStartBearish && + mConditions.isXAMAStartBearish) && + ( + // + (mConditions.isXFIOverZero && + mConditions.isXTSCurrentMin && + mConditions.isXCHLHMCLCLLSame && + mConditions.isXCHMASCUnderMin && + mConditions.isXTSCurrentUnderFarest && + mConditions.isXLHPriceCrossedUnderSignal) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XCHMACC Short ... + // PriceUnderSignal ... + // Check If LL Same In Length ... + ((mConditions.isXLHLLSameInLength && + !mConditions.isXLHHHSameInLength) && + // + ( + // + ((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) + // + ) + // + ) + // + ) + // + ) + // + ) + // + ) + // + || + // + // XCHMACC Short ... + // PriceUnderSignal ... + // Check If HH is Same In Length ... + ((mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + // + ((mConditions.isXCHMASCTrendsDown && + mConditions.isXCHMASCFastUnderSlow) && + ( + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXCHLHSameLLs && + mConditions.isXLHLowAttachedLL && + mConditions.isXRSICrossedUnderShortExit) + // + || + // + (mConditions.isXTSCurrentMin && + mConditions.isXLHHHIncreased && + mConditions.isXTDBullOverBear && + mConditions.isXLHLowAttachedLL && + mConditions.isXTDSignalCrossedUnderBear && mConditions.isXLHPriceCrossedUnderSignal) // ) @@ -10859,98 +13697,72 @@ bool XEU5XCHMACCHasShortSignal() || // ((mConditions.isXCHMAMCTrendsDown && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) && + mConditions.isXCHMAMCFastUnderSlow) && ( // - (mConditions.isXCHMALCVale && - mConditions.isXTSCurrentOverNearest) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If LL Same In Length ... - ((mConditions.isXLHLLSameInLength && - !mConditions.isXLHHHSameInLength) && - // - ( - // - ((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXCHMASCTrendsDown && - mConditions.isXTSCurrentOverNearest) - // - || - // - (mConditions.isXCHMALCVale && - (mConditions.isXTSCurrentOverNearest || - mConditions.isXTSCurrentCrossedOverNearest) && - (mConditions.isXTSCurrentOverFarest || - mConditions.isXTSCurrentCrossedOverFarest)) - // - ) - // - ) - // - ) - // - ) - // - || - // - // PriceUnderSignal ... - // Check If HH is Same In Length ... - ((mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXTSCurrentMin) && - ( - // - ((mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( // - (mConditions.isXCHMALCVale && - mConditions.isXCHMALCTrendsUp) - // - || - // - ((mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) && + ((mConditions.isXTSCurrentMin && + mConditions.isXTDSignalUnderBear) && ( // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXCHMASCVale) + (mConditions.isXTSCurrentUnderFarest && + mConditions.isXTSCurrentUnderMediest && + mConditions.isXTDBullCrossedUnderBear) // || // - ((mConditions.isXCHLHSameLLs && - mConditions.isXLHHHIncreased && - mConditions.isXLHLowAttachedLL) && + (mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXCHMASCUnderMax && + mConditions.isXCHMASCUnderMin && + mConditions.isXTDBullUnderBear) + // + ) + // + ) + // + || + // + (mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHLHMCLCHHSame && + mConditions.isXTSCurrentOverNearest) + // + ) + // + ) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) && + ( + // + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + ((mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear) && + ( + // + (mConditions.isXLHLowAttachedLL && ( // - mConditions.isXCHMAMCTrendsDown + (mConditions.isXTSCurrentMin && + mConditions.isXTSCurrentUnderFarest) // || // - mConditions.isXCHMASCCrossedUnderMin + (mConditions.isXTSAllSame && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXCHMASCUnderMin) // ) // @@ -10964,26 +13776,6 @@ bool XEU5XCHMACCHasShortSignal() // ) // - || - // - ((mConditions.isXCHMALCVale && - mConditions.isXTDBullCrossedUnderBear) && - ( - // - (mConditions.isXCHLHSCMCLLSame && - mConditions.isXLHLowAttachedLL) - // - || - // - (mConditions.isXCHLHMCLCHHSame && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // ) // ) @@ -10994,6 +13786,7 @@ bool XEU5XCHMACCHasShortSignal() // || // + // XCHMACC Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && @@ -11001,58 +13794,19 @@ bool XEU5XCHMACCHasShortSignal() // ( // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHMAMCVale && - mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && ( // - ((mConditions.isXAMABearish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) && + ((mConditions.isXCHMASCTrendsUp && + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsUp) && ( // - (mConditions.isXTMEndBearish && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXTSCurrentMin && + (mConditions.isXTSCurrentMin && mConditions.isXCHLHSCMCLLSame && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - || - // - ((mConditions.isXTMBearish && - mConditions.isXAMABearish) && - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverNearest) - // - || - // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentOverMediest) + mConditions.isXCHMASCUnderMin && + mConditions.isXTDBullCrossedUnderBear) // ) // @@ -11083,6 +13837,7 @@ bool XEU5XCHMACCHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMACC Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -11090,114 +13845,12 @@ bool XEU5XCHMACCHasShortSignal() // ( // - ((mConditions.isXCHMALCVale && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) && + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && ( // - ((mConditions.isXTMNeutural && - mConditions.isXAMANeutural) && - ( - // - (mConditions.isXCHMAMCTrendsDown && - mConditions.isXTSCurrentOverMediest) - // - || - // - (mConditions.isXFIUnderZero && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullUnderBear && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest && - mConditions.isXTSCurrentCrossedUnderFarest && - mConditions.isXTSCurrentCrossedUnderNearest && - mConditions.isXTSCurrentCrossedUnderMediest) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentOverFarest && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish && - mConditions.isXCHLHMCLCLLSame) - // - || - // - (mConditions.isXTMEndBearish && - mConditions.isXAMAEndBearish && - mConditions.isXTDBullOverBear) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentMax) - // - || - // - (mConditions.isXTMBearish && - mConditions.isXAMANeutural && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXFIOverZero && - mConditions.isXTMStartBullish && - mConditions.isXTDBullOverBear && - mConditions.isXAMAStartBullish && - mConditions.isXTSCurrentOverNearest) - // - ) - // - ) - // - || - // - ((mConditions.isXTDSignalVale && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullishVale && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) && - ( - // - (mConditions.isXTMBearish && - mConditions.isXAMANeutural) - // - ) - // - ) - // - || - // - (mConditions.isXTMBearish && - mConditions.isXAMANeutural && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMABullish && - mConditions.isXTSCurrentMin && - mConditions.isXCHMASCOverMin && - mConditions.isXCHLHMCLCLLSame && - mConditions.isXCHMASCUnderMax && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderMediest) + (mConditions.isXAMABullish && + mConditions.isXTDBullOverBear) // ) // @@ -11205,32 +13858,18 @@ bool XEU5XCHMACCHasShortSignal() // || // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentMax && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCVale && - mConditions.isXAMANeutural && - mConditions.isXLHHHIncreased && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest && - mConditions.isXTSCurrentOverNearest) - // - || - // - ((mConditions.isXTMNeutural || - mConditions.isXTMEndBearish) && - (mConditions.isXAMANeutural || - mConditions.isXAMAEndBearish) && - mConditions.isXFIOverZero && - mConditions.isXTDBullOverBear && - mConditions.isXFICrossedOverZero && - mConditions.isXTSCurrentOverNearest) + ((mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastUnderSlow) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTSCurrentOverNearest && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverNearest) + // + ) + // + ) // ) // @@ -11238,108 +13877,40 @@ bool XEU5XCHMACCHasShortSignal() // || // + // XCHMACC Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXFIOverZero && - mConditions.isXTSCurrentMax && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest) - // - ) + false) // ) // || // + // XCHMACC Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMin) && - ( - // - (mConditions.isXTMVale && - mConditions.isXAMAVale) - // - || - // - (mConditions.isXTMBearish && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXLHLLIncreased && - mConditions.isXCHMALCTrendsUp && - mConditions.isXAMAStartBearish) - // - || - // - ((mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow) && - ( - // - (mConditions.isXAMANeutural && - mConditions.isXTDSignalVale && - mConditions.isXTDBullishVale && - mConditions.isXLHLLIncreased && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) - // - || - // - (mConditions.isXAMANeutural && - mConditions.isXTSCurrentMin && - mConditions.isXAMAEndBullish && - mConditions.isXTMStartBearish && - mConditions.isXTDBullOverBear && - mConditions.isXCHMAMCTrendsDown) - // - || - // - (mConditions.isXAMAVale && - mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMin && - mConditions.isXTDBullUnderBear && - mConditions.isXCHMALCTrendsDown && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderFarest && - mConditions.isXTSCurrentUnderNearest && - mConditions.isXTSCurrentUnderMediest) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMACC Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -11363,61 +13934,53 @@ bool XEU5XCHMACCHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMACC Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMACC Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMACC Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMACC Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -11437,42 +14000,29 @@ bool XEU5XCHMACCHasShortSignal() // // XCHMAMN Long Signal Checking ... -bool XEU5XCHMAMNHasLongSignal() +bool XUSCHF5XCHMAMNHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xEU5MXCHMAMNEnableSignaller || - !xEU5MXCHMAMNAllowLongSignals) + if (!xUSCHF5MXCHMAMNEnableSignaller || + !xUSCHF5MXCHMAMNAllowLongSignals) { return result; } - // - ENUM_XCHMA_CYCLES cycles[]; - Add( - X_XCHMA_CYCLE_MEDIUM, - cycles); - Add( - X_XCHMA_CYCLE_LONG, - cycles); - - // - double xCHMANonSCMax2 = XCHMAGetCyclesMaxValue(2, cycles); - double xCHMANonSCMin2 = XCHMAGetCyclesMinValue(2, cycles); - // // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xEU5Provider.XCHMAMNHasLongConditions() + xUSCHF5Provider.XCHMAMNHasLongConditions() // && // @@ -11490,6 +14040,7 @@ bool XEU5XCHMAMNHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMN Long ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -11497,54 +14048,40 @@ bool XEU5XCHMAMNHasLongSignal() // ( // - ((mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMAMCTrendsDown) && + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - ( - // - (mConditions.isXCHMALCVale && - mConditions.isXAMANeutural) - // - || - // - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMALCTrendsDown) && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHMAMCVale && - mConditions.isXCHLHMCLCLLSame) + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + (mConditions.isXCHMALCVale && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderFarest) + // + ) + // + ) // || // - (mConditions.isXAMANeutural && - mConditions.isXLHHHDecreased && - mConditions.isXLHLLDecreased && - mConditions.isXTMStartBullish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXLHHHDecreased && - mConditions.isXLHLLDecreased && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) + ((mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear) && + ( + // + (mConditions.isXCHMASCPeak && + mConditions.isXCHMALCVale && + mConditions.isXTSCurrentMax && + mConditions.isXLHLLIncreased && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) + // + ) + // + ) // ) // @@ -11556,23 +14093,20 @@ bool XEU5XCHMAMNHasLongSignal() // || // + // XCHMAMN Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) - // - ) + false) // ) // || // + // XCHMAMN Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && @@ -11580,7 +14114,42 @@ bool XEU5XCHMAMNHasLongSignal() // ( // - false + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && + ( + // + ((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) + // + ) + // + ) // ) // @@ -11588,30 +14157,14 @@ bool XEU5XCHMAMNHasLongSignal() // || // + // XCHMAMN Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMALCTrendsDown) && - ( - // - (((mConditions.isXTMVale || - mConditions.isXTMNeutural) && - mConditions.isXTMEndBearish) && - (mConditions.isXAMANeutural || - mConditions.isXAMAEndBearish) && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) + false) // ) // @@ -11630,6 +14183,7 @@ bool XEU5XCHMAMNHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMN Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -11637,57 +14191,26 @@ bool XEU5XCHMAMNHasLongSignal() // ( // - ((mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMALCTrendsDown) && + // Check if MC Fast Under Slow ... + ((mConditions.isXCHMAMCFastUnderSlow || + mConditions.isXCHMAMCFastCrossedUnderSlow) && ( // (mConditions.isXCHMAMCVale && - mConditions.isXLHLLDecreased && - mConditions.isXCHLHMCLCHHSame) + mConditions.isXCHMAMCTrendsUp && + mConditions.isXCHMALCTrendsDown && + mConditions.isXCHMALCFastOverSlow) // || // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - || - // - // LC Vale ... - (mConditions.isXCHMALCVale && - ( - // - (mConditions.isXCHMAMCVale && + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && ( // - (mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) && - ( - // - mConditions.isXCHMASCTrendsDown - // - || - // - (mConditions.isXTMVale && - mConditions.isXAMAVale && - mConditions.isXLHLLIncreased && - mConditions.isXCHLHMCLCHHSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) + (mConditions.isXTDBullUnderBear && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) // ) // @@ -11703,32 +14226,20 @@ bool XEU5XCHMAMNHasLongSignal() // || // + // XCHMAMN Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) - // - || - // - ((mConditions.isXCHMAMCVale && - mConditions.isXCHMAMCTrendsUp && - (mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow)) && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - ) + false) // ) // || // + // XCHMAMN Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && @@ -11736,16 +14247,32 @@ bool XEU5XCHMAMNHasLongSignal() // ( // - ((mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMALCTrendsDown) && + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMAMCVale && - mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) + (mConditions.isXCHMALCTrendsUp && + ( + // + (mConditions.isXCHMAMCVale && + mConditions.isXCHMALCVale) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && + ( + // + mConditions.isXTDSignalUnderBear + // + ) + // + ) + // + ) + // + ) // ) // @@ -11757,16 +14284,14 @@ bool XEU5XCHMAMNHasLongSignal() // || // + // XCHMAMN Long ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -11787,6 +14312,7 @@ bool XEU5XCHMAMNHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMN Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -11794,69 +14320,21 @@ bool XEU5XCHMAMNHasLongSignal() // ( // - ((mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMAMCTrendsDown) && + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && ( - // - ((mConditions.isXCHMASCPeak && - mConditions.isXCHMALCVale) && - ( - // - mConditions.isXCHMAMCVale - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXLHHHDecreased && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - ) - // - ) - // - || - // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXCHLHMCLCLLSame) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDSignalUnderBear && - mConditions.isXTSCurrentUnderNearest) - // - || // (mConditions.isXCHMALCVale && + mConditions.isXCHMALCTrendsUp) + // + || + // + ((mConditions.isXTMNeutural && + mConditions.isXAMANeutural) && ( // - mConditions.isXCHMASCTrendsDown - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale) - // - || - // - (mConditions.isXAMANeutural && - mConditions.isXTSCurrentMax && - mConditions.isXTDBearishVale && - mConditions.isXTMStartBullish && + (mConditions.isXTDBullUnderBear && mConditions.isXTDSignalUnderBear) // ) @@ -11867,27 +14345,13 @@ bool XEU5XCHMAMNHasLongSignal() // ) // - || - // - (mConditions.isXCHMALCTrendsDown && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - (mConditions.isXCHLHMCLCHHSame || - mConditions.isXCHLHMCLCLLSame) && - mConditions.isXTSCurrentUnderNearest) - // - ) - // - ) - // ) // ) // || // + // XCHMAMN Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -11895,72 +14359,45 @@ bool XEU5XCHMAMNHasLongSignal() // ( // - ((mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMAMCTrendsDown) && + ((mConditions.isXTMBullish && + mConditions.isXAMABullish) && ( // - mConditions.isXCHMALCVale + (mConditions.isXLHHHIncreased && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXLHHighAttachedHH && + mConditions.isXTDSignalUnderBear && + mConditions.isXTSCurrentUnderNearest && + mConditions.isXTSCurrentCrossedUnderNearest) // || // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXLHHighAttachedHH && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXCHMASCFastCrossedOverSlow && + mConditions.isXTSCurrentCrossedOverFarest && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) && - ( + || // - ((mConditions.isXCHLHSCMCHHSame && - mConditions.isXLHHighAttachedHH) && + ((mConditions.isXTDBullOverBear && + mConditions.isXTDSignalOverBear) && ( // - (mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale) - // - || - // - (mConditions.isXTMStartBullish && - mConditions.isXAMAStartBullish) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear) - // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHMALCVale && - mConditions.isXTSCurrentMax && - mConditions.isXTDBullUnderBear) + (mConditions.isXTSCurrentMax && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXLHHighAttachedHH && + mConditions.isXLHPriceCrossedOverSignal && + mConditions.isXTSCurrentCrossedOverNearest && + mConditions.isXTSCurrentCrossedOverMediest) // ) // ) // - || - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXTDSignalUnderBear) - // - || - // - mConditions.isXCHMASCTrendsDown - // ) // ) @@ -11971,6 +14408,7 @@ bool XEU5XCHMAMNHasLongSignal() // || // + // XCHMAMN Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && @@ -11978,49 +14416,16 @@ bool XEU5XCHMAMNHasLongSignal() // ( // - (mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) - // - ) - // - ) - // - || - // - // PriceOverSignal ... - // Not Same LL or HH in Lenght ... - ((!mConditions.isXLHHHSameInLength && - !mConditions.isXLHLLSameInLength) && - // - ( - // - // LC Vale ... - (mConditions.isXCHMALCVale && + // Check LC Fast Under Slow ... + ((mConditions.isXCHMALCFastUnderSlow || + mConditions.isXCHMALCFastCrossedUnderSlow) && ( // - (mConditions.isXCHMAMCVale && + (mConditions.isXCHMALCTrendsUp && ( // - (mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXTSCurrentMax && - mConditions.isXCHLHSCMCHHSame && + (mConditions.isXCHMALCVale && mConditions.isXTDBullUnderBear && - mConditions.isXLHHighAttachedHH && mConditions.isXTDSignalUnderBear) // ) @@ -12035,6 +14440,19 @@ bool XEU5XCHMAMNHasLongSignal() // ) // + || + // + // XCHMAMN Long ... + // PriceOverSignal ... + // Not Same LL or HH in Lenght ... + ((!mConditions.isXLHHHSameInLength && + !mConditions.isXLHLLSameInLength) && + // + ( + false) + // + ) + // ) // ) @@ -12055,63 +14473,53 @@ bool XEU5XCHMAMNHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMN Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) - // - ) + false) // ) // || // + // XCHMAMN Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMN Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMN Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -12131,29 +14539,29 @@ bool XEU5XCHMAMNHasLongSignal() // // XCHMAMN Short Signal Checking ... -bool XEU5XCHMAMNHasShortSignal() +bool XUSCHF5XCHMAMNHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xEU5MXCHMAMNEnableSignaller || - !xEU5MXCHMAMNAllowShortSignals) + if (!xUSCHF5MXCHMAMNEnableSignaller || + !xUSCHF5MXCHMAMNAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xEU5Provider.XCHMAMNHasShortConditions() + xUSCHF5Provider.XCHMAMNHasShortConditions() // && // @@ -12171,80 +14579,53 @@ bool XEU5XCHMAMNHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMN Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXTSAllSame && - mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalOverBear) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMAMN Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMN Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXTMBearish || - mConditions.isXTMNeutural) && - mConditions.isXAMANeutural && - mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXLHLLIncreased && - mConditions.isXTSCurrentOverNearest) - // - ) + false) // ) // || // + // XCHMAMN Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -12263,6 +14644,7 @@ bool XEU5XCHMAMNHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMN Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -12270,26 +14652,44 @@ bool XEU5XCHMAMNHasShortSignal() // ( // - ((mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentOverFarest) && + // Check if SC Fast Over Slow ... + ((mConditions.isXCHMASCFastOverSlow || + mConditions.isXCHMASCFastCrossedOverSlow) && ( - // - (mConditions.isXFIOverZero && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - mConditions.isXAMANeutural && - mConditions.isXAMAEndBullish && - mConditions.isXTMStartBearish) - // - || // (mConditions.isXTMBearish && + mConditions.isXTSAllSame && mConditions.isXAMABearish && - mConditions.isXTSCurrentMax && - mConditions.isXTSCurrentOverNearest && - mConditions.isXTSCurrentOverMediest && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) + mConditions.isXLHLLDecreased && + mConditions.isXCHMALCFastOverSlow) + // + ) + // + ) + // + || + // + ((mConditions.isXCHMAMCTrendsDown && + mConditions.isXCHMAMCFastUnderSlow) && + ( + // + ((mConditions.isXFIOverZero && + mConditions.isXTDBullOverBear && + mConditions.isXFICrossedOverZero) && + ( + // + (mConditions.isXTSCurrentMax && + mConditions.isXTSCurrentOverFarest) + // + || + // + (mConditions.isXTSAllSame && + mConditions.isXCHMASCCrossedUnderMin && + mConditions.isXCHMASCFastCrossedUnderSlow) + // + ) + // + ) // ) // @@ -12301,52 +14701,40 @@ bool XEU5XCHMAMNHasShortSignal() // || // + // XCHMAMN Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHMALCVale && - mConditions.isXTDBullOverBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXFICrossedUnderZero && - mConditions.isXTSCurrentOverFarest) - // - ) + false) // ) // || // + // XCHMAMN Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - mConditions.isXRSICrossedUnderShortExit - // - ) + false) // ) // || // + // XCHMAMN Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -12367,91 +14755,53 @@ bool XEU5XCHMAMNHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMN Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - ((mConditions.isXTSCurrentOverFarest && - (mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow)) && - ( - // - (mConditions.isXTMNeutural && - mConditions.isXAMAStartBearish) - // - || - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHMASCVale && - mConditions.isXCHMAMCVale && - mConditions.isXCHMALCVale && - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow))) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMAMN Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMN Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXAMANeutural && - mConditions.isXTMEndBearish && - mConditions.isXTSCurrentOverMediest) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMAMN Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -12475,61 +14825,53 @@ bool XEU5XCHMAMNHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMN Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMN Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMN Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMN Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -12549,41 +14891,29 @@ bool XEU5XCHMAMNHasShortSignal() // // XCHMAMX Long Signal Checking ... -bool XEU5XCHMAMXHasLongSignal() +bool XUSCHF5XCHMAMXHasLongSignal() { // bool result = false; // // Validate Args ... - if (!xEU5MXCHMAMXEnableSignaller || - !xEU5MXCHMAMXAllowLongSignals) + if (!xUSCHF5MXCHMAMXEnableSignaller || + !xUSCHF5MXCHMAMXAllowLongSignals) { return result; } - // - ENUM_XCHMA_CYCLES cycles[]; - Add( - X_XCHMA_CYCLE_MEDIUM, - cycles); - Add( - X_XCHMA_CYCLE_LONG, - cycles); - - // - double xCHMANonSCMax2 = XCHMAGetCyclesMaxValue(2, cycles); - // // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xEU5Provider.XCHMAMXHasLongConditions() + xUSCHF5Provider.XCHMAMXHasLongConditions() // && // @@ -12601,95 +14931,53 @@ bool XEU5XCHMAMXHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMX Long ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMX Long ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMALCPeak && - ( - // - (mConditions.isXCHMALCTrendsDown && - ( - // - ( - // - mConditions.isXCHMASCPeak - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural && - mConditions.isXCHLHSameHHs && - mConditions.isXLHHighAttachedHH && - mConditions.isXTDSignalUnderBear) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMAMX Long ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMX Long ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -12708,61 +14996,53 @@ bool XEU5XCHMAMXHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMX Long ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMX Long ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMX Long ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMX Long ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -12783,124 +15063,53 @@ bool XEU5XCHMAMXHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMX Long ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - (((mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow) && - (mConditions.isXCHMALCFastUnderSlow || - mConditions.isXCHMALCFastCrossedUnderSlow)) && - ( - // - (mConditions.isXLHHHDecreased && - mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear && - mConditions.isXLHPriceCrossedOverSignal) - // - || - // - (mConditions.isXTMNeutural && - mConditions.isXAMANeutural) - // - || - // - (mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMALCTrendsDown) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMAMX Long ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) - // - || - // - (((mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMALCTrendsDown) || - (mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMAMCTrendsDown) || - (mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown)) && - ( - // - (mConditions.isXCHMAMCPeak - // - || - // - mConditions.isXRSICrossedOverLongExit) - // - || - // - ((mConditions.isXCHMAMCFastUnderSlow || - mConditions.isXCHMAMCFastCrossedUnderSlow) && - ( - // - (mConditions.isXTMBullish && - mConditions.isXAMABullish && - mConditions.isXCHLHSCMCHHSame) - // - ) - // - ) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMAMX Long ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - (mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) - // - ) + false) // ) // || // + // XCHMAMX Long ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - (mConditions.isXCHMASCTrendsDown && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) - // - ) + false) // ) // @@ -12924,61 +15133,53 @@ bool XEU5XCHMAMXHasLongSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMX Long ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMX Long ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMX Long ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMX Long ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -12998,29 +15199,29 @@ bool XEU5XCHMAMXHasLongSignal() // // XCHMAMX Short Signal Checking ... -bool XEU5XCHMAMXHasShortSignal() +bool XUSCHF5XCHMAMXHasShortSignal() { // bool result = false; // // Validate Args ... - if (!xEU5MXCHMAMXEnableSignaller || - !xEU5MXCHMAMXAllowShortSignals) + if (!xUSCHF5MXCHMAMXEnableSignaller || + !xUSCHF5MXCHMAMXAllowShortSignals) { return result; } // // Retrieve Market Condition ... - XMarketConditions mConditions = xEU5Provider.GetLastMarketCondition(); + XMarketConditions mConditions = xUSCHF5Provider.GetLastMarketCondition(); // // Start Analysing Market based On Conditions ... result = // // Base Condition: - xEU5Provider.XCHMAMXHasShortConditions() + xUSCHF5Provider.XCHMAMXHasShortConditions() // && // @@ -13038,109 +15239,46 @@ bool XEU5XCHMAMXHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMX Short ... // PriceInSignalRange ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXTMNeutural && - mConditions.isXCHMASCVale && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXAMANeutural && - mConditions.isXTSCurrentMin) - // - || - // - (((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) && - ( - // - (mConditions.isXAMAStartBearish && - mConditions.isXTSCurrentOverFarest) - // - || - // - (mConditions.isXCHMASCVale && - mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak) - // - || - // - (mConditions.isXTSCurrentMin && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXAMAStartBearish) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMAMX Short ... // PriceInSignalRange ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXTMBearish && - mConditions.isXLHHHIncreased && - mConditions.isXTDBullOverBear && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHMAMCTrendsUp && - mConditions.isXAMAStartBearish && - mConditions.isXTSCurrentOverFarest) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMAMX Short ... // PriceInSignalRange ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHLHSameHHs && - mConditions.isXTSCurrentMin && - mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish && - mConditions.isXLHLowAttachedLL) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMAMX Short ... // PriceInSignalRange ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && @@ -13148,7 +15286,19 @@ bool XEU5XCHMAMXHasShortSignal() // ( // - false + // Check LC Fast Over Slow ... + ((mConditions.isXCHMALCFastOverSlow || + mConditions.isXCHMALCFastCrossedOverSlow) && + ( + // + (mConditions.isXCHLHSameLLs && + mConditions.isXTDBullOverBear && + mConditions.isXCHLHSCMCHHSame && + mConditions.isXLHLowAttachedLL) + // + ) + // + ) // ) // @@ -13169,6 +15319,7 @@ bool XEU5XCHMAMXHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMX Short ... // PriceUnderSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && @@ -13176,67 +15327,34 @@ bool XEU5XCHMAMXHasShortSignal() // ( // - (((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) && - ( - // - ((mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak) && - ( - // - (mConditions.isXTMVale && - mConditions.isXAMAVale) - // - || - // - (mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish && - mConditions.isXTSCurrentOverFarest) - // - ) - // - ) - // - || - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHMALCPeak && - mConditions.isXTSCurrentMin && - mConditions.isXCHMAMCTrendsDown) - // - ) - // - ) - // - || - // + // Check if MC Fast Over Slow ... ((mConditions.isXCHMAMCFastOverSlow || mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - (mConditions.isXTMBearish && - mConditions.isXCHMAMCPeak && - mConditions.isXAMAStartBearish && - mConditions.isXTSCurrentOverFarest) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXLHHHDecreased && - mConditions.isXTMStartBearish && - mConditions.isXCHMALCTrendsUp && - mConditions.isXAMAStartBearish) + ((mConditions.isXTMBearish && + mConditions.isXAMABearish) && + ( + // + (mConditions.isXCHMALCFastOverSlow && + ( + // + (mConditions.isXCHMALCTrendsUp && + mConditions.isXCHMASCFastOverSlow) + // + || + // + (mConditions.isXCHMALCPeak && + mConditions.isXTSCurrentMin && + mConditions.isXTSCurrentCrossedUnderNearest) + // + ) + // + ) + // + ) + // + ) // ) // @@ -13248,21 +15366,20 @@ bool XEU5XCHMAMXHasShortSignal() // || // + // XCHMAMX Short ... // PriceUnderSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMX Short ... // PriceUnderSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && @@ -13270,51 +15387,23 @@ bool XEU5XCHMAMXHasShortSignal() // ( // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && + // Check if MC Fast Over Slow ... + ((mConditions.isXCHMAMCFastOverSlow || + mConditions.isXCHMAMCFastCrossedOverSlow) && ( // - mConditions.isXCHMALCPeak - // - || - // - (mConditions.isXTSAllSame && - mConditions.isXAMAEndBullish && - mConditions.isXTMStartBearish && - mConditions.isXTDBullOverBear && - mConditions.isXLHLowAttachedLL) - // - ) - // - ) - // - || - // - (((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow)) && - ( - // - ( - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHLHSCMCLLSame && - mConditions.isXLHLowAttachedLL) && - ( - // - (mConditions.isXTSCurrentMin && - mConditions.isXCHLHMCLCHHSame) - // - || - // - (mConditions.isXCHMALCPeak && - mConditions.isXTDBullOverBear && - mConditions.isXTSCurrentCrossedUnderNearest) - // - ) - // - ) + (mConditions.isXCHMALCFastOverSlow && + ( + // + (mConditions.isXTSAllSame && + mConditions.isXCHMALCPeak && + mConditions.isXCHLHSCMCLLSame && + mConditions.isXLHLowAttachedLL && + mConditions.isXLHPriceCrossedUnderSignal) + // + ) + // + ) // ) // @@ -13326,42 +15415,14 @@ bool XEU5XCHMAMXHasShortSignal() // || // + // XCHMAMX Short ... // PriceUnderSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHLHSameHHs && - mConditions.isXCHLHSameLLs && - mConditions.isXTSCurrentMin && - mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish && - mConditions.isXLHLowAttachedLL) - // - ) - // - ) - // - || - // - (mConditions.isXTSCurrentMin && - mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish && - mConditions.isXLHLowAttachedLL && - ((mConditions.isXCHMASCFastOverSlow || - mConditions.isXCHMASCFastCrossedOverSlow) && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - (mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow))) - // - ) + false) // ) // @@ -13382,134 +15443,53 @@ bool XEU5XCHMAMXHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMX Short ... // PriceOverSignal ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - (mConditions.isXTMBearish && - mConditions.isXAMABearish && - mConditions.isXCHMAMCPeak && - mConditions.isXTSCurrentMin && - mConditions.isXCHMAMCTrendsUp) - // - || - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMAMCTrendsUp && - (mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow)) - // - || - // - ((mConditions.isXCHMALCFastOverSlow || - mConditions.isXCHMALCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMASCVale && - mConditions.isXTSCurrentMin && - mConditions.isXTMStartBearish && - mConditions.isXAMAStartBearish) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMAMX Short ... // PriceOverSignal ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - ((mConditions.isXTMBearish && - mConditions.isXCHMAMCPeak && - mConditions.isXAMANeutural && - mConditions.isXCHLHSCMCHHSame && - mConditions.isXCHLHMCLCLLSame) && - ( - // - mConditions.isXTSCurrentOverFarest - // - || - // - (mConditions.isXTSCurrentMin && - mConditions.isXCHMAMCTrendsDown && - mConditions.isXCHMALCTrendsDown) - // - ) - // - ) - // - || - // - ((mConditions.isXCHMAMCFastOverSlow || - mConditions.isXCHMAMCFastCrossedOverSlow) && - ( - // - (mConditions.isXCHMAMCPeak && - mConditions.isXCHMALCPeak && - mConditions.isXAMANeutural && - mConditions.isXTMStartBearish) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMAMX Short ... // PriceOverSignal ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - ((mConditions.isXCHMASCTrendsUp && - (mConditions.isXCHMASCFastUnderSlow || - mConditions.isXCHMASCFastCrossedUnderSlow)) && - ( - // - (mConditions.isXFIUnderZero && - (mConditions.isXTMBearish || - mConditions.isXTMStartBearish) && - (mConditions.isXAMABearish || - mConditions.isXAMAStartBearish) && - (mConditions.isXTDBullUnderBear && - mConditions.isXTDSignalUnderBear)) - // - ) - // - ) - // - ) + false) // ) // || // + // XCHMAMX Short ... // PriceOverSignal ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // @@ -13533,61 +15513,53 @@ bool XEU5XCHMAMXHasShortSignal() // // Next Step is to Check LL and HH Same Style ... // + // XCHMAMX Short ... // PriceFree ... // Check if Both LL and HH Same In Length ... ((mConditions.isXLHLLSameInLength && mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMX Short ... // PriceFree ... // Check If LL Same In Length ... ((mConditions.isXLHLLSameInLength && !mConditions.isXLHHHSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMX Short ... // PriceFree ... // Check If HH is Same In Length ... ((mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // || // + // XCHMAMX Short ... // PriceFree ... // Not Same LL or HH in Lenght ... ((!mConditions.isXLHHHSameInLength && !mConditions.isXLHLLSameInLength) && // ( - // - false - // - ) + false) // ) // diff --git a/Providers/x-saherelm.xuschf5.provider.inputs.lib.mq5 b/Providers/x-saherelm.xuschf5.provider.inputs.lib.mq5 new file mode 100644 index 00000000..eff21edc --- /dev/null +++ b/Providers/x-saherelm.xuschf5.provider.inputs.lib.mq5 @@ -0,0 +1,283 @@ +/////////////////////////////////////////////////////////////// +// +// 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 = false; // 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_1; // 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_5; // 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/BKP/Main/Providers/x-saherelm.xeu5.provider.lib.mq5 b/Providers/x-saherelm.xuschf5.provider.lib.mq5 similarity index 60% rename from BKP/Main/Providers/x-saherelm.xeu5.provider.lib.mq5 rename to Providers/x-saherelm.xuschf5.provider.lib.mq5 index f2d86858..46e26734 100644 --- a/BKP/Main/Providers/x-saherelm.xeu5.provider.lib.mq5 +++ b/Providers/x-saherelm.xuschf5.provider.lib.mq5 @@ -1,9 +1,9 @@ //////////////////////////////////////////////////////////// // -// SaherElm IT Center MQL5 XEU5 Signal Provider Library +// SaherElm IT Center MQL5 XUSCHF5 Signal Provider Library // -------------------------------------------------------- -// Name: XEU5SignalProvider -// Description: XEU5 based signal provider ... +// Name: XUSCHF5SignalProvider +// Description: XUSCHF5 based signal provider ... // // // Maintainer: @@ -19,13 +19,13 @@ #property version "1.00" #property strict -#define XEU5ProviderName "XEU5" +#define XUSCHF5ProviderName "XUSCHF5" // // START Inputs ... // -#include "x-saherelm.xeu5.provider.inputs.lib.mq5"; +#include "x-saherelm.xuschf5.provider.inputs.lib.mq5"; // // END Inputs ... @@ -56,42 +56,42 @@ // // -XCGuard *xEU5Guard; -XCTrade *xEU5Trader; -XCReporter *xEU5Reporter; -XCCollector *xEU5Collector; -XCAccountInfo *xEU5AccountInfo; -XCVolumeManager *xEU5VolumeManager; +XCGuard *xUSCHF5Guard; +XCTrade *xUSCHF5Trader; +XCReporter *xUSCHF5Reporter; +XCCollector *xUSCHF5Collector; +XCAccountInfo *xUSCHF5AccountInfo; +XCVolumeManager *xUSCHF5VolumeManager; // -#include "x-saherelm.xeu5.provider.indicators.lib.mq5" +#include "x-saherelm.xuschf5.provider.indicators.lib.mq5" // // Controlling Variables ... -bool xEU5MEnableProvider = false; -bool xEU5MAllowLongTrades = false; -bool xEU5MAllowShortTrades = false; +bool xUSCHF5MEnableProvider = false; +bool xUSCHF5MAllowLongTrades = false; +bool xUSCHF5MAllowShortTrades = false; // -double xEU5Deposit = 0; -double xEU5Balance = 0; -double xEU5MinReward = 0; -double xEU5FreeMargin = 0; -double xEU5BalanceForOpenTrades = 0; -double xEU5FreeMarginForOpenTrades = 0; +double xUSCHF5Deposit = 0; +double xUSCHF5Balance = 0; +double xUSCHF5MinReward = 0; +double xUSCHF5FreeMargin = 0; +double xUSCHF5BalanceForOpenTrades = 0; +double xUSCHF5FreeMarginForOpenTrades = 0; // // Guard ... -double xEU5CriticalDrawDown = 0; -double xEU5MaxAllowedDrawDown = 0; +double xUSCHF5CriticalDrawDown = 0; +double xUSCHF5MaxAllowedDrawDown = 0; // -double xEU5MaxDrawUp = 0; -double xEU5MaxDrawDown = 0; +double xUSCHF5MaxDrawUp = 0; +double xUSCHF5MaxDrawDown = 0; // int NOT_ENOUGH_MONEY_ERROR = 4756; -const string XEU5_SUPPORT_ID = "SP"; +const string XUSCHF5_SUPPORT_ID = "SP"; // // END Global Definitions: Variables, Properties and etc ... @@ -103,26 +103,26 @@ const string XEU5_SUPPORT_ID = "SP"; // // Initial Library if required ... -bool XEU5InitSignalProviderLibrary() +bool XUSCHF5InitSignalProviderLibrary() { // bool result = false; // - if (!xEU5EnableProvider) + if (!xUSCHF5EnableProvider) { return result; } // // Controlling Variables ... - xEU5MEnableProvider = xEU5EnableProvider; - xEU5MAllowLongTrades = xEU5AllowLongTrades; - xEU5MAllowShortTrades = xEU5AllowShortTrades; + xUSCHF5MEnableProvider = xUSCHF5EnableProvider; + xUSCHF5MAllowLongTrades = xUSCHF5AllowLongTrades; + xUSCHF5MAllowShortTrades = xUSCHF5AllowShortTrades; // // Validate Inputs ... - result = XEU5ValidateInputs(); + result = XUSCHF5ValidateInputs(); if (!result) { return result; @@ -130,113 +130,113 @@ bool XEU5InitSignalProviderLibrary() // // Init Indicators ... - result = XEU5InitIndicators(); + result = XUSCHF5InitIndicators(); if (!result) { return result; } // - xEU5Reporter = new XCReporter(); - xEU5Collector = new XCCollector(); - xEU5AccountInfo = new XCAccountInfo(); + xUSCHF5Reporter = new XCReporter(); + xUSCHF5Collector = new XCCollector(); + xUSCHF5AccountInfo = new XCAccountInfo(); // // Calculate Account Deposit ... - xEU5Deposit = xEU5AccountInfo.GetInitialBalance(); + xUSCHF5Deposit = xUSCHF5AccountInfo.GetInitialBalance(); // // Prepare Min Reward ... - if (xEU5MinRewardInPips > 0) + if (xUSCHF5MinRewardInPips > 0) { - xEU5MinReward = PipsToPrice(xEU5MinRewardInPips); + xUSCHF5MinReward = PipsToPrice(xUSCHF5MinRewardInPips); } // // Calculate Min Balance for Trades ... - if (xEU5BalanceFactorForOpenTrades > 0) + if (xUSCHF5BalanceFactorForOpenTrades > 0) { - xEU5BalanceForOpenTrades = xEU5BalanceFactorForOpenTrades * xEU5Deposit; + xUSCHF5BalanceForOpenTrades = xUSCHF5BalanceFactorForOpenTrades * xUSCHF5Deposit; } // // Claculate Min Free Marging for Trades ... - if (xEU5FreeMarginFactorForOpenTrades > 0) + if (xUSCHF5FreeMarginFactorForOpenTrades > 0) { - xEU5FreeMarginForOpenTrades = xEU5FreeMarginFactorForOpenTrades * xEU5Deposit; + xUSCHF5FreeMarginForOpenTrades = xUSCHF5FreeMarginFactorForOpenTrades * xUSCHF5Deposit; } // // Calculate Init Time Critical DrawDown Value ... - if (xEU5CriticalDrawDownFactor > 0) + if (xUSCHF5CriticalDrawDownFactor > 0) { - xEU5CriticalDrawDown = xEU5CriticalDrawDownFactor * xEU5Deposit; + xUSCHF5CriticalDrawDown = xUSCHF5CriticalDrawDownFactor * xUSCHF5Deposit; } // // Calculate Init Time Max Allowed DrawDown Value ... - if (xEU5MaxAllowedDrawDownFactor > 0) + if (xUSCHF5MaxAllowedDrawDownFactor > 0) { - xEU5MaxAllowedDrawDown = xEU5MaxAllowedDrawDownFactor * xEU5Deposit; + xUSCHF5MaxAllowedDrawDown = xUSCHF5MaxAllowedDrawDownFactor * xUSCHF5Deposit; } // // Instant Volume Manager ... - xEU5VolumeManager = new XCVolumeManager( - xEU5StaticVolumeFactor, - xEU5StaticVolumeMethod, - xEU5VolumeMultiplier, - xEU5ApplyVolumeMultiplierFactor, - xEU5MaxSupportedVolumePerTradeFactor, - xEU5IncreasedMaxSupportedVolumeRate); + xUSCHF5VolumeManager = new XCVolumeManager( + xUSCHF5StaticVolumeFactor, + xUSCHF5StaticVolumeMethod, + xUSCHF5VolumeMultiplier, + xUSCHF5ApplyVolumeMultiplierFactor, + xUSCHF5MaxSupportedVolumePerTradeFactor, + xUSCHF5IncreasedMaxSupportedVolumeRate); // // Make XCTrader instance ... - xEU5Trader = new XCTrade( - XEU5ProviderName, + xUSCHF5Trader = new XCTrade( + XUSCHF5ProviderName, _Symbol, - xEU5Slippage, - xEU5MagicNumber, - xEU5UseVirtualTPSl, - xEU5MaxAllowedTrades, - xEU5FreeMarginForOpenTrades, - xEU5BalanceForOpenTrades); + xUSCHF5Slippage, + xUSCHF5MagicNumber, + xUSCHF5UseVirtualTPSl, + xUSCHF5MaxAllowedTrades, + xUSCHF5FreeMarginForOpenTrades, + xUSCHF5BalanceForOpenTrades); // // Instantiate Account Guard ... - xEU5Guard = new XCGuard( + xUSCHF5Guard = new XCGuard( // // Old Trades ... - xEU5MaxAllowedTradeAge, - xEU5OldTradesAction, + xUSCHF5MaxAllowedTradeAge, + xUSCHF5OldTradesAction, // // Critical DrawDown ... - xEU5CriticalDrawDownFactor, - xEU5CriticalGuardAction, + xUSCHF5CriticalDrawDownFactor, + xUSCHF5CriticalGuardAction, // // Max Allowed DrawDown ... - xEU5MaxAllowedDrawDownFactor, - xEU5MaxAllowedGuardAction, - xEU5GuardStopoutFiredAfterTouches, + xUSCHF5MaxAllowedDrawDownFactor, + xUSCHF5MaxAllowedGuardAction, + xUSCHF5GuardStopoutFiredAfterTouches, // - // xEU5GuardSupportMethod + // xUSCHF5GuardSupportMethod X_SUPPORT_DO_NOTHING // ); // // Reset Calculations Buffers and Variables ... - XEU5ResetCollectors(); + XUSCHF5ResetCollectors(); // - XEU5UpdateReports(); + XUSCHF5UpdateReports(); // result = true; // // Logging State ... - XEU5IssueInitializationSucceedAlert(); + XUSCHF5IssueInitializationSucceedAlert(); // return result; @@ -244,65 +244,65 @@ bool XEU5InitSignalProviderLibrary() // // DeInitial Library if required ... -void XEU5DeinitSignalProviderLibrary(const int reason) +void XUSCHF5DeinitSignalProviderLibrary(const int reason) { // // Release Handlers ... - XEU5ReleaseIndicators(); + XUSCHF5ReleaseIndicators(); // // Logging State ... - XEU5IssueDeinitializationSucceedAlert(); + XUSCHF5IssueDeinitializationSucceedAlert(); } // // this is a Globally Function which do all of // checkings and positions handling ... -void XEU5SignalProviderHandleTick() +void XUSCHF5SignalProviderHandleTick() { // // Check Provider is Enable or Not ... - if (!xEU5MEnableProvider) + if (!xUSCHF5MEnableProvider) { return; } // - XEU5SignalProviderDoControlState(); + XUSCHF5SignalProviderDoControlState(); // // Reading Indicator Buffers ... - XEU5HandleReadingBuffers(); - if (xEU5CalculatedBars < xEU5MaxLengthOfInputs) + XUSCHF5HandleReadingBuffers(); + if (xUSCHF5CalculatedBars < xUSCHF5MaxLengthOfInputs) { return; } // // Handle Open Trades ... - XEU5HandleOpenTrades(); + XUSCHF5HandleOpenTrades(); // // Handle Close Trades ... - XEU5HandleCloseTrades(); + XUSCHF5HandleCloseTrades(); // // DrawDown and DrawUp ... - XEU5HandleCalculateDrawDownUp(); + XUSCHF5HandleCalculateDrawDownUp(); } // // Do Control Checks here ... -void XEU5SignalProviderDoControlState() +void XUSCHF5SignalProviderDoControlState() { // // Update account Balance ... - xEU5Balance = xEU5AccountInfo.GetBalance(); - xEU5FreeMargin = xEU5AccountInfo.GetFreeMargin(); + xUSCHF5Balance = xUSCHF5AccountInfo.GetBalance(); + xUSCHF5FreeMargin = xUSCHF5AccountInfo.GetFreeMargin(); // // Check Provider is Enable or Not ... - if (!xEU5MEnableProvider) + if (!xUSCHF5MEnableProvider) { return; } @@ -312,10 +312,10 @@ void XEU5SignalProviderDoControlState() // TODO: add Guard Result here ... string guardMessage = ""; XGuardHandlerResult guardHandlerResult; - bool isGuarded = xEU5Guard.Guard( + bool isGuarded = xUSCHF5Guard.Guard( guardHandlerResult, guardMessage, - xEU5Trader, + xUSCHF5Trader, _Period); if (isGuarded) { @@ -331,7 +331,7 @@ void XEU5SignalProviderDoControlState() XSignal iSignal = guardHandlerResult.criticals[i]; // - XEU5OnGuard( + XUSCHF5OnGuard( iSignal, X_GUARDED_CRITICAL, guardMessage); @@ -350,7 +350,7 @@ void XEU5SignalProviderDoControlState() XSignal iSignal = guardHandlerResult.maxes[i]; // - XEU5OnGuard( + XUSCHF5OnGuard( iSignal, X_GUARDED_MAX, guardMessage, @@ -370,7 +370,7 @@ void XEU5SignalProviderDoControlState() XSignal iSignal = guardHandlerResult.olds[i]; // - XEU5OnGuard( + XUSCHF5OnGuard( iSignal, X_GUARDED_OLD, guardMessage); @@ -381,9 +381,9 @@ void XEU5SignalProviderDoControlState() // // Signal Protection ... XSignal protectSupports[]; - bool isSupported = xEU5Guard.ProtectSignals( + bool isSupported = xUSCHF5Guard.ProtectSignals( protectSupports, - xEU5Trader); + xUSCHF5Trader); if (isSupported) { // @@ -393,7 +393,7 @@ void XEU5SignalProviderDoControlState() // // Handling Signals ... XTraderHandlerResult signalHandlerResult; - xEU5Trader.HandleSignals( + xUSCHF5Trader.HandleSignals( signalHandlerResult, false // Ignore Risk Free Trdaes ); @@ -408,7 +408,7 @@ void XEU5SignalProviderDoControlState() { // XSignal iSignal = signalHandlerResult.sl[i]; - XEU5OnSL(iSignal); + XUSCHF5OnSL(iSignal); } } @@ -422,7 +422,7 @@ void XEU5SignalProviderDoControlState() { // XSignal iSignal = signalHandlerResult.tp[i]; - XEU5OnTP(iSignal); + XUSCHF5OnTP(iSignal); } } @@ -436,18 +436,18 @@ void XEU5SignalProviderDoControlState() { // XSignal iSignal = signalHandlerResult.rf[i]; - XEU5OnRF(iSignal); + XUSCHF5OnRF(iSignal); } } } // // Handle Trades when OnTrade Event Hnadler Calls ... -void XEU5SignalProviderHandleTrade() +void XUSCHF5SignalProviderHandleTrade() { // // Check Provider Enabled ... - if (!xEU5MEnableProvider) + if (!xUSCHF5MEnableProvider) { return; } @@ -455,7 +455,7 @@ void XEU5SignalProviderHandleTrade() // // Handle OnTrade Event ... XOnTradeHandlerResult result = {}; - xEU5Trader.HandleOnTradeEvent( + xUSCHF5Trader.HandleOnTradeEvent( result); // @@ -463,27 +463,27 @@ void XEU5SignalProviderHandleTrade() if (result.hasNewDeal) { // - XDeal last = xEU5Trader.GetLastDeal(); + XDeal last = xUSCHF5Trader.GetLastDeal(); // if (last.reason == DEAL_REASON_SL) { - xEU5Reporter.AddTradeSLInReports(); + xUSCHF5Reporter.AddTradeSLInReports(); } else if (last.reason == DEAL_REASON_TP) { - xEU5Reporter.AddTradeTPInReports(); + xUSCHF5Reporter.AddTradeTPInReports(); } } } // // Handle Open Trades ... -void XEU5HandleOpenTrades() +void XUSCHF5HandleOpenTrades() { // // Check Can Trade ... - bool canTrade = xEU5MAllowLongTrades || xEU5MAllowShortTrades; + bool canTrade = xUSCHF5MAllowLongTrades || xUSCHF5MAllowShortTrades; if (!canTrade) { return; @@ -491,8 +491,8 @@ void XEU5HandleOpenTrades() // // Check Max Open Trades ... - int openSignals = xEU5Trader.Count(); - bool canOpenPositions = openSignals < xEU5MaxAllowedTrades; + int openSignals = xUSCHF5Trader.Count(); + bool canOpenPositions = openSignals < xUSCHF5MaxAllowedTrades; if (!canOpenPositions) { return; @@ -502,8 +502,8 @@ void XEU5HandleOpenTrades() // Check Signals Exists ... XProvidedSignal longSignalInfo; XProvidedSignal shortSignalInfo; - bool hasLongSignal = XEU5CanOpenLongTrade(longSignalInfo); - bool hasShortSignal = XEU5CanOpenShortTrade(shortSignalInfo); + bool hasLongSignal = XUSCHF5CanOpenLongTrade(longSignalInfo); + bool hasShortSignal = XUSCHF5CanOpenShortTrade(shortSignalInfo); if (!hasLongSignal && !hasShortSignal) { return; @@ -511,20 +511,20 @@ void XEU5HandleOpenTrades() // // Update Reports ... - XEU5UpdateReports(); + XUSCHF5UpdateReports(); // - xEU5WaitUntilNextCandle = true; + xUSCHF5WaitUntilNextCandle = true; // // Open Long Trades ... if ( // hasLongSignal && - xEU5MAllowLongTrades) + xUSCHF5MAllowLongTrades) { // - bool isOpened = XEU5OpenLongPosition(longSignalInfo); + bool isOpened = XUSCHF5OpenLongPosition(longSignalInfo); } // @@ -532,29 +532,29 @@ void XEU5HandleOpenTrades() if ( // hasShortSignal && - xEU5MAllowShortTrades) + xUSCHF5MAllowShortTrades) { // - bool isOpened = XEU5OpenShortPosition(shortSignalInfo); + bool isOpened = XUSCHF5OpenShortPosition(shortSignalInfo); } } // // Handle Close Trades ... -void XEU5HandleCloseTrades() +void XUSCHF5HandleCloseTrades() { // // Force Close Long Trades ... bool isClosedLongTrades = false; - bool canCloseLongTrades = XEU5CanCloseLongTrade(); - if (xEU5MAllowLongTrades && canCloseLongTrades) + bool canCloseLongTrades = XUSCHF5CanCloseLongTrade(); + if (xUSCHF5MAllowLongTrades && canCloseLongTrades) { // ENUM_X_SIGNAL_TYPE type = X_SIGNAL_LONG; // XSignal closed[]; - xEU5Trader.CloseSignals( + xUSCHF5Trader.CloseSignals( closed, type); @@ -568,7 +568,7 @@ void XEU5HandleCloseTrades() { // XSignal iSignal = closed[i]; - XEU5OnFC(iSignal); + XUSCHF5OnFC(iSignal); } } } @@ -576,15 +576,15 @@ void XEU5HandleCloseTrades() // // Force Close Short Trades ... bool isClosedShortTrades = false; - bool canCloseShortTrades = XEU5CanCloseShortTrade(); - if (xEU5MAllowShortTrades && canCloseShortTrades) + bool canCloseShortTrades = XUSCHF5CanCloseShortTrade(); + if (xUSCHF5MAllowShortTrades && canCloseShortTrades) { // ENUM_X_SIGNAL_TYPE type = X_SIGNAL_SHORT; // XSignal closed[]; - xEU5Trader.CloseSignals( + xUSCHF5Trader.CloseSignals( closed, type); @@ -598,7 +598,7 @@ void XEU5HandleCloseTrades() { // XSignal iSignal = closed[i]; - XEU5OnFC(iSignal); + XUSCHF5OnFC(iSignal); } } } @@ -606,7 +606,7 @@ void XEU5HandleCloseTrades() // // Open Long Position ... -bool XEU5OpenLongPosition( +bool XUSCHF5OpenLongPosition( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -619,14 +619,14 @@ bool XEU5OpenLongPosition( 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 + xEU5MinReward; - double riskFreeRate = xEU5RiskFreeRate; - double riskFreeStep = xEU5RiskFreeStepInPips; - double volume = XEU5CalculateVolume(ArraySize(info.signallers)); + double tp = info.tp > 0 ? info.tp : entry + xUSCHF5MinReward; + double riskFreeRate = xUSCHF5RiskFreeRate; + double riskFreeStep = xUSCHF5RiskFreeStepInPips; + double volume = XUSCHF5CalculateVolume(ArraySize(info.signallers)); // XSignal signal = {}; - signal = xEU5Trader.GenerateSignal( + signal = xUSCHF5Trader.GenerateSignal( X_SIGNAL_LONG, tp, sl, @@ -635,20 +635,20 @@ bool XEU5OpenLongPosition( riskFreeRate); bool isValidSignal = IsValid( signal, - xEU5MagicNumber); + xUSCHF5MagicNumber); if (!isValidSignal) { return result; } // - int signalsCount = xEU5Trader.Count(); + int signalsCount = xUSCHF5Trader.Count(); bool isCross = signalsCount >= 1; if (isCross) { // // Handle Cross Signals ... - XEU5HnadleCrossSignal(signal); + XUSCHF5HnadleCrossSignal(signal); } // @@ -661,7 +661,7 @@ bool XEU5OpenLongPosition( ( // isCross && - xEU5CrossSignalsMethod != X_CROSS_SIGNAL_DO_NOTHING + xUSCHF5CrossSignalsMethod != X_CROSS_SIGNAL_DO_NOTHING // ); if (!canExecuteSignal) @@ -671,7 +671,7 @@ bool XEU5OpenLongPosition( // // Execute Signal ... - ENUM_EXECUTION_SIGNAL_RESULT executionResult = xEU5Trader.ExecuteSignal( + ENUM_EXECUTION_SIGNAL_RESULT executionResult = xUSCHF5Trader.ExecuteSignal( signal, false, // Ignore Number of Trades ... true // Check Account Conditions ... @@ -688,16 +688,16 @@ bool XEU5OpenLongPosition( ); // - XSignal tSignal = xEU5Trader.GetSignal(signal.ticket); + XSignal tSignal = xUSCHF5Trader.GetSignal(signal.ticket); // - XEU5OnSignal( + XUSCHF5OnSignal( tSignal, providers); } else { - XEU5IssueSignalExecutionError(executionResult); + XUSCHF5IssueSignalExecutionError(executionResult); } // @@ -706,7 +706,7 @@ bool XEU5OpenLongPosition( // // Open Short Position ... -bool XEU5OpenShortPosition( +bool XUSCHF5OpenShortPosition( XProvidedSignal &info // Retrieve Signal Additional Info on this Object ) { @@ -719,14 +719,14 @@ bool XEU5OpenShortPosition( 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 - xEU5MinReward; - double riskFreeRate = xEU5RiskFreeRate; - double riskFreeStep = xEU5RiskFreeStepInPips; - double volume = XEU5CalculateVolume(ArraySize(info.signallers)); + double tp = info.tp > 0 ? info.tp : entry - xUSCHF5MinReward; + double riskFreeRate = xUSCHF5RiskFreeRate; + double riskFreeStep = xUSCHF5RiskFreeStepInPips; + double volume = XUSCHF5CalculateVolume(ArraySize(info.signallers)); // XSignal signal = {}; - signal = xEU5Trader.GenerateSignal( + signal = xUSCHF5Trader.GenerateSignal( X_SIGNAL_SHORT, tp, sl, @@ -735,20 +735,20 @@ bool XEU5OpenShortPosition( riskFreeRate); bool isValidSignal = IsValid( signal, - xEU5MagicNumber); + xUSCHF5MagicNumber); if (!isValidSignal) { return result; } // - int signalsCount = xEU5Trader.Count(); + int signalsCount = xUSCHF5Trader.Count(); bool isCross = signalsCount >= 1; if (isCross) { // // Handle Cross Signals ... - XEU5HnadleCrossSignal(signal); + XUSCHF5HnadleCrossSignal(signal); } // @@ -761,7 +761,7 @@ bool XEU5OpenShortPosition( ( // isCross && - xEU5CrossSignalsMethod != X_CROSS_SIGNAL_DO_NOTHING + xUSCHF5CrossSignalsMethod != X_CROSS_SIGNAL_DO_NOTHING // ); if (!canExecuteSignal) @@ -771,7 +771,7 @@ bool XEU5OpenShortPosition( // // Execute Signal ... - ENUM_EXECUTION_SIGNAL_RESULT executionResult = xEU5Trader.ExecuteSignal( + ENUM_EXECUTION_SIGNAL_RESULT executionResult = xUSCHF5Trader.ExecuteSignal( signal, false, // Ignore Number of Trades ... true // Check Account Conditions ... @@ -786,16 +786,16 @@ bool XEU5OpenShortPosition( ); // - XSignal tSignal = xEU5Trader.GetSignal(signal.ticket); + XSignal tSignal = xUSCHF5Trader.GetSignal(signal.ticket); // - XEU5OnSignal( + XUSCHF5OnSignal( tSignal, providers); } else { - XEU5IssueSignalExecutionError(executionResult); + XUSCHF5IssueSignalExecutionError(executionResult); } // @@ -804,20 +804,20 @@ bool XEU5OpenShortPosition( // // Apply Cross Signal Actions ... -void XEU5HnadleCrossSignal( +void XUSCHF5HnadleCrossSignal( XSignal &signal // Specified Signal ... ) { // // Check Cross Signal Handling Enabled ... - if (xEU5CrossSignalsMethod == X_CROSS_SIGNAL_DO_NOTHING) + if (xUSCHF5CrossSignalsMethod == X_CROSS_SIGNAL_DO_NOTHING) { return; } // // First We have to Change Cross Signals Comment ... - string comment = xEU5Trader.GenerateSignalComment( + string comment = xUSCHF5Trader.GenerateSignalComment( signal, true); @@ -826,21 +826,21 @@ void XEU5HnadleCrossSignal( // // If Every thing is Regular, prevent any changes here ... - if (xEU5CrossSignalsMethod == X_CROSS_SIGNAL_REGULAR) + if (xUSCHF5CrossSignalsMethod == X_CROSS_SIGNAL_REGULAR) { return; } // // Retrieve Max in Drawdown Signal ... - XSignal maxInDDSignal = xEU5Trader.GetMaxInDrawdownSignal(); + XSignal maxInDDSignal = xUSCHF5Trader.GetMaxInDrawdownSignal(); // // Validate Signal ... bool isValidSignal = maxInDDSignal.ticket > 0 && maxInDDSignal.symbol == signal.symbol && - IsValid(maxInDDSignal, xEU5MagicNumber); + IsValid(maxInDDSignal, xUSCHF5MagicNumber); if (!isValidSignal) { return; @@ -856,14 +856,14 @@ void XEU5HnadleCrossSignal( isDirectional ? ( // - xEU5CrossSignalsMethod == X_CROSS_SIGNAL_DIRECTION_REGULAR || - xEU5CrossSignalsMethod == X_CROSS_SIGNAL_DIRECTION_REGULAR_INDIRECTION_IMPORTANT + xUSCHF5CrossSignalsMethod == X_CROSS_SIGNAL_DIRECTION_REGULAR || + xUSCHF5CrossSignalsMethod == X_CROSS_SIGNAL_DIRECTION_REGULAR_INDIRECTION_IMPORTANT // ) : ( // - xEU5CrossSignalsMethod == X_CROSS_SIGNAL_INDIRECTION_REGULAR || - xEU5CrossSignalsMethod == X_CROSS_SIGNAL_DIRECTION_IMPORTANT_INDIRECTION_REGULAR + xUSCHF5CrossSignalsMethod == X_CROSS_SIGNAL_INDIRECTION_REGULAR || + xUSCHF5CrossSignalsMethod == X_CROSS_SIGNAL_DIRECTION_IMPORTANT_INDIRECTION_REGULAR // ); if (isRegular) @@ -882,11 +882,11 @@ void XEU5HnadleCrossSignal( // // Calculate Usefull data ... -void XEU5HandleCalculateDrawDownUp() +void XUSCHF5HandleCalculateDrawDownUp() { // XSignal signals[]; - xEU5Trader.GetSignals(signals); + xUSCHF5Trader.GetSignals(signals); int signalsCount = ArraySize(signals); if (signalsCount <= 0) { @@ -897,7 +897,7 @@ void XEU5HandleCalculateDrawDownUp() double profit = 0; double volume = 0; XCollector collector = {}; - double maxAllowedVolume = xEU5VolumeManager.GetMaxAllowedVolume(); + double maxAllowedVolume = xUSCHF5VolumeManager.GetMaxAllowedVolume(); for (int i = 0; i < signalsCount; i++) { // @@ -918,11 +918,11 @@ void XEU5HandleCalculateDrawDownUp() if (profit < 0) { // - xEU5MaxDrawDown = - xEU5MaxDrawDown == 0 || - xEU5MaxDrawDown > MathAbs(profit) + xUSCHF5MaxDrawDown = + xUSCHF5MaxDrawDown == 0 || + xUSCHF5MaxDrawDown > MathAbs(profit) ? MathAbs(profit) - : xEU5MaxDrawDown; + : xUSCHF5MaxDrawDown; // // Update Buffers ... @@ -933,29 +933,29 @@ void XEU5HandleCalculateDrawDownUp() // collector.time = time; collector.volume = volume; - collector.maxDrawDown = xEU5MaxDrawDown; + collector.maxDrawDown = xUSCHF5MaxDrawDown; collector.maxAllowedVolume = maxAllowedVolume; - collector.minBalanceForOpenTrade = xEU5Trader.GetMinBalanceForOpenTrades(); + collector.minBalanceForOpenTrade = xUSCHF5Trader.GetMinBalanceForOpenTrades(); } else { // - xEU5MaxDrawUp = - xEU5MaxDrawUp == 0 || - xEU5MaxDrawUp < profit + xUSCHF5MaxDrawUp = + xUSCHF5MaxDrawUp == 0 || + xUSCHF5MaxDrawUp < profit ? profit - : xEU5MaxDrawUp; + : xUSCHF5MaxDrawUp; } // // Update Collector ... - xEU5Collector.Add(collector); + xUSCHF5Collector.Add(collector); // // Update Reports ... - xEU5Reporter.UpdateMaxDrawUpInReports(xEU5MaxDrawUp); - xEU5Reporter.UpdateMaxDrawDownInReports(xEU5MaxDrawDown); - xEU5Reporter.UpdateMaxSameTimeTradesInReports(signalsCount); + xUSCHF5Reporter.UpdateMaxDrawUpInReports(xUSCHF5MaxDrawUp); + xUSCHF5Reporter.UpdateMaxDrawDownInReports(xUSCHF5MaxDrawDown); + xUSCHF5Reporter.UpdateMaxSameTimeTradesInReports(signalsCount); } // @@ -964,116 +964,116 @@ void XEU5HandleCalculateDrawDownUp() // // Runs When a Signal Successfully Executed ... -void XEU5OnSignal( +void XUSCHF5OnSignal( XSignal &signal, // Specified Signal string &providers[] // Signal Providers ) { // // Issue Propper Alert ... - XEU5IssueSignalExecutionAlert( + XUSCHF5IssueSignalExecutionAlert( signal, providers); // // Add Signal To Supports on Guard ... - xEU5Guard.AddSupport(signal); + xUSCHF5Guard.AddSupport(signal); // // Update Reports ... - xEU5Reporter.AddSignalToReports( + xUSCHF5Reporter.AddSignalToReports( signal, providers); } // // Runs when a Position Got Take Profit ... -void XEU5OnTP( +void XUSCHF5OnTP( XSignal &signal // Specified Signal ) { // // Issue Propper Alert ... - XEU5IssueTPAlert(signal); + XUSCHF5IssueTPAlert(signal); // // Remove Signal From Guard Protector ... - xEU5Guard.Remove(signal.ticket); - xEU5Guard.RemoveSupport(signal.ticket); + xUSCHF5Guard.Remove(signal.ticket); + xUSCHF5Guard.RemoveSupport(signal.ticket); // // Update Reports ... - xEU5Reporter.AddTradeTPInReports(); - XEU5UpdateReports(); + xUSCHF5Reporter.AddTradeTPInReports(); + XUSCHF5UpdateReports(); } // // Runs when a Position Got Stop Loss ... -void XEU5OnSL( +void XUSCHF5OnSL( XSignal &signal // Specified Signal ) { // // Issue Propper Alert ... - XEU5IssueSLAlert(signal); + XUSCHF5IssueSLAlert(signal); // // Remove Signal From Guard Protector ... - xEU5Guard.Remove(signal.ticket); - xEU5Guard.RemoveSupport(signal.ticket); + xUSCHF5Guard.Remove(signal.ticket); + xUSCHF5Guard.RemoveSupport(signal.ticket); // // Update Reports ... - xEU5Reporter.AddTradeSLInReports(); - XEU5UpdateReports(); + xUSCHF5Reporter.AddTradeSLInReports(); + XUSCHF5UpdateReports(); } // // Runs when a Position Risk Free ... -void XEU5OnRF( +void XUSCHF5OnRF( XSignal &signal // Specified Signal ) { // // Issue Propper Alert ... - XEU5IssueRFAlert(signal); + XUSCHF5IssueRFAlert(signal); // // Remove Signal From Guard Protector ... // since RiskFree Signals has SL ... - xEU5Guard.Remove(signal.ticket); - xEU5Guard.RemoveSupport(signal.ticket); + xUSCHF5Guard.Remove(signal.ticket); + xUSCHF5Guard.RemoveSupport(signal.ticket); // // Update Reports ... - xEU5Reporter.AddTradeSLInReports(); - XEU5UpdateReports(); + xUSCHF5Reporter.AddTradeSLInReports(); + XUSCHF5UpdateReports(); } // // Runs when a Position Force Closed ... -void XEU5OnFC( +void XUSCHF5OnFC( XSignal &signal // Specified Signal ) { // // Issue Propper Alert ... - XEU5IssueFCAlert(signal); + XUSCHF5IssueFCAlert(signal); // // Remove Signal From Guard Protector ... - xEU5Guard.Remove(signal.ticket); - xEU5Guard.RemoveSupport(signal.ticket); + xUSCHF5Guard.Remove(signal.ticket); + xUSCHF5Guard.RemoveSupport(signal.ticket); // // Update Reports ... - xEU5Reporter.AddTradeSLInReports(); - XEU5UpdateReports(); + xUSCHF5Reporter.AddTradeSLInReports(); + XUSCHF5UpdateReports(); } // // Runs when a Position Guarded ... -void XEU5OnGuard( +void XUSCHF5OnGuard( XSignal &signal, // Specified Signal ENUM_X_GUARD_REASONS reason, // Reason of Guard Applied string message, // Guard Returned Message @@ -1088,17 +1088,17 @@ void XEU5OnGuard( LogMessage(message); // - xEU5MEnableProvider = false; + xUSCHF5MEnableProvider = false; } // // Issue Propper Alert ... - XEU5IssueGuardAlert(signal, reason, isStopOut); + XUSCHF5IssueGuardAlert(signal, reason, isStopOut); // // Update Reports ... - xEU5Reporter.AddTradeSLInReports(); - XEU5UpdateReports(); + xUSCHF5Reporter.AddTradeSLInReports(); + XUSCHF5UpdateReports(); } // @@ -1119,16 +1119,16 @@ void XEU5OnGuard( // // Calculating Volume for Tradings ... -double XEU5CalculateVolume( +double XUSCHF5CalculateVolume( 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 = xEU5Trader.Count(); + int openSignals = xUSCHF5Trader.Count(); // - double result = xEU5VolumeManager.CalculateVolume( + double result = xUSCHF5VolumeManager.CalculateVolume( openSignals, _Symbol); @@ -1153,20 +1153,20 @@ double XEU5CalculateVolume( // // Update Report Info ... -void XEU5UpdateReports() +void XUSCHF5UpdateReports() { // - double staticVolume = xEU5VolumeManager.GetStaticVolume(); - string staticVolumeCalculationMethod = EnumToString(xEU5StaticVolumeMethod); - double maxAllowedVolume = xEU5VolumeManager.GetMaxAllowedVolume(); - double volumeIncreaseMultiplier = xEU5VolumeManager.GetVolumeMultiplier(); - double balanceGowingToApplyMultiplier = xEU5VolumeManager.GetIncreaseMultiplierBalance(); + double staticVolume = xUSCHF5VolumeManager.GetStaticVolume(); + string staticVolumeCalculationMethod = EnumToString(xUSCHF5StaticVolumeMethod); + double maxAllowedVolume = xUSCHF5VolumeManager.GetMaxAllowedVolume(); + double volumeIncreaseMultiplier = xUSCHF5VolumeManager.GetVolumeMultiplier(); + double balanceGowingToApplyMultiplier = xUSCHF5VolumeManager.GetIncreaseMultiplierBalance(); - double balanceGrowingToIncreaseMaxAllowedVolume = xEU5VolumeManager.GetIncreaseMaxAllowedVolumeBalance(); + double balanceGrowingToIncreaseMaxAllowedVolume = xUSCHF5VolumeManager.GetIncreaseMaxAllowedVolumeBalance(); // // Update Reports Volume Info ... - xEU5Reporter.UpdateReportsVolumeInfo( + xUSCHF5Reporter.UpdateReportsVolumeInfo( staticVolume, staticVolumeCalculationMethod, maxAllowedVolume, @@ -1176,24 +1176,24 @@ void XEU5UpdateReports() // // Calculate Max Allowed Drawdown ... - double minBalanceForTradeBasedOnBalance = xEU5Trader.GetMinBalanceForOpenTrades(); - xEU5Reporter.UpdateMinBalanceForOpenTradesInReports(minBalanceForTradeBasedOnBalance); + double minBalanceForTradeBasedOnBalance = xUSCHF5Trader.GetMinBalanceForOpenTrades(); + xUSCHF5Reporter.UpdateMinBalanceForOpenTradesInReports(minBalanceForTradeBasedOnBalance); } // -// Reset XEU5 Info Buffers ... -void XEU5ResetCollectors() +// Reset XUSCHF5 Info Buffers ... +void XUSCHF5ResetCollectors() { // // Reset Calculations Buffers and Variables ... - xEU5MaxDrawUp = 0; - xEU5MaxDrawDown = 0; + xUSCHF5MaxDrawUp = 0; + xUSCHF5MaxDrawDown = 0; // - xEU5Trader.Reset(); - xEU5Reporter.Reset(); - xEU5Collector.Reset(); - xEU5VolumeManager.ResetForceVolumeMultiplier(); + xUSCHF5Trader.Reset(); + xUSCHF5Reporter.Reset(); + xUSCHF5Collector.Reset(); + xUSCHF5VolumeManager.ResetForceVolumeMultiplier(); } // @@ -1206,7 +1206,7 @@ void XEU5ResetCollectors() // // Send Alert ... -void XEU5IssueAlert(string message) +void XUSCHF5IssueAlert(string message) { // // Validate Args ... @@ -1216,7 +1216,7 @@ void XEU5IssueAlert(string message) } // - if (xEU5EnableAlerts) + if (xUSCHF5EnableAlerts) { SendAlert(message); } @@ -1228,7 +1228,7 @@ void XEU5IssueAlert(string message) // // Send Take Profit Alert on Specific Signal ... -void XEU5IssueTPAlert( +void XUSCHF5IssueTPAlert( XSignal &signal // Specified Signal ) { @@ -1236,15 +1236,15 @@ void XEU5IssueTPAlert( string message = ""; // - message = xEU5Trader.GenerateSignalTPComment(signal); + message = xUSCHF5Trader.GenerateSignalTPComment(signal); // - XEU5IssueAlert(message); + XUSCHF5IssueAlert(message); } // // Send Stop Loss Alert on Specific Signal ... -void XEU5IssueSLAlert( +void XUSCHF5IssueSLAlert( XSignal &signal // Specified Signal ) { @@ -1252,15 +1252,15 @@ void XEU5IssueSLAlert( string message = ""; // - message = xEU5Trader.GenerateSignalSLComment(signal); + message = xUSCHF5Trader.GenerateSignalSLComment(signal); // - XEU5IssueAlert(message); + XUSCHF5IssueAlert(message); } // // Send Force Close Alert on Specific Signal ... -void XEU5IssueFCAlert( +void XUSCHF5IssueFCAlert( XSignal &signal // Specified Signal ) { @@ -1268,15 +1268,15 @@ void XEU5IssueFCAlert( string message = ""; // - message = xEU5Trader.GenerateSignalForceCloseComment(signal); + message = xUSCHF5Trader.GenerateSignalForceCloseComment(signal); // - XEU5IssueAlert(message); + XUSCHF5IssueAlert(message); } // // Send Risk Free Alert on Specific Signal ... -void XEU5IssueRFAlert( +void XUSCHF5IssueRFAlert( XSignal &signal // Specified Signal ) { @@ -1284,15 +1284,15 @@ void XEU5IssueRFAlert( string message = ""; // - message = xEU5Trader.GenerateSignalRFComment(signal, 0); + message = xUSCHF5Trader.GenerateSignalRFComment(signal, 0); // - XEU5IssueAlert(message); + XUSCHF5IssueAlert(message); } // // Send Guard Alert on Specific Signal ... -void XEU5IssueGuardAlert( +void XUSCHF5IssueGuardAlert( 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 XEU5IssueGuardAlert( string message = ""; // - message = xEU5Guard.GenerateGuardedSignalComment( + message = xUSCHF5Guard.GenerateGuardedSignalComment( signal, reason); // - XEU5IssueAlert(message); + XUSCHF5IssueAlert(message); } // // Send Initialization Succeed Alert ... -void XEU5IssueInitializationSucceedAlert() +void XUSCHF5IssueInitializationSucceedAlert() { // - string message = "Initializion of (" + XEU5ProviderName + " Provider" + " _ " + _Symbol + " _ " + EnumToString(_Period) + ") Succeeded ..."; - XEU5IssueAlert(message); + string message = "Initializion of (" + XUSCHF5ProviderName + " Provider" + " _ " + _Symbol + " _ " + EnumToString(_Period) + ") Succeeded ..."; + XUSCHF5IssueAlert(message); } // // Send De Initialization Succeed Alert ... -void XEU5IssueDeinitializationSucceedAlert() +void XUSCHF5IssueDeinitializationSucceedAlert() { // - string message = "De Initializion of (" + XEU5ProviderName + " Provider" + ") Succeeded ..."; - XEU5IssueAlert(message); + string message = "De Initializion of (" + XUSCHF5ProviderName + " Provider" + ") Succeeded ..."; + XUSCHF5IssueAlert(message); } // // Send Signal Successfully Execution Alert ... -void XEU5IssueSignalExecutionAlert( +void XUSCHF5IssueSignalExecutionAlert( XSignal &signal, // Specified Signal string &providers[] // Signal Providers ) { // - string message = xEU5Trader.ToString(signal); + string message = xUSCHF5Trader.ToString(signal); // string providersMsg = ToString(providers); @@ -1346,12 +1346,12 @@ void XEU5IssueSignalExecutionAlert( } // - XEU5IssueAlert(message); + XUSCHF5IssueAlert(message); } // // Send Signal Execution Alert ... -void XEU5IssueSignalExecutionError(int error) +void XUSCHF5IssueSignalExecutionError(int error) { // string message = GetSignalExecutionError(error); @@ -1361,7 +1361,7 @@ void XEU5IssueSignalExecutionError(int error) } // - XEU5IssueAlert(message); + XUSCHF5IssueAlert(message); } //