Files
xMQL5/BKPS/OLD/XEU5-0/Providers/x-saherelm.xeu5.provider.indicators.lib.mq5
T
2024-02-24 07:26:34 +03:30

9201 lines
284 KiB
Plaintext

///////////////////////////////////////////////////////////////////
//
// SaherElm IT Center MQL5 XEU5 Signal Provider Indicators Library
// ----------------------------------------------------------------
//
// Maintainer:
// ------------
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
//
//////////////////////////////////////////////////////
//
// Global Properties ...
#property library
#property copyright "Copyright 2023, SaherElm IT Center"
#property link "https://www.saherelm.ir"
#property version "1.00"
#property strict
//
// START Define Enums ...
//
//
enum ENUM_XEU5_SIGNAL_PROVIDERS
{
//
// XSP Expert Support Mechanism ...
XSP,
//
// XTD ...
XTD,
//
// XTAM ...
XTAM,
//
// XSI ...
XSI,
//
// XSTFI ...
XSTFI,
//
// XOBDLH ...
XOBDLH,
//
// XCHMACC ...
XCHMACC,
//
// XCHMACMN ...
XCHMACMN,
//
// XCHMACMX ...
XCHMACMX,
};
//
// Represent Market Conditions ...
struct XEU5MarketConditions
{
//
// XTM ...
bool isXTMPeak;
bool isXTMVale;
bool isXTMBullish;
bool isXTMBearish;
bool isXTMNeutural;
bool isXTMEndBullish;
bool isXTMEndBearish;
bool isXTMStartBullish;
bool isXTMStartBearish;
bool isXTMEndBullishByNeutural;
bool isXTMEndBearishByNeutural;
bool isXTMStartBullishAfterNeutural;
bool isXTMStartBearishAfterNeutural;
//
// XAMA ...
bool isXAMAPeak;
bool isXAMAVale;
bool isXAMABullish;
bool isXAMABearish;
bool isXAMANeutural;
bool isXAMAEndBullish;
bool isXAMAEndBearish;
bool isXAMAStartBullish;
bool isXAMAStartBearish;
bool isXAMAEndBullishByNeutural;
bool isXAMAEndBearishByNeutural;
bool isXAMAStartBullishAfterNeutural;
bool isXAMAStartBearishAfterNeutural;
//
// XLH ...
bool isXLHHHIncreased;
bool isXLHHHDecreased;
bool isXLHLLIncreased;
bool isXLHLLDecreased;
bool isXLHLowAttachedLL;
bool isXLHHighAttachedHH;
bool isXLHHHSameInLength;
bool isXLHLLSameInLength;
bool isXLHPriceOverSignal;
bool isXLHPriceUnderSignal;
bool isXLHPriceInSignalRange;
bool isXLHPriceCrossedOverSignal;
bool isXLHPriceCrossedUnderSignal;
//
// XTD ...
bool isXTDSignalPeak;
bool isXTDSignalVale;
bool isXTDBullishPeak;
bool isXTDBullishVale;
bool isXTDBearishPeak;
bool isXTDBearishVale;
bool isXTDBullOverBear;
bool isXTDBullUnderBear;
bool isXTDSignalOverBear;
bool isXTDSignalUnderBear;
bool isXTDBullCrossedOverBear;
bool isXTDBullCrossedUnderBear;
bool isXTDSignalCrossedOverBear;
bool isXTDSignalCrossedUnderBear;
//
// XFI ...
bool isXFIPeak;
bool isXFIVale;
bool isXFICrossedOverZero;
bool isXFIOverZero;
bool isXFICrossedUnderZero;
bool isXFIUnderZero;
//
// XTS ...
bool isXTSAllSame;
bool isXTSCurrentMin;
bool isXTSCurrentMax;
bool isXTSCurrentOverFarest;
bool isXTSCurrentOverNearest;
bool isXTSCurrentOverMediest;
bool isXTSCurrentUnderFarest;
bool isXTSCurrentUnderNearest;
bool isXTSCurrentUnderMediest;
bool isXTSCurrentCrossedOverFarest;
bool isXTSCurrentCrossedOverNearest;
bool isXTSCurrentCrossedOverMediest;
bool isXTSCurrentCrossedUnderFarest;
bool isXTSCurrentCrossedUnderNearest;
bool isXTSCurrentCrossedUnderMediest;
//
// XRSI ...
bool isXRSIPeak;
bool isXRSIVale;
bool isXRSICrossedOverLongExit;
bool isXRSICrossedOverLongEntry;
bool isXRSICrossedUnderShortExit;
bool isXRSICrossedUnderShortEntry;
//
// XOBD ...
bool isXOBDSwingLow;
bool isXOBDSwingHigh;
//
// XCHLH ...
//
bool isXCHLHSameHHs;
bool isXCHLHSameLLs;
//
bool isXCHLHSCMCHHSame;
bool isXCHLHSCMCLLSame;
//
bool isXCHLHSCLCHHSame;
bool isXCHLHSCLCLLSame;
//
bool isXCHLHMCLCHHSame;
bool isXCHLHMCLCLLSame;
//
bool isXCHLHMCOnTopOfLC;
bool isXCHLHMCInBottomOfLC;
//
// XCHMA ...
//
bool isXCHMASCOverMax;
bool isXCHMASCOverMin;
bool isXCHMASCUnderMax;
bool isXCHMASCUnderMin;
//
bool isXCHMASCCrossedOverMax;
bool isXCHMASCCrossedUnderMax;
bool isXCHMASCCrossedOverMin;
bool isXCHMASCCrossedUnderMin;
//
bool isXCHMASCPeak;
bool isXCHMASCVale;
bool isXCHMASCTrendsUp;
bool isXCHMASCTrendsDown;
bool isXCHMASCFastOverSlow;
bool isXCHMASCFastUnderSlow;
bool isXCHMASCFastCrossedOverSlow;
bool isXCHMASCFastCrossedUnderSlow;
//
bool isXCHMAMCPeak;
bool isXCHMAMCVale;
bool isXCHMAMCTrendsUp;
bool isXCHMAMCTrendsDown;
bool isXCHMAMCFastOverSlow;
bool isXCHMAMCFastUnderSlow;
bool isXCHMAMCFastCrossedOverSlow;
bool isXCHMAMCFastCrossedUnderSlow;
//
bool isXCHMALCPeak;
bool isXCHMALCVale;
bool isXCHMALCTrendsUp;
bool isXCHMALCTrendsDown;
bool isXCHMALCFastOverSlow;
bool isXCHMALCFastUnderSlow;
bool isXCHMALCFastCrossedOverSlow;
bool isXCHMALCFastCrossedUnderSlow;
};
//
// END Define Enums ...
//
//
// Include Provider Inputs ...
#include "x-saherelm.xeu5.provider.inputs.lib.mq5"
//
// Signallers ...
input group "XEU5 Signallers";
//
// XTD ...
input group "XEU5 XTD Signaller";
input bool xEU5XTDEnableSignaller = true; // Enable Signaller
// input bool xEU5XTDEnableTPSL = false; // Enable TP/SL
input bool xEU5XTDAllowLongSignals = true; // Enable Long Signals
input bool xEU5XTDAllowShortSignals = true; // Enable Short Signals
//
// XTAM ...
input group "XEU5 XTAM Signaller";
input bool xEU5XTAMEnableSignaller = true; // Enable Signaller
// input bool xEU5XTAMEnableTPSL = false; // Enable TP/SL
input bool xEU5XTAMAllowLongSignals = true; // Enable Long Signals
input bool xEU5XTAMAllowShortSignals = true; // Enable Short Signals
//
// XSI ...
input group "XEU5 XSI Signaller";
input bool xEU5XSIEnableSignaller = true; // Enable Signaller
// input bool xEU5SIXEnableTPSL = false; // Enable TP/SL
input bool xEU5XSIAllowLongSignals = true; // Enable Long Signals
input bool xEU5XSIAllowShortSignals = true; // Enable Short Signals
//
// XSTFI ...
input group "XEU5 XSTFI Signaller";
input bool xEU5XSTFIEnableSignaller = true; // Enable Signaller
// input bool xEU5XSTFIEnableTPSL = false; // Enable TP/SL
input bool xEU5XSTFIAllowLongSignals = true; // Enable Long Signals
input bool xEU5XSTFIAllowShortSignals = true; // Enable Short Signals
//
// XOBDLH ...
input group "XEU5 XOBDLH Signaller";
input bool xEU5XOBDLHEnableSignaller = true; // Enable Signaller
// input bool xEU5XOBDLHEnableTPSL = false; // Enable TP/SL
input bool xEU5XOBDLHAllowLongSignals = true; // Enable Long Signals
input bool xEU5XOBDLHAllowShortSignals = true; // Enable Short Signals
//
// XCHMACC ...
input group "XEU5 XCHMACC Signaller";
input bool xEU5XCHMACCEnableSignaller = true; // Enable Signaller
// input bool xEU5XCHMACCEnableTPSL = false; // Enable TP/SL
input bool xEU5XCHMACCAllowLongSignals = true; // Enable Long Signals
input bool xEU5XCHMACCAllowShortSignals = true; // Enable Short Signals
//
// XCHMACMX ...
input group "XEU5 XCHMACMX Signaller";
input bool xEU5XCHMACMXEnableSignaller = true; // Enable Signaller
// input bool xEU5XCHMACMXEnableTPSL = false; // Enable TP/SL
input bool xEU5XCHMACMXAllowLongSignals = true; // Enable Long Signals
input bool xEU5XCHMACMXAllowShortSignals = true; // Enable Short Signals
//
// XCHMACMN ...
input group "XEU5 XCHMACMN Signaller";
input bool xEU5XCHMACMNEnableSignaller = true; // Enable Signaller
// input bool xEU5XCHMACMNEnableTPSL = false; // Enable TP/SL
input bool xEU5XCHMACMNAllowLongSignals = true; // Enable Long Signals
input bool xEU5XCHMACMNAllowShortSignals = true; // Enable Short Signals
//
// Imports all Indicators Helper here ...
// input group "XEU5 Provider Indicators";
//
#include "../Helpers/x-saherelm.xtm.indicator.helper.lib.mq5"
#include "../Helpers/x-saherelm.xama.indicator.helper.lib.mq5"
#include "../Helpers/x-saherelm.xlh.indicator.helper.lib.mq5"
#include "../Helpers/x-saherelm.xtd.oscillator.helper.lib.mq5"
#include "../Helpers/x-saherelm.xfi.oscillator.helper.lib.mq5"
#include "../Helpers/x-saherelm.xts.oscillator.helper.lib.mq5"
#include "../Helpers/x-saherelm.xobd.indicator.helper.lib.mq5"
#include "../Helpers/x-saherelm.xrsi.oscillator.helper.lib.mq5"
#include "../Helpers/x-saherelm.xchlh.oscillator.helper.lib.mq5"
#include "../Helpers/x-saherelm.xchma.oscillator.helper.lib.mq5"
//
bool xEU5IsTestMode = true;
int xEU5MaxLengthOfInputs = 0;
int xEU5CalculatedBars = 0;
//
// Signaller Variables ...
//
// XTD ...
bool xEU5MXTDEnableSignaller = xEU5XTDEnableSignaller;
// bool xEU5MXTDEnableTPSL = xEU5XTDEnableTPSL;
bool xEU5MXTDAllowLongSignals = xEU5XTDAllowLongSignals;
bool xEU5MXTDAllowShortSignals = xEU5XTDAllowShortSignals;
//
// XTAM ...
bool xEU5MXTAMEnableSignaller = xEU5XTAMEnableSignaller;
// bool xEU5MXTAMEnableTPSL = xEU5XTAMEnableTPSL;
bool xEU5MXTAMAllowLongSignals = xEU5XTAMAllowLongSignals;
bool xEU5MXTAMAllowShortSignals = xEU5XTAMAllowShortSignals;
//
// XSI ...
bool xEU5MXSIEnableSignaller = xEU5XSIEnableSignaller;
// bool xEU5MSIXEnableTPSL = xEU5SIXEnableTPSL;
bool xEU5MXSIAllowLongSignals = xEU5XSIAllowLongSignals;
bool xEU5MXSIAllowShortSignals = xEU5XSIAllowShortSignals;
//
// XSTFI ...
bool xEU5MXSTFIEnableSignaller = xEU5XSTFIEnableSignaller;
// bool xEU5MXSTFIEnableTPSL = xEU5XSTFIEnableTPSL;
bool xEU5MXSTFIAllowLongSignals = xEU5XSTFIAllowLongSignals;
bool xEU5MXSTFIAllowShortSignals = xEU5XSTFIAllowShortSignals;
//
// XOBDLH ...
bool xEU5MXOBDLHEnableSignaller = xEU5XOBDLHEnableSignaller;
// bool xEU5MXOBDLHEnableTPSL = xEU5XOBDLHEnableTPSL;
bool xEU5MXOBDLHAllowLongSignals = xEU5XOBDLHAllowLongSignals;
bool xEU5MXOBDLHAllowShortSignals = xEU5XOBDLHAllowShortSignals;
//
// XCHMACC ...
bool xEU5MXCHMACCEnableSignaller = xEU5XCHMACCEnableSignaller;
// bool xEU5MXCHMACCEnableTPSL = xEU5XCHMACCEnableTPSL;
bool xEU5MXCHMACCAllowLongSignals = xEU5XCHMACCAllowLongSignals;
bool xEU5MXCHMACCAllowShortSignals = xEU5XCHMACCAllowShortSignals;
//
// XCHMAMX ...
bool xEU5MXCHMACMXEnableSignaller = xEU5XCHMACMXEnableSignaller;
// bool xEU5MXCHMACMXEnableTPSL = xEU5XCHMACMXEnableTPSL;
bool xEU5MXCHMACMXAllowLongSignals = xEU5XCHMACMXAllowLongSignals;
bool xEU5MXCHMACMXAllowShortSignals = xEU5XCHMACMXAllowShortSignals;
//
// XCHMAMN ...
bool xEU5MXCHMACMNEnableSignaller = xEU5XCHMACMNEnableSignaller;
// bool xEU5MXCHMACMNEnableTPSL = xEU5XCHMACMNEnableTPSL;
bool xEU5MXCHMACMNAllowLongSignals = xEU5XCHMACMNAllowLongSignals;
bool xEU5MXCHMACMNAllowShortSignals = xEU5XCHMACMNAllowShortSignals;
//
// Funded Next Resolve Guards ...
bool isXEU5OnFundedNext = true;
//
// Here we Define some Global Market Variables to Analyse MArket Conditions
// using them at each time ...
XEU5MarketConditions xEU5Conditions = {};
//
// Validate Indicators Inputs ...
bool XEU5ValidateIndicatorsInputs()
{
//
bool result = false;
//
// XTM ...
result = XTMValidateInputs();
if (!result)
{
return result;
}
//
// XAMA ...
result = XAMAValidateInputs();
if (!result)
{
return result;
}
//
// XTD ...
result = XTDValidateInputs();
if (!result)
{
return result;
}
//
// XFI ...
result = XFIValidateInputs();
if (!result)
{
return result;
}
//
// XTS ...
result = XTSValidateInputs();
if (!result)
{
return result;
}
//
// XOBD ...
result = XOBDValidateInputs();
if (!result)
{
return result;
}
//
// XLH ...
result = XLHValidateInputs();
if (!result)
{
return result;
}
//
// XRSI ...
result = XRSIValidateInputs();
if (!result)
{
return result;
}
//
// XCHLH ...
result = XCHLHValidateInputs();
if (!result)
{
return result;
}
//
// XCHMA ...
result = XCHMAValidateInputs();
if (!result)
{
return result;
}
//
result = true;
//
return result;
}
//
// Init Indicators ...
bool XEU5InitIndicators()
{
//
bool result = false;
//
// Make it Enable when we need to Log Market Conditions ...
// xEU5IsTestMode = false; // IsRunningOnTestMode();
//
// Check and Calculate Max Length in Inputs ...
//
//
// XTM ...
xEU5MaxLengthOfInputs = MathMax(
xTMMaPeriod,
xEU5NumberOfItemsPerTick);
//
// XAMA ...
xEU5MaxLengthOfInputs = MathMax(
xAMALength,
xEU5NumberOfItemsPerTick);
xEU5MaxLengthOfInputs = MathMax(
xAMAFastEMA,
xEU5NumberOfItemsPerTick);
xEU5MaxLengthOfInputs = MathMax(
xAMASlowEMA,
xEU5NumberOfItemsPerTick);
//
// XLH ...
xEU5MaxLengthOfInputs = MathMax(
xLHLength,
xEU5NumberOfItemsPerTick);
//
// XTD ...
xEU5MaxLengthOfInputs = MathMax(
xTDLength,
xEU5MaxLengthOfInputs);
//
// XFI ...
xEU5MaxLengthOfInputs = MathMax(
xFILength,
xEU5MaxLengthOfInputs);
//
// XRSI ...
xEU5MaxLengthOfInputs = MathMax(
xRSILength,
xEU5MaxLengthOfInputs);
//
// XOBD ...
xEU5MaxLengthOfInputs = MathMax(
xOBDLength,
xEU5MaxLengthOfInputs);
//
// XCHLH ...
xEU5MaxLengthOfInputs = MathMax(
xCHLHLcLength,
xEU5MaxLengthOfInputs);
xEU5MaxLengthOfInputs = MathMax(
xCHLHMcLength,
xEU5MaxLengthOfInputs);
xEU5MaxLengthOfInputs = MathMax(
xCHLHScLength,
xEU5MaxLengthOfInputs);
//
// XCHMA ...
xEU5MaxLengthOfInputs = MathMax(
xCHMAScFastLength,
xEU5MaxLengthOfInputs);
xEU5MaxLengthOfInputs = MathMax(
xCHMAScSlowLength,
xEU5MaxLengthOfInputs);
xEU5MaxLengthOfInputs = MathMax(
xCHMAMcFastLength,
xEU5MaxLengthOfInputs);
xEU5MaxLengthOfInputs = MathMax(
xCHMAMcSlowLength,
xEU5MaxLengthOfInputs);
xEU5MaxLengthOfInputs = MathMax(
xCHMALcFastLength,
xEU5MaxLengthOfInputs);
xEU5MaxLengthOfInputs = MathMax(
xCHMALcSlowLength,
xEU5MaxLengthOfInputs);
//
// Validate Indicators Inputs before Initialization ...
result = XEU5ValidateIndicatorsInputs();
if (!result)
{
return result;
}
//
// Validate Signallers ...
//
// XTD ...
bool isXTDEnable =
xEU5XTDEnableSignaller &&
(xEU5XTDAllowLongSignals ||
xEU5XTDAllowShortSignals);
//
// XTAM ...
bool isXTAMEnable =
xEU5XTAMEnableSignaller &&
(xEU5XTAMAllowLongSignals ||
xEU5XTAMAllowShortSignals);
//
// XSI ...
bool isXSIEnable =
xEU5XSIEnableSignaller &&
(xEU5XSIAllowLongSignals ||
xEU5XSIAllowShortSignals);
//
// XSTFI ...
bool isXSTFIEnable =
xEU5XSTFIEnableSignaller &&
(xEU5XSTFIAllowLongSignals ||
xEU5XSTFIAllowShortSignals);
//
// XOBDLH ...
bool isXOBDLHEnable =
xEU5XOBDLHEnableSignaller &&
(xEU5XOBDLHAllowLongSignals ||
xEU5XOBDLHAllowShortSignals);
//
// XCHMACC ...
bool isXCHMACCEnable =
xEU5XCHMACCEnableSignaller &&
(xEU5XCHMACCAllowLongSignals ||
xEU5XCHMACCAllowShortSignals);
//
// XCHMACMX ...
bool isXCHMACMXEnable =
xEU5XCHMACMXEnableSignaller &&
(xEU5XCHMACMXAllowLongSignals ||
xEU5XCHMACMXAllowShortSignals);
//
// XCHMACMN ...
bool isXCHMACMNEnable =
xEU5XCHMACMNEnableSignaller &&
(xEU5XCHMACMNAllowLongSignals ||
xEU5XCHMACMNAllowShortSignals);
//
bool hasSignaller =
//
isXTDEnable ||
isXTAMEnable ||
isXSIEnable ||
isXSTFIEnable ||
isXOBDLHEnable ||
isXCHMACCEnable ||
isXCHMACMXEnable ||
isXCHMACMNEnable
//
;
result = hasSignaller;
if (!result)
{
//
LogMessage("XEU5 doesn't enable any Signaller ...");
//
return result;
}
//
// Initialize Indicator/Oscillator Handlers ...
ResetLastError();
//
// XTM Init ...
result = XTMInitHandlers();
if (!result)
{
return result;
}
//
// XAMA Init ...
result = XAMAInitHandlers();
if (!result)
{
return result;
}
//
// XLH Init ...
result = XLHInitHandlers();
if (!result)
{
return result;
}
//
// XTD Init ...
result = XTDInitHandlers();
if (!result)
{
return result;
}
//
// XFI Init ...
result = XFIInitHandlers();
if (!result)
{
return result;
}
//
// XTS Init ...
result = XTSInitHandlers();
if (!result)
{
return result;
}
//
// XRSI Init ...
result = XRSIInitHandlers();
if (!result)
{
return result;
}
//
// XOBD Init ...
result = XOBDInitHandlers();
if (!result)
{
return result;
}
//
// XCLH Init ...
result = XCHLHInitHandlers();
if (!result)
{
return result;
}
//
// XCHMA Init ...
result = XCHMAInitHandlers();
if (!result)
{
return result;
}
//
result = true;
//
return result;
}
//
// Release Indicators ...
void XEU5ReleaseIndicators()
{
//
// Release Handlers ...
XTMReleaseHandlers();
XAMAReleaseHandlers();
XLHReleaseHandlers();
XTDReleaseHandlers();
XFIReleaseHandlers();
XTSReleaseHandlers();
XRSIReleaseHandlers();
XOBDReleaseHandlers();
XCHMAReleaseHandlers();
XCHLHReleaseHandlers();
}
//
// Handle Reading Buffers ...
void XEU5HandleReadingBuffers()
{
//
// Reading Calculated Bars for a Simple Handler ...
xEU5CalculatedBars = 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);
//
XEU5ReadConditions();
}
//
//
// START Combination Functions ...
//
//
//
// Can Open Long Trade ...
// this is a Function will Check all market Conditions and get all
// Strategy requirement Verifications for Long Signals ...
bool XEU5CanOpenLongTrade(
XProvidedSignal &info // Retrieve Signal Additional Info on this Object
)
{
//
bool result = false;
//
info.tp = 0;
info.sl = 0;
ArrayResize(
info.signallers,
0);
//
bool hasSignal = XEU5HasLongSignal(info);
//
result =
//
hasSignal
//
;
//
if (result)
{
XEU5ClearConditions();
}
//
return result;
}
//
// Can Close Long Trade ...
// this is a Function will Check all market Conditions and get all
// Strategy requirement Verifications for Long Signals ...
bool XEU5CanCloseLongTrade()
{
//
bool result = false;
//
return result;
}
//
// Can Open Short Trade ...
// this is a Function will Check all market Conditions and get all
// Strategy requirement Verifications for Short Signals ...
bool XEU5CanOpenShortTrade(
XProvidedSignal &info // Retrieve Signal Additional Info on this Object
)
{
//
bool result = false;
//
info.tp = 0;
info.sl = 0;
ArrayResize(
info.signallers,
0);
//
bool hasSignal = XEU5HasShortSignal(info);
//
result =
//
hasSignal
//
;
//
if (result)
{
XEU5ClearConditions();
}
//
return result;
}
//
// Can Close Short Trade ...
// this is a Function will Check all market Conditions and get all
// Strategy requirement Verifications for Short Signals ...
bool XEU5CanCloseShortTrade()
{
//
bool result = false;
//
return result;
}
//
//
// END Combination Functions ...
//
//
//
//
// START Combination Signaling ...
//
//
//
// Read All Globally Required Conditions ...
void XEU5ReadConditions()
{
//
XEU5ClearConditions();
//
xEU5Conditions = XEU5GenerateMarketConditions(1);
}
//
// Cleanup Conditions ...
void XEU5ClearConditions()
{
//
XEU5MarketConditions mConditions = {};
//
xEU5Conditions = mConditions;
}
//
// Generate Merket Conditions for Specified Bar Index ...
XEU5MarketConditions XEU5GenerateMarketConditions(
int bar_index = 1 // Specified Bar Index ...
)
{
//
XEU5MarketConditions mConditions = {};
//
// XTM ...
mConditions.isXTMPeak = XTMIsPeak(bar_index);
mConditions.isXTMVale = XTMIsVale(bar_index);
mConditions.isXTMBullish = XTMIsBullish(bar_index);
mConditions.isXTMBearish = XTMIsBearish(bar_index);
mConditions.isXTMNeutural = XTMIsNeutural(bar_index);
mConditions.isXTMEndBullish = XTMIsEndBullish(bar_index);
mConditions.isXTMEndBearish = XTMIsEndBearish(bar_index);
mConditions.isXTMStartBullish = XTMIsStartBullish(bar_index);
mConditions.isXTMStartBearish = XTMIsStartBearish(bar_index);
mConditions.isXTMEndBullishByNeutural = XTMIsEndBullishByNeutural(bar_index);
mConditions.isXTMEndBearishByNeutural = XTMIsEndBearishByNeutural(bar_index);
mConditions.isXTMStartBullishAfterNeutural = XTMIsStartBullishAfterNeutural(bar_index);
mConditions.isXTMStartBearishAfterNeutural = XTMIsStartBearishAfterNeutural(bar_index);
//
// XAMA ...
mConditions.isXAMAPeak = XAMAIsPeak(bar_index);
mConditions.isXAMAVale = XAMAIsVale(bar_index);
mConditions.isXAMABullish = XAMAIsBullish(bar_index);
mConditions.isXAMABearish = XAMAIsBearish(bar_index);
mConditions.isXAMANeutural = XAMAIsNeutural(bar_index);
mConditions.isXAMAEndBullish = XAMAIsEndBullish(bar_index);
mConditions.isXAMAEndBearish = XAMAIsEndBearish(bar_index);
mConditions.isXAMAStartBullish = XAMAIsStartBullish(bar_index);
mConditions.isXAMAStartBearish = XAMAIsStartBearish(bar_index);
mConditions.isXAMAEndBullishByNeutural = XAMAIsEndBullishByNeutural(bar_index);
mConditions.isXAMAEndBearishByNeutural = XAMAIsEndBearishByNeutural(bar_index);
mConditions.isXAMAStartBullishAfterNeutural = XAMAIsStartBullishAfterNeutural(bar_index);
mConditions.isXAMAStartBearishAfterNeutural = XAMAIsStartBearishAfterNeutural(bar_index);
//
// XLH ...
mConditions.isXLHHHIncreased = XLHIsHHIncreased(bar_index);
mConditions.isXLHHHDecreased = XLHIsHHDecreased(bar_index);
mConditions.isXLHLLIncreased = XLHIsLLIncreased(bar_index);
mConditions.isXLHLLDecreased = XLHIsLLDecreased(bar_index);
mConditions.isXLHLowAttachedLL = XLHIsLowAttachedLL(bar_index);
mConditions.isXLHHighAttachedHH = XLHIsHighAttachedHH(bar_index);
mConditions.isXLHHHSameInLength = XLHIsHHSameInLength(bar_index);
mConditions.isXLHLLSameInLength = XLHIsLLSameInLength(bar_index);
mConditions.isXLHPriceOverSignal = XLHIsPriceOverSignal(bar_index);
mConditions.isXLHPriceUnderSignal = XLHIsPriceUnderSignal(bar_index);
mConditions.isXLHPriceInSignalRange = XLHIsPriceInSignalRange(bar_index);
mConditions.isXLHPriceCrossedOverSignal = XLHIsPriceCrossedOverSignal(bar_index);
mConditions.isXLHPriceCrossedUnderSignal = XLHIsPriceCrossedUnderSignal(bar_index);
//
// XTD ...
mConditions.isXTDSignalPeak = XTDIsSignalPeak(bar_index);
mConditions.isXTDSignalVale = XTDIsSignalVale(bar_index);
mConditions.isXTDBullishPeak = XTDIsBullishPeak(bar_index);
mConditions.isXTDBullishVale = XTDIsBullishVale(bar_index);
mConditions.isXTDBearishPeak = XTDIsBearishPeak(bar_index);
mConditions.isXTDBearishVale = XTDIsBearishVale(bar_index);
mConditions.isXTDBullOverBear = XTDIsBullOverBear(bar_index);
mConditions.isXTDBullUnderBear = XTDIsBullUnderBear(bar_index);
mConditions.isXTDSignalOverBear = XTDIsSignalOverBear(bar_index);
mConditions.isXTDSignalUnderBear = XTDIsSignalUnderBear(bar_index);
mConditions.isXTDBullCrossedOverBear = XTDIsBullCrossedOverBear(bar_index);
mConditions.isXTDBullCrossedUnderBear = XTDIsBullCrossedUnderBear(bar_index);
mConditions.isXTDSignalCrossedOverBear = XTDIsSignalCrossedOverBear(bar_index);
mConditions.isXTDSignalCrossedUnderBear = XTDIsSignalCrossedUnderBear(bar_index);
//
// XFI ...
mConditions.isXFIPeak = XFIIsPeak(bar_index);
mConditions.isXFIVale = XFIIsVale(bar_index);
mConditions.isXFIOverZero = XFIIsOverZero(bar_index);
mConditions.isXFIUnderZero = XFIIsUnderZero(bar_index);
mConditions.isXFICrossedOverZero = XFIIsCrossedOverZero(bar_index);
mConditions.isXFICrossedUnderZero = XFIIsCrossedUnderZero(bar_index);
//
// XTS ...
mConditions.isXTSAllSame = XTSIsAllSame(bar_index);
mConditions.isXTSCurrentMin = XTSIsCurrentMin(bar_index);
mConditions.isXTSCurrentMax = XTSIsCurrentMax(bar_index);
mConditions.isXTSCurrentOverFarest = XTSIsCurrentOverFarest(bar_index);
mConditions.isXTSCurrentOverNearest = XTSIsCurrentOverNearest(bar_index);
mConditions.isXTSCurrentOverMediest = XTSIsCurrentOverMediest(bar_index);
mConditions.isXTSCurrentUnderFarest = XTSIsCurrentUnderFarest(bar_index);
mConditions.isXTSCurrentUnderNearest = XTSIsCurrentUnderNearest(bar_index);
mConditions.isXTSCurrentUnderMediest = XTSIsCurrentUnderMediest(bar_index);
mConditions.isXTSCurrentCrossedOverFarest = XTSIsCurrentCrossedOverFarest(bar_index);
mConditions.isXTSCurrentCrossedOverNearest = XTSIsCurrentCrossedOverNearest(bar_index);
mConditions.isXTSCurrentCrossedOverMediest = XTSIsCurrentCrossedOverMediest(bar_index);
mConditions.isXTSCurrentCrossedUnderFarest = XTSIsCurrentCrossedUnderFarest(bar_index);
mConditions.isXTSCurrentCrossedUnderNearest = XTSIsCurrentCrossedUnderNearest(bar_index);
mConditions.isXTSCurrentCrossedUnderMediest = XTSIsCurrentCrossedUnderMediest(bar_index);
//
// XRSI ...
mConditions.isXRSIPeak = XRSIIsPeak(bar_index);
mConditions.isXRSIVale = XRSIIsVale(bar_index);
mConditions.isXRSICrossedOverLongExit = XRSIIsCrossedOverLongExit(bar_index);
mConditions.isXRSICrossedOverLongEntry = XRSIIsCrossedOverLongEntry(bar_index);
mConditions.isXRSICrossedUnderShortExit = XRSIIsCrossedUnderShortExit(bar_index);
mConditions.isXRSICrossedUnderShortEntry = XRSIIsCrossedUnderShortEntry(bar_index);
//
// XOBD ...
mConditions.isXOBDSwingLow = XOBDIsSwingLow(bar_index);
mConditions.isXOBDSwingHigh = XOBDIsSwingHigh(bar_index);
//
// XCHLH ...
//
mConditions.isXCHLHSameHHs = XCHLHIsSameHHs(bar_index);
mConditions.isXCHLHSameLLs = XCHLHIsSameLLs(bar_index);
//
mConditions.isXCHLHSCMCHHSame = XCHLHIsMCSCHasSameHH(bar_index);
mConditions.isXCHLHSCMCLLSame = XCHLHIsMCSCHasSameLL(bar_index);
//
mConditions.isXCHLHSCLCHHSame = XCHLHIsLCSCHasSameHH(bar_index);
mConditions.isXCHLHSCLCLLSame = XCHLHIsLCSCHasSameLL(bar_index);
//
mConditions.isXCHLHMCLCHHSame = XCHLHIsLCMCHasSameHH(bar_index);
mConditions.isXCHLHMCLCLLSame = XCHLHIsLCMCHasSameLL(bar_index);
//
mConditions.isXCHLHMCOnTopOfLC = XCHLHIsMCOnTopOfLC(bar_index);
mConditions.isXCHLHMCInBottomOfLC = XCHLHIsMCInBottomOfLC(bar_index);
//
// XCHMA ...
//
mConditions.isXCHMASCOverMax = XCHMAIsSCOverMax(bar_index);
mConditions.isXCHMASCOverMin = XCHMAIsSCOverMin(bar_index);
mConditions.isXCHMASCUnderMax = XCHMAIsSCUnderMax(bar_index);
mConditions.isXCHMASCUnderMin = XCHMAIsSCUnderMin(bar_index);
//
mConditions.isXCHMASCCrossedOverMax = XCHMAIsSCCrossedOverMax(bar_index);
mConditions.isXCHMASCCrossedUnderMax = XCHMAIsSCCrossedUnderMax(bar_index);
mConditions.isXCHMASCCrossedOverMin = XCHMAIsSCCrossedOverMin(bar_index);
mConditions.isXCHMASCCrossedUnderMin = XCHMAIsSCCrossedUnderMin(bar_index);
//
mConditions.isXCHMASCPeak = XCHMAIsSCPeak(bar_index);
mConditions.isXCHMASCVale = XCHMAIsSCVale(bar_index);
mConditions.isXCHMASCTrendsUp = XCHMAIsSCTrendsUp(bar_index);
mConditions.isXCHMASCTrendsDown = XCHMAIsSCTrendsDown(bar_index);
mConditions.isXCHMASCFastOverSlow = XCHMAIsSCFastOverSlow(bar_index);
mConditions.isXCHMASCFastUnderSlow = XCHMAIsSCFastUnderSlow(bar_index);
mConditions.isXCHMASCFastCrossedOverSlow = XCHMAIsSCFastCrossedOverSlow(bar_index);
mConditions.isXCHMASCFastCrossedUnderSlow = XCHMAIsSCFastCrossedUnderSlow(bar_index);
//
mConditions.isXCHMAMCPeak = XCHMAIsMCPeak(bar_index);
mConditions.isXCHMAMCVale = XCHMAIsMCVale(bar_index);
mConditions.isXCHMAMCTrendsUp = XCHMAIsMCTrendsUp(bar_index);
mConditions.isXCHMAMCTrendsDown = XCHMAIsMCTrendsDown(bar_index);
mConditions.isXCHMAMCFastOverSlow = XCHMAIsMCFastOverSlow(bar_index);
mConditions.isXCHMAMCFastUnderSlow = XCHMAIsMCFastUnderSlow(bar_index);
mConditions.isXCHMAMCFastCrossedOverSlow = XCHMAIsMCFastCrossedOverSlow(bar_index);
mConditions.isXCHMAMCFastCrossedUnderSlow = XCHMAIsMCFastCrossedUnderSlow(bar_index);
//
mConditions.isXCHMALCPeak = XCHMAIsLCPeak(bar_index);
mConditions.isXCHMALCVale = XCHMAIsLCVale(bar_index);
mConditions.isXCHMALCTrendsUp = XCHMAIsLCTrendsUp(bar_index);
mConditions.isXCHMALCTrendsDown = XCHMAIsLCTrendsDown(bar_index);
mConditions.isXCHMALCFastOverSlow = XCHMAIsLCFastOverSlow(bar_index);
mConditions.isXCHMALCFastUnderSlow = XCHMAIsLCFastUnderSlow(bar_index);
mConditions.isXCHMALCFastCrossedOverSlow = XCHMAIsLCFastCrossedOverSlow(bar_index);
mConditions.isXCHMALCFastCrossedUnderSlow = XCHMAIsLCFastCrossedUnderSlow(bar_index);
//
return mConditions;
}
//
// Check Market Conditions by Combination of Power of All tools for LONGs ...
bool XEU5HasLongSignal(
XProvidedSignal &info // Retrieve Signal Additional Info on this Object
)
{
//
bool result = false;
//
// XTD ...
bool isXTDHasSignal = XEU5XTDHasLongSignal();
if (isXTDHasSignal)
{
//
Add(
EnumToString(XTD),
info.signallers);
}
//
// XTAM ...
bool isXTAMHasSignal = XEU5XTAMHasLongSignal();
if (isXTAMHasSignal)
{
//
Add(
EnumToString(XTAM),
info.signallers);
}
//
// XSI ...
bool isXSIHasSignal = XEU5XSIHasLongSignal();
if (isXSIHasSignal)
{
//
Add(
EnumToString(XSI),
info.signallers);
}
//
// XSTFI ...
bool isXSTFIHasSignal = XEU5XSTFIHasLongSignal();
if (isXSTFIHasSignal)
{
//
Add(
EnumToString(XSTFI),
info.signallers);
}
//
// XOBD XLH ...
bool isXOBDLHHasSignal = XEU5XOBDLHHasLongSignal();
if (isXOBDLHHasSignal)
{
//
Add(
EnumToString(XOBDLH),
info.signallers);
}
//
// XCHMA Cycles Cross ...
bool isXCHMACCHasSignal = XEU5XCHMACCHasLongSignal();
if (isXCHMACCHasSignal)
{
//
Add(
EnumToString(XCHMACC),
info.signallers);
}
//
// XCHMA Cycles Min ...
bool isXCHMACMNHasSignal = XEU5XCHMACMNHasLongSignal();
if (isXCHMACMNHasSignal)
{
//
Add(
EnumToString(XCHMACMN),
info.signallers);
}
//
// XCHMA Cycles Max
bool isXCHMACMXHasSignal = XEU5XCHMACMXHasLongSignal();
if (isXCHMACMXHasSignal)
{
//
Add(
EnumToString(XCHMACMX),
info.signallers);
}
//
result =
//
isXTDHasSignal
//
||
//
isXTAMHasSignal
//
||
//
isXSIHasSignal
//
||
//
isXSTFIHasSignal
//
||
//
isXOBDLHHasSignal
//
||
//
isXCHMACCHasSignal
//
||
//
isXCHMACMNHasSignal
//
||
//
isXCHMACMXHasSignal
//
;
//
if (result)
{
//
// Only Log Signals Time Market Conditions if is in Testing Mode ...
if (xEU5IsTestMode)
{
//
string message = XEU5GetConditionsString(xEU5Conditions, "\n");
//
LogMessage(
"Long Signal Provided by: \n" +
info.signallers[ArraySize(info.signallers) - 1] + "\n" +
"Pusher: " + (string)ArraySize(info.signallers) + "\n" +
"Market Conditions: " + message);
}
}
//
return result;
}
//
// Check Market Conditions by Combination of Power of All tools for SHORTs ...
bool XEU5HasShortSignal(
XProvidedSignal &info // Retrieve Signal Additional Info on this Object
)
{
//
bool result = false;
//
// XTD ...
bool isXTDHasSignal = XEU5XTDHasShortSignal();
if (isXTDHasSignal)
{
//
Add(
EnumToString(XTD),
info.signallers);
}
//
// XTAM ...
bool isXTAMHasSignal = XEU5XTAMHasShortSignal();
if (isXTAMHasSignal)
{
//
Add(
EnumToString(XTAM),
info.signallers);
}
//
// XSI ...
bool isXSIHasSignal = XEU5XSIHasShortSignal();
if (isXSIHasSignal)
{
//
Add(
EnumToString(XSI),
info.signallers);
}
//
// XSTFI ...
bool isXSTFIHasSignal = XEU5XSTFIHasShortSignal();
if (isXSTFIHasSignal)
{
//
Add(
EnumToString(XSTFI),
info.signallers);
}
//
// XOBD XLH ...
bool isXOBDLHHasSignal = XEU5XOBDLHHasShortSignal();
if (isXOBDLHHasSignal)
{
//
Add(
EnumToString(XOBDLH),
info.signallers);
}
//
// XCHMA Cycles Cross ...
bool isXCHMACCHasSignal = XEU5XCHMACCHasShortSignal();
if (isXCHMACCHasSignal)
{
//
Add(
EnumToString(XCHMACC),
info.signallers);
}
//
// XCHMA Cycles Min ...
bool isXCHMACMNHasSignal = XEU5XCHMACMNHasShortSignal();
if (isXCHMACMNHasSignal)
{
//
Add(
EnumToString(XCHMACMN),
info.signallers);
}
//
// XCHMA Cycles Max
bool isXCHMACMXHasSignal = XEU5XCHMACMXHasShortSignal();
if (isXCHMACMXHasSignal)
{
//
Add(
EnumToString(XCHMACMX),
info.signallers);
}
//
result =
//
isXTDHasSignal
//
||
//
isXTAMHasSignal
//
||
//
isXSIHasSignal
//
||
//
isXSTFIHasSignal
//
||
//
isXOBDLHHasSignal
//
||
//
isXCHMACCHasSignal
//
||
//
isXCHMACMNHasSignal
//
||
//
isXCHMACMXHasSignal
//
;
//
if (result)
{
//
// Only Log Signals Time Market Conditions if is in Testing Mode ...
if (xEU5IsTestMode)
{
//
string message = XEU5GetConditionsString(xEU5Conditions, "\n");
//
LogMessage(
"Short Signal Provided by: \n" +
info.signallers[ArraySize(info.signallers) - 1] + "\n" +
"Pusher: " + (string)ArraySize(info.signallers) + "\n" +
"Market Conditions: " + message);
}
}
//
return result;
}
//
//
// END Combination Signaling ...
//
//
//
// START Signal Providers ...
//
//
// Disbale All Signallers Longs ...
void XEU5DisableLongSignallers()
{
//
// XTD ...
if (xEU5MXTDEnableSignaller)
{
xEU5MXTDAllowLongSignals = false;
}
//
// XTAM ...
if (xEU5MXTAMEnableSignaller)
{
xEU5MXTAMAllowLongSignals = false;
}
//
// XSI ...
if (xEU5MXSIEnableSignaller)
{
xEU5MXSIAllowLongSignals = false;
}
//
// XSTFI ...
if (xEU5MXSTFIEnableSignaller)
{
xEU5MXSTFIAllowLongSignals = false;
}
//
// XOBDLH ...
if (xEU5MXOBDLHEnableSignaller)
{
xEU5MXOBDLHAllowLongSignals = false;
}
//
// XCHMACC ...
if (xEU5MXCHMACCEnableSignaller)
{
xEU5MXCHMACCAllowLongSignals = false;
}
//
// XCHMAMX ...
if (xEU5MXCHMACMXEnableSignaller)
{
xEU5MXCHMACMXAllowLongSignals = false;
}
//
// XCHMAMN ...
if (xEU5MXCHMACMNEnableSignaller)
{
xEU5MXCHMACMNAllowLongSignals = false;
}
}
//
// Enable All Signallers Longs ...
// Only if they are Configured as Enable at Settings ...
void XEU5EnableLongSignallers()
{
//
// XTD ...
if (xEU5MXTDEnableSignaller)
{
xEU5MXTDAllowLongSignals =
xEU5XTDAllowLongSignals
? true
: xEU5MXTDAllowLongSignals;
}
//
// XTAM ...
if (xEU5MXTAMEnableSignaller)
{
xEU5MXTAMAllowLongSignals =
xEU5XTAMAllowLongSignals
? true
: xEU5MXTAMAllowLongSignals;
}
//
// XSI ...
if (xEU5MXSIEnableSignaller)
{
xEU5MXSIAllowLongSignals =
xEU5XSIAllowLongSignals
? true
: xEU5MXSIAllowLongSignals;
}
//
// XSTFI ...
if (xEU5MXSTFIEnableSignaller)
{
xEU5MXSTFIAllowLongSignals =
xEU5XSTFIAllowLongSignals
? true
: xEU5MXSTFIAllowLongSignals;
}
//
// XOBDLH ...
if (xEU5MXOBDLHEnableSignaller)
{
xEU5MXOBDLHAllowLongSignals =
xEU5XOBDLHAllowLongSignals
? true
: xEU5MXOBDLHAllowLongSignals;
}
//
// XCHMACC ...
if (xEU5MXCHMACCEnableSignaller)
{
xEU5MXCHMACCAllowLongSignals =
xEU5XCHMACCAllowLongSignals
? true
: xEU5MXCHMACCAllowLongSignals;
}
//
// XCHMAMX ...
if (xEU5MXCHMACMXEnableSignaller)
{
xEU5MXCHMACMXAllowLongSignals =
xEU5XCHMACMXAllowLongSignals
? true
: xEU5MXCHMACMXAllowLongSignals;
}
//
// XCHMAMN ...
if (xEU5MXCHMACMNEnableSignaller)
{
xEU5MXCHMACMNAllowLongSignals =
xEU5XCHMACMNAllowLongSignals
? true
: xEU5MXCHMACMNAllowLongSignals;
}
}
//
// Disable All Signallers Shorts ...
void XEUDisableShortSignallers()
{
//
// XTD ...
if (xEU5MXTDEnableSignaller)
{
xEU5MXTDAllowShortSignals = false;
}
//
// XTAM ...
if (xEU5MXTAMEnableSignaller)
{
xEU5MXTAMAllowShortSignals = false;
}
//
// XSI ...
if (xEU5MXSIEnableSignaller)
{
xEU5MXSIAllowShortSignals = false;
}
//
// XSTFI ...
if (xEU5MXSTFIEnableSignaller)
{
xEU5MXSTFIAllowShortSignals = false;
}
//
// XOBDLH ...
if (xEU5MXOBDLHEnableSignaller)
{
xEU5MXOBDLHAllowShortSignals = false;
}
//
// XCHMACC ...
if (xEU5MXCHMACCEnableSignaller)
{
xEU5MXCHMACCAllowShortSignals = false;
}
//
// XCHMAMX ...
if (xEU5MXCHMACMXEnableSignaller)
{
xEU5MXCHMACMXAllowShortSignals = false;
}
//
// XCHMAMN ...
if (xEU5MXCHMACMNEnableSignaller)
{
xEU5MXCHMACMNAllowShortSignals = false;
}
}
//
// Enable All Signallers Shorts ...
// Only if they are Configured as Enable at Settings ...
void XEUEnableShortSignallers()
{
//
// XTD ...
if (xEU5MXTDEnableSignaller)
{
xEU5MXTDAllowShortSignals =
xEU5XTDAllowShortSignals
? true
: xEU5MXTDAllowShortSignals;
}
//
// XTAM ...
if (xEU5MXTAMEnableSignaller)
{
xEU5MXTAMAllowShortSignals =
xEU5XTAMAllowShortSignals
? true
: xEU5MXTAMAllowShortSignals;
}
//
// XSI ...
if (xEU5MXSIEnableSignaller)
{
xEU5MXSIAllowShortSignals =
xEU5XSIAllowShortSignals
? true
: xEU5MXSIAllowShortSignals;
}
//
// XSTFI ...
if (xEU5MXSTFIEnableSignaller)
{
xEU5MXSTFIAllowShortSignals =
xEU5XSTFIAllowShortSignals
? true
: xEU5MXSTFIAllowShortSignals;
}
//
// XOBDLH ...
if (xEU5MXOBDLHEnableSignaller)
{
xEU5MXOBDLHAllowShortSignals =
xEU5XOBDLHAllowShortSignals
? true
: xEU5MXOBDLHAllowShortSignals;
}
//
// XCHMACC ...
if (xEU5MXCHMACCEnableSignaller)
{
xEU5MXCHMACCAllowShortSignals =
xEU5XCHMACCAllowShortSignals
? true
: xEU5MXCHMACCAllowShortSignals;
}
//
// XCHMAMX ...
if (xEU5MXCHMACMXEnableSignaller)
{
xEU5MXCHMACMXAllowShortSignals =
xEU5XCHMACMXAllowShortSignals
? true
: xEU5MXCHMACMXAllowShortSignals;
}
//
// XCHMAMN ...
if (xEU5MXCHMACMNEnableSignaller)
{
xEU5MXCHMACMNAllowShortSignals =
xEU5XCHMACMNAllowShortSignals
? true
: xEU5MXCHMACMNAllowShortSignals;
}
}
//
// XTD Long Signal Checking ...
bool XEU5XTDHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXTDEnableSignaller ||
!xEU5MXTDAllowLongSignals)
{
return result;
}
//
result =
//
xEU5Conditions.isXTDSignalCrossedOverBear &&
//
!xEU5Conditions.isXLHHighAttachedHH &&
!xEU5Conditions.isXLHPriceInSignalRange &&
//
!xEU5Conditions.isXCHMAMCPeak &&
!xEU5Conditions.isXCHMALCPeak &&
!xEU5Conditions.isXCHMAMCFastUnderSlow &&
!xEU5Conditions.isXCHMALCFastUnderSlow &&
!xEU5Conditions.isXCHMAMCFastCrossedUnderSlow &&
!xEU5Conditions.isXCHMALCFastCrossedUnderSlow
//
&&
//
!(
//
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCUnderMax
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXLHPriceOverSignal
//
)
//
&&
//
!(
//
xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMAMCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBearishVale &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXTDSignalCrossedOverBear &&
xEU5Conditions.isXCHMASCFastCrossedUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXTDSignalCrossedOverBear &&
xEU5Conditions.isXLHPriceCrossedOverSignal
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XTD Short Signal Checking ...
bool XEU5XTDHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXTDEnableSignaller ||
!xEU5MXTDAllowShortSignals)
{
return result;
}
//
result =
//
xEU5Conditions.isXTDSignalCrossedUnderBear
//
&&
//
!xEU5Conditions.isXLHLowAttachedLL &&
!xEU5Conditions.isXLHPriceInSignalRange &&
//
!xEU5Conditions.isXCHMAMCVale &&
!xEU5Conditions.isXCHMALCVale &&
!xEU5Conditions.isXCHMAMCFastOverSlow &&
!xEU5Conditions.isXCHMALCFastOverSlow &&
!xEU5Conditions.isXCHMAMCFastCrossedOverSlow &&
!xEU5Conditions.isXCHMALCFastCrossedOverSlow
//
&&
//
!(
//
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastUnderSlow
//
)
//
&&
!(
//
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin
//
)
//
&&
!(
//
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCUnderMin &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXTDSignalCrossedUnderBear
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBearish &&
xEU5Conditions.isXLHHHDecreased &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXTDSignalCrossedUnderBear &&
xEU5Conditions.isXLHPriceCrossedUnderSignal &&
xEU5Conditions.isXCHMASCFastCrossedUnderSlow
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XTAM Long Signal Checking ...
bool XEU5XTAMHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXTAMEnableSignaller ||
!xEU5MXTAMAllowLongSignals)
{
return result;
}
//
result =
//
xAMAMaBuffer[1] > xTMMaBuffer[1] &&
xAMAMaBuffer[2] > xTMMaBuffer[2]
//
&&
//
xEU5Conditions.isXAMABullish
//
&&
//
xEU5Conditions.isXTMBullish
//
&&
//
xEU5Conditions.isXLHLLSameInLength
//
&&
//
xEU5Conditions.isXFIOverZero
//
&&
//
xEU5Conditions.isXTSCurrentMax
//
&&
//
xEU5Conditions.isXTSCurrentOverFarest
//
&&
//
xEU5Conditions.isXCHMASCUnderMax
//
&&
//
!xEU5Conditions.isXOBDSwingLow
//
&&
//
!xEU5Conditions.isXTDSignalCrossedUnderBear
//
&&
//
!(
//
(
//
(
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastUnderSlow)
//
&&
//
(
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastUnderSlow)
)
//
||
//
(
//
(
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMASCFastUnderSlow)
//
&&
//
(
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastUnderSlow)
//
&&
//
(
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
&&
//
(
//
(
xEU5Conditions.isXCHMASCFastOverSlow
? !xEU5Conditions.isXCHMASCTrendsDown
: true)
//
||
//
(
xEU5Conditions.isXCHMAMCFastOverSlow
? !xEU5Conditions.isXCHMAMCTrendsDown
: true)
//
||
//
(
xEU5Conditions.isXCHMALCFastOverSlow
? !xEU5Conditions.isXCHMALCTrendsDown
: true)
//
)
//
&&
//
(
//
(xEU5Conditions.isXLHHHSameInLength ||
xEU5Conditions.isXLHLLSameInLength)
? !(
xEU5Conditions.isXLHPriceInSignalRange ||
xEU5Conditions.isXLHPriceUnderSignal)
: true
//
)
//
&&
//
(
//
xEU5Conditions.isXTSCurrentMax ||
xEU5Conditions.isXFICrossedOverZero ||
(xEU5Conditions.isXTSCurrentOverNearest ||
xEU5Conditions.isXTSCurrentCrossedOverNearest) ||
(xEU5Conditions.isXTSCurrentOverMediest ||
xEU5Conditions.isXTSCurrentCrossedOverMediest)
? (!xEU5Conditions.isXLHPriceOverSignal &&
!xEU5Conditions.isXLHPriceUnderSignal &&
!xEU5Conditions.isXLHPriceInSignalRange &&
!xEU5Conditions.isXLHPriceCrossedOverSignal &&
!xEU5Conditions.isXLHPriceCrossedUnderSignal
? !(
(
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength)
//
||
//
(
xEU5Conditions.isXLHHHDecreased &&
xEU5Conditions.isXLHLLSameInLength)
//
)
: true) &&
(xEU5Conditions.isXLHPriceInSignalRange
? !xEU5Conditions.isXLHHighAttachedHH
: true) &&
(xEU5Conditions.isXLHPriceUnderSignal
? !(xEU5Conditions.isXLHHHDecreased &&
xEU5Conditions.isXLHLLSameInLength)
: true) &&
((xEU5Conditions.isXLHPriceOverSignal ||
xEU5Conditions.isXLHPriceCrossedOverSignal)
? !(
//
(
(
xEU5Conditions.isXLHLLDecreased ||
xEU5Conditions.isXLHHHDecreased ||
xEU5Conditions.isXLHHHSameInLength ||
xEU5Conditions.isXLHHighAttachedHH) &&
xEU5Conditions.isXLHLLSameInLength)
//
||
//
(
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength)
//
||
//
(
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHMCLCLLSame)
//
||
//
(xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXRSICrossedUnderShortEntry &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastUnderSlow)
//
)
: true)
: true
//
)
//
&&
//
(
//
xEU5Conditions.isXLHLLSameInLength &&
(xEU5Conditions.isXTSCurrentOverNearest ||
xEU5Conditions.isXTSCurrentOverMediest)
? !(xEU5Conditions.isXLHPriceOverSignal ||
xEU5Conditions.isXLHPriceCrossedOverSignal)
: true
//
)
//
&&
//
// False Positives ...
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXTSCurrentMax &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTMStartBullish &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXAMAStartBullish &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMASCCrossedUnderMax
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTSCurrentMax &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXLHLLSameInLength &&
(
//
xEU5Conditions.isXLHHHIncreased ||
xEU5Conditions.isXLHHighAttachedHH
//
)
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXCHMASCFastCrossedOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCUnderMin &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXTSCurrentOverFarest &&
xEU5Conditions.isXTSCurrentOverMediest
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXTDBearishVale &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXLHPriceCrossedOverSignal
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXTSCurrentMax &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXFICrossedOverZero &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXTSCurrentOverNearest &&
xEU5Conditions.isXTSCurrentOverMediest &&
xEU5Conditions.isXTDSignalCrossedOverBear &&
xEU5Conditions.isXTSCurrentCrossedOverNearest &&
xEU5Conditions.isXTSCurrentCrossedOverMediest
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTSCurrentMax &&
xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCUnderMin &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXFICrossedOverZero &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXTDBullCrossedOverBear &&
xEU5Conditions.isXLHPriceCrossedOverSignal &&
xEU5Conditions.isXCHMAMCFastCrossedOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXRSICrossedOverLongExit
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
(xEU5Conditions.isXTDSignalVale &&
xEU5Conditions.isXTDBullishVale &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXTDBullCrossedUnderBear)
//
||
//
((xEU5Conditions.isXCHMASCFastUnderSlow ||
xEU5Conditions.isXCHMASCFastCrossedUnderSlow) &&
(xEU5Conditions.isXCHMAMCFastUnderSlow ||
xEU5Conditions.isXCHMAMCFastCrossedUnderSlow))
//
||
//
(xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXLHLLSameInLength)
//
||
//
((xEU5Conditions.isXCHMAMCVale &&
(xEU5Conditions.isXCHMAMCFastUnderSlow ||
xEU5Conditions.isXCHMAMCFastCrossedUnderSlow)) &&
(xEU5Conditions.isXCHMALCVale &&
(xEU5Conditions.isXCHMALCFastUnderSlow ||
xEU5Conditions.isXCHMALCFastCrossedUnderSlow))
//
)
//
||
//
(xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXTDSignalUnderBear)
//
||
//
(xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCUnderMax)
//
)
//
&&
//
// Funded ...
!(
//
(xEU5Conditions.isXCHMALCPeak &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXLHPriceOverSignal &&
(xEU5Conditions.isXCHMAMCFastUnderSlow ||
xEU5Conditions.isXCHMAMCFastCrossedUnderSlow))
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XTAM Short Signal Checking ...
bool XEU5XTAMHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXTAMEnableSignaller ||
!xEU5MXTAMAllowShortSignals)
{
return result;
}
//
result =
//
xAMAMaBuffer[1] < xTMMaBuffer[1] &&
xAMAMaBuffer[2] < xTMMaBuffer[2]
//
&&
//
xEU5Conditions.isXAMABearish
//
&&
//
xEU5Conditions.isXTMBearish
//
&&
//
xEU5Conditions.isXFIUnderZero
//
&&
//
xEU5Conditions.isXTSCurrentMin
//
&&
//
xEU5Conditions.isXTSCurrentUnderFarest
//
&&
//
!xEU5Conditions.isXOBDSwingHigh
//
&&
//
!(
//
xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale
//
)
//
&&
//
(
//
((xEU5Conditions.isXTSCurrentUnderNearest ||
xEU5Conditions.isXTSCurrentCrossedUnderNearest) ||
(xEU5Conditions.isXTSCurrentUnderMediest ||
xEU5Conditions.isXTSCurrentCrossedUnderMediest))
? (
//
(
//
(xEU5Conditions.isXLHPriceUnderSignal ||
xEU5Conditions.isXLHPriceInSignalRange ||
xEU5Conditions.isXLHPriceCrossedUnderSignal)
? !(
(xEU5Conditions.isXLHLowAttachedLL &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHLHSCMCLLSame)
//
||
//
(xEU5Conditions.isXLHLLDecreased &&
(xEU5Conditions.isXCHLHSCMCLLSame ||
xEU5Conditions.isXCHLHMCLCHHSame))
//
||
//
(xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXLHHHIncreased)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHLHSCMCHHSame)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXCHLHSameLLs ||
xEU5Conditions.isXLHLowAttachedLL ||
xEU5Conditions.isXLHHHSameInLength)
//
||
//
(xEU5Conditions.isXLHLLSameInLength &&
//
(
//
xEU5Conditions.isXLHHHSameInLength
//
||
//
(xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow)
//
||
//
(xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCUnderMax)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
(xEU5Conditions.isXLHHHDecreased ||
xEU5Conditions.isXCHMALCPeak))
//
||
//
(xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
(xEU5Conditions.isXCHMALCPeak ||
xEU5Conditions.isXCHMASCFastOverSlow))
//
||
//
(xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXTDBullCrossedUnderBear)
//
||
//
(xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
(xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
: (xEU5Conditions.isXLHPriceOverSignal ||
xEU5Conditions.isXLHPriceCrossedOverSignal)
? (
!(
xEU5Conditions.isXCHLHSameHHs
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHLHSCMCHHSame)
//
||
//
(xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXLHLLIncreased)
//
||
//
(xEU5Conditions.isXLHLLSameInLength &&
(xEU5Conditions.isXLHHHSameInLength
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
)
//
)
//
||
//
(xEU5Conditions.isXLHHHSameInLength &&
(
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
(
xEU5Conditions.isXLHLLSameInLength &&
(
//
(xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow)
//
))
//
)
//
)
: (
!xEU5Conditions.isXLHPriceOverSignal &&
!xEU5Conditions.isXLHPriceUnderSignal &&
!xEU5Conditions.isXLHPriceInSignalRange &&
!xEU5Conditions.isXLHPriceCrossedOverSignal &&
!xEU5Conditions.isXLHPriceCrossedUnderSignal)
? !(
//
(xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength)
//
||
//
(xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
)
: true)
//
)
: true
//
)
//
&&
//
(
//
(
(xEU5Conditions.isXTDBullOverBear ||
(xEU5Conditions.isXTDBullUnderBear ||
xEU5Conditions.isXTDBullCrossedUnderBear)) &&
(xEU5Conditions.isXTDSignalUnderBear ||
xEU5Conditions.isXTDSignalCrossedUnderBear))
? !(
(xEU5Conditions.isXTMVale &&
xEU5Conditions.isXAMAVale)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXLHLLSameInLength)
//
||
//
(xEU5Conditions.isXTDSignalVale &&
xEU5Conditions.isXTDBullishVale &&
xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXLHHHSameInLength)
//
||
//
(xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHPriceCrossedUnderSignal)
//
)
: true
//
)
//
&&
//
(
//
(xEU5Conditions.isXLHPriceUnderSignal ||
xEU5Conditions.isXLHPriceCrossedUnderSignal)
? !(
//
(xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
(xEU5Conditions.isXLHLowAttachedLL &&
xEU5Conditions.isXCHLHSameHHs)
//
||
//
(
xEU5Conditions.isXLHHHSameInLength &&
(
//
(xEU5Conditions.isXLHLLSameInLength &&
//
(
(xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
(xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
||
//
(xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHLHMCLCHHSame)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
||
//
(xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXLHLowAttachedLL)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
(
//
xEU5Conditions.isXCHMAMCVale
//
||
//
xEU5Conditions.isXCHMASCFastOverSlow
//
)
//
)
//
||
//
xEU5Conditions.isXCHLHSameLLs
//
||
//
(xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
(xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXRSICrossedOverLongExit &&
xEU5Conditions.isXLHPriceCrossedUnderSignal)
//
)
: xEU5Conditions.isXLHPriceInSignalRange
? (
//
(
xEU5Conditions.isXLHHHSameInLength
? !(
//
xEU5Conditions.isXCHLHSameLLs
//
||
//
(xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXTDSignalVale ||
xEU5Conditions.isXLHLLSameInLength)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
||
//
// Funded ...
(
//
(xEU5Conditions.isXTMVale &&
xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
((xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
: true
//
)
//
)
: (xEU5Conditions.isXLHPriceOverSignal ||
xEU5Conditions.isXLHPriceCrossedOverSignal)
? !(
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXLHHHSameInLength &&
(
//
xEU5Conditions.isXLHLLSameInLength
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
: true
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHPriceInSignalRange &&
xEU5Conditions.isXTSCurrentCrossedUnderFarest
//
)
//
&&
//
// False Positives ...
!(
((xEU5Conditions.isXTSCurrentUnderNearest ||
xEU5Conditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(xEU5Conditions.isXTSCurrentUnderMediest ||
xEU5Conditions.isXTSCurrentCrossedUnderMediest)
//
)
//
? (xEU5Conditions.isXLHPriceInSignalRange
? (
//
(xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCUnderMax)
//
||
//
(xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
(xEU5Conditions.isXLHLLSameInLength &&
(
//
xEU5Conditions.isXFICrossedUnderZero
//
||
//
(xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
||
//
(xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
(xEU5Conditions.isXLHHHDecreased ||
//
(
//
xEU5Conditions.isXCHMAMCFastOverSlow ||
//
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow)
//
||
//
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow)
//
)
//
||
//
(xEU5Conditions.isXTMBearish &&
xEU5Conditions.isXAMABearish &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXTDSignalCrossedUnderBear)
//
)
//
||
//
(xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXTSCurrentCrossedUnderFarest &&
xEU5Conditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
: (xEU5Conditions.isXLHPriceOverSignal ||
xEU5Conditions.isXLHPriceCrossedOverSignal)
? (
//
(xEU5Conditions.isXLHHHSameInLength &&
//
(
//
xEU5Conditions.isXTMVale
//
||
//
xEU5Conditions.isXTDSignalCrossedUnderBear
//
||
//
(xEU5Conditions.isXCHLHMCLCHHSame &&
(xEU5Conditions.isXCHMAMCPeak ||
xEU5Conditions.isXCHMAMCFastOverSlow))
//
||
//
(xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
||
//
(xEU5Conditions.isXTDSignalVale &&
xEU5Conditions.isXTDBullishVale)
//
||
//
(xEU5Conditions.isXCHMASCVale &&
(xEU5Conditions.isXCHMALCVale ||
xEU5Conditions.isXCHMASCFastOverSlow))
//
||
//
(xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXLHLLIncreased)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXCHMALCFastUnderSlow)
//
||
//
(!xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsDown &&
!xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXCHMASCCrossedUnderMax)
//
)
//
)
//
||
//
(xEU5Conditions.isXLHLLSameInLength &&
(
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXLHHHDecreased)
//
||
//
(xEU5Conditions.isXTDSignalVale &&
xEU5Conditions.isXTDBullishVale)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
||
//
(xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCUnderMax)
//
||
//
(xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale)
//
)
//
: (xEU5Conditions.isXLHPriceUnderSignal ||
xEU5Conditions.isXLHPriceCrossedUnderSignal)
? (
//
(xEU5Conditions.isXLHLLSameInLength &&
(
//
xEU5Conditions.isXCHLHSCMCHHSame
//
||
//
xEU5Conditions.isXCHMAMCFastOverSlow
//
||
//
xEU5Conditions.isXRSICrossedUnderShortExit
//
||
//
(xEU5Conditions.isXTDSignalVale &&
xEU5Conditions.isXTDBullishVale)
//
||
//
(xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
((xEU5Conditions.isXCHMALCPeak ||
xEU5Conditions.isXCHMAMCVale) &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
)
//
)
//
||
//
(xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin)
//
||
//
(xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHSCMCLLSame)
//
)
//
// XLH Price False ...
:
//
// Funed ...
(
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(
xEU5Conditions.isXCHLHMCLCHHSame &&
xEU5Conditions.isXLHHHSameInLength)
//
||
//
(
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
)
//
)
//
// Just Current XTS Min and Farest ...
: (xEU5Conditions.isXLHPriceInSignalRange
? (
//
(xEU5Conditions.isXLHHHSameInLength &&
(
//
xEU5Conditions.isXCHMASCFastOverSlow
//
||
//
(xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
||
//
(xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXCHLHMCLCHHSame)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
||
//
(xEU5Conditions.isXLHLLSameInLength &&
(
//
(xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXLHHHDecreased &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXTDSignalCrossedUnderBear &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
)
//
)
//
)
//
: (xEU5Conditions.isXLHPriceOverSignal ||
xEU5Conditions.isXLHPriceCrossedOverSignal)
? (
//
(
xEU5Conditions.isXLHLLSameInLength &&
(
//
xEU5Conditions.isXCHLHMCLCLLSame
//
||
//
xEU5Conditions.isXFICrossedUnderZero
//
||
//
(xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCUnderMax)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
))
//
)
//
: (
xEU5Conditions.isXLHPriceUnderSignal ||
xEU5Conditions.isXLHPriceCrossedUnderSignal)
? (
//
(
//
(xEU5Conditions.isXLHHHSameInLength &&
(
//
(xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHSCMCLLSame)
//
||
//
(xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin)
//
||
//
(xEU5Conditions.isXCHLHMCLCHHSame &&
xEU5Conditions.isXFICrossedUnderZero)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
(xEU5Conditions.isXLHLLSameInLength &&
(
//
(xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHLHMCOnTopOfLC)
//
||
//
((xEU5Conditions.isXCHMALCPeak ||
xEU5Conditions.isXCHMAMCVale) &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXTDBullOverBear)
//
||
//
((xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCUnderMax)
//
)
//
)
//
||
//
(
(xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength) &&
(
//
xEU5Conditions.isXLHHHDecreased
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
(xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCUnderMax)
//
)
//
)
//
||
//
(xEU5Conditions.isXLHHHDecreased &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
(xEU5Conditions.isXTDSignalVale &&
xEU5Conditions.isXTDBullishVale)
//
||
//
(xEU5Conditions.isXCHLHSameLLs &&
xEU5Conditions.isXLHLowAttachedLL)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale)
//
)
//
)
//
// XLH Price Falses ...
: (
//
(xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXCHLHSCMCHHSame)
//
||
//
(xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
||
//
((xEU5Conditions.isXTMBearish ||
xEU5Conditions.isXTMStartBearish) &&
(xEU5Conditions.isXAMABearish ||
xEU5Conditions.isXAMAStartBearish) &&
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale) &&
xEU5Conditions.isXLHLLIncreased &&
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow))
//
)
//
)
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XSI Long Signal Checking ...
bool XEU5XSIHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXSIEnableSignaller ||
!xEU5MXSIAllowLongSignals)
{
return result;
}
//
result =
//
xEU5Conditions.isXRSICrossedOverLongEntry &&
xRSIBuffer[3] < xRSILongEntryValue
//
&&
//
!(
//
xEU5Conditions.isXTMVale &&
xEU5Conditions.isXCHMASCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin
//
)
//
&&
//
(
//
xEU5Conditions.isXCHMASCUnderMin
? !(
//
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMASCFastUnderSlow
//
) &&
!(
//
xEU5Conditions.isXTMVale &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMAMCFastUnderSlow
//
)
: true
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCVale ||
xEU5Conditions.isXCHMASCFastCrossedUnderSlow
//
)
//
&&
//
(
//
xEU5Conditions.isXCHMAMCFastOverSlow
? !xEU5Conditions.isXCHMAMCTrendsDown
: true
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMVale &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCPeak
//
)
//
&&
//
(
//
xEU5Conditions.isXCHMASCUnderMin
? !(
//
xEU5Conditions.isXTMVale &&
xEU5Conditions.isXTDBearishVale &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength
//
)
: true
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXLHHHDecreased &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHLHSameLLs &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMVale &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXTMEndBearishByNeutural
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHLHSameLLs &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHLHSCLCLLSame &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCUnderMin &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXLHPriceInSignalRange &&
xEU5Conditions.isXCHMASCFastCrossedOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHLHSameLLs &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHLHSCLCLLSame &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCUnderMin &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXCHMASCFastCrossedOverSlow
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XSI Short Signal Checking ...
bool XEU5XSIHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXSIEnableSignaller ||
!xEU5MXSIAllowShortSignals)
{
return result;
}
//
result =
//
xEU5Conditions.isXRSICrossedUnderShortEntry &&
xRSIBuffer[3] > xRSIShortEntryValue &&
!xEU5Conditions.isXOBDSwingHigh
//
&&
//
!(
//
(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak
//
)
//
||
//
(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak
//
)
//
||
//
(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMAMCPeak
//
)
//
||
//
(
//
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXTDSignalCrossedOverBear
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXCHLHSameLLs &&
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXCHMASCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXTDSignalOverBear
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXCHLHSameLLs &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXLHPriceCrossedOverSignal
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHSCLCHHSame &&
xEU5Conditions.isXCHLHMCLCHHSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXLHPriceInSignalRange
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBearish &&
xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHSCLCHHSame &&
xEU5Conditions.isXCHLHMCLCHHSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXLHPriceInSignalRange &&
xEU5Conditions.isXLHPriceCrossedUnderSignal &&
xEU5Conditions.isXCHMASCFastCrossedUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXTDSignalCrossedOverBear
//
)
//
&&
//
!(
//
xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXLHPriceCrossedUnderSignal &&
xEU5Conditions.isXCHMASCFastCrossedUnderSlow
//
)
//
&&
//
!(
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTDSignalVale &&
xEU5Conditions.isXTDBullishVale &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXTDBullCrossedUnderBear &&
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow))
//
||
//
((xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXAMABullish &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXTDSignalOverBear) ||
(xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceOverSignal) ||
((xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow)))
//
||
//
(xEU5Conditions.isXTSCurrentMax &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength)
//
||
//
((xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XSTFI Long Signal Checking ...
bool XEU5XSTFIHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXSTFIEnableSignaller ||
!xEU5MXSTFIAllowLongSignals)
{
return result;
}
//
result =
//
// Base Condition ...
XTSGetMinValue(1) == xTSFarestBuffer[1] &&
(xEU5Conditions.isXTSCurrentOverFarest ||
xEU5Conditions.isXTSCurrentCrossedOverFarest) &&
(xTSCurrentBuffer[1] < xTSNearestBuffer[1] ||
xTSCurrentBuffer[1] < xTSMediestBuffer[1]) &&
!(xEU5Conditions.isXTSCurrentUnderNearest ||
xEU5Conditions.isXTSCurrentCrossedUnderNearest)
//
&&
//
// Check Market MA's ...
(
//
(
//
(
//
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow)
//
&&
//
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow)
//
&&
//
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow)
//
)
//
)
//
&&
//
(
//
!(xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
&&
//
!(xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCUnderMax)
//
&&
//
!(xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin)
//
)
//
// End of Check MA's ...
)
//
&&
//
// Check XTS ...
(
//
!(
//
(xEU5Conditions.isXTSCurrentUnderNearest &&
xEU5Conditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(xEU5Conditions.isXTSCurrentUnderMediest &&
xEU5Conditions.isXTSCurrentCrossedUnderMediest)
//
)
//
// End Of Check XTS ...
)
//
&&
//
// Check XLH ...
(
//
// Based On Price ...
!(
//
// Signal Range ...
(
//
xEU5Conditions.isXLHPriceInSignalRange &&
(
//
((xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength) &&
(
//
xEU5Conditions.isXCHMALCPeak
//
)
//
)
//
||
//
(xEU5Conditions.isXLHLLSameInLength &&
(
//
(xEU5Conditions.isXTMStartBearish &&
xEU5Conditions.isXAMAStartBearish &&
xEU5Conditions.isXFICrossedOverZero)
//
||
//
(((xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow) ||
xEU5Conditions.isXCHMALCPeak) &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
)
//
)
//
||
//
(xEU5Conditions.isXLHHHSameInLength &&
//
(
//
((xEU5Conditions.isXCHMASCTrendsDown &&
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow)) &&
(xEU5Conditions.isXCHMAMCTrendsDown &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow)))
//
||
//
(xEU5Conditions.isXAMABullish &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXOBDSwingHigh &&
xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
(
//
((xEU5Conditions.isXCHMASCPeak ||
xEU5Conditions.isXCHMAMCPeak) &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXFICrossedOverZero &&
xEU5Conditions.isXTDSignalCrossedOverBear)
//
||
//
(xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHLHMCLCHHSame &&
xEU5Conditions.isXLHHHSameInLength)
//
||
//
(xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXTDBearishVale)
//
))
//
)
//
||
//
// Under Signal ...
(
//
(xEU5Conditions.isXLHPriceUnderSignal ||
xEU5Conditions.isXLHPriceCrossedUnderSignal) &&
(
//
(xEU5Conditions.isXLHHHSameInLength &&
(
//
((xEU5Conditions.isXCHMAMCVale ||
xEU5Conditions.isXCHMAMCPeak ||
xEU5Conditions.isXFICrossedUnderZero) &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural)
//
||
//
(xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
(xEU5Conditions.isXLHLLSameInLength &&
(
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
// Funded ...
(
//
(xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXTSCurrentOverFarest &&
xEU5Conditions.isXTSCurrentUnderMediest)
//
||
//
(xEU5Conditions.isXCHMASCTrendsDown &&
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow)))
//
)
//
)
//
||
//
((xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength) &&
(
//
((xEU5Conditions.isXCHMASCPeak ||
xEU5Conditions.isXTDBearishVale ||
xEU5Conditions.isXCHLHMCLCHHSame ||
(xEU5Conditions.isXTMBearish &&
xEU5Conditions.isXAMABearish) ||
(xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow)) &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXCHLHMCLCHHSame &&
(xEU5Conditions.isXFICrossedOverZero ||
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXCHMAMCTrendsDown)))
//
||
//
(xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
||
//
// Over Signal ...
(
//
(xEU5Conditions.isXLHPriceOverSignal ||
xEU5Conditions.isXLHPriceCrossedOverSignal) &&
(
//
((xEU5Conditions.isXCHMASCPeak ||
xEU5Conditions.isXCHMAMCPeak) &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength)
//
||
//
(xEU5Conditions.isXLHLLSameInLength &&
//
(
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural &&
xEU5Conditions.isXLHHHDecreased)
//
)
//
)
//
)
//
)
//
||
//
// Price Nothing ...
(
//
(
!xEU5Conditions.isXLHPriceOverSignal &&
!xEU5Conditions.isXLHPriceUnderSignal &&
!xEU5Conditions.isXLHPriceInSignalRange &&
!xEU5Conditions.isXLHPriceCrossedOverSignal &&
!xEU5Conditions.isXLHPriceCrossedUnderSignal) &&
(
//
(xEU5Conditions.isXLHHHSameInLength &&
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
)
//
)
//
)
//
// End Based On Price Check ...
)
//
// End Of Check XLH ...
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XSTFI Short Signal Checking ...
bool XEU5XSTFIHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXSTFIEnableSignaller ||
!xEU5MXSTFIAllowShortSignals)
{
return result;
}
//
result =
//
// Base Conditions ...
XTSGetMaxValue(1) == xTSFarestBuffer[1] &&
(xEU5Conditions.isXTSCurrentUnderFarest ||
xEU5Conditions.isXTSCurrentCrossedUnderFarest) &&
(xTSCurrentBuffer[1] > xTSNearestBuffer[1] ||
xTSCurrentBuffer[1] > xTSMediestBuffer[1]) &&
!(xEU5Conditions.isXTSCurrentOverNearest ||
xEU5Conditions.isXTSCurrentCrossedOverNearest)
//
&&
//
// XOBD Check ...
!xEU5Conditions.isXOBDSwingHigh
//
&&
//
// XCHMA Check ...
(
//
!(xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCUnderMax)
//
&&
//
!(xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin)
//
&&
//
!(xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale)
//
)
//
&&
//
// XLH Prices ...
(
//
!(
//
// Signal Range ...
(xEU5Conditions.isXLHPriceInSignalRange &&
//
(
//
(xEU5Conditions.isXLHLLSameInLength &&
//
(
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural)
//
||
(xEU5Conditions.isXTMVale &&
xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXTMEndBearish)
//
||
//
(xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXAMAEndBullish &&
xEU5Conditions.isXLHLLDecreased)
//
||
//
(xEU5Conditions.isXCHMASCTrendsUp &&
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow))
//
||
//
((xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMALCVale) &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(xEU5Conditions.isXLHHHDecreased &&
xEU5Conditions.isXCHLHMCLCLLSame)
//
||
//
(xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
((xEU5Conditions.isXTMBullish ||
xEU5Conditions.isXTMStartBullish) &&
(xEU5Conditions.isXAMABullish ||
xEU5Conditions.isXAMAStartBullish))
//
)
//
)
//
||
//
(xEU5Conditions.isXLHHHSameInLength &&
//
(
//
(xEU5Conditions.isXTMVale &&
xEU5Conditions.isXAMAVale)
//
||
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXAMABullish)
//
||
//
(xEU5Conditions.isXCHLHSameLLs &&
xEU5Conditions.isXTDBearishVale)
//
||
//
// Funded ...
(
//
(
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXAMAEndBearish &&
xEU5Conditions.isXLHHHDecreased &&
xEU5Conditions.isXFICrossedUnderZero)
//
||
//
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow)
//
)
//
)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCTrendsUp &&
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow))
//
||
//
(xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXLHLLIncreased)
//
||
//
((xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
xEU5Conditions.isXCHMAMCPeak
//
||
//
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow)
//
||
//
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow)
//
)
//
)
//
)
//
)
//
||
//
((xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength) &&
//
(
//
(xEU5Conditions.isXAMABullish &&
xEU5Conditions.isXLHLLDecreased &&
xEU5Conditions.isXCHLHSCMCLLSame)
//
||
//
(xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTMEndBearish)
//
||
//
((xEU5Conditions.isXCHMAMCPeak ||
xEU5Conditions.isXCHMAMCVale) &&
(xEU5Conditions.isXCHMALCPeak ||
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow)))
//
||
//
((xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow) &&
((xEU5Conditions.isXTMStartBullish &&
xEU5Conditions.isXAMAEndBearish) ||
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow) ||
(xEU5Conditions.isXLHLLDecreased &&
xEU5Conditions.isXTSCurrentOverMediest &&
xEU5Conditions.isXTSCurrentUnderFarest &&
xEU5Conditions.isXTSCurrentUnderNearest)))
//
||
//
// Funded ...
(
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMABearish &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTMEndBearish &&
xEU5Conditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
||
(
//
((xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow) &&
//
(
//
xEU5Conditions.isXCHMALCPeak
//
||
//
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow)
//
||
//
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow)
//
||
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMAEndBearish &&
xEU5Conditions.isXCHLHSCMCLLSame)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTMEndBearish &&
xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXCHLHSCMCHHSame)
//
)
//
)
//
||
//
((xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow) &&
(
//
xEU5Conditions.isXCHMALCPeak
//
)
//
)
//
||
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural &&
xEU5Conditions.isXTDBullCrossedOverBear)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHLHSameLLs)
//
)
//
)
//
)
//
||
//
// Under Signal ...
((xEU5Conditions.isXLHPriceUnderSignal ||
xEU5Conditions.isXLHPriceCrossedUnderSignal) &&
//
(
//
(xEU5Conditions.isXLHLLSameInLength &&
//
(
//
(xEU5Conditions.isXTMBearish &&
xEU5Conditions.isXAMABearish)
//
||
//
(xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXTDBearishVale)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
(xEU5Conditions.isXCHMALCVale ||
xEU5Conditions.isXAMAVale ||
xEU5Conditions.isXTMBullish ||
xEU5Conditions.isXCHLHSCMCLLSame ||
xEU5Conditions.isXFICrossedOverZero))
//
||
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural &&
xEU5Conditions.isXFICrossedUnderZero)
//
||
//
((xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((xEU5Conditions.isXCHMALCPeak ||
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow)) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
)
//
)
//
||
//
(xEU5Conditions.isXLHHHSameInLength &&
//
(
//
(xEU5Conditions.isXCHMASCVale &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastOverSlow))
//
||
//
(xEU5Conditions.isXLHLLDecreased &&
xEU5Conditions.isXCHLHSCMCLLSame)
//
||
//
(xEU5Conditions.isXTMVale &&
xEU5Conditions.isXAMAVale)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXCHLHSCMCHHSame &&
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow))
//
||
//
((xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
((xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(xEU5Conditions.isXCHLHSCMCLLSame &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHLHMCLCHHSame)
//
||
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural &&
xEU5Conditions.isXLHLLIncreased)
//
||
//
(xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXCHLHMCLCHHSame &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
)
//
)
//
||
//
((xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength) &&
//
(
//
xEU5Conditions.isXTDBearishVale
//
||
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
||
//
((xEU5Conditions.isXTMVale ||
xEU5Conditions.isXLHLLDecreased) &&
xEU5Conditions.isXAMAVale)
//
||
((xEU5Conditions.isXCHMASCVale ||
xEU5Conditions.isXCHMALCVale) &&
xEU5Conditions.isXCHMAMCVale)
//
||
//
(xEU5Conditions.isXCHLHMCLCHHSame &&
xEU5Conditions.isXCHLHMCLCLLSame)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
||
//
((xEU5Conditions.isXCHMALCPeak ||
xEU5Conditions.isXFICrossedUnderZero ||
xEU5Conditions.isXCHMAMCFastOverSlow) &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
(xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCUnderMin &&
xEU5Conditions.isXFICrossedUnderZero)
//
)
//
)
//
||
//
(
//
(xEU5Conditions.isXCHLHSCMCHHSame &&
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow))
//
||
//
(xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHLHSCMCLLSame)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHMAMCTrendsDown)
//
||
(xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXTMEndBearish &&
xEU5Conditions.isXCHLHMCLCHHSame)
//
||
//
(xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength)
//
||
//
(xEU5Conditions.isXTMVale &&
xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXLHLowAttachedLL)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHLHSCMCLLSame)
//
||
//
(xEU5Conditions.isXAMANeutural &&
(xEU5Conditions.isXTMBullish ||
xEU5Conditions.isXTMStartBullish))
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHLHSameLLs)
//
||
//
(xEU5Conditions.isXLHHHDecreased &&
(xEU5Conditions.isXLHLLDecreased ||
(xEU5Conditions.isXTMVale &&
xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural)))
//
||
//
(xEU5Conditions.isXTMBearish &&
xEU5Conditions.isXAMABearish &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHMAMCFastUnderSlow)
//
||
//
((xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow) &&
(
//
xEU5Conditions.isXCHMAMCVale
//
||
//
xEU5Conditions.isXCHMALCVale
//
||
//
xEU5Conditions.isXCHLHSameLLs
//
||
//
xEU5Conditions.isXFICrossedOverZero
//
||
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMABullish)
//
||
//
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow)
//
)
//
)
//
||
//
((xEU5Conditions.isXCHMASCVale ||
xEU5Conditions.isXLHLowAttachedLL) &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(xEU5Conditions.isXTMVale &&
xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXLHLLDecreased &&
xEU5Conditions.isXAMAStartBullish &&
xEU5Conditions.isXRSICrossedOverLongEntry)
//
||
//
(xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHLHSCMCLLSame &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXTMEndBearish &&
xEU5Conditions.isXAMAEndBearish &&
xEU5Conditions.isXCHLHSCMCLLSame &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
//
)
//
||
//
// Over Signal ...
((xEU5Conditions.isXLHPriceOverSignal ||
xEU5Conditions.isXLHPriceCrossedOverSignal) &&
//
(
//
(xEU5Conditions.isXLHLLSameInLength &&
//
(
//
((xEU5Conditions.isXCHMAMCVale ||
(xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXCHMASCVale) ||
(xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXLHPriceCrossedOverSignal)) &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXTDSignalVale &&
xEU5Conditions.isXTDBullishVale)
//
||
//
(xEU5Conditions.isXLHHHDecreased &&
xEU5Conditions.isXCHLHMCLCLLSame)
//
||
//
(xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMALCFastOverSlow)
//
||
//
(xEU5Conditions.isXAMABullish &&
xEU5Conditions.isXCHLHSCMCHHSame)
//
||
//
((xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow) ||
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
// Funded ...
(
//
(xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural &&
xEU5Conditions.isXLHLLIncreased)
//
)
//
)
//
)
//
||
//
(xEU5Conditions.isXLHHHSameInLength &&
//
(
//
(xEU5Conditions.isXTMVale &&
xEU5Conditions.isXAMAVale)
//
||
//
(xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
((xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMAMCPeak ||
xEU5Conditions.isXAMANeutural ||
xEU5Conditions.isXCHMALCVale ||
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow)))
//
||
//
(xEU5Conditions.isXTMStartBullish &&
xEU5Conditions.isXAMAStartBullish)
//
||
//
(xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCCrossedOverMax)
//
||
//
(xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXCHLHMCLCHHSame)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
(xEU5Conditions.isXCHMAMCVale ||
xEU5Conditions.isXCHMASCFastOverSlow ||
(xEU5Conditions.isXLHLLDecreased &&
xEU5Conditions.isXCHLHSCMCLLSame)))
//
||
//
(xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXAMABullish)
//
||
//
(xEU5Conditions.isXCHLHSCMCLLSame ||
xEU5Conditions.isXFICrossedUnderZero)
//
||
//
(xEU5Conditions.isXOBDSwingLow &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(((xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural) ||
(xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMALCVale)) &&
xEU5Conditions.isXCHLHMCLCHHSame)
//
||
//
(xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow)
//
||
//
(xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHLHMCLCHHSame)
//
||
//
// Funded ...
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural &&
xEU5Conditions.isXLHLLIncreased)
//
||
//
(xEU5Conditions.isXCHMALCVale &&
(xEU5Conditions.isXCHMAMCTrendsDown &&
(xEU5Conditions.isXCHMAMCFastUnderSlow ||
xEU5Conditions.isXCHMAMCFastCrossedUnderSlow)))
//
)
//
)
//
||
//
((xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength) &&
(
//
((xEU5Conditions.isXCHMASCVale ||
xEU5Conditions.isXCHMAMCPeak) &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXAMANeutural)
//
||
//
(xEU5Conditions.isXTMEndBullish &&
xEU5Conditions.isXAMAEndBullish)
//
||
//
(xEU5Conditions.isXTMStartBullish &&
xEU5Conditions.isXAMAStartBullish)
//
||
//
(xEU5Conditions.isXTMEndBearish &&
xEU5Conditions.isXAMAEndBearish)
//
||
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXAMANeutural)
//
||
//
((xEU5Conditions.isXCHMAMCPeak ||
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow)) &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
)
//
)
//
||
//
(
//
(xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXAMABullish &&
xEU5Conditions.isXLHHighAttachedHH)
//
||
//
((xEU5Conditions.isXCHMAMCPeak ||
xEU5Conditions.isXCHMASCTrendsUp ||
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow)) &&
(xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow))
//
||
//
((xEU5Conditions.isXCHMALCPeak ||
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow)) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(xEU5Conditions.isXTMEndBullish &&
xEU5Conditions.isXAMAEndBullish &&
xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXFICrossedUnderZero)
//
)
//
)
//
)
//
||
//
// Price Empty Condition ...
((!xEU5Conditions.isXLHPriceOverSignal &&
!xEU5Conditions.isXLHPriceInSignalRange &&
!xEU5Conditions.isXLHPriceUnderSignal &&
!xEU5Conditions.isXLHPriceCrossedUnderSignal &&
!xEU5Conditions.isXLHPriceCrossedOverSignal) &&
//
(
//
(xEU5Conditions.isXLHHHSameInLength &&
//
(
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXAMANeutural &&
(xEU5Conditions.isXTMEndBearish ||
xEU5Conditions.isXTMNeutural) &&
xEU5Conditions.isXLHLLIncreased)
//
||
//
(xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXAMANeutural &&
xEU5Conditions.isXAMAEndBearish)
//
||
//
((xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
||
//
// Funded ...
(
//
(xEU5Conditions.isXCHMALCPeak &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
//
)
//
||
//
(xEU5Conditions.isXLHLLSameInLength &&
//
(
//
(xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak)
//
||
//
(xEU5Conditions.isXAMAEndBearish &&
xEU5Conditions.isXLHLLDecreased &&
xEU5Conditions.isXTMStartBullish)
//
||
//
((xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
//
||
//
((xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHHHSameInLength) &&
//
(
//
(xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXAMABullish)
//
||
//
(xEU5Conditions.isXCHMAMCPeak &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXTMEndBearish &&
xEU5Conditions.isXCHLHMCLCHHSame)
//
||
//
((xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
//
)
//
)
//
)
//
);
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XOBDLH Long Signal Checking ...
bool XEU5XOBDLHHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXOBDLHEnableSignaller ||
!xEU5MXOBDLHAllowLongSignals)
{
return result;
}
//
double entry = GetEntry(X_SIGNAL_LONG);
XEU5MarketConditions conditions2 = XEU5GenerateMarketConditions(2);
//
result =
//
conditions2.isXOBDSwingLow &&
conditions2.isXLHLowAttachedLL &&
xLHLLBuffer[1] >= xLHLLBuffer[2] &&
//
(
//
xEU5Conditions.isXLHPriceUnderSignal
? entry < xLHSignalBuffer[1]
: true
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin
//
)
//
&&
//
(
//
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCFastUnderSlow
? !(
//
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
: true
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMVale &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHLLDecreased &&
xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale
//
)
//
&&
//
(
//
xEU5Conditions.isXCHMASCUnderMin
? !(
//
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale
//
)
: true
//
)
//
&&
//
(
//
xEU5Conditions.isXCHMASCUnderMin &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
? !xEU5Conditions.isXCHMASCTrendsUp
: true
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMVale &&
xEU5Conditions.isXLHHHDecreased &&
xEU5Conditions.isXCHLHSameLLs &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMAMCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHLHMCLCHHSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMASCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMASCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXLHLLDecreased &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHLHMCLCHHSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXTDBullCrossedOverBear
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XOBDLH Short Signal Checking ...
bool XEU5XOBDLHHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXOBDLHEnableSignaller ||
!xEU5MXOBDLHAllowShortSignals)
{
return result;
}
//
double entry = GetEntry(X_SIGNAL_SHORT);
XEU5MarketConditions conditions2 = XEU5GenerateMarketConditions(2);
//
result =
//
conditions2.isXOBDSwingHigh &&
conditions2.isXLHHighAttachedHH &&
//
!(
//
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMASCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
(
//
(
//
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMAMCFastOverSlow
//
) ||
(
//
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastCrossedOverSlow
//
)
//
)
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceInSignalRange &&
xEU5Conditions.isXCHMASCCrossedUnderMax
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMStartBullish &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXLHPriceCrossedOverSignal
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXLHPriceOverSignal
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXLHPriceCrossedOverSignal
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXLHPriceCrossedOverSignal
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXLHPriceCrossedOverSignal
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXTDSignalOverBear &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
// Funded ...
!(
//
(xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXAMABullish &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXTDSignalOverBear)
//
||
//
(xEU5Conditions.isXTSCurrentMax &&
(xEU5Conditions.isXTSCurrentOverFarest ||
xEU5Conditions.isXTSCurrentCrossedOverFarest) &&
(xEU5Conditions.isXTSCurrentOverNearest ||
xEU5Conditions.isXTSCurrentCrossedOverNearest) &&
(xEU5Conditions.isXTSCurrentOverMediest ||
xEU5Conditions.isXTSCurrentCrossedOverMediest))
//
||
//
(xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceOverSignal)
//
||
//
(xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCUnderMax)
//
||
//
((xEU5Conditions.isXCHMASCFastOverSlow ||
xEU5Conditions.isXCHMASCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XCHMACC Long Signal Checking ...
bool XEU5XCHMACCHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXCHMACCEnableSignaller ||
!xEU5MXCHMACCAllowLongSignals)
{
return result;
}
//
// Required Data ...
double entry = GetEntry(X_SIGNAL_LONG);
double nearHH = GetHighestHigh(3, 1);
double nearLL = GetLowestLow(3, 1);
//
bool isSharpChanged = IsSharpIncreasedChanged(
5,
1,
xTMMaBuffer);
//
bool isCandleSharpChanged = IsSharpIncreasedChanged(
5,
1,
PRICE_CLOSE);
//
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);
//
double xCHMANonSCMax3 = XCHMAGetCyclesMaxValue(3, cycles);
double xCHMANonSCMin3 = XCHMAGetCyclesMinValue(3, cycles);
//
result =
//
xCHMAScFastBuffer[1] > xCHMAScSlowBuffer[1] &&
xCHMAMcFastBuffer[1] > xCHMAMcSlowBuffer[1] &&
xCHMALcFastBuffer[1] > xCHMALcSlowBuffer[1] &&
//
xCHMAScFastBuffer[2] > xCHMAScSlowBuffer[2] &&
xCHMAMcFastBuffer[2] > xCHMAMcSlowBuffer[2] &&
xCHMALcFastBuffer[2] > xCHMALcSlowBuffer[2] &&
//
!(
//
xCHMAScFastBuffer[3] > xCHMAScSlowBuffer[3] &&
xCHMAMcFastBuffer[3] > xCHMAMcSlowBuffer[3] &&
xCHMALcFastBuffer[3] > xCHMALcSlowBuffer[3]
//
)
//
&&
//
(
//
XCHMAIsSCFastCrossedOverSlow(2)
? XCHMAGetSCTrendPower(1) <= (XCHMAGetSCTrendPower(2) * 2)
: true
//
)
//
&&
//
(
//
xEU5Conditions.isXCHMASCOverMax
? XCHMAGetSCTrendPower(2) <= (xCHMANonSCMax2 - xCHMANonSCMin2)
: true
//
)
//
&&
//
!xEU5Conditions.isXCHMAMCTrendsDown
//
&&
//
(
//
xEU5Conditions.isXCHMASCCrossedOverMax || xEU5Conditions.isXLHPriceOverSignal
? !isCandleSharpChanged
: true
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak
//
)
//
&&
//
(
//
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength
? entry < nearHH
: true
//
)
//
&&
//
(
//
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCFastOverSlow
? !xEU5Conditions.isXCHMASCTrendsDown
: true)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XCHMACC Short Signal Checking ...
bool XEU5XCHMACCHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXCHMACCEnableSignaller ||
!xEU5MXCHMACCAllowShortSignals)
{
return result;
}
//
result =
//
xCHMAScFastBuffer[1] < xCHMAScSlowBuffer[1] &&
xCHMAMcFastBuffer[1] < xCHMAMcSlowBuffer[1] &&
xCHMALcFastBuffer[1] < xCHMALcSlowBuffer[1] &&
//
xCHMAScFastBuffer[2] < xCHMAScSlowBuffer[2] &&
xCHMAMcFastBuffer[2] < xCHMAMcSlowBuffer[2] &&
xCHMALcFastBuffer[2] < xCHMALcSlowBuffer[2] &&
//
!(
//
xCHMAScFastBuffer[3] < xCHMAScSlowBuffer[3] &&
xCHMAMcFastBuffer[3] < xCHMAMcSlowBuffer[3] &&
xCHMALcFastBuffer[3] < xCHMALcSlowBuffer[3]
//
)
//
&&
//
!(
//
(
//
!xEU5Conditions.isXCHMASCTrendsUp &&
!xEU5Conditions.isXCHMASCTrendsDown
//
)
//
||
//
(
//
!xEU5Conditions.isXCHMAMCTrendsUp &&
!xEU5Conditions.isXCHMAMCTrendsDown
//
)
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHLHSameLLs &&
xEU5Conditions.isXLHLowAttachedLL &&
xEU5Conditions.isXLHPriceUnderSignal
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXLHLowAttachedLL &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
(
//
!xEU5Conditions.isXCHMALCTrendsUp &&
!xEU5Conditions.isXCHMALCTrendsDown
//
)
//
)
//
&&
//
!(
//
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceInSignalRange
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTDSignalVale &&
xEU5Conditions.isXTDBullishVale &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMVale &&
xEU5Conditions.isXTDSignalVale &&
xEU5Conditions.isXTDBullishVale
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMASCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXTMStartBullishAfterNeutural
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXTMEndBullishByNeutural &&
xEU5Conditions.isXTDSignalCrossedUnderBear
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTDSignalVale &&
xEU5Conditions.isXTDBullishVale &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHLowAttachedLL &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCUnderMin &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXLHHHIncreased &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceInSignalRange
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXLHLowAttachedLL &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCUnderMin &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXTMEndBearishByNeutural
//
)
//
&&
//
!(
//
xEU5Conditions.isXTDSignalVale &&
xEU5Conditions.isXTDBullishVale &&
xEU5Conditions.isXCHMASCUnderMin &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMASCCrossedUnderMin
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXTMEndBearishByNeutural
//
)
//
&&
//
!(
//
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXTDBullCrossedUnderBear
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXTMStartBullishAfterNeutural
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBearish &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceInSignalRange &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBearish &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCUnderMin &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
(xEU5Conditions.isXTMEndBearish &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXLHPriceUnderSignal)
//
)
//
&&
//
// Funded ...
!(
//
(xEU5Conditions.isXTMVale &&
(xEU5Conditions.isXTMBearish ||
xEU5Conditions.isXTMStartBearish) &&
xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHPriceUnderSignal)
//
||
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXFIOverZero &&
xEU5Conditions.isXAMANeutural &&
xEU5Conditions.isXTDBullOverBear)
//
||
//
(xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceOverSignal)
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XCHMACMN Long Signal Checking ...
bool XEU5XCHMACMNHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXCHMACMNEnableSignaller ||
!xEU5MXCHMACMNAllowLongSignals)
{
return result;
}
//
// Required Data ...
double entry = GetEntry(X_SIGNAL_LONG);
double nearHH = GetHighestHigh(3, 1);
double nearLL = GetLowestLow(3, 1);
//
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);
//
result =
//
xEU5Conditions.isXCHMASCCrossedOverMin &&
xCHMAScFastBuffer[2] < xCHMANonSCMin2 &&
xCHMAScSlowBuffer[2] < xCHMANonSCMin2 &&
//
(
//
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMax
? !(
//
XCHMAGetCycleMaxValue(1, X_XCHMA_CYCLE_MEDIUM) < XCHMAGetCycleMaxValue(1, X_XCHMA_CYCLE_LONG) &&
XCHMAGetCycleMinValue(1, X_XCHMA_CYCLE_MEDIUM) > XCHMAGetCycleMinValue(1, X_XCHMA_CYCLE_LONG)
//
)
: true
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXLHHighAttachedHH
//
)
//
&&
//
(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
? !xEU5Conditions.isXLHPriceInSignalRange
: true
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXLHPriceOverSignal
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown
//
)
//
&&
//
!(
//
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXRSICrossedOverLongExit
//
)
//
&&
//
!(
//
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTDBearishVale &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
&&
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHLHMCLCHHSame &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXCHMASCFastCrossedOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceOverSignal &&
xEU5Conditions.isXCHMASCCrossedOverMin &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMASCCrossedOverMin &&
xEU5Conditions.isXLHPriceCrossedOverSignal
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCOverMin &&
(xEU5Conditions.isXCHLHMCLCHHSame ||
xEU5Conditions.isXCHLHMCLCLLSame) &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXCHMASCCrossedOverMin &&
xEU5Conditions.isXCHMASCFastCrossedOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceOverSignal &&
(xEU5Conditions.isXCHMAMCVale &&
(xEU5Conditions.isXCHMAMCFastUnderSlow ||
xEU5Conditions.isXCHMAMCFastCrossedUnderSlow)) &&
(xEU5Conditions.isXCHMALCVale &&
(xEU5Conditions.isXCHMALCFastUnderSlow ||
xEU5Conditions.isXCHMALCFastCrossedUnderSlow))
//
)
//
&&
//
// Funded ...
!(
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural &&
xEU5Conditions.isXTSCurrentMax &&
xEU5Conditions.isXAMAEndBearish &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHPriceUnderSignal)
//
||
//
(xEU5Conditions.isXCHMAMCVale &&
(xEU5Conditions.isXCHMASCFastUnderSlow ||
xEU5Conditions.isXCHMASCFastCrossedUnderSlow) &&
(xEU5Conditions.isXCHMAMCFastUnderSlow ||
xEU5Conditions.isXCHMAMCFastCrossedUnderSlow))
//
||
//
(
//
xEU5Conditions.isXOBDSwingLow
//
||
//
(xEU5Conditions.isXTMNeutural &&
xEU5Conditions.isXAMANeutural &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXTDBullCrossedOverBear)
//
||
//
(xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXLHPriceInSignalRange)
//
||
//
((xEU5Conditions.isXCHMASCFastUnderSlow ||
xEU5Conditions.isXCHMASCFastCrossedUnderSlow) &&
(xEU5Conditions.isXCHMAMCFastUnderSlow ||
xEU5Conditions.isXCHMAMCFastCrossedUnderSlow))
//
)
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XCHMACMN Short Signal Checking ...
bool XEU5XCHMACMNHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXCHMACMNEnableSignaller ||
!xEU5MXCHMACMNAllowShortSignals)
{
return result;
}
//
ENUM_XCHMA_CYCLES cycles[];
Add(
X_XCHMA_CYCLE_MEDIUM,
cycles);
Add(
X_XCHMA_CYCLE_LONG,
cycles);
//
double xCHMANonSCMin2 = XCHMAGetCyclesMinValue(2, cycles);
double xCHMANonSCMin3 = XCHMAGetCyclesMinValue(3, cycles);
//
result =
//
xEU5Conditions.isXCHMASCCrossedUnderMin &&
xCHMAScFastBuffer[2] > xCHMANonSCMin2 &&
xCHMAScSlowBuffer[2] > xCHMANonSCMin2
//
&&
//
!(
//
(
//
xEU5Conditions.isXCHMASCFastCrossedOverSlow ||
(
//
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMASCFastOverSlow
//
)
//
) &&
(
//
xEU5Conditions.isXCHMAMCFastCrossedOverSlow ||
(
//
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMAMCFastOverSlow
//
)
//
) &&
(
//
xEU5Conditions.isXCHMALCFastCrossedOverSlow ||
(
//
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
)
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXCHMALCVale
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
//
(
//
(
//
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMAMCFastUnderSlow
//
) ||
(
//
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMAMCFastOverSlow
//
)
//
)
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBearish &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHLowAttachedLL &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXTDBullCrossedUnderBear
//
)
//
&&
//
!(
//
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceInSignalRange
//
)
//
&&
//
!(
//
(
//
xEU5Conditions.isXCHMASCVale ||
xEU5Conditions.isXCHMAMCVale
//
)
//
&&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXTDSignalUnderBear &&
(
//
(
//
xEU5Conditions.isXTMVale &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength
//
) ||
(
//
xEU5Conditions.isXLHLowAttachedLL &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
)
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCVale &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMALCVale &&
xEU5Conditions.isXLHHHDecreased &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
// Funded ...
!(
//
(xEU5Conditions.isXAMAVale &&
xEU5Conditions.isXCHMAMCVale &&
xEU5Conditions.isXTDBullOverBear)
//
||
//
((xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength) &&
(xEU5Conditions.isXCHLHMCLCHHSame &&
xEU5Conditions.isXCHLHMCLCLLSame) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XCHMACMX Long Signal Checking ...
bool XEU5XCHMACMXHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXCHMACMXEnableSignaller ||
!xEU5MXCHMACMXAllowLongSignals)
{
return result;
}
//
// Required Data ...
double entry = GetEntry(X_SIGNAL_LONG);
double nearHH = GetHighestHigh(3, 1);
double nearLL = GetLowestLow(3, 1);
//
ENUM_XCHMA_CYCLES cycles[];
Add(
X_XCHMA_CYCLE_MEDIUM,
cycles);
Add(
X_XCHMA_CYCLE_LONG,
cycles);
//
double xCHMANonSCMax2 = XCHMAGetCyclesMaxValue(2, cycles);
//
result =
//
xEU5Conditions.isXCHMASCCrossedOverMax &&
xCHMAScFastBuffer[2] < xCHMANonSCMax2 &&
xCHMAScSlowBuffer[2] < xCHMANonSCMax2 &&
MathAbs(xCHMANonSCMax2 - xCHMAScFastBuffer[2]) > MathAbs(xCHMAScFastBuffer[2] - xCHMAScSlowBuffer[2]) &&
MathAbs(xCHMANonSCMax2 - xCHMAScSlowBuffer[2]) > MathAbs(xCHMAScFastBuffer[2] - xCHMAScSlowBuffer[2])
//
&&
//
!(
//
xEU5Conditions.isXLHPriceInSignalRange &&
xEU5Conditions.isXLHHighAttachedHH
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
(
//
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHMCOnTopOfLC &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXLHLLSameInLength
? entry < nearHH
: true
//
)
//
&&
//
!(
//
xEU5Conditions.isXTMBullish &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXLHHighAttachedHH &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMASCCrossedOverMax &&
xEU5Conditions.isXTDSignalCrossedOverBear
//
) &&
//
!(
//
(xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXLHHHDecreased &&
xEU5Conditions.isXCHMASCOverMax &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow &&
xEU5Conditions.isXCHMASCCrossedOverMax &&
xEU5Conditions.isXLHPriceCrossedOverSignal)
//
||
//
(xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceOverSignal)
//
||
//
(xEU5Conditions.isXCHMASCPeak &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMALCTrendsDown)
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// XCHMACMX Short Signal Checking ...
bool XEU5XCHMACMXHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xEU5MXCHMACMXEnableSignaller ||
!xEU5MXCHMACMXAllowShortSignals)
{
return result;
}
//
ENUM_XCHMA_CYCLES cycles[];
Add(
X_XCHMA_CYCLE_MEDIUM,
cycles);
Add(
X_XCHMA_CYCLE_LONG,
cycles);
//
double xCHMANonSCMax3 = XCHMAGetCyclesMaxValue(3, cycles);
double xCHMANonSCMax2 = XCHMAGetCyclesMaxValue(2, cycles);
//
result =
//
xEU5Conditions.isXCHMASCCrossedUnderMax &&
xCHMAScFastBuffer[2] > xCHMANonSCMax2 &&
xCHMAScSlowBuffer[2] > xCHMANonSCMax2
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMALCPeak
//
)
//
&&
//
!(
//
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXLHPriceInSignalRange &&
//
(
//
(
//
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
) ||
(
//
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXTDSignalUnderBear
//
)
//
)
//
)
//
&&
//
!(
//
(
//
xEU5Conditions.isXCHMASCFastCrossedOverSlow ||
(
//
xEU5Conditions.isXCHMASCTrendsUp &&
xEU5Conditions.isXCHMASCFastOverSlow
//
)
//
) &&
(
//
xEU5Conditions.isXCHMAMCFastCrossedOverSlow ||
(
//
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMAMCFastOverSlow
//
)
//
) &&
(
//
xEU5Conditions.isXCHMALCFastCrossedOverSlow ||
(
//
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
)
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMin
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHLHSCMCLLSame &&
xEU5Conditions.isXCHLHMCLCHHSame &&
xEU5Conditions.isXLHLowAttachedLL
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHLHSameHHs &&
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHMAMCTrendsUp &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXLHPriceInSignalRange
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXLHLLIncreased &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHPriceUnderSignal &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMAMCPeak &&
xEU5Conditions.isXCHLHSCMCHHSame &&
xEU5Conditions.isXCHLHMCLCLLSame &&
xEU5Conditions.isXTDBullUnderBear &&
xEU5Conditions.isXLHLLSameInLength &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMAMCFastUnderSlow &&
xEU5Conditions.isXCHMALCFastUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXCHMALCTrendsUp &&
xEU5Conditions.isXLHLowAttachedLL &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMASCFastOverSlow &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMASCCrossedUnderMax &&
xEU5Conditions.isXLHPriceCrossedUnderSignal
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMASCCrossedUnderMax &&
xEU5Conditions.isXTDSignalCrossedUnderBear &&
xEU5Conditions.isXCHMASCFastCrossedUnderSlow
//
)
//
&&
//
!(
//
xEU5Conditions.isXCHMALCPeak &&
xEU5Conditions.isXCHMASCOverMin &&
xEU5Conditions.isXTDBullOverBear &&
xEU5Conditions.isXCHMASCUnderMax &&
xEU5Conditions.isXLHLowAttachedLL &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXCHMASCTrendsDown &&
xEU5Conditions.isXCHMAMCTrendsDown &&
xEU5Conditions.isXCHMALCTrendsDown &&
xEU5Conditions.isXTDSignalUnderBear &&
xEU5Conditions.isXCHMAMCFastOverSlow &&
xEU5Conditions.isXCHMALCFastOverSlow &&
xEU5Conditions.isXCHMASCFastUnderSlow &&
xEU5Conditions.isXCHMASCCrossedUnderMax
//
)
//
&&
//
!(
//
(xEU5Conditions.isXLHLowAttachedLL &&
xEU5Conditions.isXLHHHSameInLength &&
xEU5Conditions.isXLHPriceUnderSignal &&
(xEU5Conditions.isXCHMAMCFastOverSlow ||
xEU5Conditions.isXCHMAMCFastCrossedOverSlow) &&
(xEU5Conditions.isXCHMALCFastOverSlow ||
xEU5Conditions.isXCHMALCFastCrossedOverSlow))
//
)
//
;
//
// Funded Next ...
if (isXEU5OnFundedNext && result)
{
//
result =
//
true
//
;
}
//
return result;
}
//
// END Signal Providers ...
//
//
// START Utilities ...
//
//
// Converts Market Conditions to Specific String Representation ...
string XEU5GetConditionsString(
XEU5MarketConditions &condition, // Specify Conditiond
string separator = ",", // Specify Separator
bool ignoreFalses = true // Ignore False Conditions
)
{
//
XEU5MarketConditions mConditions = {};
//
mConditions = condition;
//
string result = "\n";
//
// XOBD ...
result +=
"| XOBD |" + separator;
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXOBDSwingLow))
{
result += "isXOBDSwingLow: " + (string)mConditions.isXOBDSwingLow + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXOBDSwingHigh))
{
result += "isXOBDSwingHigh: " + (string)mConditions.isXOBDSwingHigh + separator;
}
//
// Separator ...
result += separator;
//
// XTM ...
result +=
"| XTM |" + separator;
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMPeak))
{
result += "isXTMPeak: " + (string)mConditions.isXTMPeak + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMVale))
{
result += "isXTMVale: " + (string)mConditions.isXTMVale + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMStartBullish))
{
result += "isXTMStartBullish: " + (string)mConditions.isXTMStartBullish + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMStartBullishAfterNeutural))
{
result += "isXTMStartBullishAfterNeutural: " + (string)mConditions.isXTMStartBullishAfterNeutural + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMBullish))
{
result += "isXTMBullish: " + (string)mConditions.isXTMBullish + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMEndBullish))
{
result += "isXTMEndBullish: " + (string)mConditions.isXTMEndBullish + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMEndBullishByNeutural))
{
result += "isXTMEndBullishByNeutural: " + (string)mConditions.isXTMEndBullishByNeutural + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMStartBearish))
{
result += "isXTMStartBearish: " + (string)mConditions.isXTMStartBearish + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMStartBearishAfterNeutural))
{
result += "isXTMStartBearishAfterNeutural: " + (string)mConditions.isXTMStartBearishAfterNeutural + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMBearish))
{
result += "isXTMBearish: " + (string)mConditions.isXTMBearish + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMEndBearish))
{
result += "isXTMEndBearish: " + (string)mConditions.isXTMEndBearish + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMEndBearishByNeutural))
{
result += "isXTMEndBearishByNeutural: " + (string)mConditions.isXTMEndBearishByNeutural + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTMNeutural))
{
result += "isXTMNeutural: " + (string)mConditions.isXTMNeutural + separator;
}
//
// Separator ...
result += separator;
//
// XAMA ...
result +=
"| XAMA |" + separator;
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMAPeak))
{
result += "isXAMAPeak: " + (string)mConditions.isXAMAPeak + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMAVale))
{
result += "isXAMAVale: " + (string)mConditions.isXAMAVale + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMAStartBullish))
{
result += "isXAMAStartBullish: " + (string)mConditions.isXAMAStartBullish + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMAStartBullishAfterNeutural))
{
result += "isXAMAStartBullishAfterNeutural: " + (string)mConditions.isXAMAStartBullishAfterNeutural + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMABullish))
{
result += "isXAMABullish: " + (string)mConditions.isXAMABullish + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMAEndBullish))
{
result += "isXAMAEndBullish: " + (string)mConditions.isXAMAEndBullish + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMAEndBullishByNeutural))
{
result += "isXAMAEndBullishByNeutural: " + (string)mConditions.isXAMAEndBullishByNeutural + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMAStartBearish))
{
result += "isXAMAStartBearish: " + (string)mConditions.isXAMAStartBearish + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMAStartBearishAfterNeutural))
{
result += "isXAMAStartBearishAfterNeutural: " + (string)mConditions.isXAMAStartBearishAfterNeutural + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMABearish))
{
result += "isXAMABearish: " + (string)mConditions.isXAMABearish + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMAEndBearish))
{
result += "isXAMAEndBearish: " + (string)mConditions.isXAMAEndBearish + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMAEndBearishByNeutural))
{
result += "isXAMAEndBearishByNeutural: " + (string)mConditions.isXAMAEndBearishByNeutural + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXAMANeutural))
{
result += "isXAMANeutural: " + (string)mConditions.isXAMANeutural + separator;
}
//
// Separator ...
result += separator;
//
// XTD ...
result +=
"| XTD |" + separator;
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDSignalPeak))
{
result += "isXTDSignalPeak: " + (string)mConditions.isXTDSignalPeak + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDSignalVale))
{
result += "isXTDSignalVale: " + (string)mConditions.isXTDSignalVale + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDBullishPeak))
{
result += "isXTDBullishPeak: " + (string)mConditions.isXTDBullishPeak + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDBullishVale))
{
result += "isXTDBullishVale: " + (string)mConditions.isXTDBullishVale + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDBearishPeak))
{
result += "isXTDBearishPeak: " + (string)mConditions.isXTDBearishPeak + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDBearishVale))
{
result += "isXTDBearishVale: " + (string)mConditions.isXTDBearishVale + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDBullOverBear))
{
result += "isXTDBullOverBear: " + (string)mConditions.isXTDBullOverBear + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDBullUnderBear))
{
result += "isXTDBullUnderBear: " + (string)mConditions.isXTDBullUnderBear + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDSignalOverBear))
{
result += "isXTDSignalOverBear: " + (string)mConditions.isXTDSignalOverBear + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDSignalUnderBear))
{
result += "isXTDSignalUnderBear: " + (string)mConditions.isXTDSignalUnderBear + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDBullCrossedOverBear))
{
result += "isXTDBullCrossedOverBear: " + (string)mConditions.isXTDBullCrossedOverBear + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDBullCrossedUnderBear))
{
result += "isXTDBullCrossedUnderBear: " + (string)mConditions.isXTDBullCrossedUnderBear + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDSignalCrossedOverBear))
{
result += "isXTDSignalCrossedOverBear: " + (string)mConditions.isXTDSignalCrossedOverBear + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTDSignalCrossedUnderBear))
{
result += "isXTDSignalCrossedUnderBear: " + (string)mConditions.isXTDSignalCrossedUnderBear + separator;
}
//
// Separator ...
result += separator;
//
// XFI ...
result +=
"| XFI |" + separator;
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXFIPeak))
{
result += "isXFIPeak: " + (string)mConditions.isXFIPeak + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXFIVale))
{
result += "isXFIVale: " + (string)mConditions.isXFIVale + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXFIOverZero))
{
result += "isXFIOverZero: " + (string)mConditions.isXFIOverZero + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXFIUnderZero))
{
result += "isXFIUnderZero: " + (string)mConditions.isXFIUnderZero + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXFICrossedOverZero))
{
result += "isXFICrossedOverZero: " + (string)mConditions.isXFICrossedOverZero + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXFICrossedUnderZero))
{
result += "isXFICrossedUnderZero: " + (string)mConditions.isXFICrossedUnderZero + separator;
}
//
// Separator ...
result += separator;
//
// XTS ...
result +=
"| XTS |" + separator;
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSAllSame))
{
result += "isXTSAllSame: " + (string)mConditions.isXTSAllSame + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentMin))
{
result += "isXTSCurrentMin: " + (string)mConditions.isXTSCurrentMin + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentMax))
{
result += "isXTSCurrentMax: " + (string)mConditions.isXTSCurrentMax + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentOverFarest))
{
result += "isXTSCurrentOverFarest: " + (string)mConditions.isXTSCurrentOverFarest + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentOverNearest))
{
result += "isXTSCurrentOverNearest: " + (string)mConditions.isXTSCurrentOverNearest + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentOverMediest))
{
result += "isXTSCurrentOverMediest: " + (string)mConditions.isXTSCurrentOverMediest + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentUnderFarest))
{
result += "isXTSCurrentUnderFarest: " + (string)mConditions.isXTSCurrentUnderFarest + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentUnderNearest))
{
result += "isXTSCurrentUnderNearest: " + (string)mConditions.isXTSCurrentUnderNearest + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentUnderMediest))
{
result += "isXTSCurrentUnderMediest: " + (string)mConditions.isXTSCurrentUnderMediest + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentCrossedOverFarest))
{
result += "isXTSCurrentCrossedOverFarest: " + (string)mConditions.isXTSCurrentCrossedOverFarest + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentCrossedOverNearest))
{
result += "isXTSCurrentCrossedOverNearest: " + (string)mConditions.isXTSCurrentCrossedOverNearest + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentCrossedOverMediest))
{
result += "isXTSCurrentCrossedOverMediest: " + (string)mConditions.isXTSCurrentCrossedOverMediest + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentCrossedUnderFarest))
{
result += "isXTSCurrentCrossedUnderFarest: " + (string)mConditions.isXTSCurrentCrossedUnderFarest + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentCrossedUnderNearest))
{
result += "isXTSCurrentCrossedUnderNearest: " + (string)mConditions.isXTSCurrentCrossedUnderNearest + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXTSCurrentCrossedUnderMediest))
{
result += "isXTSCurrentCrossedUnderMediest: " + (string)mConditions.isXTSCurrentCrossedUnderMediest + separator;
}
//
// Separator ...
result += separator;
//
// XLH ...
result +=
"| XLH |" + separator;
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHHHIncreased))
{
result += "isXLHHHIncreased: " + (string)mConditions.isXLHHHIncreased + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHHHDecreased))
{
result += "isXLHHHDecreased: " + (string)mConditions.isXLHHHDecreased + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHLLIncreased))
{
result += "isXLHLLIncreased: " + (string)mConditions.isXLHLLIncreased + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHLLDecreased))
{
result += "isXLHLLDecreased: " + (string)mConditions.isXLHLLDecreased + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHHighAttachedHH))
{
result += "isXLHHighAttachedHH: " + (string)mConditions.isXLHHighAttachedHH + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHLowAttachedLL))
{
result += "isXLHLowAttachedLL: " + (string)mConditions.isXLHLowAttachedLL + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHHHSameInLength))
{
result += "isXLHHHSameInLength: " + (string)mConditions.isXLHHHSameInLength + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHLLSameInLength))
{
result += "isXLHLLSameInLength: " + (string)mConditions.isXLHLLSameInLength + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHPriceCrossedOverSignal))
{
result += "isXLHPriceCrossedOverSignal: " + (string)mConditions.isXLHPriceCrossedOverSignal + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHPriceOverSignal))
{
result += "isXLHPriceOverSignal: " + (string)mConditions.isXLHPriceOverSignal + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHPriceCrossedUnderSignal))
{
result += "isXLHPriceCrossedUnderSignal: " + (string)mConditions.isXLHPriceCrossedUnderSignal + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHPriceUnderSignal))
{
result += "isXLHPriceUnderSignal: " + (string)mConditions.isXLHPriceUnderSignal + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXLHPriceInSignalRange))
{
result += "isXLHPriceInSignalRange: " + (string)mConditions.isXLHPriceInSignalRange + separator;
}
//
// Separator ...
result += separator;
//
// XRSI ...
result +=
"| XRSI |" + separator;
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXRSIPeak))
{
result += "isXRSIPeak: " + (string)mConditions.isXRSIPeak + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXRSIVale))
{
result += "isXRSIVale: " + (string)mConditions.isXRSIVale + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXRSICrossedOverLongExit))
{
result += "isXRSICrossedOverLongExit: " + (string)mConditions.isXRSICrossedOverLongExit + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXRSICrossedOverLongEntry))
{
result += "isXRSICrossedOverLongEntry: " + (string)mConditions.isXRSICrossedOverLongEntry + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXRSICrossedUnderShortExit))
{
result += "isXRSICrossedUnderShortExit: " + (string)mConditions.isXRSICrossedUnderShortExit + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXRSICrossedUnderShortEntry))
{
result += "isXRSICrossedUnderShortEntry: " + (string)mConditions.isXRSICrossedUnderShortEntry + separator;
}
//
// Separator ...
result += separator;
//
// XCHLH ...
result +=
"| XCHLH |" + separator;
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHLHSameHHs))
{
result += "isXCHLHSameHHs: " + (string)mConditions.isXCHLHSameHHs + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHLHSameLLs))
{
result += "isXCHLHSameLLs: " + (string)mConditions.isXCHLHSameLLs + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHLHSCMCHHSame))
{
result += "isXCHLHSCMCHHSame: " + (string)mConditions.isXCHLHSCMCHHSame + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHLHSCMCLLSame))
{
result += "isXCHLHSCMCLLSame: " + (string)mConditions.isXCHLHSCMCLLSame + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHLHSCLCHHSame))
{
result += "isXCHLHSCLCHHSame: " + (string)mConditions.isXCHLHSCLCHHSame + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHLHSCLCLLSame))
{
result += "isXCHLHSCLCLLSame: " + (string)mConditions.isXCHLHSCLCLLSame + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHLHMCLCHHSame))
{
result += "isXCHLHMCLCHHSame: " + (string)mConditions.isXCHLHMCLCHHSame + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHLHMCLCLLSame))
{
result += "isXCHLHMCLCLLSame: " + (string)mConditions.isXCHLHMCLCLLSame + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHLHMCOnTopOfLC))
{
result += "isXCHLHMCOnTopOfLC: " + (string)mConditions.isXCHLHMCOnTopOfLC + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHLHMCInBottomOfLC))
{
result += "isXCHLHMCInBottomOfLC: " + (string)mConditions.isXCHLHMCInBottomOfLC + separator;
}
//
// Separator ...
result += separator;
//
// XCHMA ...
result +=
"| XCHMA |" + separator;
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCOverMax))
{
result += "isXCHMASCOverMax: " + (string)mConditions.isXCHMASCOverMax + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCOverMin))
{
result += "isXCHMASCOverMin: " + (string)mConditions.isXCHMASCOverMin + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCUnderMax))
{
result += "isXCHMASCUnderMax: " + (string)mConditions.isXCHMASCUnderMax + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCUnderMin))
{
result += "isXCHMASCUnderMin: " + (string)mConditions.isXCHMASCUnderMin + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCCrossedOverMax))
{
result += "isXCHMASCCrossedOverMax: " + (string)mConditions.isXCHMASCCrossedOverMax + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCCrossedUnderMax))
{
result += "isXCHMASCCrossedUnderMax: " + (string)mConditions.isXCHMASCCrossedUnderMax + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCCrossedOverMin))
{
result += "isXCHMASCCrossedOverMin: " + (string)mConditions.isXCHMASCCrossedOverMin + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCCrossedUnderMin))
{
result += "isXCHMASCCrossedUnderMin: " + (string)mConditions.isXCHMASCCrossedUnderMin + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCPeak))
{
result += "isXCHMASCPeak: " + (string)mConditions.isXCHMASCPeak + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCVale))
{
result += "isXCHMASCVale: " + (string)mConditions.isXCHMASCVale + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCTrendsUp))
{
result += "isXCHMASCTrendsUp: " + (string)mConditions.isXCHMASCTrendsUp + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCTrendsDown))
{
result += "isXCHMASCTrendsDown: " + (string)mConditions.isXCHMASCTrendsDown + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCFastOverSlow))
{
result += "isXCHMASCFastOverSlow: " + (string)mConditions.isXCHMASCFastOverSlow + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCFastUnderSlow))
{
result += "isXCHMASCFastUnderSlow: " + (string)mConditions.isXCHMASCFastUnderSlow + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCFastCrossedOverSlow))
{
result += "isXCHMASCFastCrossedOverSlow: " + (string)mConditions.isXCHMASCFastCrossedOverSlow + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMASCFastCrossedUnderSlow))
{
result += "isXCHMASCFastCrossedUnderSlow: " + (string)mConditions.isXCHMASCFastCrossedUnderSlow + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMAMCPeak))
{
result += "isXCHMAMCPeak: " + (string)mConditions.isXCHMAMCPeak + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMAMCVale))
{
result += "isXCHMAMCVale: " + (string)mConditions.isXCHMAMCVale + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMAMCTrendsUp))
{
result += "isXCHMAMCTrendsUp: " + (string)mConditions.isXCHMAMCTrendsUp + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMAMCTrendsDown))
{
result += "isXCHMAMCTrendsDown: " + (string)mConditions.isXCHMAMCTrendsDown + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMAMCFastOverSlow))
{
result += "isXCHMAMCFastOverSlow: " + (string)mConditions.isXCHMAMCFastOverSlow + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMAMCFastUnderSlow))
{
result += "isXCHMAMCFastUnderSlow: " + (string)mConditions.isXCHMAMCFastUnderSlow + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMAMCFastCrossedOverSlow))
{
result += "isXCHMAMCFastCrossedOverSlow: " + (string)mConditions.isXCHMAMCFastCrossedOverSlow + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMAMCFastCrossedUnderSlow))
{
result += "isXCHMAMCFastCrossedUnderSlow: " + (string)mConditions.isXCHMAMCFastCrossedUnderSlow + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMALCPeak))
{
result += "isXCHMALCPeak: " + (string)mConditions.isXCHMALCPeak + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMALCVale))
{
result += "isXCHMALCVale: " + (string)mConditions.isXCHMALCVale + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMALCTrendsUp))
{
result += "isXCHMALCTrendsUp: " + (string)mConditions.isXCHMALCTrendsUp + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMALCTrendsDown))
{
result += "isXCHMALCTrendsDown: " + (string)mConditions.isXCHMALCTrendsDown + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMALCFastOverSlow))
{
result += "isXCHMALCFastOverSlow: " + (string)mConditions.isXCHMALCFastOverSlow + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMALCFastUnderSlow))
{
result += "isXCHMALCFastUnderSlow: " + (string)mConditions.isXCHMALCFastUnderSlow + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMALCFastCrossedOverSlow))
{
result += "isXCHMALCFastCrossedOverSlow: " + (string)mConditions.isXCHMALCFastCrossedOverSlow + separator;
}
//
if (
!ignoreFalses ||
(ignoreFalses && mConditions.isXCHMALCFastCrossedUnderSlow))
{
result += "isXCHMALCFastCrossedUnderSlow: " + (string)mConditions.isXCHMALCFastCrossedUnderSlow + separator;
}
//
// Separator ...
result += separator;
//
return result;
}
void Add(
ENUM_XEU5_SIGNAL_PROVIDERS item,
ENUM_XEU5_SIGNAL_PROVIDERS &items[])
{
//
ArrayResize(
items,
ArraySize(items) + 1);
//
items[ArraySize(items) - 1] = item;
}
//
// START Utilities ...
//