Files
MQL5Data/Classes/x-saherelm.x5.provider.class.mq5
T
2024-05-21 04:36:05 +03:30

95099 lines
4.7 MiB
Plaintext

///////////////////////////////////////////////////////
//
// SaherElm IT Center MQL5 Class Library
// ----------------------------------------------
// Name: XSCBaseX5Provider
// Description: provides all Base Provider
// requirements For X5 ...
//
//
// 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
//
// Imports ...
//
#include "../Helpers/x-saherelm.xct.helper.mq5"
#include "../Helpers/x-saherelm.xcc.helper.mq5"
#include "../Helpers/x-saherelm.xtm.helper.mq5"
#include "../Helpers/x-saherelm.xama.helper.mq5"
#include "../Helpers/x-saherelm.xlh.helper.mq5"
#include "../Helpers/x-saherelm.xtd.helper.mq5"
#include "../Helpers/x-saherelm.xfi.helper.mq5"
#include "../Helpers/x-saherelm.xts.helper.mq5"
#include "../Helpers/x-saherelm.xrsi.helper.mq5"
#include "../Helpers/x-saherelm.xobd.helper.mq5"
#include "../Helpers/x-saherelm.xchlh.helper.mq5"
#include "../Helpers/x-saherelm.xchma.helper.mq5"
//
#include "../Classes/x-saherelm.xprovider.class.mq5"
//
// Definitions ...
//
// Signallers ...
enum ENUM_X5_SIGNAL_PROVIDERS
{
//
NONE,
//
// XSP Expert Support Mechanism ...
XSP,
//
// XTD ...
XTD,
//
// XTAM ...
XTAM,
//
// XSI ...
XSI,
//
// XTSFI ...
XTSFI,
//
// XOBDLH ...
XOBDLH,
//
// XCHMACC ...
XCHMACC,
//
// XCHMACMN ...
XCHMAMN,
//
// XCHMACMX ...
XCHMAMX,
};
//
// X5 Provider Inputs ...
class X5ProviderInputs : public XSCBaseProviderInpts
{
//
// Public ...
public:
//
// Props ...
XTSInputs tsInputs;
XTMInputs tmInputs;
XLHInputs lhInputs;
XTDInputs tdInputs;
XFIInputs fiInputs;
XCTInputs ctInputs;
XCCInputs ccInputs;
XOBDInputs obdInputs;
XAMAInputs amaInputs;
XRSIInputs rsiInputs;
XCHLHInputs chlhInputs;
XCHMAInputs chmaInputs;
//
// Tools ...
//
// Validate ...
virtual bool IsValid()
{
//
bool result = false;
//
result = tsInputs.IsValid();
if (!result)
{
return result;
}
result = ctInputs.IsValid();
if (!result)
{
return result;
}
//
result = ccInputs.IsValid();
if (!result)
{
return result;
}
//
result = tmInputs.IsValid();
if (!result)
{
return result;
}
//
result = lhInputs.IsValid();
if (!result)
{
return result;
}
//
result = tdInputs.IsValid();
if (!result)
{
return result;
}
//
result = fiInputs.IsValid();
if (!result)
{
return result;
}
//
result = obdInputs.IsValid();
if (!result)
{
return result;
}
//
result = amaInputs.IsValid();
if (!result)
{
return result;
}
//
result = rsiInputs.IsValid();
if (!result)
{
return result;
}
//
result = chlhInputs.IsValid();
if (!result)
{
return result;
}
//
result = chmaInputs.IsValid();
//
return result;
}
//
// Cleanup ...
virtual void Clean()
{
//
tsInputs.Clean();
ctInputs.Clean();
ccInputs.Clean();
tmInputs.Clean();
lhInputs.Clean();
tdInputs.Clean();
fiInputs.Clean();
obdInputs.Clean();
amaInputs.Clean();
rsiInputs.Clean();
chlhInputs.Clean();
chmaInputs.Clean();
}
//
// Default ...
virtual void Default()
{
//
tsInputs.Default();
ctInputs.Default();
ccInputs.Default();
tmInputs.Default();
lhInputs.Default();
tdInputs.Default();
fiInputs.Default();
obdInputs.Default();
amaInputs.Default();
rsiInputs.Default();
chlhInputs.Default();
chmaInputs.Default();
}
//
// Max ...
virtual int Max()
{
//
int result = 0;
//
result = MathMax(lhInputs.Max(), tmInputs.Max());
//
result = MathMax(result, tsInputs.Max());
result = MathMax(result, ctInputs.Max());
result = MathMax(result, ccInputs.Max());
result = MathMax(result, tdInputs.Max());
result = MathMax(result, fiInputs.Max());
result = MathMax(result, obdInputs.Max());
result = MathMax(result, amaInputs.Max());
result = MathMax(result, rsiInputs.Max());
result = MathMax(result, chlhInputs.Max());
result = MathMax(result, chmaInputs.Max());
//
return result;
}
};
//
// XSC5MarketConditionDataCollector ...
class XSC5MarketConditionDataCollector
{
//
// Public ...
public:
//
// Constructor ...
void XSC5MarketConditionDataCollector()
{
//
XSCDataCollector<X5MarketConditions> mBase;
mBase.Clear();
}
//
// Cleaning Store ...
void Clear()
{
//
XSCDataCollector<X5MarketConditions> mBase;
//
mBase.Clear();
}
//
// Add String Content ...
bool Add(string content)
{
//
bool result = false;
//
XSCDataCollector<X5MarketConditions> mBase;
//
result = mBase.Add(content);
//
return result;
}
//
// Protected ...
protected:
//
// Private ...
private:
};
//
// X5 Provider Market Conditions ...
class X5MarketConditions : public XSCBaseProviderMarketConditions
{
//
// Public ...
public:
//
// Buffers ...
//
// XTS ...
double tsCurrents[];
double tsNearests[];
double tsMediests[];
double tsFarests[];
//
// XFI ...
double fis[];
//
// XTD ...
double tdBullishs[];
double tdBearishs[];
double tdSignals[];
//
// XLH ...
double lhHhs[];
double lhLls[];
double lhSignals[];
//
// XTM ...
double tms[];
//
// XAMA ...
double amas[];
//
// XOBD ...
double obds[];
//
// XRSI ...
double rsis[];
//
// XCHMA ...
double chmaScFasts[];
double chmaScSlows[];
double chmaMcFasts[];
double chmaMcSlows[];
double chmaLcFasts[];
double chmaLcSlows[];
double chmaHotStates[];
//
// XCHLH ...
double chlhScHHs[];
double chlhScLLs[];
double chlhMcHHs[];
double chlhMcLLs[];
double chlhLcHHs[];
double chlhLcLLs[];
double chlhHotStates[];
//
// Conditional Variables ...
//
// 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;
//
//
// Conditions ...
void Clear()
{
//
Clean(tsCurrents);
Clean(tsNearests);
Clean(tsMediests);
Clean(tsFarests);
Clean(fis);
Clean(tdBullishs);
Clean(tdBearishs);
Clean(tdSignals);
Clean(lhHhs);
Clean(lhLls);
Clean(lhSignals);
Clean(tms);
Clean(amas);
Clean(obds);
Clean(rsis);
Clean(chmaScFasts);
Clean(chmaScSlows);
Clean(chmaMcFasts);
Clean(chmaMcSlows);
Clean(chmaLcFasts);
Clean(chmaLcSlows);
Clean(chmaHotStates);
Clean(chlhScHHs);
Clean(chlhScLLs);
Clean(chlhMcHHs);
Clean(chlhMcLLs);
Clean(chlhLcHHs);
Clean(chlhLcLLs);
Clean(chlhHotStates);
//
ArraySetAsSeries(tsCurrents, true);
ArraySetAsSeries(tsNearests, true);
ArraySetAsSeries(tsMediests, true);
ArraySetAsSeries(tsFarests, true);
ArraySetAsSeries(fis, true);
ArraySetAsSeries(tdBullishs, true);
ArraySetAsSeries(tdBearishs, true);
ArraySetAsSeries(tdSignals, true);
ArraySetAsSeries(lhHhs, true);
ArraySetAsSeries(lhLls, true);
ArraySetAsSeries(lhSignals, true);
ArraySetAsSeries(tms, true);
ArraySetAsSeries(amas, true);
ArraySetAsSeries(obds, true);
ArraySetAsSeries(rsis, true);
ArraySetAsSeries(chmaScFasts, true);
ArraySetAsSeries(chmaScSlows, true);
ArraySetAsSeries(chmaMcFasts, true);
ArraySetAsSeries(chmaMcSlows, true);
ArraySetAsSeries(chmaLcFasts, true);
ArraySetAsSeries(chmaLcSlows, true);
ArraySetAsSeries(chmaHotStates, true);
ArraySetAsSeries(chlhScHHs, true);
ArraySetAsSeries(chlhScLLs, true);
ArraySetAsSeries(chlhMcHHs, true);
ArraySetAsSeries(chlhMcLLs, true);
ArraySetAsSeries(chlhLcHHs, true);
ArraySetAsSeries(chlhLcLLs, true);
ArraySetAsSeries(chlhHotStates, true);
//
isXTMPeak = false;
isXTMVale = false;
isXTMBullish = false;
isXTMBearish = false;
isXTMNeutural = false;
isXTMEndBullish = false;
isXTMEndBearish = false;
isXTMStartBullish = false;
isXTMStartBearish = false;
isXTMEndBullishByNeutural = false;
isXTMEndBearishByNeutural = false;
isXTMStartBullishAfterNeutural = false;
isXTMStartBearishAfterNeutural = false;
isXAMAPeak = false;
isXAMAVale = false;
isXAMABullish = false;
isXAMABearish = false;
isXAMANeutural = false;
isXAMAEndBullish = false;
isXAMAEndBearish = false;
isXAMAStartBullish = false;
isXAMAStartBearish = false;
isXAMAEndBullishByNeutural = false;
isXAMAEndBearishByNeutural = false;
isXAMAStartBullishAfterNeutural = false;
isXAMAStartBearishAfterNeutural = false;
isXLHHHIncreased = false;
isXLHHHDecreased = false;
isXLHLLIncreased = false;
isXLHLLDecreased = false;
isXLHLowAttachedLL = false;
isXLHHighAttachedHH = false;
isXLHHHSameInLength = false;
isXLHLLSameInLength = false;
isXLHPriceOverSignal = false;
isXLHPriceUnderSignal = false;
isXLHPriceInSignalRange = false;
isXLHPriceCrossedOverSignal = false;
isXLHPriceCrossedUnderSignal = false;
isXTDSignalPeak = false;
isXTDSignalVale = false;
isXTDBullishPeak = false;
isXTDBullishVale = false;
isXTDBearishPeak = false;
isXTDBearishVale = false;
isXTDBullOverBear = false;
isXTDBullUnderBear = false;
isXTDSignalOverBear = false;
isXTDSignalUnderBear = false;
isXTDBullCrossedOverBear = false;
isXTDBullCrossedUnderBear = false;
isXTDSignalCrossedOverBear = false;
isXTDSignalCrossedUnderBear = false;
isXFIPeak = false;
isXFIVale = false;
isXFICrossedOverZero = false;
isXFIOverZero = false;
isXFICrossedUnderZero = false;
isXFIUnderZero = false;
isXTSAllSame = false;
isXTSCurrentMin = false;
isXTSCurrentMax = false;
isXTSCurrentOverFarest = false;
isXTSCurrentOverNearest = false;
isXTSCurrentOverMediest = false;
isXTSCurrentUnderFarest = false;
isXTSCurrentUnderNearest = false;
isXTSCurrentUnderMediest = false;
isXTSCurrentCrossedOverFarest = false;
isXTSCurrentCrossedOverNearest = false;
isXTSCurrentCrossedOverMediest = false;
isXTSCurrentCrossedUnderFarest = false;
isXTSCurrentCrossedUnderNearest = false;
isXTSCurrentCrossedUnderMediest = false;
isXRSIPeak = false;
isXRSIVale = false;
isXRSICrossedOverLongExit = false;
isXRSICrossedOverLongEntry = false;
isXRSICrossedUnderShortExit = false;
isXRSICrossedUnderShortEntry = false;
isXOBDSwingLow = false;
isXOBDSwingHigh = false;
isXCHLHSameHHs = false;
isXCHLHSameLLs = false;
isXCHLHSCMCHHSame = false;
isXCHLHSCMCLLSame = false;
isXCHLHSCLCHHSame = false;
isXCHLHSCLCLLSame = false;
isXCHLHMCLCHHSame = false;
isXCHLHMCLCLLSame = false;
isXCHLHMCOnTopOfLC = false;
isXCHLHMCInBottomOfLC = false;
isXCHMASCOverMax = false;
isXCHMASCOverMin = false;
isXCHMASCUnderMax = false;
isXCHMASCUnderMin = false;
isXCHMASCCrossedOverMax = false;
isXCHMASCCrossedUnderMax = false;
isXCHMASCCrossedOverMin = false;
isXCHMASCCrossedUnderMin = false;
isXCHMASCPeak = false;
isXCHMASCVale = false;
isXCHMASCTrendsUp = false;
isXCHMASCTrendsDown = false;
isXCHMASCFastOverSlow = false;
isXCHMASCFastUnderSlow = false;
isXCHMASCFastCrossedOverSlow = false;
isXCHMASCFastCrossedUnderSlow = false;
isXCHMAMCPeak = false;
isXCHMAMCVale = false;
isXCHMAMCTrendsUp = false;
isXCHMAMCTrendsDown = false;
isXCHMAMCFastOverSlow = false;
isXCHMAMCFastUnderSlow = false;
isXCHMAMCFastCrossedOverSlow = false;
isXCHMAMCFastCrossedUnderSlow = false;
isXCHMALCPeak = false;
isXCHMALCVale = false;
isXCHMALCTrendsUp = false;
isXCHMALCTrendsDown = false;
isXCHMALCFastOverSlow = false;
isXCHMALCFastUnderSlow = false;
isXCHMALCFastCrossedOverSlow = false;
isXCHMALCFastCrossedUnderSlow = false;
}
//
// Generate Score ...
virtual void GenerateScore(
double &bullishScore, // Bullish Score
double &bearishScore, // Bearish Score
double multiplier = 1 // Score Multiplier
)
{
//
bullishScore = 0;
bearishScore = 0;
//
// Normalize Multiplier ...
if (multiplier <= 0)
{
multiplier = 1;
}
//
double bullScore = 0;
double bearScore = 0;
//
// Calculate Scores ...
//
// XTM ...
//
if (isXTMPeak)
{
//
bullScore--;
bearScore++;
}
//
if (isXTMVale)
{
//
bullScore++;
bearScore--;
}
//
if (isXTMBullish)
{
bullScore++;
}
//
if (isXTMBearish)
{
bearScore++;
}
//
if (isXTMNeutural)
{
}
//
if (isXTMEndBullish)
{
bearScore++;
}
//
if (isXTMEndBearish)
{
bullScore++;
}
//
if (isXTMStartBullish)
{
bullScore++;
}
//
if (isXTMStartBearish)
{
bearScore++;
}
//
if (isXTMEndBullishByNeutural)
{
bearScore++;
}
//
if (isXTMEndBearishByNeutural)
{
bullScore++;
}
//
if (isXTMStartBullishAfterNeutural)
{
bullScore++;
}
//
if (isXTMStartBearishAfterNeutural)
{
bearScore++;
}
//
// XAMA ...
//
if (isXAMAPeak)
{
//
bullScore--;
bearScore++;
}
//
if (isXAMAVale)
{
//
bullScore++;
bearScore--;
}
//
if (isXAMABullish)
{
bullScore++;
}
//
if (isXAMABearish)
{
bearScore++;
}
//
if (isXAMANeutural)
{
}
//
if (isXAMAEndBullish)
{
bearScore++;
}
//
if (isXAMAEndBearish)
{
bullScore++;
}
//
if (isXAMAStartBullish)
{
bullScore++;
}
//
if (isXAMAStartBearish)
{
bearScore++;
}
//
if (isXAMAEndBullishByNeutural)
{
bearScore++;
}
//
if (isXAMAEndBearishByNeutural)
{
bullScore++;
}
//
if (isXAMAStartBullishAfterNeutural)
{
bullScore++;
}
//
if (isXAMAStartBearishAfterNeutural)
{
bearScore++;
}
//
// XLH ...
//
if (isXLHHHIncreased)
{
//
bullScore--;
bearScore++;
}
//
if (isXLHHHDecreased)
{
//
bullScore++;
bearScore--;
}
//
if (isXLHLLIncreased)
{
//
bullScore++;
bearScore--;
}
//
if (isXLHLLDecreased)
{
//
bullScore--;
bearScore++;
}
//
if (isXLHLowAttachedLL)
{
//
bullScore++;
bearScore--;
}
//
if (isXLHHighAttachedHH)
{
//
bullScore--;
bearScore++;
}
//
if (isXLHHHSameInLength)
{
}
//
if (isXLHLLSameInLength)
{
}
//
if (isXLHPriceOverSignal)
{
bullScore++;
}
//
if (isXLHPriceUnderSignal)
{
bearScore++;
}
//
if (isXLHPriceInSignalRange)
{
}
//
if (isXLHPriceCrossedOverSignal)
{
//
bullScore++;
bearScore--;
}
//
if (isXLHPriceCrossedUnderSignal)
{
//
bullScore--;
bearScore++;
}
//
// XTD ...
//
if (isXTDSignalPeak)
{
//
bullScore--;
bearScore++;
}
//
if (isXTDSignalVale)
{
//
bullScore++;
bearScore--;
}
//
if (isXTDBullishPeak)
{
//
bullScore--;
bearScore++;
}
//
if (isXTDBullishVale)
{
//
bullScore++;
bearScore--;
}
//
if (isXTDBearishPeak)
{
//
bullScore++;
bearScore--;
}
//
if (isXTDBearishVale)
{
//
bullScore--;
bearScore++;
}
//
if (isXTDBullOverBear)
{
bullScore++;
}
//
if (isXTDBullUnderBear)
{
bearScore++;
}
//
if (isXTDSignalOverBear)
{
bullScore++;
}
//
if (isXTDSignalUnderBear)
{
bearScore++;
}
//
if (isXTDBullCrossedOverBear)
{
//
bullScore++;
bearScore--;
}
//
if (isXTDBullCrossedUnderBear)
{
//
bullScore--;
bearScore++;
}
//
if (isXTDSignalCrossedOverBear)
{
//
bullScore++;
bearScore--;
}
//
if (isXTDSignalCrossedUnderBear)
{
//
bullScore--;
bearScore++;
}
//
// XFI ...
//
if (isXFIPeak)
{
//
bullScore--;
bearScore++;
}
//
if (isXFIVale)
{
//
bullScore++;
bearScore--;
}
//
if (isXFICrossedOverZero)
{
//
bullScore++;
bearScore--;
}
//
if (isXFIOverZero)
{
bullScore++;
}
//
if (isXFICrossedUnderZero)
{
//
bullScore--;
bearScore++;
}
//
if (isXFIUnderZero)
{
bearScore++;
}
//
// XTS ...
//
if (isXTSAllSame)
{
}
//
if (isXTSCurrentMin)
{
//
bullScore++;
bearScore--;
}
//
if (isXTSCurrentMax)
{
//
bullScore--;
bearScore++;
}
//
if (isXTSCurrentOverFarest)
{
bullScore--;
}
//
if (isXTSCurrentOverNearest)
{
bullScore--;
}
//
if (isXTSCurrentOverMediest)
{
bullScore--;
}
//
if (isXTSCurrentUnderFarest)
{
bearScore--;
}
//
if (isXTSCurrentUnderNearest)
{
bearScore--;
}
//
if (isXTSCurrentUnderMediest)
{
bearScore--;
}
//
if (isXTSCurrentCrossedOverFarest)
{
//
bullScore++;
bearScore--;
}
//
if (isXTSCurrentCrossedOverNearest)
{
//
bullScore++;
bearScore--;
}
//
if (isXTSCurrentCrossedOverMediest)
{
//
bullScore++;
bearScore--;
}
//
if (isXTSCurrentCrossedUnderFarest)
{
//
bullScore--;
bearScore++;
}
//
if (isXTSCurrentCrossedUnderNearest)
{
//
bullScore--;
bearScore++;
}
//
if (isXTSCurrentCrossedUnderMediest)
{
//
bullScore--;
bearScore++;
}
//
// XSI ...
//
if (isXRSIPeak)
{
//
bullScore--;
bearScore++;
}
//
if (isXRSIVale)
{
//
bullScore++;
bearScore--;
}
//
if (isXRSICrossedOverLongExit)
{
//
bullScore--;
bearScore++;
}
//
if (isXRSICrossedOverLongEntry)
{
//
bullScore++;
bearScore--;
}
//
if (isXRSICrossedUnderShortExit)
{
//
bullScore++;
bearScore--;
}
//
if (isXRSICrossedUnderShortEntry)
{
//
bullScore--;
bearScore++;
}
//
// XOBD ...
//
if (isXOBDSwingLow)
{
bullScore++;
}
//
if (isXOBDSwingHigh)
{
bearScore++;
}
//
// XCHLH ...
//
if (isXCHLHSameHHs)
{
bearScore++;
}
//
if (isXCHLHSameLLs)
{
bullScore++;
}
//
if (isXCHLHSCMCHHSame)
{
bearScore++;
}
//
if (isXCHLHSCMCLLSame)
{
bullScore++;
}
//
if (isXCHLHSCLCHHSame)
{
bearScore++;
}
//
if (isXCHLHSCLCLLSame)
{
bullScore++;
}
//
if (isXCHLHMCLCHHSame)
{
bearScore++;
}
//
if (isXCHLHMCLCLLSame)
{
bullScore++;
}
//
if (isXCHLHMCOnTopOfLC)
{
}
//
if (isXCHLHMCInBottomOfLC)
{
}
//
// XCHMA ...
//
if (isXCHMASCOverMax)
{
//
bullScore--;
bearScore++;
}
//
if (isXCHMASCOverMin)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMASCUnderMax)
{
//
bullScore--;
bearScore++;
}
//
if (isXCHMASCUnderMin)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMASCCrossedOverMax)
{
//
bearScore--;
bearScore++;
}
//
if (isXCHMASCCrossedUnderMax)
{
//
bullScore--;
bearScore++;
}
//
if (isXCHMASCCrossedOverMin)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMASCCrossedUnderMin)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMASCPeak)
{
//
bullScore--;
bearScore++;
}
//
if (isXCHMASCVale)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMASCTrendsUp)
{
//
if (isXCHMASCFastOverSlow)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMASCFastUnderSlow)
{
//
bullScore--;
bearScore++;
}
}
//
if (isXCHMASCTrendsDown)
{
//
if (isXCHMASCFastOverSlow)
{
//
bullScore--;
bearScore++;
}
//
if (isXCHMASCFastUnderSlow)
{
//
bullScore++;
bearScore--;
}
}
//
if (isXCHMASCFastOverSlow)
{
bearScore++;
}
//
if (isXCHMASCFastUnderSlow)
{
bearScore++;
}
//
if (isXCHMASCFastCrossedOverSlow)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMASCFastCrossedUnderSlow)
{
//
bullScore--;
bearScore++;
}
//
if (isXCHMAMCPeak)
{
//
bullScore--;
bearScore++;
}
//
if (isXCHMAMCVale)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMAMCTrendsUp)
{
//
if (isXCHMAMCFastOverSlow)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMAMCFastUnderSlow)
{
//
bullScore--;
bearScore++;
}
}
//
if (isXCHMAMCTrendsDown)
{
//
if (isXCHMAMCFastOverSlow)
{
//
bullScore--;
bearScore++;
}
//
if (isXCHMAMCFastUnderSlow)
{
//
bullScore++;
bearScore--;
}
}
//
if (isXCHMAMCFastOverSlow)
{
bullScore++;
}
//
if (isXCHMAMCFastUnderSlow)
{
bearScore++;
}
//
if (isXCHMAMCFastCrossedOverSlow)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMAMCFastCrossedUnderSlow)
{
//
bullScore--;
bearScore++;
}
//
if (isXCHMALCPeak)
{
//
bullScore--;
bearScore++;
}
//
if (isXCHMALCVale)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMALCTrendsUp)
{
//
if (isXCHMALCFastOverSlow)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMALCFastUnderSlow)
{
//
bullScore--;
bearScore++;
}
}
//
if (isXCHMALCTrendsDown)
{
//
if (isXCHMALCFastOverSlow)
{
//
bullScore--;
bearScore++;
}
//
if (isXCHMALCFastUnderSlow)
{
//
bullScore++;
bearScore--;
}
}
//
if (isXCHMALCFastOverSlow)
{
bullScore++;
}
//
if (isXCHMALCFastUnderSlow)
{
bearScore++;
}
//
if (isXCHMALCFastCrossedOverSlow)
{
//
bullScore++;
bearScore--;
}
//
if (isXCHMALCFastCrossedUnderSlow)
{
//
bullScore--;
bearScore++;
}
//
// Prepare Final Result ...
//
bullishScore = bullScore * multiplier;
bearishScore = bearScore * multiplier;
}
//
// Generate Summary ...
virtual string GenerateSummary(
const bool onlySummary = false, // Only Generate Conditions Summary
double multiplier = 1, // Score Multiplier
const string separator = "\n", // Separator
const bool ignoreFalseConditions = true // Ignore False Conditions
)
{
//
string result = NULL;
//
double bullScore = 0;
double bearScore = 0;
GenerateScore(
bullScore,
bearScore,
multiplier //
);
//
// Common ...
string commonStr =
//
"Commons: " + separator +
"-----------------------------" + separator +
"Time: " + ToString(TimeCurrent()) + separator +
"-----------" + separator +
"Scores: " + separator +
"-----------" + separator +
"Bullish: " + ToString(bullScore) + separator +
"Bearish: " + ToString(bearScore) + separator +
"-----------------------------" + separator +
//
// TODO: Add Scores Later ...
separator +
""
//
;
//
// XOBD ...
string obdStr =
//
ToString("isXOBDSwingLow", isXOBDSwingLow, ignoreFalseConditions) +
ToString("isXOBDSwingHigh", isXOBDSwingHigh, ignoreFalseConditions) +
""
//
;
obdStr = SetLabel("XOBD: ", obdStr, separator);
//
// ToString("", , ignoreFalseConditions) +
//
// XFI ...
string fiStr =
//
ToString("isXFIPeak", isXFIPeak, ignoreFalseConditions) +
ToString("isXFIVale", isXFIVale, ignoreFalseConditions) +
ToString("isXFICrossedOverZero", isXFICrossedOverZero, ignoreFalseConditions) +
ToString("isXFIOverZero", isXFIOverZero, ignoreFalseConditions) +
ToString("isXFICrossedUnderZero", isXFICrossedUnderZero, ignoreFalseConditions) +
ToString("isXFIUnderZero", isXFIUnderZero, ignoreFalseConditions) +
""
//
;
fiStr = SetLabel("XFI: ", fiStr, separator);
//
// XRSI ...
string rsiStr =
//
ToString("isXRSIPeak", isXRSIPeak, ignoreFalseConditions) +
ToString("isXRSIVale", isXRSIVale, ignoreFalseConditions) +
ToString("isXRSICrossedOverLongExit", isXRSICrossedOverLongExit, ignoreFalseConditions) +
ToString("isXRSICrossedOverLongEntry", isXRSICrossedOverLongEntry, ignoreFalseConditions) +
ToString("isXRSICrossedUnderShortExit", isXRSICrossedUnderShortExit, ignoreFalseConditions) +
ToString("isXRSICrossedUnderShortEntry", isXRSICrossedUnderShortEntry, ignoreFalseConditions) +
""
//
;
rsiStr = SetLabel("XRSI: ", rsiStr, separator);
//
// XTM ...
string tmStr =
//
ToString("isXTMPeak", isXTMPeak, ignoreFalseConditions) +
ToString("isXTMVale", isXTMVale, ignoreFalseConditions) +
ToString("isXTMBullish", isXTMBullish, ignoreFalseConditions) +
ToString("isXTMBearish", isXTMBearish, ignoreFalseConditions) +
ToString("isXTMNeutural", isXTMNeutural, ignoreFalseConditions) +
ToString("isXTMEndBullish", isXTMEndBullish, ignoreFalseConditions) +
ToString("isXTMEndBearish", isXTMEndBearish, ignoreFalseConditions) +
ToString("isXTMStartBullish", isXTMStartBullish, ignoreFalseConditions) +
ToString("isXTMStartBearish", isXTMStartBearish, ignoreFalseConditions) +
ToString("isXTMEndBullishByNeutural", isXTMEndBullishByNeutural, ignoreFalseConditions) +
ToString("isXTMEndBearishByNeutural", isXTMEndBearishByNeutural, ignoreFalseConditions) +
ToString("isXTMStartBullishAfterNeutural", isXTMStartBullishAfterNeutural, ignoreFalseConditions) +
ToString("isXTMStartBearishAfterNeutural", isXTMStartBearishAfterNeutural, ignoreFalseConditions) +
""
//
;
tmStr = SetLabel("XTM: ", tmStr, separator);
//
// XAMA ...
string amaStr =
//
ToString("isXAMAPeak", isXAMAPeak, ignoreFalseConditions) +
ToString("isXAMAVale", isXAMAVale, ignoreFalseConditions) +
ToString("isXAMABullish", isXAMABullish, ignoreFalseConditions) +
ToString("isXAMABearish", isXAMABearish, ignoreFalseConditions) +
ToString("isXAMANeutural", isXAMANeutural, ignoreFalseConditions) +
ToString("isXAMAEndBullish", isXAMAEndBullish, ignoreFalseConditions) +
ToString("isXAMAEndBearish", isXAMAEndBearish, ignoreFalseConditions) +
ToString("isXAMAStartBullish", isXAMAStartBullish, ignoreFalseConditions) +
ToString("isXAMAStartBearish", isXAMAStartBearish, ignoreFalseConditions) +
ToString("isXAMAEndBullishByNeutural", isXAMAEndBullishByNeutural, ignoreFalseConditions) +
ToString("isXAMAEndBearishByNeutural", isXAMAEndBearishByNeutural, ignoreFalseConditions) +
ToString("isXAMAStartBullishAfterNeutural", isXAMAStartBullishAfterNeutural, ignoreFalseConditions) +
ToString("isXAMAStartBearishAfterNeutural", isXAMAStartBearishAfterNeutural, ignoreFalseConditions) +
""
//
;
amaStr = SetLabel("XAMA: ", amaStr, separator);
//
// XLH ...
string lhStr =
//
ToString("isXLHHHIncreased", isXLHHHIncreased, ignoreFalseConditions) +
ToString("isXLHHHDecreased", isXLHHHDecreased, ignoreFalseConditions) +
ToString("isXLHLLIncreased", isXLHLLIncreased, ignoreFalseConditions) +
ToString("isXLHLLDecreased", isXLHLLDecreased, ignoreFalseConditions) +
ToString("isXLHLowAttachedLL", isXLHLowAttachedLL, ignoreFalseConditions) +
ToString("isXLHHighAttachedHH", isXLHHighAttachedHH, ignoreFalseConditions) +
ToString("isXLHHHSameInLength", isXLHHHSameInLength, ignoreFalseConditions) +
ToString("isXLHLLSameInLength", isXLHLLSameInLength, ignoreFalseConditions) +
ToString("isXLHPriceOverSignal", isXLHPriceOverSignal, ignoreFalseConditions) +
ToString("isXLHPriceUnderSignal", isXLHPriceUnderSignal, ignoreFalseConditions) +
ToString("isXLHPriceInSignalRange", isXLHPriceInSignalRange, ignoreFalseConditions) +
ToString("isXLHPriceCrossedOverSignal", isXLHPriceCrossedOverSignal, ignoreFalseConditions) +
ToString("isXLHPriceCrossedUnderSignal", isXLHPriceCrossedUnderSignal, ignoreFalseConditions) +
""
//
;
lhStr = SetLabel("XLH: ", lhStr, separator);
//
// XTD ...
string tdStr =
//
ToString("isXTDSignalPeak", isXTDSignalPeak, ignoreFalseConditions) +
ToString("isXTDSignalVale", isXTDSignalVale, ignoreFalseConditions) +
ToString("isXTDBullishPeak", isXTDBullishPeak, ignoreFalseConditions) +
ToString("isXTDBullishVale", isXTDBullishVale, ignoreFalseConditions) +
ToString("isXTDBearishPeak", isXTDBearishPeak, ignoreFalseConditions) +
ToString("isXTDBearishVale", isXTDBearishVale, ignoreFalseConditions) +
ToString("isXTDBullOverBear", isXTDBullOverBear, ignoreFalseConditions) +
ToString("isXTDBullUnderBear", isXTDBullUnderBear, ignoreFalseConditions) +
ToString("isXTDSignalOverBear", isXTDSignalOverBear, ignoreFalseConditions) +
ToString("isXTDSignalUnderBear", isXTDSignalUnderBear, ignoreFalseConditions) +
ToString("isXTDBullCrossedOverBear", isXTDBullCrossedOverBear, ignoreFalseConditions) +
ToString("isXTDBullCrossedUnderBear", isXTDBullCrossedUnderBear, ignoreFalseConditions) +
ToString("isXTDSignalCrossedOverBear", isXTDSignalCrossedOverBear, ignoreFalseConditions) +
ToString("isXTDSignalCrossedUnderBear", isXTDSignalCrossedUnderBear, ignoreFalseConditions) +
""
//
;
tdStr = SetLabel("XTD: ", tdStr, separator);
//
// XTS ...
string tsStr =
//
ToString("isXTSAllSame", isXTSAllSame, ignoreFalseConditions) +
ToString("isXTSCurrentMin", isXTSCurrentMin, ignoreFalseConditions) +
ToString("isXTSCurrentMax", isXTSCurrentMax, ignoreFalseConditions) +
ToString("isXTSCurrentOverFarest", isXTSCurrentOverFarest, ignoreFalseConditions) +
ToString("isXTSCurrentOverNearest", isXTSCurrentOverNearest, ignoreFalseConditions) +
ToString("isXTSCurrentOverMediest", isXTSCurrentOverMediest, ignoreFalseConditions) +
ToString("isXTSCurrentUnderFarest", isXTSCurrentUnderFarest, ignoreFalseConditions) +
ToString("isXTSCurrentUnderNearest", isXTSCurrentUnderNearest, ignoreFalseConditions) +
ToString("isXTSCurrentUnderMediest", isXTSCurrentUnderMediest, ignoreFalseConditions) +
ToString("isXTSCurrentCrossedOverFarest", isXTSCurrentCrossedOverFarest, ignoreFalseConditions) +
ToString("isXTSCurrentCrossedOverNearest", isXTSCurrentCrossedOverNearest, ignoreFalseConditions) +
ToString("isXTSCurrentCrossedOverMediest", isXTSCurrentCrossedOverMediest, ignoreFalseConditions) +
ToString("isXTSCurrentCrossedUnderFarest", isXTSCurrentCrossedUnderFarest, ignoreFalseConditions) +
ToString("isXTSCurrentCrossedUnderNearest", isXTSCurrentCrossedUnderNearest, ignoreFalseConditions) +
ToString("isXTSCurrentCrossedUnderMediest", isXTSCurrentCrossedUnderMediest, ignoreFalseConditions) +
""
//
;
tsStr = SetLabel("XTS: ", tsStr, separator);
//
// XCHLH ...
string chlhStr =
//
ToString("isXCHLHSameHHs", isXCHLHSameHHs, ignoreFalseConditions) +
ToString("isXCHLHSameLLs", isXCHLHSameLLs, ignoreFalseConditions) +
ToString("isXCHLHSCMCHHSame", isXCHLHSCMCHHSame, ignoreFalseConditions) +
ToString("isXCHLHSCMCLLSame", isXCHLHSCMCLLSame, ignoreFalseConditions) +
ToString("isXCHLHSCLCHHSame", isXCHLHSCLCHHSame, ignoreFalseConditions) +
ToString("isXCHLHSCLCLLSame", isXCHLHSCLCLLSame, ignoreFalseConditions) +
ToString("isXCHLHMCLCHHSame", isXCHLHMCLCHHSame, ignoreFalseConditions) +
ToString("isXCHLHMCLCLLSame", isXCHLHMCLCLLSame, ignoreFalseConditions) +
ToString("isXCHLHMCOnTopOfLC", isXCHLHMCOnTopOfLC, ignoreFalseConditions) +
ToString("isXCHLHMCInBottomOfLC", isXCHLHMCInBottomOfLC, ignoreFalseConditions) +
""
//
;
chlhStr = SetLabel("XCHLH: ", chlhStr, separator);
//
// XCHMA ...
string chmaStr =
//
ToString("isXCHMASCOverMax", isXCHMASCOverMax, ignoreFalseConditions) +
ToString("isXCHMASCOverMin", isXCHMASCOverMin, ignoreFalseConditions) +
ToString("isXCHMASCUnderMax", isXCHMASCUnderMax, ignoreFalseConditions) +
ToString("isXCHMASCUnderMin", isXCHMASCUnderMin, ignoreFalseConditions) +
ToString("isXCHMASCCrossedOverMax", isXCHMASCCrossedOverMax, ignoreFalseConditions) +
ToString("isXCHMASCCrossedUnderMax", isXCHMASCCrossedUnderMax, ignoreFalseConditions) +
ToString("isXCHMASCCrossedOverMin", isXCHMASCCrossedOverMin, ignoreFalseConditions) +
ToString("isXCHMASCCrossedUnderMin", isXCHMASCCrossedUnderMin, ignoreFalseConditions) +
ToString("isXCHMASCPeak", isXCHMASCPeak, ignoreFalseConditions) +
ToString("isXCHMASCVale", isXCHMASCVale, ignoreFalseConditions) +
ToString("isXCHMASCTrendsUp", isXCHMASCTrendsUp, ignoreFalseConditions) +
ToString("isXCHMASCTrendsDown", isXCHMASCTrendsDown, ignoreFalseConditions) +
ToString("isXCHMASCFastOverSlow", isXCHMASCFastOverSlow, ignoreFalseConditions) +
ToString("isXCHMASCFastUnderSlow", isXCHMASCFastUnderSlow, ignoreFalseConditions) +
ToString("isXCHMASCFastCrossedOverSlow", isXCHMASCFastCrossedOverSlow, ignoreFalseConditions) +
ToString("isXCHMASCFastCrossedUnderSlow", isXCHMASCFastCrossedUnderSlow, ignoreFalseConditions) +
ToString("isXCHMAMCPeak", isXCHMAMCPeak, ignoreFalseConditions) +
ToString("isXCHMAMCVale", isXCHMAMCVale, ignoreFalseConditions) +
ToString("isXCHMAMCTrendsUp", isXCHMAMCTrendsUp, ignoreFalseConditions) +
ToString("isXCHMAMCTrendsDown", isXCHMAMCTrendsDown, ignoreFalseConditions) +
ToString("isXCHMAMCFastOverSlow", isXCHMAMCFastOverSlow, ignoreFalseConditions) +
ToString("isXCHMAMCFastUnderSlow", isXCHMAMCFastUnderSlow, ignoreFalseConditions) +
ToString("isXCHMAMCFastCrossedOverSlow", isXCHMAMCFastCrossedOverSlow, ignoreFalseConditions) +
ToString("isXCHMAMCFastCrossedUnderSlow", isXCHMAMCFastCrossedUnderSlow, ignoreFalseConditions) +
ToString("isXCHMALCPeak", isXCHMALCPeak, ignoreFalseConditions) +
ToString("isXCHMALCVale", isXCHMALCVale, ignoreFalseConditions) +
ToString("isXCHMALCTrendsUp", isXCHMALCTrendsUp, ignoreFalseConditions) +
ToString("isXCHMALCTrendsDown", isXCHMALCTrendsDown, ignoreFalseConditions) +
ToString("isXCHMALCFastOverSlow", isXCHMALCFastOverSlow, ignoreFalseConditions) +
ToString("isXCHMALCFastUnderSlow", isXCHMALCFastUnderSlow, ignoreFalseConditions) +
ToString("isXCHMALCFastCrossedOverSlow", isXCHMALCFastCrossedOverSlow, ignoreFalseConditions) +
ToString("isXCHMALCFastCrossedUnderSlow", isXCHMALCFastCrossedUnderSlow, ignoreFalseConditions) +
""
//
;
chmaStr = SetLabel("XCHMA: ", chmaStr, separator);
//
// Generating Full Result by Combining parts ...
result =
//
"[" + GetToken() + "]" + separator +
"-----------------------------" + separator +
commonStr +
(onlySummary
? ""
: obdStr +
fiStr +
rsiStr +
tmStr +
amaStr +
lhStr +
tdStr +
tsStr +
chlhStr +
chmaStr //
) +
""
//
;
//
return result;
}
//
// For Data Collector ...
string GetToken()
{
return GetSpecificToken(this);
}
bool IsModelValid()
{
return false;
}
string ToModelString()
{
return NULL;
}
bool ParseModel(string content)
{
return false;
}
int FindIndex(X5MarketConditions &items[])
{
return -1;
}
};
//
// Class ...
//
// X5 Provider Class ...
class XSCX5Provider : public XSCBaseProvider
{
//
// Public ...
public:
//
// Props ...
XSCXTSHelper *tsHelper;
XSCXFIHelper *fiHelper;
XSCXTDHelper *tdHelper;
XSCXLHHelper *lhHelper;
XSCXTMHelper *tmHelper;
XSCXCCHelper *ccHelper;
XSCXCTHelper *ctHelper;
XSCXOBDHelper *obdHelper;
XSCXRSIHelper *rsiHelper;
XSCXAMAHelper *amaHelper;
XSCXCHMAHelper *chmaHelper;
XSCXCHLHHelper *chlhHelper;
//
// Constructor ...
XSCX5Provider(
string symbol, // Trading Symbol
ENUM_TIMEFRAMES period // Trading PEriod
) : XSCBaseProvider(symbol, period)
{
//
tsHelper = new XSCXTSHelper();
fiHelper = new XSCXFIHelper();
tdHelper = new XSCXTDHelper();
lhHelper = new XSCXLHHelper();
tmHelper = new XSCXTMHelper();
ccHelper = new XSCXCCHelper();
ctHelper = new XSCXCTHelper();
obdHelper = new XSCXOBDHelper();
rsiHelper = new XSCXRSIHelper();
amaHelper = new XSCXAMAHelper();
chmaHelper = new XSCXCHMAHelper();
chlhHelper = new XSCXCHLHHelper();
//
mNumberOfItems = 15;
}
//
// Properties Gettr(s) / Setter(s) ...
//
// Inheritance ...
//
// Init all Requirements ...
virtual bool Init(X5ProviderInputs &inputs)
{
//
bool result = false;
//
// Validate ...
result = inputs.IsValid();
if (!result)
{
return result;
}
//
mInputs = inputs;
//
string mSymbol = GetSymbol();
ENUM_TIMEFRAMES mPeriod = GetPeriod();
//
result = tsHelper
.Init(
mSymbol,
mPeriod,
mInputs.tsInputs
//
);
if (!result)
{
return result;
}
//
result = fiHelper
.Init(
mSymbol,
mPeriod,
mInputs.fiInputs
//
);
if (!result)
{
return result;
}
//
result = tdHelper
.Init(
mSymbol,
mPeriod,
mInputs.tdInputs
//
);
if (!result)
{
return result;
}
//
result = lhHelper
.Init(
mSymbol,
mPeriod,
mInputs.lhInputs
//
);
if (!result)
{
return result;
}
//
result = tmHelper
.Init(
mSymbol,
mPeriod,
mInputs.tmInputs
//
);
if (!result)
{
return result;
}
//
result = ccHelper
.Init(
mSymbol,
mPeriod,
mInputs.ccInputs
//
);
if (!result)
{
return result;
}
//
result = ctHelper
.Init(
mSymbol,
mPeriod,
mInputs.ctInputs
//
);
if (!result)
{
return result;
}
//
result = obdHelper
.Init(
mSymbol,
mPeriod,
mInputs.obdInputs
//
);
if (!result)
{
return result;
}
//
result = rsiHelper
.Init(
mSymbol,
mPeriod,
mInputs.rsiInputs
//
);
if (!result)
{
return result;
}
//
result = amaHelper
.Init(
mSymbol,
mPeriod,
mInputs.amaInputs
//
);
if (!result)
{
return result;
}
//
result = chmaHelper
.Init(
mSymbol,
mPeriod,
mInputs.chmaInputs
//
);
if (!result)
{
return result;
}
//
result = chlhHelper
.Init(
mSymbol,
mPeriod,
mInputs.chlhInputs
//
);
//
return result;
}
//
// DeInit all Requirements ...
virtual void DeInit()
{
//
delete tsHelper;
delete fiHelper;
delete tdHelper;
delete lhHelper;
delete tmHelper;
delete ccHelper;
delete ctHelper;
delete obdHelper;
delete rsiHelper;
delete amaHelper;
delete chmaHelper;
delete chlhHelper;
}
//
// Functions ...
//
// Set Default Position's Type ...
// Enable / Disable Long (Buy), Short (Sell) ...
void SetSignalTypeState(
ENUM_POSITION_TYPE type, // Which types are Signals be Targetted
bool state // Which State is going to Set
)
{
//
if (IsLong(type))
{
mIsLongEnable = state;
}
else
{
mIsShortEnable = state;
}
}
//
// Set Signal Providers ...
void SetSignalProviderState(
ENUM_X5_SIGNAL_PROVIDERS provider, // Provider State
bool state // Which state is going to set ...
)
{
//
if (provider == NONE)
{
return;
}
//
switch (provider)
{
//
case XSP:
mIsXSPSignalProviderEnable = state;
break;
//
case XTD:
mIsXTDSignalProviderEnable = state;
break;
//
case XTAM:
mIsXTAMSignalProviderEnable = state;
break;
//
case XSI:
mIsXSISignalProviderEnable = state;
break;
//
case XTSFI:
mIsXTSFISignalProviderEnable = state;
break;
//
case XOBDLH:
mIsXOBDLHSignalProviderEnable = state;
break;
//
case XCHMACC:
mIsXCHMACCSignalProviderEnable = state;
break;
//
case XCHMAMN:
mIsXCHMAMNSignalProviderEnable = state;
break;
//
case XCHMAMX:
mIsXCHMAMXSignalProviderEnable = state;
break;
}
}
//
void SetSignalProviderStates(
ENUM_X5_SIGNAL_PROVIDERS &providers[], // Collection of Providers ...
bool state // Which state is going to set ...
)
{
//
int providersCount = ArraySize(providers);
if (providersCount <= 0)
{
return;
}
//
for (int i = 0; i < providersCount; i++)
{
SetSignalProviderState(providers[i], state);
}
}
//
virtual string GetTag()
{
//
string result = NULL;
//
result =
//
GetToken() +
"[" +
GetSymbol() +
"," +
ToString(GetPeriod()) +
"]"
//
;
//
return result;
}
//
virtual void GetMarketConditions(
X5MarketConditions &mConditions, // Market Conditions Result
int barIndex = 0 // Specified Bar Index
)
{
//
mConditions.Clear();
//
// XTM ...
tmHelper.CopyMain(
barIndex,
mNumberOfItems,
mConditions.tms);
//
// XAMA ...
amaHelper.CopyMain(
barIndex,
mNumberOfItems,
mConditions.amas);
//
// XFI ...
fiHelper.CopyMain(
barIndex,
mNumberOfItems,
mConditions.fis);
//
// XOBD ...
obdHelper.CopyMain(
barIndex,
mNumberOfItems,
mConditions.obds);
//
// XRSI ...
rsiHelper.CopyMain(
barIndex,
mNumberOfItems,
mConditions.rsis);
//
// XLH ...
//
// HH ...
lhHelper.CopyHH(
barIndex,
mNumberOfItems,
mConditions.lhHhs);
//
// LL ...
lhHelper.CopyLL(
barIndex,
mNumberOfItems,
mConditions.lhLls);
//
// Signal ...
lhHelper.CopySignal(
barIndex,
mNumberOfItems,
mConditions.lhSignals);
//
// XTD ...
//
// Bullish ...
tdHelper.CopyBullish(
barIndex,
mNumberOfItems,
mConditions.tdBullishs);
//
// Bearish ...
tdHelper.CopyBearish(
barIndex,
mNumberOfItems,
mConditions.tdBearishs);
//
// Signal ...
tdHelper.CopySignal(
barIndex,
mNumberOfItems,
mConditions.tdSignals);
//
// XTS ...
//
// Current ...
tsHelper.CopyCurrent(
barIndex,
mNumberOfItems,
mConditions.tsCurrents);
//
// Nearest ...
tsHelper.CopyNearest(
barIndex,
mNumberOfItems,
mConditions.tsNearests);
//
// Mediest ...
tsHelper.CopyMediest(
barIndex,
mNumberOfItems,
mConditions.tsMediests);
//
// Farest ...
tsHelper.CopyFarest(
barIndex,
mNumberOfItems,
mConditions.tsFarests);
//
// XCHMA ...
//
// Short ...
//
// Fast ...
chmaHelper.CopySCFast(
barIndex,
mNumberOfItems,
mConditions.chmaScFasts);
//
// Slow ...
chmaHelper.CopySCSlow(
barIndex,
mNumberOfItems,
mConditions.chmaScSlows);
//
// Medium ...
//
// Fast ...
chmaHelper.CopyMCFast(
barIndex,
mNumberOfItems,
mConditions.chmaMcFasts);
//
// Slow ...
chmaHelper.CopyMCSlow(
barIndex,
mNumberOfItems,
mConditions.chmaMcSlows);
//
// Long ...
//
// Fast ...
chmaHelper.CopyLCFast(
barIndex,
mNumberOfItems,
mConditions.chmaLcFasts);
//
// Slow ...
chmaHelper.CopyLCSlow(
barIndex,
mNumberOfItems,
mConditions.chmaLcSlows);
//
// Hot States ...
chmaHelper.CopyHotState(
barIndex,
mNumberOfItems,
mConditions.chmaHotStates);
//
// XCHLH ...
//
// Short ...
//
// HH ...
chlhHelper.CopySCHH(
barIndex,
mNumberOfItems,
mConditions.chlhScHHs);
//
// LL ...
chlhHelper.CopySCLL(
barIndex,
mNumberOfItems,
mConditions.chlhScLLs);
//
// Medium ...
//
// HH ...
chlhHelper.CopyMCHH(
barIndex,
mNumberOfItems,
mConditions.chlhMcHHs);
//
// LL ...
chlhHelper.CopyMCLL(
barIndex,
mNumberOfItems,
mConditions.chlhMcLLs);
//
// Long ...
//
// HH ...
chlhHelper.CopyLCHH(
barIndex,
mNumberOfItems,
mConditions.chlhLcHHs);
//
// LL ...
chlhHelper.CopyLCLL(
barIndex,
mNumberOfItems,
mConditions.chlhLcLLs);
//
// Hot State ...
chlhHelper.CopyHotState(
barIndex,
mNumberOfItems,
mConditions.chlhHotStates);
//
// Filling Bars ...
mCycle.GetBars(
mConditions.bars,
0,
mNumberOfItems);
//
CalculateConditions(mConditions);
}
//
// Check Market For Signal ...
virtual bool HasSignal(
int barIndex,
XSignal &mSignal, // Hold's Signal if Exists ...
X5MarketConditions &mConditions // Hold's Market Conditions ...
)
{
//
bool result = false;
//
// Validate Enable Process ...
result = !CanIgnoreProcess();
if (!result)
{
return result;
}
//
// Validate Enable Type of Signalling ...
result = mIsLongEnable || mIsShortEnable;
if (!result)
{
return result;
}
//
// Now we Have to Pass the Conditions to Each Signal Provider
// for Retrieving Signals Based On them ...
//
// Reading Market Conditions ...
GetMarketConditions(mConditions, barIndex);
//
int signalPusher = 0;
bool hasLong = false;
bool hasShort = false;
string provider = "";
//
// Long ...
if (mIsLongEnable)
{
//
signalPusher = 0;
//
hasLong = HasSpecificSignal(
barIndex,
POSITION_TYPE_BUY,
provider,
signalPusher,
mConditions //
);
}
//
// Short ...
if (mIsShortEnable)
{
//
signalPusher = 0;
//
hasShort = HasSpecificSignal(
barIndex,
POSITION_TYPE_SELL,
provider,
signalPusher,
mConditions //
);
}
//
result = hasLong || hasShort;
if (!result)
{
return result;
}
//
// Prepare Signal ...
//
if (result)
{
//
string mConditionsStr = mConditions.GenerateSummary(true);
//
string providerTypeStr = provider + "(" + (hasLong ? "Long" : "Short") + ")" + "\n";
mConditionsStr = providerTypeStr + "\n" + mConditionsStr;
mConditionsCollector.Add(mConditionsStr);
Print(mConditionsStr);
}
//
return result;
}
//
// Protected ...
protected:
//
X5ProviderInputs mInputs;
//
// Private ...
private:
//
// Props ...
//
// Prepare an Instance of Data Collector for MarketConditions ...
XSC5MarketConditionDataCollector mConditionsCollector;
//
int mNumberOfItems; // Number of Buffer Ites Read in Conditions ...
//
// Tools ...
//
// Calculations ...
//
// Calculate Conditions ...
void CalculateConditions(X5MarketConditions &mConditions)
{
//
CalculateTMConditions(mConditions);
CalculateAMAConditions(mConditions);
CalculateFIConditions(mConditions);
CalculateOBDConditions(mConditions);
CalculateRSIConditions(mConditions);
CalculateCHLHConditions(mConditions);
CalculateLHConditions(mConditions);
CalculateTDConditions(mConditions);
CalculateTSConditions(mConditions);
CalculateCHMAConditions(mConditions);
}
//
// XTM ..
void CalculateTMConditions(X5MarketConditions &mConditions)
{
//
int mIndex = 0;
int mPrevIndex = mIndex + 1;
int mLength = 10;
int mFrom = mIndex + mLength;
//
mConditions.isXTMPeak = IsIncreasing(
mFrom,
mIndex,
mConditions.tms);
//
mConditions.isXTMVale = IsDecreasing(
mFrom,
mIndex,
mConditions.tms);
//
mConditions.isXTMBullish = mConditions.bars[mIndex].low > mConditions.tms[mIndex];
bool isXTMBullishPrev = mConditions.bars[mPrevIndex].low > mConditions.tms[mPrevIndex];
//
mConditions.isXTMBearish = mConditions.bars[mIndex].high < mConditions.tms[mIndex];
bool isXTMBearishPrev = mConditions.bars[mPrevIndex].high < mConditions.tms[mPrevIndex];
//
mConditions.isXTMNeutural = !mConditions.isXTMBullish && !mConditions.isXTMBearish;
bool isXTMNeuturalPrev = !isXTMBullishPrev && !isXTMBearishPrev;
//
mConditions.isXTMEndBullish =
//
!mConditions.isXTMBullish &&
isXTMBullishPrev
//
;
//
mConditions.isXTMEndBearish =
//
!mConditions.isXTMBearish &&
isXTMBearishPrev
//
;
//
mConditions.isXTMStartBullish =
//
mConditions.isXTMBullish &&
!isXTMBullishPrev
//
;
//
mConditions.isXTMStartBearish =
//
mConditions.isXTMBearish &&
!isXTMBearishPrev
//
;
//
mConditions.isXTMEndBullishByNeutural =
//
mConditions.isXTMNeutural &&
isXTMBullishPrev
//
;
//
mConditions.isXTMEndBearishByNeutural =
//
mConditions.isXTMNeutural &&
isXTMBearishPrev
//
;
//
mConditions.isXTMStartBullishAfterNeutural =
//
mConditions.isXTMBullish &&
isXTMNeuturalPrev
//
;
//
mConditions.isXTMStartBearishAfterNeutural =
//
mConditions.isXTMBearish &&
isXTMNeuturalPrev
//
;
}
//
// XAMA ..
void CalculateAMAConditions(X5MarketConditions &mConditions)
{
//
int mIndex = 0;
int mPrevIndex = mIndex + 1;
int mLength = 10;
int mFrom = mIndex + mLength;
//
mConditions.isXAMAPeak = IsIncreasing(
mFrom,
mIndex,
mConditions.amas);
//
mConditions.isXAMAVale = IsDecreasing(
mFrom,
mIndex,
mConditions.amas);
//
mConditions.isXAMABullish = mConditions.bars[mIndex].low > mConditions.amas[mIndex];
bool isXAMABullishPrev = mConditions.bars[mPrevIndex].low > mConditions.amas[mPrevIndex];
//
mConditions.isXAMABearish = mConditions.bars[mIndex].high < mConditions.amas[mIndex];
bool isXAMABearishPrev = mConditions.bars[mPrevIndex].high < mConditions.amas[mPrevIndex];
//
mConditions.isXAMANeutural = !mConditions.isXAMABullish && !mConditions.isXAMABearish;
bool isXAMANeuturalPrev = !isXAMABullishPrev && !isXAMABearishPrev;
//
mConditions.isXAMAEndBullish =
//
!mConditions.isXAMABullish &&
isXAMABullishPrev
//
;
//
mConditions.isXAMAEndBearish =
//
!mConditions.isXAMABearish &&
isXAMABearishPrev
//
;
//
mConditions.isXAMAStartBullish =
//
mConditions.isXAMABullish &&
!isXAMABullishPrev
//
;
//
mConditions.isXAMAStartBearish =
//
mConditions.isXAMABearish &&
!isXAMABearishPrev
//
;
//
mConditions.isXAMAEndBullishByNeutural =
//
mConditions.isXAMANeutural &&
isXAMABullishPrev
//
;
//
mConditions.isXAMAEndBearishByNeutural =
//
mConditions.isXAMANeutural &&
isXAMABearishPrev
//
;
//
mConditions.isXAMAStartBullishAfterNeutural =
//
mConditions.isXAMABullish &&
isXAMANeuturalPrev
//
;
//
mConditions.isXAMAStartBearishAfterNeutural =
//
mConditions.isXAMABearish &&
isXAMANeuturalPrev
//
;
}
//
// XFI ...
void CalculateFIConditions(X5MarketConditions &mConditions)
{
//
int mIndex = 0;
int mPrevIndex = mIndex + 1;
int mLength = 10;
int mFrom = mIndex + mLength;
//
mConditions.isXFIPeak = IsIncreasing(
mFrom,
mIndex,
mConditions.fis);
//
mConditions.isXFIVale = IsDecreasing(
mFrom,
mIndex,
mConditions.fis);
//
mConditions.isXFIOverZero = mConditions.fis[mIndex] > 0;
//
mConditions.isXFICrossedOverZero =
//
mConditions.isXFIOverZero &&
mConditions.fis[mPrevIndex] <= 0
//
;
//
mConditions.isXFIUnderZero = mConditions.fis[mIndex] < 0;
//
mConditions.isXFICrossedUnderZero =
//
mConditions.isXFIUnderZero &&
mConditions.fis[mPrevIndex] >= 0
//
;
}
//
// XOBD ...
void CalculateOBDConditions(X5MarketConditions &mConditions)
{
//
int mIndex = 0;
int mPrevIndex = mIndex + 1;
int mLength = 10;
int mFrom = mIndex + mLength;
//
mConditions.isXOBDSwingLow = mConditions.obds[mIndex] == X_SWING_LOW;
mConditions.isXOBDSwingHigh = mConditions.obds[mIndex] == X_SWING_HIGH;
}
//
// XRSI ...
void CalculateRSIConditions(X5MarketConditions &mConditions)
{
//
int mIndex = 0;
int mPrevIndex = mIndex + 1;
int mLength = 10;
int mFrom = mIndex + mLength;
//
double shortEntryValue = mInputs.rsiInputs.shortEntryValue;
double shortExitValue = mInputs.rsiInputs.shortExitValue;
double longEntryValue = mInputs.rsiInputs.longEntryValue;
double longExitValue = mInputs.rsiInputs.longExitValue;
//
mConditions.isXRSIPeak = IsIncreasing(
mFrom,
mIndex,
mConditions.rsis);
//
mConditions.isXRSIVale = IsDecreasing(
mFrom,
mIndex,
mConditions.rsis);
//
mConditions.isXRSICrossedOverLongExit =
//
mConditions.rsis[mIndex] > longExitValue &&
mConditions.rsis[mPrevIndex] <= longExitValue;
//
;
//
mConditions.isXRSICrossedOverLongEntry =
//
mConditions.rsis[mIndex] > longEntryValue &&
mConditions.rsis[mPrevIndex] <= longEntryValue;
//
;
//
mConditions.isXRSICrossedUnderShortExit =
//
mConditions.rsis[mIndex] < shortExitValue &&
mConditions.rsis[mPrevIndex] >= shortExitValue;
//
;
//
mConditions.isXRSICrossedUnderShortEntry =
//
mConditions.rsis[mIndex] < shortEntryValue &&
mConditions.rsis[mPrevIndex] >= shortEntryValue;
//
;
}
//
// XCHLH ...
void CalculateCHLHConditions(X5MarketConditions &mConditions)
{
//
int mIndex = 0;
int mPrevIndex = mIndex + 1;
int mLength = 10;
int mFrom = mIndex + mLength;
//
mConditions.isXCHLHSameHHs =
//
mConditions.chlhScHHs[mIndex] == mConditions.chlhMcHHs[mIndex] &&
mConditions.chlhMcHHs[mIndex] == mConditions.chlhLcHHs[mIndex]
//
;
//
mConditions.isXCHLHSameLLs =
//
mConditions.chlhScLLs[mIndex] == mConditions.chlhMcLLs[mIndex] &&
mConditions.chlhMcLLs[mIndex] == mConditions.chlhLcLLs[mIndex]
//
;
//
mConditions.isXCHLHSCMCHHSame =
//
mConditions.chlhScHHs[mIndex] == mConditions.chlhMcHHs[mIndex]
//
;
//
mConditions.isXCHLHSCMCLLSame =
//
mConditions.chlhScLLs[mIndex] == mConditions.chlhMcLLs[mIndex]
//
;
//
mConditions.isXCHLHSCLCHHSame =
//
mConditions.chlhScHHs[mIndex] == mConditions.chlhLcLLs[mIndex]
//
;
//
mConditions.isXCHLHSCLCLLSame =
//
mConditions.chlhScLLs[mIndex] == mConditions.chlhLcLLs[mIndex]
//
;
//
mConditions.isXCHLHMCLCHHSame =
//
mConditions.chlhMcHHs[mIndex] == mConditions.chlhLcHHs[mIndex]
//
;
//
mConditions.isXCHLHMCLCLLSame =
//
mConditions.chlhMcLLs[mIndex] == mConditions.chlhLcLLs[mIndex]
//
;
// //
// isXCHLHMCOnTopOfLC =
// //
// //
// ;
// //
// isXCHLHMCInBottomOfLC =
// //
// //
// ;
}
//
// XLH ...
void CalculateLHConditions(X5MarketConditions &mConditions)
{
//
int mIndex = 0;
int mPrevIndex = mIndex + 1;
int mLength = 10;
int mFrom = mIndex + mLength;
//
mConditions.isXLHHHIncreased = IsIncreasing(
mFrom,
mIndex,
mConditions.lhHhs);
//
mConditions.isXLHHHDecreased = IsDecreasing(
mFrom,
mIndex,
mConditions.lhHhs);
//
mConditions.isXLHLLIncreased = IsIncreasing(
mFrom,
mIndex,
mConditions.lhLls);
//
mConditions.isXLHLLDecreased = IsDecreasing(
mFrom,
mIndex,
mConditions.lhLls);
//
mConditions.isXLHLowAttachedLL = mConditions.bars[mIndex].low == mConditions.lhLls[mIndex];
//
mConditions.isXLHHighAttachedHH = mConditions.bars[mIndex].high == mConditions.lhHhs[mIndex];
;
//
mConditions.isXLHHHSameInLength = IsSame(mConditions.lhHhs);
//
mConditions.isXLHLLSameInLength = IsSame(mConditions.lhLls);
//
mConditions.isXLHPriceOverSignal = mConditions.bars[mIndex].low > mConditions.lhSignals[mIndex];
//
mConditions.isXLHPriceUnderSignal = mConditions.bars[mIndex].high < mConditions.lhSignals[mIndex];
//
mConditions.isXLHPriceInSignalRange = !mConditions.isXLHPriceOverSignal && !mConditions.isXLHPriceUnderSignal;
//
mConditions.isXLHPriceCrossedOverSignal =
//
mConditions.isXLHPriceOverSignal &&
!(mConditions.bars[mPrevIndex].low > mConditions.lhSignals[mPrevIndex])
//
;
//
mConditions.isXLHPriceCrossedUnderSignal =
//
mConditions.isXLHPriceUnderSignal &&
!(mConditions.bars[mIndex].high < mConditions.lhSignals[mIndex])
//
;
}
//
// XTD ...
void CalculateTDConditions(X5MarketConditions &mConditions)
{
//
int mIndex = 0;
int mPrevIndex = mIndex + 1;
int mLength = 10;
int mFrom = mIndex + mLength;
//
mConditions.isXTDSignalPeak = IsIncreasing(
mFrom,
mIndex,
mConditions.tdSignals);
//
mConditions.isXTDSignalVale = IsDecreasing(
mFrom,
mIndex,
mConditions.tdSignals);
//
mConditions.isXTDBullishPeak = IsIncreasing(
mFrom,
mIndex,
mConditions.tdBullishs);
//
mConditions.isXTDBullishVale = IsDecreasing(
mFrom,
mIndex,
mConditions.tdBullishs);
//
mConditions.isXTDBearishPeak = IsIncreasing(
mFrom,
mIndex,
mConditions.tdBearishs);
//
mConditions.isXTDBearishVale = IsDecreasing(
mFrom,
mIndex,
mConditions.tdBearishs);
//
mConditions.isXTDBullOverBear = mConditions.tdBullishs[mIndex] > mConditions.tdBearishs[mIndex];
bool isXTDBullOverBearPrev = mConditions.tdBullishs[mPrevIndex] > mConditions.tdBearishs[mPrevIndex];
//
mConditions.isXTDBullUnderBear = mConditions.tdBullishs[mIndex] < mConditions.tdBearishs[mIndex];
bool isXTDBullUnderBearPrev = mConditions.tdBullishs[mPrevIndex] < mConditions.tdBearishs[mPrevIndex];
//
mConditions.isXTDSignalOverBear = mConditions.tdSignals[mIndex] > mConditions.tdBearishs[mIndex];
bool isXTDSignalOverBearPrev = mConditions.tdSignals[mPrevIndex] > mConditions.tdBearishs[mPrevIndex];
//
mConditions.isXTDSignalUnderBear = mConditions.tdSignals[mIndex] < mConditions.tdBearishs[mIndex];
bool isXTDSignalUnderBearPrev = mConditions.tdSignals[mPrevIndex] < mConditions.tdBearishs[mPrevIndex];
//
mConditions.isXTDBullCrossedOverBear =
mConditions.isXTDBullOverBear &&
!isXTDBullOverBearPrev;
//
mConditions.isXTDBullCrossedUnderBear =
mConditions.isXTDBullUnderBear &&
!isXTDBullUnderBearPrev;
//
mConditions.isXTDSignalCrossedOverBear =
mConditions.isXTDSignalOverBear &&
!isXTDSignalOverBearPrev;
//
mConditions.isXTDSignalCrossedUnderBear =
mConditions.isXTDSignalUnderBear &&
!isXTDSignalUnderBearPrev;
}
//
// XTS ...
void CalculateTSConditions(X5MarketConditions &mConditions)
{
//
int mIndex = 0;
int mPrevIndex = mIndex + 1;
int mLength = 10;
int mFrom = mIndex + mLength;
//
double current = mConditions.tsCurrents[mIndex];
double currentPrev = mConditions.tsCurrents[mPrevIndex];
//
double nearest = mConditions.tsNearests[mIndex];
double nearestPrev = mConditions.tsNearests[mPrevIndex];
//
double mediest = mConditions.tsMediests[mIndex];
double mediestPrev = mConditions.tsMediests[mPrevIndex];
//
double farest = mConditions.tsFarests[mIndex];
double farestPrev = mConditions.tsFarests[mPrevIndex];
//
double tsValues[] = {current, nearest, mediest, farest};
double tsMax = GetMax(tsValues);
double tsMin = GetMin(tsValues);
//
double tsPrevValues[] = {currentPrev, nearestPrev, mediestPrev, farestPrev};
double tsPrevMax = GetMax(tsPrevValues);
double tsPrevMin = GetMin(tsPrevValues);
//
mConditions.isXTSAllSame =
//
current == nearest &&
nearest == mediest &&
mediest == farest
//
;
//
mConditions.isXTSCurrentMin = current == tsMin;
mConditions.isXTSCurrentMax = current == tsMax;
//
mConditions.isXTSCurrentOverFarest = current > farest;
bool isXTSCurrentOverFarestPrev = currentPrev > farestPrev;
//
mConditions.isXTSCurrentOverNearest = current > nearest;
bool isXTSCurrentOverNearestPrev = currentPrev > nearestPrev;
//
mConditions.isXTSCurrentOverMediest = current > mediest;
bool isXTSCurrentOverMediestPrev = currentPrev > mediestPrev;
//
mConditions.isXTSCurrentUnderFarest = current < farest;
bool isXTSCurrentUnderFarestPrev = currentPrev < farestPrev;
//
mConditions.isXTSCurrentUnderNearest = current < nearest;
bool isXTSCurrentUnderNearestPrev = currentPrev < nearestPrev;
//
mConditions.isXTSCurrentUnderMediest = current < mediest;
bool isXTSCurrentUnderMediestPrev = currentPrev < mediestPrev;
//
mConditions.isXTSCurrentCrossedOverFarest =
mConditions.isXTSCurrentOverFarest &&
!isXTSCurrentOverFarestPrev;
//
mConditions.isXTSCurrentCrossedOverNearest =
mConditions.isXTSCurrentOverNearest &&
!isXTSCurrentOverNearestPrev;
//
mConditions.isXTSCurrentCrossedOverMediest =
mConditions.isXTSCurrentOverMediest &&
!isXTSCurrentOverMediestPrev;
//
mConditions.isXTSCurrentCrossedUnderFarest =
mConditions.isXTSCurrentUnderFarest &&
!isXTSCurrentUnderFarestPrev;
//
mConditions.isXTSCurrentCrossedUnderNearest =
mConditions.isXTSCurrentUnderNearest &&
!isXTSCurrentUnderNearestPrev;
//
mConditions.isXTSCurrentCrossedUnderMediest =
mConditions.isXTSCurrentUnderMediest &&
!isXTSCurrentUnderMediestPrev;
}
//
// XCHMA ...
void CalculateCHMAConditions(X5MarketConditions &mConditions)
{
//
int mIndex = 0;
int mPrevIndex = mIndex + 1;
int mLength = 10;
int mFrom = mIndex + mLength;
//
double scFast = mConditions.chmaScFasts[mIndex];
double scSlow = mConditions.chmaScSlows[mIndex];
double scFastPrev = mConditions.chmaScFasts[mPrevIndex];
double scSlowPrev = mConditions.chmaScSlows[mPrevIndex];
//
double mcFast = mConditions.chmaMcFasts[mIndex];
double mcSlow = mConditions.chmaMcSlows[mIndex];
double mcFastPrev = mConditions.chmaMcFasts[mPrevIndex];
double mcSlowPrev = mConditions.chmaMcSlows[mPrevIndex];
//
double lcFast = mConditions.chmaLcFasts[mIndex];
double lcSlow = mConditions.chmaLcSlows[mIndex];
double lcFastPrev = mConditions.chmaLcFasts[mPrevIndex];
double lcSlowPrev = mConditions.chmaLcSlows[mPrevIndex];
//
double chmaValues[] = {
scFast,
scSlow,
mcFast,
mcSlow,
lcFast,
lcSlow};
double chmaNonSCValues[] = {
mcFast,
mcSlow,
lcFast,
lcSlow};
double chmaMin = GetMin(chmaValues);
double chmaMax = GetMax(chmaValues);
double chmaNonSCMin = GetMin(chmaNonSCValues);
double chmaNonSCMax = GetMax(chmaNonSCValues);
//
double chmaValuesPrev[] = {
scFastPrev,
scSlowPrev,
mcFastPrev,
mcSlowPrev,
lcFastPrev,
lcSlowPrev};
double chmaNonSCValuesPrev[] = {
mcFastPrev,
mcSlowPrev,
lcFastPrev,
lcSlowPrev};
double chmaMinPrev = GetMin(chmaValuesPrev);
double chmaMaxPrev = GetMax(chmaValuesPrev);
double chmaNonSCMinPrev = GetMin(chmaNonSCValuesPrev);
double chmaNonSCMaxPrev = GetMax(chmaNonSCValuesPrev);
//
mConditions.isXCHMASCOverMax = MathMin(scFast, scSlow) > chmaNonSCMax;
bool isXCHMASCOverMaxPrev = MathMin(scFastPrev, scSlowPrev) > chmaNonSCMaxPrev;
//
mConditions.isXCHMASCOverMin = MathMin(scFast, scSlow) > chmaNonSCMin;
bool isXCHMASCOverMinPrev = MathMin(scFastPrev, scSlowPrev) > chmaNonSCMinPrev;
//
mConditions.isXCHMASCUnderMax = MathMax(scFast, scSlow) < chmaNonSCMax;
bool isXCHMASCUnderMaxPrev = MathMax(scFastPrev, scSlowPrev) < chmaNonSCMaxPrev;
//
mConditions.isXCHMASCUnderMin = MathMax(scFast, scSlow) < chmaNonSCMin;
bool isXCHMASCUnderMinPrev = MathMax(scFastPrev, scSlowPrev) < chmaNonSCMinPrev;
//
mConditions.isXCHMASCCrossedOverMax =
mConditions.isXCHMASCOverMax &&
!isXCHMASCOverMaxPrev;
//
mConditions.isXCHMASCCrossedUnderMax =
mConditions.isXCHMASCUnderMax &&
!isXCHMASCUnderMaxPrev;
//
mConditions.isXCHMASCCrossedOverMin =
mConditions.isXCHMASCOverMin &&
!isXCHMASCOverMinPrev;
//
mConditions.isXCHMASCCrossedUnderMin =
mConditions.isXCHMASCUnderMin &&
!isXCHMASCUnderMinPrev;
//
// Short ...
//
mConditions.isXCHMASCPeak = IsIncreasing(
mFrom,
mIndex,
mConditions.chmaScFasts);
//
mConditions.isXCHMASCVale = IsDecreasing(
mFrom,
mIndex,
mConditions.chmaScFasts);
//
mConditions.isXCHMASCTrendsUp = IsTrendingUp(
mConditions.chmaScFasts,
mConditions.chmaScSlows);
//
mConditions.isXCHMASCTrendsDown = IsTrendingDown(
mConditions.chmaScFasts,
mConditions.chmaScSlows);
//
mConditions.isXCHMASCFastOverSlow = scFast > scSlow;
bool isXCHMASCFastOverSlowPrev = scFastPrev > scSlowPrev;
//
mConditions.isXCHMASCFastUnderSlow = scFast < scSlow;
bool isXCHMASCFastUnderSlowPrev = scFastPrev < scSlowPrev;
//
mConditions.isXCHMASCFastCrossedOverSlow =
mConditions.isXCHMASCFastOverSlow &&
!isXCHMASCFastOverSlowPrev;
//
mConditions.isXCHMASCFastCrossedUnderSlow =
mConditions.isXCHMASCFastUnderSlow &&
!isXCHMASCFastUnderSlowPrev;
//
// Medium ...
//
mConditions.isXCHMAMCPeak = IsIncreasing(
mFrom,
mIndex,
mConditions.chmaMcFasts);
//
mConditions.isXCHMAMCVale = IsDecreasing(
mFrom,
mIndex,
mConditions.chmaMcFasts);
//
mConditions.isXCHMAMCTrendsUp = IsTrendingUp(
mConditions.chmaMcFasts,
mConditions.chmaMcSlows);
//
mConditions.isXCHMAMCTrendsDown = IsTrendingDown(
mConditions.chmaMcFasts,
mConditions.chmaMcSlows);
//
mConditions.isXCHMAMCFastOverSlow = mcFast > mcSlow;
bool isXCHMAMCFastOverSlowPrev = mcFastPrev > mcSlowPrev;
//
mConditions.isXCHMAMCFastUnderSlow = mcFast < mcSlow;
bool isXCHMAMCFastUnderSlowPrev = mcFastPrev < mcSlowPrev;
//
mConditions.isXCHMAMCFastCrossedOverSlow =
mConditions.isXCHMAMCFastOverSlow &&
!isXCHMAMCFastOverSlowPrev;
//
mConditions.isXCHMAMCFastCrossedUnderSlow =
mConditions.isXCHMAMCFastUnderSlow &&
!isXCHMAMCFastUnderSlowPrev;
//
// Long ...
//
mConditions.isXCHMALCPeak = IsIncreasing(
mFrom,
mIndex,
mConditions.chmaLcFasts);
//
mConditions.isXCHMALCVale = IsDecreasing(
mFrom,
mIndex,
mConditions.chmaLcFasts);
//
mConditions.isXCHMALCTrendsUp = IsTrendingUp(
mConditions.chmaLcFasts,
mConditions.chmaLcSlows);
//
mConditions.isXCHMALCTrendsDown = IsTrendingDown(
mConditions.chmaMcFasts,
mConditions.chmaMcSlows);
//
mConditions.isXCHMALCFastOverSlow = lcFast > lcSlow;
bool isXCHMALCFastOverSlowPrev = lcFastPrev > lcSlowPrev;
//
mConditions.isXCHMALCFastUnderSlow = lcFast < lcSlow;
bool isXCHMALCFastUnderSlowPrev = lcFastPrev < lcSlowPrev;
//
mConditions.isXCHMALCFastCrossedOverSlow =
mConditions.isXCHMALCFastOverSlow &&
!isXCHMALCFastOverSlowPrev;
//
mConditions.isXCHMALCFastCrossedUnderSlow =
mConditions.isXCHMALCFastUnderSlow &&
!isXCHMALCFastUnderSlowPrev;
}
//
// Signallers ...
//
bool mIsLongEnable;
bool mIsShortEnable;
//
bool mIsXSPSignalProviderEnable;
bool mIsXTDSignalProviderEnable;
bool mIsXTAMSignalProviderEnable;
bool mIsXSISignalProviderEnable;
bool mIsXTSFISignalProviderEnable;
bool mIsXOBDLHSignalProviderEnable;
bool mIsXCHMACCSignalProviderEnable;
bool mIsXCHMAMNSignalProviderEnable;
bool mIsXCHMAMXSignalProviderEnable;
//
// Check Market Conditions is Ready for Long Signals or not ...
bool IsReadyForLong(
X5MarketConditions &mConditions, // Market Conditions ...
bool checkXCHMAMin = true, // Force Check XCHMA Min State
bool checkXCHMAMax = true, // Force Check XCHMA Max State
bool checkXCHMACycles = true, // Force Check XCHMA Cycles State
bool checkXCHMAPeaks = true, // Force Check XCHMA Peaks State
bool checkXCHMATrendPowers = true, // Force Check XCHMA Trend Powers
bool checkXOBD = true, // Force Check XOBD State
bool checkXTS = true // Force Check XTS State
)
{
//
bool result = true;
//
if (checkXCHMAMin)
{
//
result =
//
// XCHMA MIN ...
!(
//
(mConditions.isXCHMASCOverMin ||
mConditions.isXCHMASCCrossedOverMin) &&
(mConditions.isXCHMASCUnderMin ||
mConditions.isXCHMASCCrossedUnderMin)
//
);
}
//
if (checkXCHMAMax && result)
{
//
result =
//
// XCHMA MAX ...
!(
//
(mConditions.isXCHMASCOverMax ||
mConditions.isXCHMASCCrossedOverMax) &&
(mConditions.isXCHMASCUnderMax ||
mConditions.isXCHMASCCrossedUnderMax)
//
)
//
;
}
//
if (checkXCHMACycles && result)
{
//
result =
//
// Check XCHMA Trend Bullish ...
(
//
// All Cycles Bullish ...
(
//
// SC ...
(mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow)
//
&&
//
// MC ...
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow)
//
&&
//
// LC ...
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)
//
)
//
||
//
// Two Cycle Fully Bullish ...
(
//
// SC and MC ...
(
//
// SC ...
(mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow)
//
&&
//
// MC ...
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow)
//
)
//
||
//
// SC and LC ...
(
//
// SC ...
(mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow)
//
&&
//
// LC ...
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)
//
)
//
||
//
// MC and LC ...
(
//
// MC ...
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow)
//
&&
//
// LC ...
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)
//
)
//
)
//
)
//
;
}
//
if (checkXCHMAPeaks && result)
{
//
result =
//
// XCHMA Check Peaks ...
!(
//
// All Cycles Peak ...
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak)
//
||
//
(
//
// SC MC ...
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak)
//
||
//
// SC LC ...
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCPeak)
//
||
//
// MC LC ...
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak)
//
)
//
)
//
;
}
//
if (checkXCHMATrendPowers && result)
{
//
result =
//
// XCHMA Check Trends Power ...
!(
//
// All Trends Down ...
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
||
//
// Twisted pairs ...
(
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown)
//
||
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
;
}
//
if (checkXOBD && result)
{
//
result =
//
// XOBD Check Swings ...
!mConditions.isXOBDSwingLow
//
;
}
//
if (checkXTS && result)
{
result =
//
// XTS Check ...
!(
//
mConditions.isXTSCurrentMin &&
//
(
//
// All Under ...
(
(mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest) &&
(mConditions.isXTSCurrentUnderMediest ||
mConditions.isXTSCurrentCrossedUnderMediest) &&
(mConditions.isXTSCurrentUnderFarest ||
mConditions.isXTSCurrentCrossedUnderFarest))
//
||
//
// Pairs ...
(
//
((mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest) &&
(mConditions.isXTSCurrentUnderMediest ||
mConditions.isXTSCurrentCrossedUnderMediest))
//
||
//
((mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest) &&
(mConditions.isXTSCurrentUnderFarest ||
mConditions.isXTSCurrentCrossedUnderFarest))
//
||
//
((mConditions.isXTSCurrentUnderMediest ||
mConditions.isXTSCurrentCrossedUnderMediest) &&
(mConditions.isXTSCurrentUnderFarest ||
mConditions.isXTSCurrentCrossedUnderFarest))
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// Check Market Conditions is Ready for Short Signals or not ...
bool IsReadyForShort(
X5MarketConditions &mConditions, // Market Conditions ...
bool checkXCHMAMin = true, // Force Check XCHMA Min State
bool checkXCHMAMax = true, // Force Check XCHMA Max State
bool checkXCHMACycles = true, // Force Check XCHMA Cycles State
bool checkXCHMAVales = true, // Force Check XCHMA Vales State
bool checkXCHMATrendPowers = true, // Force Check XCHMA Trend Powers
bool checkXOBD = true, // Force Check XOBD State
bool checkXTS = true // Force Check XTS State
)
{
//
bool result = true;
//
if (checkXCHMAMin)
{
//
result =
//
// XCHMA MIN ...
!(
//
(mConditions.isXCHMASCOverMin ||
mConditions.isXCHMASCCrossedOverMin) &&
(mConditions.isXCHMASCUnderMin ||
mConditions.isXCHMASCCrossedUnderMin)
//
);
}
//
if (checkXCHMAMax && result)
{
//
result =
//
// XCHMA MAX ...
!(
//
(mConditions.isXCHMASCOverMax ||
mConditions.isXCHMASCCrossedOverMax) &&
(mConditions.isXCHMASCUnderMax ||
mConditions.isXCHMASCCrossedUnderMax)
//
)
//
;
}
//
if (checkXCHMACycles && result)
{
//
result =
//
// Check XCHMA Trend Bullish ...
(
//
// All Cycles Bullish ...
(
//
// SC ...
(mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow)
//
&&
//
// MC ...
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow)
//
&&
//
// LC ...
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow)
//
)
//
||
//
// Two Cycle Fully Bullish ...
(
//
// SC and MC ...
(
//
// SC ...
(mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedOverSlow)
//
&&
//
// MC ...
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow)
//
)
//
||
//
// SC and LC ...
(
//
// SC ...
(mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow)
//
&&
//
// LC ...
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow)
//
)
//
||
//
// MC and LC ...
(
//
// MC ...
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow)
//
&&
//
// LC ...
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)
//
)
//
)
//
)
//
;
}
//
if (checkXCHMAVales && result)
{
//
result =
//
// XCHMA Check Vales ...
!(
//
// All Cycles Vale ...
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
||
//
(
//
// SC MC ...
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale)
//
||
//
// SC LC ...
(mConditions.isXCHMASCVale &&
mConditions.isXCHMALCVale)
//
||
//
// MC LC ...
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
)
//
)
//
;
}
//
if (checkXCHMATrendPowers && result)
{
//
result =
//
// XCHMA Check Trends Power ...
!(
//
// All Trends Down ...
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
||
//
// Twisted pairs ...
(
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown)
//
||
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
;
}
//
if (checkXOBD && result)
{
//
result =
//
// XOBD Check Swings ...
!mConditions.isXOBDSwingHigh
//
;
}
//
if (checkXTS && result)
{
//
result =
//
// XTS Check ...
!(
//
mConditions.isXTSCurrentMax &&
//
(
//
// All Over ...
(
(mConditions.isXTSCurrentOverNearest ||
mConditions.isXTSCurrentCrossedOverNearest) &&
(mConditions.isXTSCurrentOverMediest ||
mConditions.isXTSCurrentCrossedOverMediest) &&
(mConditions.isXTSCurrentOverFarest ||
mConditions.isXTSCurrentCrossedOverFarest))
//
||
//
// Pairs ...
(
//
((mConditions.isXTSCurrentOverNearest ||
mConditions.isXTSCurrentCrossedOverNearest) &&
(mConditions.isXTSCurrentOverMediest ||
mConditions.isXTSCurrentCrossedOverMediest))
//
||
//
((mConditions.isXTSCurrentOverNearest ||
mConditions.isXTSCurrentCrossedOverNearest) &&
(mConditions.isXTSCurrentOverFarest ||
mConditions.isXTSCurrentCrossedOverFarest))
//
||
//
((mConditions.isXTSCurrentOverMediest ||
mConditions.isXTSCurrentCrossedOverMediest) &&
(mConditions.isXTSCurrentOverFarest ||
mConditions.isXTSCurrentCrossedOverFarest))
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XSP ...
//
// Common Conditions ...
bool XSPHasLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XSPHasSpecifiedLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XSPHasLongSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
result =
//
false
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
result =
//
false
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
result =
//
false
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
result =
//
false
//
;
}
//
return result;
}
//
// XSP ...
//
// Common Conditions ...
bool XSPHasShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XSPHasSpecifiedShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XSPHasShortSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
result =
//
false
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
result =
//
false
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
result =
//
false
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
result =
//
false
//
;
}
//
return result;
}
//
// XTD ...
//
// Common Conditions ...
bool XTDHasLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
mConditions.isXTDSignalCrossedOverBear
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForLong(mConditions)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XTDHasSpecifiedLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XTDHasLongSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDSignalCrossedOverBear &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow))
//
||
//
((mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest) &&
(mConditions.isXTSCurrentUnderMediest ||
mConditions.isXTSCurrentCrossedUnderMediest) &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow))
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCCrossedOverMin &&
mConditions.isXTDSignalCrossedOverBear &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow))
//
||
//
(
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTSCurrentMax)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentUnderNearest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXFICrossedOverZero &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(
(mConditions.isXCHMAMCVale &&
mConditions.isXTDBearishVale) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow)
//
||
//
(mConditions.isXLHLLIncreased &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTSCurrentUnderFarest &&
(mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest))
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsDown)
//
)
//
)
//
||
//
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(
(mConditions.isXCHMAMCVale &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow)) &&
(
//
(
//
mConditions.isXAMANeutural
//
||
//
(mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
||
//
//
((mConditions.isXTSCurrentMax &&
mConditions.isXLHHHDecreased) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCLLSame &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow))
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalCrossedOverBear &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow))
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBullish &&
mConditions.isXAMANeutural &&
mConditions.isXAMAEndBullish &&
mConditions.isXTDSignalCrossedOverBear &&
(mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest) &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow))
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow))
//
)
//
)
//
||
//
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMANeutural &&
mConditions.isXAMAEndBearish &&
mConditions.isXTDBearishVale &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
||
//
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMAMCVale &&
//
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBullish)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHHHDecreased)
//
||
//
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow)
//
)
//
)
//
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
//
||
//
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMAMCVale &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow))
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXLHHHDecreased &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTSCurrentUnderFarest &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow))
//
)
//
)
//
)
//
)
//
||
//
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXAMAVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXLHLLIncreased)
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow))
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedOverBear &&
(mConditions.isXCHMASCTrendsUp &&
(mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow)))
//
||
//
(mConditions.isXTDSignalCrossedOverBear &&
(mConditions.isXCHMALCVale &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow)))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentUnderNearest)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentUnderNearest)
//
)
//
)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(
//
mConditions.isXCHMASCCrossedOverMax
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(
//
(mConditions.isXTSCurrentUnderFarest ||
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXTDSignalCrossedOverBear)
//
) &&
(mConditions.isXCHMALCVale &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow))
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow)) &&
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXAMAStartBullish)
//
||
//
((mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest) &&
(mConditions.isXTSCurrentUnderMediest ||
mConditions.isXTSCurrentCrossedUnderMediest))
//
)
//
)
//
)
//
)
//
||
//
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXTSCurrentMax ||
mConditions.isXTSCurrentUnderFarest) &&
mConditions.isXTDBearishVale &&
mConditions.isXLHLLDecreased &&
mConditions.isXLHPriceCrossedOverSignal &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow))
//
||
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHHighAttachedHH)
//
||
//
(mConditions.isXCHLHMCLCLLSame &&
(
//
(mConditions.isXCHMASCCrossedOverMin &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow))
//
||
//
(mConditions.isXCHMASCCrossedOverMax &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow))
//
)
//
)
//
||
//
(((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) ||
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow)) &&
//
(
//
((mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest) &&
(mConditions.isXTSCurrentUnderMediest ||
mConditions.isXTSCurrentCrossedUnderMediest))
//
)
//
)
//
)
//
)
//
||
//
((
//
(mConditions.isXFICrossedOverZero &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
) &&
(mConditions.isXCHMALCVale &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow)))
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
||
//
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow))
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXTDBearishVale &&
mConditions.isXFICrossedOverZero &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow))
//
||
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCVale &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow))
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
||
//
(mConditions.isXAMAEndBullish &&
mConditions.isXCHLHSCMCLLSame &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow))
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXCHMALCVale &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow))
//
)
//
)
//
||
//
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
//
||
//
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalCrossedOverBear &&
(
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMAMCVale &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXTDBearishVale) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXRSICrossedOverLongExit &&
(
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXAMAStartBullish &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXTDSignalCrossedOverBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBearishVale)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
((mConditions.isXTDBearishVale &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXAMAStartBullish &&
mConditions.isXCHMASCFastCrossedOverSlow)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXTMStartBullish &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDBearishVale &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale) &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXTMNeutural &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBearishVale)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTDBearishVale)
//
||
//
(mConditions.isXLHHHDecreased &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMNeutural ||
mConditions.isXTMEndBullish) &&
(
//
(mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMin)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCTrendsDown ||
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXCHLHSameHHs &&
(
//
(
//
mConditions.isXLHHighAttachedHH
//
||
//
(mConditions.isXLHLLSameInLength &&
mConditions.isXRSICrossedOverLongExit)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalCrossedOverBear &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXLHHighAttachedHH) &&
(
//
mConditions.isXCHLHSameHHs
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
// XTD Long ...
// Resolve Guard Attacks ...
||
//
(
//
// XTD Long ...
// isXTSCurrentUnderNearest
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
mConditions.isXTSCurrentCrossedUnderFarest
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHMAMCFastUnderSlow)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceInSignalRange)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXLHHHSameInLength &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBearishVale)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXLHPriceOverSignal &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
mConditions.isXLHPriceUnderSignal
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
mConditions.isXLHPriceInSignalRange
//
||
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXLHLLSameInLength) &&
(
//
mConditions.isXCHLHSCMCHHSame
//
||
//
mConditions.isXLHHHSameInLength
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHMALCVale &&
(
//
mConditions.isXCHLHMCLCHHSame
//
||
//
mConditions.isXLHHHSameInLength
//
)
//
)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXCHMASCOverMax &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
(
//
mConditions.isXLHLLIncreased
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXLHLLSameInLength &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
||
//
(mConditions.isXCHLHSameHHs &&
(
//
mConditions.isXLHLLSameInLength
//
||
//
(mConditions.isXTMNeutural ||
mConditions.isXTMEndBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHLLDecreased)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHHHSameInLength &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) ||
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXLHHHSameInLength) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXLHLLSameInLength)
//
||
//
(mConditions.isXLHLLIncreased &&
mConditions.isXLHPriceInSignalRange)
//
)
//
)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
mConditions.isXCHMASCCrossedOverMin
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXCHMASCCrossedOverMin &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMASCOverMax &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCPeak)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
mConditions.isXCHLHMCLCHHSame
//
||
//
(mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXLHPriceOverSignal &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXCHMASCFastCrossedOverSlow)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMax)
//
||
//
((mConditions.isXTDBearishVale &&
mConditions.isXCHMASCCrossedOverMin) &&
(
//
(mConditions.isXTMNeutural &&
(
//
mConditions.isXAMANeutural
//
||
//
mConditions.isXAMAStartBullish
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXLHPriceCrossedUnderSignal &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceInSignalRange &&
(
//
(mConditions.isXTDBearishVale &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXTSCurrentCrossedOverMediest
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXTDBearishVale) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
||
//
(mConditions.isXAMAStartBullish &&
mConditions.isXLHPriceUnderSignal)
//
)
//
)
//
||
//
(mConditions.isXTDBearishVale &&
(
//
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHLLSameInLength)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHLLSameInLength)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBearishVale &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXTSCurrentCrossedUnderNearest) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceInSignalRange &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
((mConditions.isXTDBearishVale &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// isXTSCurrentUnderMediest
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
mConditions.isXCHLHMCLCHHSame
//
||
//
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceOverSignal) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXLHHHSameInLength &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXAMABearish &&
mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXLHPriceInSignalRange)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXTDBearishVale &&
(
//
(mConditions.isXLHPriceUnderSignal &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHPriceOverSignal &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceUnderSignal)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceInSignalRange &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCCrossedOverMax)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceInSignalRange &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXLHLLIncreased)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
((mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceUnderSignal &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish)
//
)
//
)
//
||
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXAMAEndBullish &&
mConditions.isXLHHHDecreased &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceUnderSignal &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// isXTSCurrentUnderFarest
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXLHHHSameInLength &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXLHLLDecreased)
//
||
//
(mConditions.isXLHHHSameInLength &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXAMABearish &&
mConditions.isXTMStartBullish)
//
||
//
(mConditions.isXTDBearishVale &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
mConditions.isXAMABearish
//
||
//
mConditions.isXLHLLSameInLength
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXLHHHSameInLength &&
mConditions.isXLHPriceUnderSignal)
//
)
//
)
//
||
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBearishVale)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength)
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown) &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXLHHHSameInLength &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXLHHHSameInLength &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXTSCurrentCrossedOverNearest
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXAMAStartBullish &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXLHPriceInSignalRange &&
(
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXTSCurrentCrossedUnderFarest &&
(
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
(
//
mConditions.isXAMANeutural
//
||
//
mConditions.isXTMEndBullish
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXLHHHSameInLength &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHMALCVale &&
(
//
mConditions.isXTDBearishVale
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
mConditions.isXCHMASCOverMax
//
||
//
(mConditions.isXTDBearishVale &&
(
//
mConditions.isXAMANeutural
//
||
//
mConditions.isXTMStartBullish
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
((mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXCHMALCTrendsDown) &&
(!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow))
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXLHLLIncreased) &&
(
//
mConditions.isXCHMALCVale
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMALCPeak)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHPriceInSignalRange)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHLLDecreased &&
mConditions.isXTMStartBullish &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXAMAStartBullish &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// isXCHMAMCFastUnderSlow
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXLHPriceInSignalRange &&
(
//
(mConditions.isXLHLLSameInLength &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCUnderMin)
//
||
//
mConditions.isXTSCurrentCrossedOverNearest
//
)
//
)
//
||
//
(mConditions.isXLHHHSameInLength &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMax)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHHHSameInLength &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceUnderSignal &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale) &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHMASCUnderMin)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentCrossedOverNearest) &&
(
//
(mConditions.isXLHLLDecreased &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXAMABearish &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCCrossedOverMin &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHHHSameInLength &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
((mConditions.isXTSAllSame &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak) &&
(
//
(mConditions.isXTSCurrentMax &&
(
//
mConditions.isXLHHHDecreased
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXLHHHSameInLength &&
mConditions.isXLHPriceUnderSignal)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXAMABearish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTMStartBullish)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTSCurrentMax &&
(
//
(mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceUnderSignal)
//
||
//
(mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceInSignalRange &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXCHMASCUnderMin &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHPriceOverSignal &&
mConditions.isXCHMASCCrossedOverMin &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax) &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHPriceOverSignal) &&
(
//
mConditions.isXTMStartBullish
//
||
//
((mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXLHLLSameInLength &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// isXCHMALCFastUnderSlow
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCCrossedOverMax)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax)
//
||
//
((mConditions.isXOBDSwingHigh &&
mConditions.isXTSCurrentMax) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
(
//
(mConditions.isXLHPriceCrossedOverSignal &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceInSignalRange &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHHighAttachedHH)
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMASCOverMax &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMASCCrossedOverMax)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
(mConditions.isXTDSignalCrossedOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCCrossedOverMin &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax) &&
(
//
mConditions.isXTSCurrentCrossedOverNearest
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXTMStartBullish &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceInSignalRange &&
(
//
(mConditions.isXTSCurrentMax &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHHHSameInLength &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMALCVale &&
mConditions.isXLHPriceOverSignal &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(mConditions.isXLHPriceInSignalRange &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHPriceOverSignal &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
mConditions.isXTDBearishVale
//
||
//
(mConditions.isXLHHHSameInLength &&
(
//
mConditions.isXLHLLSameInLength
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXLHHHSameInLength &&
(
//
mConditions.isXCHLHMCLCHHSame
//
||
//
mConditions.isXFICrossedOverZero
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax)
//
)
//
)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCUnderMax)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHLLSameInLength)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
mConditions.isXTSCurrentCrossedOverNearest
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
||
//
(((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) ||
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)) &&
(
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
(mConditions.isXTSCurrentMax &&
(
//
mConditions.isXTDBearishVale
//
||
//
(mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceInSignalRange)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXLHPriceOverSignal &&
mConditions.isXLHLLSameInLength) &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXLHHHSameInLength &&
(
//
mConditions.isXCHLHSCMCHHSame
//
||
//
(mConditions.isXCHMASCOverMax &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCCrossedOverMax)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
((mConditions.isXCHMAMCPeak ||
mConditions.isXTDBearishVale) &&
(
//
(!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMASCOverMax &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSameHHs)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
(
//
mConditions.isXLHHighAttachedHH
//
||
//
mConditions.isXTSCurrentCrossedOverMediest
//
)
//
)
//
)
//
)
//
||
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
mConditions.isXCHLHSCMCHHSame
//
||
//
mConditions.isXLHHHSameInLength
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
(mConditions.isXLHLLIncreased &&
mConditions.isXLHHighAttachedHH)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceUnderSignal &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// isXCHMASCTrendsDown
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXTSCurrentMax &&
(
//
(mConditions.isXLHPriceInSignalRange &&
(
//
(mConditions.isXLHLLDecreased &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// isXCHMAMCTrendsDown
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXAMAStartBullish &&
(
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXLHPriceUnderSignal)
//
||
//
(mConditions.isXLHPriceInSignalRange &&
(
//
(mConditions.isXLHHHSameInLength &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXLHLLSameInLength)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCCrossedOverMax)
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCUnderMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBearishVale &&
(
//
(mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceInSignalRange)
//
||
//
(mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
((mConditions.isXTDBearishVale &&
mConditions.isXLHPriceOverSignal) &&
(
//
(mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
||
//
((mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXTMBearish &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceUnderSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentCrossedOverFarest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXAMANeutural &&
(
//
mConditions.isXTMNeutural
//
||
//
mConditions.isXCHLHMCLCHHSame
//
||
//
(mConditions.isXLHPriceUnderSignal &&
(
//
(mConditions.isXLHHHSameInLength &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
mConditions.isXAMAEndBearish
//
||
//
(mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceInSignalRange &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXLHLLDecreased &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
mConditions.isXAMANeutural
//
||
//
(mConditions.isXAMAStartBullish &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXTDBearishVale &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceUnderSignal &&
(
//
(mConditions.isXCHLHMCLCHHSame &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMASCFastCrossedOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHDecreased &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// isXCHMALCTrendsDown
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
mConditions.isXCHMASCOverMax
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXAMANeutural &&
mConditions.isXTDBearishVale &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceInSignalRange &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXLHLLIncreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
mConditions.isXCHLHSameHHs
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
mConditions.isXTDBearishVale
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
||
//
(mConditions.isXLHHHSameInLength &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear)
//
)
//
)
//
)
//
)
//
||
//
(!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXLHHHSameInLength &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH) &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceOverSignal)
//
)
//
)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentOverFarest)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentCrossedOverNearest) &&
(
//
(mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceOverSignal) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCFastCrossedOverSlow)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
mConditions.isXCHMAMCVale
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXLHLLIncreased)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXCHMASCCrossedOverMin &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
((mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentCrossedOverFarest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTMEndBullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXCHMASCCrossedOverMin)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
mConditions.isXCHMAMCVale
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXAMANeutural &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
mConditions.isXTSCurrentUnderFarest
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentUnderNearest)
//
)
//
)
//
||
//
(mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMEndBullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
mConditions.isXCHMAMCTrendsUp
//
||
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXAMAEndBullish &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXCHMAMCFastUnderSlow)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCCrossedOverMax)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
mConditions.isXTSCurrentUnderMediest
//
||
//
(mConditions.isXTSCurrentMax &&
(
//
(mConditions.isXAMANeutural ||
mConditions.isXAMAEndBullish)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
mConditions.isXTSCurrentCrossedOverNearest
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXLHLLIncreased)
//
||
//
(mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCCrossedOverMin)
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
||
//
(mConditions.isXTDSignalCrossedOverBear &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentUnderNearest)
//
||
//
(mConditions.isXTSCurrentMax &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXFIOverZero &&
mConditions.isXAMAStartBullish &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
(
//
mConditions.isXTDBearishVale
//
||
//
mConditions.isXCHLHMCLCLLSame
//
)
//
)
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentOverFarest) &&
(
//
mConditions.isXTSCurrentOverNearest
//
||
//
(mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
((mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest) &&
(mConditions.isXTSCurrentUnderMediest ||
mConditions.isXTSCurrentCrossedUnderMediest))
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXTMEndBullish) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
((mConditions.isXAMANeutural &&
mConditions.isXTMStartBullish) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverFarest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXLHLLDecreased &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentCrossedOverNearest) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMASCCrossedOverMax)
//
||
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCTrendsDown &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMALCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
!mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXLHHHDecreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentMax &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
(
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
mConditions.isXCHMASCCrossedOverMax
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCTrendsDown)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
(mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXLHLLIncreased &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsDown)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXLHHighAttachedHH) &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
mConditions.isXCHLHSCMCHHSame
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
(
//
((mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest) &&
(
//
mConditions.isXLHLLIncreased
//
||
//
(mConditions.isXCHMALCVale &&
(
//
mConditions.isXLHHighAttachedHH
//
||
//
mConditions.isXTDSignalCrossedOverBear
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
mConditions.isXTDBearishVale
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXLHHighAttachedHH &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMASCCrossedOverMax)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMAMCFastOverSlow)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
// IGnore Cases ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs) &&
(
//
mConditions.isXCHMASCCrossedOverMax
//
||
//
mConditions.isXTSCurrentCrossedOverMediest
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXTSCurrentOverNearest)
//
)
//
)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXRSICrossedOverLongExit &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTMEndBullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
mConditions.isXTSCurrentUnderMediest
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTSCurrentMax &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCCrossedOverMin &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXCHMALCTrendsDown)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXRSICrossedOverLongExit &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXRSICrossedOverLongExit &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCTrendsDown &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
mConditions.isXLHLLIncreased
//
||
//
mConditions.isXLHHighAttachedHH
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXRSICrossedUnderShortEntry &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXRSICrossedUnderShortEntry &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXCHMAMCFastCrossedOverSlow &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXCHMASCCrossedOverMin &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXCHMAMCTrendsDown)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXTMStartBullish &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
||
//
(
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax) &&
(
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMAMCTrendsDown &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTDBearishVale &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXLHPriceCrossedUnderSignal)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXLHLLIncreased)
//
)
//
)
//
||
//
// Check if LC Fast Over Slow ..
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
)
//
)
//
||
//
// Check if LC Fast Over Slow ..
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMAMCTrendsDown)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsDown)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXAMAStartBullish &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsUp)
//
||
//
(mConditions.isXAMABearish &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTMStartBullish &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXAMAVale &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
mConditions.isXRSICrossedOverLongExit
//
||
//
// XTD Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown) &&
(
//
(mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCCrossedOverMax)
//
||
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
((mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest) &&
(mConditions.isXTSCurrentUnderMediest ||
mConditions.isXTSCurrentCrossedUnderMediest))
//
||
//
((mConditions.isXLHLLIncreased &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
mConditions.isXTSCurrentCrossedUnderFarest
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentUnderNearest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCCrossedOverMin &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXFIUnderZero &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
mConditions.isXTSCurrentMax
//
||
//
mConditions.isXTSCurrentUnderFarest
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentUnderNearest)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXLHHHIncreased)
//
||
//
(mConditions.isXTSCurrentMax &&
(
//
mConditions.isXLHHighAttachedHH
//
||
//
(mConditions.isXLHHHIncreased &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXAMAEndBullish &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCTrendsUp)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
(mConditions.isXCHMALCVale &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXFICrossedOverZero)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXCHMAMCPeak &&
mConditions.isXAMABullish &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax) &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXTDSignalCrossedOverBear &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
||
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
mConditions.isXCHLHMCLCLLSame
//
||
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBullish &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHMASCCrossedOverMin &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHighAttachedHH &&
(mConditions.isXTDBullOverBear ||
mConditions.isXTDSignalCrossedOverBear))
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax) &&
(
//
(mConditions.isXLHHighAttachedHH &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSameHHs)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXAMANeutural &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
||
//
// XTD Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XTD ...
//
// Common Conditions ...
bool XTDHasShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
mConditions.isXTDSignalCrossedUnderBear
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForShort(mConditions)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XTDHasSpecifiedShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XTDHasShortSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXAMANeutural ||
mConditions.isXAMAEndBullish) &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
mConditions.isXCHMASCTrendsUp
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMALCTrendsDown &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow)) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTDBullOverBear &&
(mConditions.isXAMANeutural ||
mConditions.isXTSCurrentOverFarest))
//
)
//
)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsUp &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow))
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCTrendsUp)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
mConditions.isXCHMAMCTrendsUp
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLLIncreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXLHHHDecreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMStartBearish &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXAMANeutural ||
mConditions.isXAMAEndBullish) &&
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAEndBullish &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
mConditions.isXTSAllSame
//
||
//
mConditions.isXTSCurrentOverFarest
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
// XTD Shorts ...
// Resolve Guard Attacks ...
||
(
//
// XTD Shorts ...
// isXTSCurrentOverNearest
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXLHLLIncreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Shorts ...
// isXTSCurrentOverMediest
(mConditions.isXTSCurrentOverMediest &&
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Shorts ...
// isXTSCurrentOverFarest
(mConditions.isXTSCurrentOverFarest &&
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCFastCrossedUnderSlow)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
((mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Shorts ...
// isXTSCurrentOverMediest
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
(mConditions.isXTMStartBearish &&
mConditions.isXTDBullOverBear &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Shorts ...
// isXTDBullOverBear
(mConditions.isXTDBullOverBear &&
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDSignalCrossedUnderBear) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
(
//
(mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
(mConditions.isXAMAStartBearish &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin) &&
(
//
((mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMASCUnderMin &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXAMAStartBearish &&
mConditions.isXLHLowAttachedLL)
//
||
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXLHPriceCrossedUnderSignal)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
mConditions.isXTMNeutural
//
||
//
mConditions.isXAMANeutural
//
)
//
)
//
||
//
(mConditions.isXLHLLSameInLength &&
(
//
(mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXCHMASCFastCrossedUnderSlow &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
(mConditions.isXLHPriceCrossedUnderSignal &&
(
//
((mConditions.isXTSAllSame &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Shorts ...
// isXCHMASCFastOverSlow
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength) &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSAllSame &&
(
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedUnderMediest) &&
(
//
mConditions.isXTDBullOverBear
//
||
//
mConditions.isXTSCurrentCrossedUnderFarest
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceOverSignal &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXLHPriceOverSignal &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
(mConditions.isXTMStartBearish &&
(
//
mConditions.isXAMANeutural
//
||
//
mConditions.isXAMAStartBearish
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXLHHHIncreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTMStartBearish &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
// XTD Shorts ...
// isXCHMAMCFastOverSlow
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak) &&
(
//
((mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
||
//
(((mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish) ||
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLLIncreased &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXCHMASCFastCrossedUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Shorts ...
// isXCHMALCFastOverSlow
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
// XTD Shorts ...
// isXCHMASCTrendsDown
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXLHHHSameInLength &&
(
//
(mConditions.isXLHPriceUnderSignal &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Shorts ...
// isXCHMALCTrendsDown
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTMStartBearish &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
// XTD Shorts ...
// Bearish MA ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDSignalCrossedUnderBear) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
mConditions.isXTSCurrentCrossedUnderFarest
//
||
//
mConditions.isXTSCurrentCrossedUnderNearest
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXAMAEndBearish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXTDSignalCrossedUnderBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXTSCurrentMin &&
mConditions.isXTSCurrentCrossedUnderFarest) &&
(
//
(mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTMStartBearish &&
mConditions.isXCHMASCFastCrossedUnderSlow &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXCHMASCFastCrossedUnderSlow &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCTrendsUp)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
(mConditions.isXLHHHIncreased &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTDBullOverBear)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXTSCurrentOverFarest)
//
||
//
((mConditions.isXAMABullish &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
mConditions.isXCHLHMCLCLLSame
//
||
//
(mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp) &&
(
//
(((mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest) &&
(
//
(mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXLHHHIncreased &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXTDSignalCrossedUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDBullOverBear) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDSignalCrossedUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCTrendsUp) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCFastCrossedUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMASCFastOverSlow)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXAMAEndBullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCTrendsUp)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMALCVale &&
(
//
mConditions.isXCHMALCTrendsDown
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXCHMASCFastCrossedUnderSlow)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
)
//
)
//
||
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverNearest)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish &&
mConditions.isXTSCurrentOverNearest)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMASCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTMStartBearish &&
mConditions.isXTDBullOverBear &&
mConditions.isXAMAStartBearish) &&
(
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMAMCTrendsDown)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalCrossedUnderBear)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXAMAStartBearish) &&
(
//
mConditions.isXTSCurrentOverFarest
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHMALCTrendsUp)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentOverFarest)
//
)
//
) //
)
//
)
//
||
//
// XTD Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
)
//
)
//
||
//
// XTD Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XTAM ...
//
// Common Conditions ...
bool XTAMHasLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
(mConditions.amas[1] > mConditions.tms[1] &&
mConditions.amas[2] > mConditions.tms[2])
//
&&
//
!(mConditions.amas[2] > mConditions.tms[2] &&
mConditions.amas[3] > mConditions.tms[3])
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForLong(mConditions)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XTAMHasSpecifiedLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XTAMHasLongSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCVale &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow)) &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCVale &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow)) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
(mConditions.isXCHMASCPeak &&
(mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
((mConditions.isXCHMAMCVale &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow)) &&
(mConditions.isXCHMALCVale &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)))
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMAMCVale &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow))
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXTMEndBearish &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHLHSCMCLLSame &&
(mConditions.isXTSCurrentUnderFarest ||
mConditions.isXTSCurrentUnderMediest))
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
(mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest))
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTSAllSame &&
mConditions.isXCHMASCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(
(mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverFarest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
(
//
mConditions.isXLHHHDecreased
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBearishVale)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCFastCrossedOverSlow)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow)) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale ||
mConditions.isXCHLHSameHHs) &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXLHLLDecreased &&
mConditions.isXLHHighAttachedHH)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCPeak &&
(mConditions.isXCHMAMCTrendsDown ||
mConditions.isXCHMAMCFastUnderSlow))
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish &&
mConditions.isXAMANeutural &&
mConditions.isXAMAEndBearish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHighAttachedHH) &&
(
//
mConditions.isXCHLHSameHHs
//
||
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
// XTAM Long ...
// Resolve Guard Attacks ...
||
//
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXFIUnderZero &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
mConditions.isXCHMASCTrendsUp
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHHDecreased) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDSignalCrossedUnderBear &&
(
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXFIUnderZero &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXFICrossedUnderZero)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTSAllSame &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXLHLLIncreased) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXLHHHDecreased &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXTDBearishVale &&
mConditions.isXTMVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
mConditions.isXTSCurrentMax
//
||
//
mConditions.isXTSCurrentUnderFarest
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDBearishVale &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXCHMALCVale
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXCHMASCFastCrossedOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBearishVale &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXLHHighAttachedHH) &&
(
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH) &&
(
//
mConditions.isXTSCurrentMax
//
||
//
mConditions.isXCHMASCCrossedOverMax
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentUnderNearest)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
(mConditions.isXCHMASCOverMax &&
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCFastCrossedOverSlow &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
||
//
(mConditions.isXLHHighAttachedHH &&
(
//
(mConditions.isXCHLHSameHHs &&
(
//
mConditions.isXTDBearishVale
//
||
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCFastCrossedOverSlow &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXAMAStartBullish &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXRSICrossedOverLongExit &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXCHMAMCFastCrossedOverSlow)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTDSignalUnderBear &&
mConditions.isXTDBullCrossedUnderBear) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCCrossedUnderMax) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCCrossedUnderMax) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXLHLLDecreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH) &&
(
//
mConditions.isXTDBearishVale
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
mConditions.isXTSAllSame
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
mConditions.isXTDSignalUnderBear
//
||
//
(mConditions.isXTDBearishVale &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHHHDecreased)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMASCVale &&
mConditions.isXCHMASCTrendsUp) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXLHLLIncreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTDBullUnderBear)
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentCrossedOverNearest) &&
(
//
mConditions.isXCHLHMCLCLLSame
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCCrossedOverMin &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXRSICrossedOverLongExit &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale) &&
(
//
(mConditions.isXTSCurrentCrossedOverNearest &&
(
//
mConditions.isXCHMALCVale
//
||
//
(mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXLHHighAttachedHH) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCOverMax)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
mConditions.isXCHMASCTrendsUp
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
mConditions.isXCHMAMCTrendsUp
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
mConditions.isXCHMASCTrendsUp
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
mConditions.isXCHMAMCTrendsUp
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBearishVale &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
mConditions.isXCHMASCTrendsUp
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
mConditions.isXCHMAMCTrendsUp
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsDown)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXTDSignalOverBear)
//
||
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
mConditions.isXCHMASCTrendsUp
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXLHHighAttachedHH)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXCHMALCTrendsDown)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMASCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XTAM ...
//
// Common Conditions ...
bool XTAMHasShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
(mConditions.amas[1] < mConditions.amas[1] &&
mConditions.amas[2] < mConditions.amas[2])
//
&&
//
!(mConditions.amas[2] < mConditions.amas[2] &&
mConditions.amas[3] < mConditions.amas[3])
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForShort(mConditions)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XTAMHasSpecifiedShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XTAMHasShortSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXFIOverZero &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentOverFarest)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMNeutural ||
mConditions.isXTMEndBullish) &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTSCurrentOverNearest)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCTrendsUp)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
||
//
(mConditions.isXFIOverZero &&
mConditions.isXCHMASCPeak &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(
//
mConditions.isXCHMAMCTrendsUp
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsUp &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow))
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXTSCurrentMin) &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
mConditions.isXTDBullishVale
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL) &&
(
//
mConditions.isXCHMALCTrendsDown
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMBearish &&
mConditions.isXCHMASCVale &&
mConditions.isXAMABearish &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMASCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLowAttachedLL) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDSignalVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullishVale) &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXLHLowAttachedLL &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXTDSignalOverBear)
//
||
//
(mConditions.isXFIOverZero &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
(mConditions.isXTDBullOverBear ||
mConditions.isXTSCurrentOverFarest))
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
(mConditions.isXTSCurrentOverFarest ||
mConditions.isXTSCurrentOverMediest))
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCTrendsUp)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXFIOverZero &&
mConditions.isXCHMALCVale &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTDSignalOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTDBullCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
// XTAM Short ...
// Resolve Guard Attacks ...
||
//
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin) &&
(
//
mConditions.isXTSCurrentOverFarest
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXTDSignalOverBear) &&
(
//
mConditions.isXTDBullOverBear
//
||
//
(mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSAllSame &&
mConditions.isXLHLLDecreased) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXLHLLIncreased) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLIncreased)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXRSICrossedUnderShortExit &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMALCVale &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXTSCurrentMax
//
||
//
mConditions.isXTDSignalOverBear
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalCrossedOverBear &&
(
//
(mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceCrossedOverSignal &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMALCVale &&
(
//
mConditions.isXCHMASCUnderMin
//
||
//
mConditions.isXCHLHMCLCLLSame
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
||
//
((mConditions.isXCHMASCPeak &&
mConditions.isXTDSignalOverBear) &&
(
//
mConditions.isXCHMASCTrendsUp
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
((mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDBullCrossedOverBear)
//
||
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCOverMax &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalCrossedOverBear &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMASCTrendsUp &&
mConditions.isXTSCurrentOverFarest) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXTSAllSame &&
mConditions.isXLHHighAttachedHH) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
(
//
((mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin) &&
(
//
mConditions.isXTSCurrentCrossedUnderFarest
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)
//
)
//
)
//
||
//
((mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest) &&
(
//
mConditions.isXTDSignalOverBear
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// All Bearish ...
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMASCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXTSCurrentCrossedUnderNearest) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
((mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameLLs)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMin &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCCrossedUnderMax) &&
(
//
(!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCCrossedUnderMax)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXRSICrossedUnderShortExit &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL) &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
(
//
((mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXCHMASCCrossedUnderMin) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXRSICrossedUnderShortExit &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXAMAStartBearish &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
((mConditions.isXTSCurrentMin &&
mConditions.isXLHLowAttachedLL) &&
(
//
mConditions.isXCHMAMCFastCrossedUnderSlow
//
||
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTAM Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXCHMASCCrossedOverMin)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsUp) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish) &&
(
//
((mConditions.isXCHLHSameLLs &&
mConditions.isXLHLowAttachedLL) &&
(
//
mConditions.isXTSCurrentOverFarest
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin) &&
(
//
((mConditions.isXTMVale &&
mConditions.isXAMAVale) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXCHMASCCrossedUnderMin)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
((mConditions.isXTMVale &&
mConditions.isXAMAVale) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHLHSameLLs &&
(
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(!mConditions.isXCHMALCTrendsUp &&
!mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
||
//
((mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
mConditions.isXCHLHSameLLs
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
||
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastCrossedUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
((mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDBullCrossedUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMAMCTrendsDown) &&
(
//
mConditions.isXTSCurrentOverFarest
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
((mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTDSignalOverBear &&
(
//
((mConditions.isXTSCurrentOverMediest ||
mConditions.isXTSCurrentOverNearest) &&
(
//
mConditions.isXTSCurrentOverFarest
//
||
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXRSICrossedOverLongExit)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
mConditions.isXTSCurrentOverFarest
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
mConditions.isXCHMASCTrendsUp
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMin &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMASCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTDBullCrossedOverBear &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
mConditions.isXCHMALCTrendsDown
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
mConditions.isXCHMASCTrendsUp
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMASCFastUnderSlow &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXLHPriceCrossedUnderSignal)
//
||
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin) &&
(
//
mConditions.isXLHLowAttachedLL
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
||
//
(mConditions.isXLHLowAttachedLL &&
(
//
(mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
mConditions.isXCHMASCTrendsUp
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXTMStartBullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMAMCFastUnderSlow)
//
||
//
(mConditions.isXCHMASCPeak &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTDSignalOverBear)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMAMCTrendsDown)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
mConditions.isXCHMASCTrendsUp
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTAM Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XSI ...
//
// Common Conditions ...
bool XSIHasLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
mConditions.isXRSICrossedOverLongEntry &&
mConditions.rsis[3] < mInputs.rsiInputs.longEntryValue
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForLong(
mConditions,
true, // XCHMA Min
true, // XCHMA Max
true, // XCHMA Cycles
true, // XCHMA Peaks
false, // XCHMA Trend Powers
true, // XOBD
true // XTS
)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XSIHasSpecifiedLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XSIHasLongSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXAMANeutural &&
mConditions.isXLHHHDecreased &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTMStartBullish)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTSCurrentMax)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
(mConditions.isXAMANeutural ||
mConditions.isXAMAEndBearish))
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMANeutural &&
mConditions.isXAMAEndBullish &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXAMAEndBearish &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXTMVale &&
mConditions.isXAMAVale)
//
&&
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale)
//
&&
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame))
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXTMNeutural &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXAMAStartBullish &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale)
//
||
//
(mConditions.isXLHHHDecreased &&
mConditions.isXLHLLDecreased)
//
||
//
((mConditions.isXTMVale ||
mConditions.isXTMNeutural ||
mConditions.isXTMEndBearish) &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// XSI Long ...
// Resolve Stop Outs ...
(
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
mConditions.isXTSCurrentUnderFarest
//
||
//
mConditions.isXTSCurrentCrossedUnderNearest
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(((mConditions.isXTMVale &&
mConditions.isXAMAVale)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)) &&
(
//
mConditions.isXTSCurrentUnderFarest
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
mConditions.isXCHMAMCVale
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
// XSI Long ...
// Resolve Guard Attacks ...
||
//
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMAMCTrendsUp)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale) &&
(
//
mConditions.isXTSCurrentUnderMediest
//
||
//
mConditions.isXTSCurrentUnderFarest
//
||
//
((mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXTMBearish &&
mConditions.isXAMANeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXCHMASCFastCrossedOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
((mConditions.isXCHLHMCLCLLSame &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXLHLLDecreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
((mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish))
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMALCPeak) &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMAMCVale)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCVale)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTMBearish &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTMBearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXAMAEndBearish)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale)
//
||
//
((mConditions.isXTMVale &&
mConditions.isXTMBearish &&
mConditions.isXCHMASCVale) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXLHLLDecreased)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXCHMASCFastCrossedOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTDSignalCrossedUnderBear)
//
)
//
)
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXCHMAMCFastOverSlow)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXTSAllSame &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMASCTrendsUp)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXTSAllSame &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
||
//
((mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXCHMASCFastCrossedOverSlow)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXRSICrossedOverLongEntry)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMASCTrendsUp)
//
||
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
)
//
)
//
||
//
// XSI Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMASCTrendsUp)
//
||
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
mConditions.isXCHMASCTrendsUp
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XSI ...
//
// Common Conditions ...
bool XSIHasShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
mConditions.isXRSICrossedUnderShortEntry &&
mConditions.rsis[3] > mInputs.rsiInputs.shortEntryValue
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForShort(
mConditions,
true, // XCHMA Min
true, // XCHMA Max
true, // XCHMA Cycles
true, // XCHMA Peaks
false, // XCHMA Trend Powers
true, // XOBD
true // XTS
)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XSIHasSpecifiedShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XSIHasShortSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXLHHHIncreased &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDSignalOverBear)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBullish &&
(mConditions.isXAMANeutural ||
mConditions.isXAMAEndBullish)) &&
mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentMin &&
mConditions.isXTMStartBearish &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
))
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak)
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentOverNearest)
//
||
//
(((mConditions.isXTMBullish ||
mConditions.isXTMStartBullish) &&
(mConditions.isXAMABullish ||
mConditions.isXAMAStartBullish)) &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXFIOverZero &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXTMEndBullish &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXAMAStartBearish)
//
||
//
((mConditions.isXCHMASCPeak &&
mConditions.isXTSCurrentOverFarest) &&
(
//
mConditions.isXTMNeutural
//
||
//
mConditions.isXTSCurrentOverMediest
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXLHHHIncreased)
//
)
//
)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
||
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXLHHHIncreased &&
mConditions.isXLHLLIncreased)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTSCurrentMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
(mConditions.isXTDSignalOverBear ||
mConditions.isXTDSignalCrossedOverBear)) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
(mConditions.isXFIOverZero ||
mConditions.isXTSCurrentOverFarest))
//
||
//
(mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCTrendsUp)
//
)
//
)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCTrendsUp)
//
||
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// XSI Short ...
// Resolve Stop Outs ...
(
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXCHMALCVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXLHHHIncreased &&
mConditions.isXCHMAMCFastCrossedOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDSignalOverBear &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak) &&
(
//
(mConditions.isXLHHHIncreased &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
(
//
mConditions.isXTSCurrentOverFarest
//
||
//
mConditions.isXCHMAMCFastCrossedOverSlow
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
mConditions.isXTSCurrentOverFarest
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXTSCurrentOverNearest &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCCrossedOverMin &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXAMAEndBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBearishVale &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMASCPeak &&
(
//
mConditions.isXCHMAMCPeak
//
||
//
mConditions.isXCHMALCVale
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
mConditions.isXCHMAMCFastCrossedOverSlow
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXCHMAMCFastCrossedOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXLHHHIncreased &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
// XSI Short ...
// Resolve Guard Attacks ...
||
//
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
mConditions.isXCHMASCPeak
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak) &&
(
//
((mConditions.isXTSAllSame &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentOverFarest)
//
||
//
((mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale) &&
(
//
((mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
mConditions.isXTSCurrentCrossedUnderNearest
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXLHHHIncreased)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMASCPeak &&
(
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
(
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
(
//
mConditions.isXCHLHMCLCLLSame
//
||
//
mConditions.isXTSCurrentOverMediest
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXLHHHIncreased &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
mConditions.isXCHLHMCLCLLSame
//
||
//
mConditions.isXTSCurrentOverMediest
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak) &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
) //
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((mConditions.isXLHHHIncreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBearishVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMAMCFastCrossedOverSlow &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCFastCrossedOverSlow &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XSI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXLHHHIncreased &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXRSICrossedUnderShortExit &&
mConditions.isXRSICrossedUnderShortEntry)
//
||
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXLHPriceCrossedUnderSignal)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak) &&
(
//
mConditions.isXTSCurrentOverFarest
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCTrendsUp)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMASCCrossedOverMin)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
((mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXLHHHIncreased &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMALCVale &&
mConditions.isXTMStartBearish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCTrendsUp)
//
||
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalOverBear &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXLHHHIncreased &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
||
//
// XSI Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCTrendsUp)
//
||
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XTSFI ...
//
// Common Conditions ...
bool XTSFIHasLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
double tsValues[] = {
mConditions.tsCurrents[1],
mConditions.tsNearests[1],
mConditions.tsMediests[1],
mConditions.tsFarests[1],
};
//
double tsMin = GetMin(tsValues);
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
tsMin == mConditions.tsFarests[1] &&
(mConditions.isXTSCurrentOverFarest ||
mConditions.isXTSCurrentCrossedOverFarest) &&
(mConditions.tsCurrents[1] < mConditions.tsNearests[1] ||
mConditions.tsCurrents[1] < mConditions.tsMediests[1]) &&
!(mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForLong(mConditions)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XTSFIHasSpecifiedLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XTSFIHasLongSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXAMAEndBearish &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXFICrossedUnderZero)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
(mConditions.isXAMANeutural ||
mConditions.isXAMAEndBullish) &&
mConditions.isXCHLHSameHHs &&
mConditions.isXLHLLIncreased &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBearishVale &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMASCPeak &&
(mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCOverMin &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
mConditions.isXCHMALCVale
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXLHLLDecreased &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXTMNeutural ||
mConditions.isXTMStartBullish) &&
mConditions.isXLHHHDecreased &&
(mConditions.isXAMANeutural ||
mConditions.isXAMAStartBearish) &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
mConditions.isXCHMALCVale
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMASCPeak &&
(mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
(mConditions.isXAMANeutural ||
mConditions.isXAMAEndBullish))
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXCHMALCVale &&
(mConditions.isXAMANeutural ||
mConditions.isXAMAEndBullish) &&
mConditions.isXTMStartBearish)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
mConditions.isXCHMALCVale
//
||
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMASCPeak &&
(mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCVale &&
mConditions.isXAMAStartBullish &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTDBullCrossedOverBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMAMCPeak &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// XTSFI Long ...
// Resolve Stop Outs ...
(
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCTrendsUp) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTMStartBullish)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Neutural States ...
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
)
//
)
//
)
//
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDBullCrossedUnderBear &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXFICrossedUnderZero)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDBearishVale &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCUnderMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
mConditions.isXAMABearish
//
||
//
mConditions.isXAMANeutural
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check Bearish State ...
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
mConditions.isXTMBearish
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check Bearish State ...
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
mConditions.isXTMBearish
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
// XTSFI Long ...
// Resolve Guard Attacks ...
||
//
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDBullCrossedUnderBear &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHMASCOverMax) &&
(
//
mConditions.isXCHLHMCLCHHSame
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax)
//
||
//
((!mConditions.isXCHMALCTrendsUp &&
!mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDSignalCrossedUnderBear &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
||
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXFIUnderZero &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak) &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
||
//
(mConditions.isXFIUnderZero &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMALCTrendsUp &&
!mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTMEndBullish &&
mConditions.isXCHMASCOverMax)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)
//
)
//
)
//
||
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDSignalCrossedUnderBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBullish &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXAMANeutural &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMAEndBullish)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXLHLLIncreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
((!mConditions.isXCHMALCTrendsUp &&
!mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXFIUnderZero &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXCHMASCOverMax &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXCHMASCOverMax &&
mConditions.isXRSICrossedOverLongExit &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMANeutural &&
mConditions.isXAMAEndBearish &&
mConditions.isXCHMASCOverMax)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMABearish) &&
(
//
mConditions.isXTMEndBearish
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
||
//
(mConditions.isXFIUnderZero &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak) &&
(
//
(mConditions.isXAMAVale &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
(
//
mConditions.isXCHMAMCVale
//
||
//
mConditions.isXCHLHMCLCHHSame
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXCHMASCCrossedUnderMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXCHMALCVale &&
(
//
((mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXAMABearish)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBullish &&
mConditions.isXTDBearishVale)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXAMANeutural &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
mConditions.isXTMBearish
//
||
//
mConditions.isXTMNeutural
//
)
//
)
//
||
//
(mConditions.isXTDSignalCrossedUnderBear &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXFIUnderZero &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXCHMAMCVale) &&
(
//
(mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMEndBullish)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
(mConditions.isXTDSignalCrossedUnderBear &&
(
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTDSignalCrossedUnderBear &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale) &&
(
//
(
mConditions.isXCHMASCUnderMin &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
mConditions.isXTDBullOverBear
//
||
//
mConditions.isXTDSignalUnderBear
//
||
//
mConditions.isXTDSignalCrossedUnderBear
//
||
//
(mConditions.isXFIUnderZero &&
mConditions.isXFICrossedUnderZero)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
(
//
mConditions.isXLHPriceCrossedUnderSignal
//
||
//
(mConditions.isXAMANeutural &&
(
//
mConditions.isXTDSignalUnderBear
//
||
//
(mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Otherwise ...
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCTrendsUp)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTDBullCrossedUnderBear &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
mConditions.isXRSICrossedUnderShortExit
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown) &&
(
//
(mConditions.isXLHHHIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXRSICrossedUnderShortExit)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMStartBullish &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest)
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXTMNeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax)
//
||
//
(mConditions.isXFIUnderZero &&
mConditions.isXCHMASCOverMax &&
mConditions.isXFICrossedUnderZero)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
mConditions.isXTMEndBullish
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXAMAEndBullish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMASCOverMax &&
(
//
mConditions.isXCHLHSCMCHHSame
//
||
//
(mConditions.isXTDBearishVale &&
(
//
mConditions.isXTSCurrentCrossedOverNearest
//
||
//
mConditions.isXTSCurrentCrossedUnderMediest
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHLHMCLCHHSame &&
(
//
mConditions.isXCHLHMCLCLLSame
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXLHLLIncreased) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMASCOverMax &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXLHLLDecreased &&
mConditions.isXCHLHSCMCHHSame)
//
||
(mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXTDSignalCrossedOverBear &&
(
//
mConditions.isXCHLHMCLCHHSame
//
||
//
mConditions.isXTSCurrentCrossedOverNearest
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXLHHHDecreased) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// All Neutural ...
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCCrossedOverMax) &&
(
//
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXFIUnderZero &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTMEndBullish &&
mConditions.isXLHHHDecreased &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXAMAEndBullish)
//
)
//
)
//
||
//
((mConditions.isXFIUnderZero &&
mConditions.isXFICrossedUnderZero) &&
(
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTSCurrentCrossedOverNearest &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
||
//
mConditions.isXTDSignalCrossedOverBear
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCCrossedOverMax)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXCHLHSCMCHHSame
//
||
//
mConditions.isXTDSignalCrossedUnderBear
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalCrossedUnderBear &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
(
//
mConditions.isXCHLHMCLCLLSame
//
||
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTDSignalOverBear &&
(
//
(mConditions.isXCHMASCOverMax &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
mConditions.isXCHLHMCLCLLSame
//
||
//
mConditions.isXCHMALCTrendsDown
//
)
//
)
//
||
//
((mConditions.isXCHLHSameHHs &&
mConditions.isXTDBearishVale) &&
(
//
mConditions.isXLHHHIncreased
//
||
//
mConditions.isXTSCurrentCrossedOverNearest
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax) &&
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest)
//
||
//
(mConditions.isXAMAStartBullish &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTDSignalCrossedOverBear &&
(
//
mConditions.isXCHLHSCMCHHSame
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// All Bearish ...
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
mConditions.isXCHLHMCLCHHSame
//
||
//
mConditions.isXTSCurrentCrossedOverNearest
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMALCTrendsUp &&
!mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
mConditions.isXTMNeutural
//
||
//
mConditions.isXAMANeutural
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXFIUnderZero &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale) &&
(
//
mConditions.isXAMANeutural
//
||
//
(mConditions.isXTMNeutural &&
(
//
(mConditions.isXAMABearish &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXLHLLIncreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
mConditions.isXTDBullCrossedUnderBear
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)
//
||
//
(mConditions.isXTDBearishVale &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentOverFarest)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXTMEndBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXTDBearishVale
//
||
//
mConditions.isXCHLHMCLCHHSame
//
)
//
)
//
||
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
(mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMStartBullish &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXFIUnderZero &&
mConditions.isXCHMASCOverMax &&
mConditions.isXFICrossedUnderZero)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// All Neutural ...
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTDBullCrossedUnderBear &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTDBullCrossedUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXFIUnderZero &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXFICrossedUnderZero)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXCHMAMCPeak &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
mConditions.isXTSCurrentUnderMediest
//
)
//
)
//
||
//
((mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
mConditions.isXTDBullUnderBear
//
||
//
mConditions.isXTDBullCrossedUnderBear
//
)
//
)
//
||
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(
//
mConditions.isXTDSignalUnderBear
//
||
//
mConditions.isXTDBullCrossedUnderBear
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalCrossedUnderBear)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalCrossedUnderBear &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMANeutural &&
mConditions.isXLHHHIncreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak)
//
)
//
)
//
||
//
(mConditions.isXLHHHDecreased &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTDSignalCrossedUnderBear)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSameHHs)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
((mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
mConditions.isXTDBullUnderBear
//
||
//
mConditions.isXTDBullCrossedUnderBear
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXLHPriceCrossedUnderSignal)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXLHPriceCrossedUnderSignal)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedUnderBear)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
mConditions.isXCHMALCVale
//
||
//
mConditions.isXTSCurrentUnderMediest
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(mConditions.isXCHMASCUnderMax ||
mConditions.isXCHMASCCrossedUnderMax))
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXCHMASCFastCrossedOverSlow &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMANeutural &&
mConditions.isXFIUnderZero &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp) &&
(
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDBullCrossedUnderBear)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXTMStartBearish &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXAMAVale &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTDSignalCrossedUnderBear)
//
||
//
(mConditions.isXAMABearish &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentCrossedUnderMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBullish &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXAMANeutural &&
mConditions.isXTMStartBullish &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp) &&
(
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXFICrossedUnderZero &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTMStartBullish &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
||
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXTMStartBullish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXAMAStartBullish &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXFICrossedUnderZero &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown) &&
(
//
mConditions.isXTSCurrentUnderMediest
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTDBullUnderBear)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCFastUnderSlow)
//
)
//
)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
mConditions.isXLHHHDecreased
//
||
//
mConditions.isXFICrossedOverZero
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTMVale &&
mConditions.isXAMAVale) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
||
//
((mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest
//
)
//
)
//
||
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXAMABearish &&
mConditions.isXTMEndBearish)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
mConditions.isXTDSignalCrossedUnderBear
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXFICrossedUnderZero)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXCHMAMCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
||
//
(((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) ||
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)) &&
(
//
mConditions.isXTSCurrentUnderMediest
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXFIUnderZero &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXFICrossedUnderZero)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXFICrossedUnderZero)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTMEndBullish &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMEndBearish &&
mConditions.isXLHHHIncreased &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTMEndBullish &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
mConditions.isXTDBullUnderBear
//
||
//
mConditions.isXTDBullCrossedUnderBear
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
mConditions.isXTDBullUnderBear
//
||
//
mConditions.isXTDBullCrossedUnderBear
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCTrendsUp)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXLHHHIncreased &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) ||
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)) &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXLHHHIncreased &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedUnderBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCFastOverSlow)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMASCFastCrossedOverSlow)
//
)
//
)
//
||
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXLHHHIncreased &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullCrossedUnderBear)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
mConditions.isXCHMAMCTrendsUp
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXCHMAMCVale &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
mConditions.isXTDBullUnderBear
//
||
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHHHDecreased &&
mConditions.isXLHLLDecreased &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCFastUnderSlow &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullOverBear)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCOverMax)
//
||
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMALCTrendsUp)
//
)
//
)
//
||
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDBullCrossedUnderBear)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXAMAVale &&
(mConditions.isXTMBearish ||
mConditions.isXAMABearish) &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderMediest) &&
(
//
mConditions.isXTDBullCrossedUnderBear
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMASCFastCrossedOverSlow)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
mConditions.isXTDBullOverBear
//
||
(mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
||
//
(mConditions.isXLHHHDecreased &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXCHMAMCFastCrossedOverSlow &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHSCMCHHSame)
//
||
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXAMAStartBullish &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMASCFastOverSlow)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDSignalUnderBear) &&
(
//
mConditions.isXTDBullUnderBear
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XTSFI ...
//
// Common Conditions ...
bool XTSFIHasShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
double tsValues[] = {
mConditions.tsCurrents[1],
mConditions.tsNearests[1],
mConditions.tsMediests[1],
mConditions.tsFarests[1],
};
//
double tsMax = GetMax(tsValues);
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
tsMax == mConditions.tsFarests[1] &&
(mConditions.isXTSCurrentUnderFarest ||
mConditions.isXTSCurrentCrossedUnderFarest) &&
(mConditions.tsCurrents[1] > mConditions.tsNearests[1] ||
mConditions.tsCurrents[1] > mConditions.tsMediests[1]) &&
!(mConditions.isXTSCurrentOverNearest ||
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForShort(mConditions)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XTSFIHasSpecifiedShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XTSFIHasShortSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
mConditions.isXCHMASCTrendsDown
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
(((mConditions.isXTMVale ||
mConditions.isXTMNeutural) &&
mConditions.isXAMANeutural) &&
(mConditions.isXFIOverZero ||
mConditions.isXFICrossedOverZero) &&
mConditions.isXTSCurrentOverMediest)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTMStartBullish)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMALCPeak &&
(mConditions.isXTMNeutural ||
mConditions.isXTMEndBullish) &&
(mConditions.isXAMANeutural ||
mConditions.isXAMAEndBullish) &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
(mConditions.isXFIOverZero ||
mConditions.isXFICrossedOverZero))
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXAMANeutural &&
mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverMediest) &&
(
//
mConditions.isXTMNeutural
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXLHLLDecreased)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
(mConditions.isXTMBullish ||
mConditions.isXTMStartBullish) &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDBullCrossedOverBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTDBullCrossedOverBear)
//
||
//
(mConditions.isXFIOverZero &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXFIOverZero &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTMStartBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXTMBullish ||
mConditions.isXTMStartBullish) &&
(mConditions.isXAMABullish ||
mConditions.isXAMAStartBullish) &&
(mConditions.isXFIOverZero ||
mConditions.isXFICrossedOverZero) &&
mConditions.isXCHLHSameLLs)
//
)
//
)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCTrendsUp)
//
||
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest) &&
(
//
mConditions.isXTSCurrentUnderNearest
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCTrendsUp)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXLHHHDecreased &&
mConditions.isXLHLLDecreased &&
mConditions.isXTSCurrentOverMediest)
//
||
//
((mConditions.isXFIOverZero &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
mConditions.isXOBDSwingLow
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullCrossedUnderBear &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
mConditions.isXCHMALCPeak
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXFIOverZero &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMBearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXFIOverZero &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXFICrossedOverZero)
//
||
//
(mConditions.isXAMABearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHMCLCLLSame &&
(mConditions.isXTMNeutural ||
mConditions.isXTMEndBearish))
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
((mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMAMCVale) &&
(
//
mConditions.isXLHPriceCrossedUnderSignal
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(((mConditions.isXTMBullish ||
mConditions.isXTMNeutural ||
mConditions.isXTMStartBullish) &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
(mConditions.isXTMStartBullish ||
mConditions.isXTMEndBullish))
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXAMAStartBearish)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXFIOverZero &&
mConditions.isXTMEndBearish &&
mConditions.isXFICrossedOverZero)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMAStartBearish) &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXLHHHDecreased)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow))
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentOverMediest) &&
(
//
mConditions.isXLHHHDecreased
//
||
//
mConditions.isXTSCurrentCrossedOverMediest
//
||
//
(mConditions.isXTMVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMAVale &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXFIOverZero &&
mConditions.isXTMEndBearish &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
mConditions.isXCHLHMCLCLLSame
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDSignalUnderBear) &&
(
//
mConditions.isXTDBullCrossedUnderBear
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullUnderBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXCHMASCTrendsUp)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXLHHHIncreased &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
mConditions.isXCHLHSameLLs
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXFIOverZero &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
(
//
(mConditions.isXCHLHMCLCHHSame &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXTMStartBearish)
//
||
//
((mConditions.isXTMNeutural ||
mConditions.isXTMEndBearish) &&
(mConditions.isXAMANeutural ||
mConditions.isXAMAEndBearish))
//
||
//
(mConditions.isXTMVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest)
//
)
//
)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXFIOverZero &&
mConditions.isXCHMAMCVale &&
mConditions.isXTMEndBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXFIOverZero &&
mConditions.isXCHMAMCVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
((mConditions.isXAMAVale &&
mConditions.isXCHMALCPeak) &&
(
//
mConditions.isXTMNeutural
//
||
//
(mConditions.isXTMVale &&
mConditions.isXTMEndBearish &&
mConditions.isXLHLLDecreased)
//
)
//
)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentOverMediest) &&
(
//
mConditions.isXCHMAMCTrendsDown
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXTMStartBearish &&
mConditions.isXTDBullOverBear &&
mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXTMBullish)
//
||
//
(mConditions.isXAMAVale &&
(mConditions.isXTMNeutural ||
mConditions.isXTMEndBearish))
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXTMNeutural &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentOverMediest)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXFIOverZero &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXAMABullish &&
mConditions.isXTDBullCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCTrendsUp)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXCHMALCPeak)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXLHHHDecreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXTMBullish ||
mConditions.isXTMStartBullish)
//
&&
//
(mConditions.isXAMABullish ||
mConditions.isXAMAStartBullish))
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXLHHHIncreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCTrendsUp)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTMStartBearish &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCTrendsUp)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentOverMediest)
//
||
//
((mConditions.isXTMBullish ||
mConditions.isXTMStartBullish) &&
(mConditions.isXAMABullish ||
mConditions.isXAMAStartBullish) &&
(mConditions.isXTSCurrentOverMediest ||
mConditions.isXTSCurrentCrossedOverMediest))
//
))
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTSCurrentOverMediest ||
mConditions.isXTSCurrentCrossedOverMediest) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXFIOverZero &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTMStartBearish)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHLHSameLLs)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow))
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// XTSFI Short ...
// Resolve Stop Outs ...
(
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMASCFastCrossedOverSlow &&
(
//
(mConditions.isXAMANeutural &&
(
//
(mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXTMNeutural)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXFIOverZero &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXLHHHDecreased)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMAMCVale)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// All Neutural ...
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCFastCrossedUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Current Over Mediest ...
(mConditions.isXTSCurrentOverMediest &&
(
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXAMABullish &&
(
//
mConditions.isXTDBullOverBear
//
||
//
mConditions.isXTDBullCrossedOverBear
//
)
//
)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTDBullCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXCHMAMCVale &&
mConditions.isXFICrossedOverZero) &&
(
//
mConditions.isXCHMASCUnderMin
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
mConditions.isXAMAVale &&
mConditions.isXCHMALCPeak)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXCHMAMCVale) &&
(
//
(mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCTrendsDown) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
||
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXFIUnderZero &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameLLs)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHMASCOverMax &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
mConditions.isXTSCurrentCrossedOverMediest
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHLHMCLCLLSame &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXLHPriceCrossedOverSignal &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXAMABearish &&
mConditions.isXTMStartBearish &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
((mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
||
//
((mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXCHMASCUnderMin &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameLLs)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak)
//
||
//
(mConditions.isXCHMASCUnderMin &&
(
//
mConditions.isXAMAVale
//
||
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
((mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
mConditions.isXLHLowAttachedLL
//
||
//
mConditions.isXTSCurrentCrossedUnderNearest
//
||
//
(!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSameLLs)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXLHLowAttachedLL)
//
||
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
// XTSFI Short ...
// Resolve Guard Attacks ...
||
//
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXAMANeutural &&
(
//
mConditions.isXTMBullish
//
||
//
mConditions.isXTMStartBullish
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDBullCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXAMANeutural &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXFICrossedUnderZero)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
mConditions.isXTMBullish
//
||
//
mConditions.isXTMStartBullish
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak) &&
(
//
(mConditions.isXCHMALCFastOverSlow &&
(
//
(mConditions.isXAMAVale &&
(
//
mConditions.isXTMNeutural
//
||
//
mConditions.isXTMEndBullish
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMAStartBearish)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXLHLLIncreased)
//
||
//
(mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTMStartBearish &&
(
//
mConditions.isXCHLHMCLCHHSame
//
||
//
(!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXTMNeutural &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXLHHHDecreased)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
mConditions.isXCHLHSCMCLLSame
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXAMAEndBearish &&
mConditions.isXFICrossedUnderZero)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXFIUnderZero &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXFIUnderZero &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
mConditions.isXCHLHSameLLs
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXFICrossedUnderZero &&
mConditions.isXTDBullCrossedUnderBear) &&
(
//
mConditions.isXCHMAMCVale
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// XTD Bearish ...
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
mConditions.isXTMNeutural
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXTMStartBearish &&
(
//
mConditions.isXAMANeutural
//
||
//
mConditions.isXAMAStartBearish
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalOverBear &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTDSignalOverBear &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXLHPriceCrossedOverSignal &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXFIOverZero &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMABullish &&
mConditions.isXTMNeutural)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXAMABullish &&
mConditions.isXTMNeutural)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXFIOverZero)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero)
//
||
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHMASCOverMax &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXCHMALCVale
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMax) &&
(
//
((mConditions.isXAMAVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXAMANeutural &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale) &&
(
//
mConditions.isXTMStartBearish
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
(
//
(mConditions.isXAMANeutural &&
(
//
mConditions.isXCHMAMCVale
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale) &&
(
//
mConditions.isXTMStartBearish
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXAMABearish &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXLHHHIncreased &&
mConditions.isXTMStartBearish)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMEndBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXFIOverZero &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
(mConditions.isXAMANeutural &&
(
//
mConditions.isXTMBullish
//
||
//
mConditions.isXTMStartBullish
//
)
//
)
//
||
//
(mConditions.isXAMAVale &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
(mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
mConditions.isXTMVale
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXCHMASCUnderMin &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXFIOverZero &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak) &&
(
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXLHPriceCrossedOverSignal &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXCHMALCVale &&
(
//
mConditions.isXAMANeutural
//
||
//
mConditions.isXAMAEndBearish
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXTMEndBearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// All Other Wises ...
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
(mConditions.isXTDSignalOverBear &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDSignalCrossedOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
(mConditions.isXFIOverZero &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
mConditions.isXTDSignalOverBear
//
||
//
mConditions.isXTDSignalCrossedOverBear
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMASCUnderMin &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCCrossedUnderMin)
//
||
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
(
//
(mConditions.isXAMAVale &&
(
//
mConditions.isXTMVale
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXLHPriceCrossedUnderSignal &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXTMVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMALCVale)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Other Wises ...
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
mConditions.isXRSICrossedOverLongEntry
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMASCTrendsUp &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXLHLLIncreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
((mConditions.isXLHHHIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXLHPriceCrossedOverSignal &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
mConditions.isXCHLHSameLLs
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
(
//
mConditions.isXAMAVale
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XTSFI Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXTSCurrentCrossedOverMediest
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMAMCFastCrossedOverSlow)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMEndBullish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXAMAStartBearish &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMANeutural &&
mConditions.isXCHMAMCVale) &&
(
//
mConditions.isXCHLHSCMCLLSame
//
||
//
mConditions.isXCHMASCUnderMin
//
)
//
)
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXCHMALCVale &&
(
//
((mConditions.isXTMVale &&
mConditions.isXAMAVale) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXFIOverZero &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXAMAStartBearish &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
)
//
)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXCHMASCCrossedUnderMax &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXTDBullOverBear
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMStartBullish &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMASCUnderMin)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXTDBullOverBear
//
||
//
mConditions.isXCHLHSCMCLLSame
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXRSICrossedUnderShortExit)
//
||
//
(mConditions.isXCHMALCFastOverSlow &&
(
//
(mConditions.isXCHMALCTrendsDown &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMAMCFastOverSlow)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMASCFastOverSlow)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXCHMASCFastCrossedOverSlow &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
(mConditions.isXCHMALCFastOverSlow &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXAMAVale &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
mConditions.isXCHMALCPeak
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMALCFastOverSlow &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTDBullCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXTMVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCFastOverSlow &&
(
//
(mConditions.isXTMVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
((mConditions.isXTMVale &&
mConditions.isXAMAVale) &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
mConditions.isXCHMASCUnderMin
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameLLs &&
mConditions.isXLHHHDecreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale)
//
||
//
(mConditions.isXFIOverZero &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXFICrossedOverZero)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
mConditions.isXTSCurrentCrossedOverMediest
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMASCFastOverSlow)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCFastOverSlow &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
(mConditions.isXCHMASCFastOverSlow &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCTrendsUp)
//
)
//
)
//
||
//
(mConditions.isXCHMALCFastOverSlow &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameLLs &&
mConditions.isXLHHHDecreased)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXCHMAMCFastOverSlow &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXTMEndBullish &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXAMABullish &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
||
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXLHLLDecreased &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTMNeutural &&
(
//
mConditions.isXAMANeutural
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXLHPriceCrossedOverSignal &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
mConditions.isXLHPriceCrossedOverSignal
//
||
//
(mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXTMEndBullish &&
mConditions.isXTDBearishVale)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHIncreased &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
||
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXTDBullCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHLHMCLCLLSame)
//
||
(mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXRSICrossedOverLongEntry)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
((mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSameLLs &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTMStartBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMAMCFastUnderSlow)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXCHMAMCVale &&
!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullUnderBear)
//
||
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCFastCrossedUnderSlow &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTDBullCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXAMABearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXTMNeutural &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMABearish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXCHMAMCVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXAMABearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXTMEndBearish &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXCHMASCCrossedOverMin)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXTDBullCrossedUnderBear &&
mConditions.isXRSICrossedUnderShortExit)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCTrendsUp)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXAMANeutural &&
mConditions.isXTMStartBullish &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentOverMediest)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverMediest) &&
(
//
mConditions.isXTDSignalCrossedOverBear
//
||
//
(mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
((mConditions.isXTDBearishVale &&
mConditions.isXTDSignalOverBear) &&
(
//
mConditions.isXLHPriceCrossedOverSignal
//
||
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDBullCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XTSFI Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XOBDLH ...
//
// Common Conditions ...
bool XOBDLHHasLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
X5MarketConditions mConditions2;
GetMarketConditions(
mConditions,
2 //
);
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
mConditions2.isXOBDSwingLow &&
mConditions2.isXLHLowAttachedLL &&
mConditions.lhLls[1] >= mConditions.lhLls[2]
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForLong(
mConditions,
true, // XCHMA Min
true, // XCHMA Max
false, // XCHMA Cycles
false, // XCHMA Peaks
false, // XCHMA Trend Powers
false, // XOBD
false // XTS
)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XOBDLHHasSpecifiedLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XOBDLHHasLongSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTMEndBearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXAMAStartBearish)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
((mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSameLLs) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHHHDecreased)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow)
//
||
//
((mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
mConditions.isXTSCurrentMax
//
||
//
mConditions.isXLHLowAttachedLL
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMEndBearish &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMNeutural &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCLLSame)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXAMAStartBearish)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTSAllSame &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSameLLs)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMAMCFastUnderSlow)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXTMVale &&
mConditions.isXAMAVale) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMAMCVale) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMAMCFastUnderSlow) &&
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMALCFastUnderSlow))
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XOBDLH ...
//
// Common Conditions ...
bool XOBDLHHasShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
X5MarketConditions mConditions2;
GetMarketConditions(
mConditions,
2 //
);
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
mConditions2.isXOBDSwingHigh &&
mConditions2.isXLHHighAttachedHH &&
mConditions.lhHhs[1] <= mConditions.lhHhs[2]
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForShort(
mConditions,
true, // XCHMA Min
true, // XCHMA Max
false, // XCHMA Cycles
false, // XCHMA Peaks
false, // XCHMA Trend Powers
false, // XOBD
false // XTS
)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XOBDLHHasSpecifiedShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XOBDLHHasShortSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCCrossedUnderMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsUp)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXFIOverZero &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDBullOverBear) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDSignalOverBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXTMEndBullish &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXTMEndBullish)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
||
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
||
//
(mConditions.isXFIOverZero &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
(((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow)) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullCrossedOverBear)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak)
//
)
//
)
//
)
//
)
//
||
//
(((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsUp)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow)) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
||
//
(((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow)) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsUp)
//
)
//
)
//
||
//
(((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXFIOverZero &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMALCTrendsUp)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
||
//
// XOBDLH Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMAMCFastOverSlow) &&
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMALCFastOverSlow))
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCOverMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTMStartBullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXAMAStartBullish &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMASCFastUnderSlow &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
((mConditions.isXTSCurrentMin &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXLHHighAttachedHH)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XOBDLH Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear) &&
(mConditions.isXTSAllSame &&
mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXCHMALCFastUnderSlow))
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMASCPeak) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTDSignalOverBear &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsUp)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsUp)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMASCPeak) &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMASCTrendsDown)
//
)
//
)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XCHMACC ...
//
// Common Conditions ...
bool XCHMACCHasLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
mConditions.chmaScFasts[1] > mConditions.chmaScSlows[1] &&
mConditions.chmaMcFasts[1] > mConditions.chmaMcSlows[1] &&
mConditions.chmaLcFasts[1] > mConditions.chmaLcSlows[1] &&
//
mConditions.chmaScFasts[2] > mConditions.chmaScSlows[2] &&
mConditions.chmaMcFasts[2] > mConditions.chmaMcSlows[2] &&
mConditions.chmaLcFasts[2] > mConditions.chmaLcSlows[2] &&
//
!(
//
mConditions.chmaScFasts[3] > mConditions.chmaScSlows[3] &&
mConditions.chmaMcFasts[3] > mConditions.chmaMcSlows[3] &&
mConditions.chmaLcFasts[3] > mConditions.chmaLcSlows[3]
//
)
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForLong(mConditions)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XCHMACCHasSpecifiedLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XCHMACCHasLongSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
(mConditions.isXTSCurrentOverFarest ||
mConditions.isXTDSignalCrossedUnderBear))
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMANeutural &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTMStartBullish &&
mConditions.isXFICrossedUnderZero)
//
||
//
(
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased)
//
)
//
)
//
)
//
)
//
))
//
||
//
(((mConditions.isXTMNeutural &&
mConditions.isXTMEndBullish &&
mConditions.isXFICrossedUnderZero)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear))
//
&&
//
(mConditions.isXCHMALCPeak &&
(
//
mConditions.isXCHMALCTrendsDown
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
(mConditions.isXTDSignalUnderBear ||
mConditions.isXTDSignalCrossedUnderBear))
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMAStartBearish &&
mConditions.isXFICrossedUnderZero)
//
||
//
((mConditions.isXAMANeutural ||
mConditions.isXAMAEndBearish) &&
mConditions.isXTMStartBullish &&
mConditions.isXFICrossedOverZero)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear)
//
)
//
)
//
||
//
((mConditions.isXAMABearish &&
(mConditions.isXTMNeutural ||
mConditions.isXTMBearish)) &&
mConditions.isXTSCurrentUnderMediest &&
(mConditions.isXTDBullCrossedUnderBear ||
(mConditions.isXTDBullUnderBear &&
mConditions.isXFICrossedUnderZero)))
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTSCurrentMax &&
(
//
(mConditions.isXAMABearish &&
mConditions.isXTDBullCrossedOverBear)
//
||
//
(mConditions.isXTMStartBullish &&
(
//
(
//
mConditions.isXAMAStartBullish
//
||
//
(mConditions.isXAMAEndBearish &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
(mConditions.isXLHLLDecreased &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)
//
||
//
(mConditions.isXTSCurrentMax &&
(mConditions.isXTMBullish ||
mConditions.isXTMStartBullish) &&
(mConditions.isXAMABullish ||
mConditions.isXAMAStartBullish) &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
mConditions.isXTDBearishVale
//
||
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMASCTrendsDown &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXFIUnderZero &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsDown))
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(
//
mConditions.isXCHMALCTrendsDown
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(
mConditions.isXTDSignalUnderBear &&
(
//
mConditions.isXTSAllSame
//
||
//
((mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest))
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHPriceCrossedOverSignal &&
(mConditions.isXCHMAMCTrendsDown &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow)))
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXCHMAMCTrendsDown)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMALCPeak &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)) &&
(
//
(mConditions.isXCHMALCTrendsDown &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderNearest)
//
||
//
(
(mConditions.isXAMABullish &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBullish &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXTSCurrentMax) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTDBullCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(
(mConditions.isXCHMAMCTrendsDown &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish)
//
||
(mConditions.isXLHLLDecreased &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHMAMCPeak &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
))
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHLHSameHHs &&
(mConditions.isXTSCurrentUnderNearest ||
mConditions.isXTSCurrentCrossedUnderNearest) &&
(mConditions.isXTSCurrentUnderMediest ||
mConditions.isXTSCurrentCrossedUnderMediest))
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXTMEndBullish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
(mConditions.isXCHMALCTrendsDown &&
(
//
(((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax) &&
(
//
mConditions.isXCHLHMCLCHHSame
//
||
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMALCPeak)
//
||
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXFICrossedOverZero)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCPeak &&
mConditions.isXTMEndBullish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentUnderNearest)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
mConditions.isXTSCurrentUnderNearest
//
||
//
(mConditions.isXLHLLIncreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXFICrossedUnderZero)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCTrendsDown &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
(mConditions.isXTSCurrentMin ||
mConditions.isXTSCurrentMax)) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXLHLLIncreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// XCHMACC Long ...
// Resolve Stop Outs ...
(
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased)
//
||
//
((mConditions.isXCHMASCVale &&
mConditions.isXTMBearish) &&
(
//
mConditions.isXAMABearish
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
mConditions.isXTDSignalCrossedOverBear
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXAMAEndBullish &&
!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTMStartBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
mConditions.isXTSCurrentUnderFarest
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
(mConditions.isXTMStartBullish &&
mConditions.isXTDBullCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLDecreased)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDBearishVale &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
||
//
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMin &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCUnderMax)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMASCVale)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
mConditions.isXAMAStartBullish
//
||
//
(mConditions.isXLHLLDecreased &&
mConditions.isXTDBullCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// All Neutural ...
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLDecreased &&
mConditions.isXTMStartBullish)
//
||
//
((mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMASCOverMin &&
mConditions.isXTMStartBullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentCrossedOverFarest)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentCrossedOverFarest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
mConditions.isXTMStartBullish
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTSCurrentCrossedOverFarest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
mConditions.isXTSCurrentMax
//
||
//
mConditions.isXTSCurrentUnderFarest
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCCrossedOverMax &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXAMANeutural &&
(
//
mConditions.isXTMNeutural
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXTMStartBullish)
//
)
//
)
//
||
//
(mConditions.isXFIUnderZero &&
mConditions.isXFICrossedUnderZero)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBearishVale &&
mConditions.isXLHLLDecreased)
//
)
//
)
//
||
//
(mConditions.isXTDBearishVale &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHLLDecreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXLHHHDecreased &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBearishVale &&
mConditions.isXLHPriceCrossedUnderSignal)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
mConditions.isXRSICrossedOverLongExit
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax) &&
(
//
(mConditions.isXLHLLIncreased &&
mConditions.isXCHMASCOverMax)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXLHHHIncreased)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTDSignalOverBear &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTDSignalCrossedOverBear) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXLHHighAttachedHH)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTDBullUnderBear &&
(
//
mConditions.isXRSICrossedOverLongExit
//
)
//
)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
(
//
mConditions.isXTDBullCrossedOverBear
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCCrossedOverMax)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
(mConditions.isXCHMASCOverMax &&
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(mConditions.isXCHMALCPeak &&
(
//
mConditions.isXCHLHSameHHs
//
||
//
mConditions.isXLHLLIncreased
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTSCurrentMax &&
(
//
mConditions.isXTDSignalUnderBear
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear) &&
(
//
(mConditions.isXAMABullish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTMStartBullish &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMASCOverMax &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// All Bullish ...
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
mConditions.isXTSCurrentUnderMediest
//
||
//
mConditions.isXTSCurrentCrossedUnderNearest
//
)
//
)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow ...
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Long ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDBullCrossedUnderBear)
//
||
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTSCurrentUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXRSICrossedOverLongExit)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXRSICrossedOverLongExit)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTDBearishVale &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
((mConditions.isXCHMASCFastOverSlow &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
// XCHMACC Longs ...
// Guard Attacks Resolves ...
||
//
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
mConditions.isXTSCurrentCrossedUnderNearest
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentCrossedUnderNearest &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXCHMASCCrossedOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderMediest &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
mConditions.isXTMNeutural
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMASCFastOverSlow &&
(mConditions.isXCHMASCTrendsDown ||
(!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown)))
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax) &&
(
//
mConditions.isXLHPriceCrossedOverSignal
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTMEndBullish &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCOverMax)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
((mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame) &&
(
//
mConditions.isXCHLHMCLCLLSame
//
||
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMALCPeak) &&
(
//
mConditions.isXTMStartBullish
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear) &&
(
//
(mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceOverSignal)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow &&
(mConditions.isXCHMAMCTrendsDown ||
(!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown))) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax) &&
(
//
mConditions.isXLHPriceCrossedOverSignal
//
||
//
((mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish) &&
(
//
(mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceInSignalRange) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDBullCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentUnderFarest &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXFICrossedUnderZero)
//
)
//
)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXFICrossedUnderZero)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax) &&
(
//
(mConditions.isXTDBearishVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTMEndBullish &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDSignalCrossedOverBear)
//
||
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentCrossedOverNearest) &&
(
//
mConditions.isXCHMASCPeak
//
||
//
mConditions.isXCHMALCPeak
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXLHHighAttachedHH)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTDBullCrossedOverBear)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTDBullCrossedOverBear)
//
||
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMASCOverMin &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDSignalCrossedOverBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXRSICrossedOverLongExit)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
mConditions.isXCHMALCPeak
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTDBullCrossedOverBear)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCOverMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderNearest)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
((mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCTrendsDown)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCTrendsDown)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
mConditions.isXCHLHMCLCHHSame
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTDBullCrossedOverBear)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
mConditions.isXRSICrossedOverLongExit
//
||
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
||
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XCHMACC ...
//
// Common Conditions ...
bool XCHMACCHasShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
mConditions.chmaScFasts[1] < mConditions.chmaScSlows[1] &&
mConditions.chmaMcFasts[1] < mConditions.chmaMcSlows[1] &&
mConditions.chmaLcFasts[1] < mConditions.chmaLcSlows[1] &&
//
mConditions.chmaScFasts[2] < mConditions.chmaScSlows[2] &&
mConditions.chmaMcFasts[2] < mConditions.chmaMcSlows[2] &&
mConditions.chmaLcFasts[2] < mConditions.chmaLcSlows[2] &&
//
!(
//
mConditions.chmaScFasts[3] < mConditions.chmaScSlows[3] &&
mConditions.chmaMcFasts[3] < mConditions.chmaMcSlows[3] &&
mConditions.chmaLcFasts[3] < mConditions.chmaLcSlows[3]
//
)
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForLong(mConditions)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XCHMACCHasSpecifiedShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XCHMACCHasShortSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTMStartBullish &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentOverFarest)
//
||
//
((mConditions.isXFIOverZero &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest) &&
(
//
(mConditions.isXAMAStartBearish &&
mConditions.isXFICrossedOverZero)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow)) &&
(
//
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXLHLLIncreased &&
mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentOverNearest)
//
||
//
(((mConditions.isXTMNeutural ||
mConditions.isXTMEndBearish) &&
(mConditions.isXAMANeutural ||
mConditions.isXAMAEndBullish)) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMAMCTrendsDown)
//
)
//
)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
(
//
((mConditions.isXTMEndBearish ||
mConditions.isXTMNeutural) &&
(mConditions.isXAMABearish ||
mConditions.isXAMANeutural) &&
mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTMStartBearish &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXCHMALCVale &&
(
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTMStartBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
||
//
((mConditions.isXTMNeutural ||
mConditions.isXTMEndBearish) &&
(mConditions.isXAMANeutural ||
mConditions.isXAMAEndBearish) &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMABearish &&
mConditions.isXTMEndBearish &&
mConditions.isXTDBullOverBear) &&
(
//
mConditions.isXCHLHSCMCLLSame
//
||
//
(mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentCrossedOverFarest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
((mConditions.isXTMStartBearish &&
mConditions.isXTDBullOverBear &&
mConditions.isXAMAStartBearish) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow)) &&
(
//
mConditions.isXCHMALCTrendsDown
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentMin) &&
(
//
(mConditions.isXFICrossedUnderZero &&
mConditions.isXTDBullCrossedUnderBear)
//
||
//
(mConditions.isXCHMALCTrendsUp &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow)) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXTSCurrentOverNearest)
//
||
//
(mConditions.isXCHMALCVale &&
(mConditions.isXTSCurrentOverNearest ||
mConditions.isXTSCurrentCrossedOverNearest) &&
(mConditions.isXTSCurrentOverFarest ||
mConditions.isXTSCurrentCrossedOverFarest))
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentMin) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsUp)
//
||
//
((mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHMASCVale)
//
||
//
((mConditions.isXCHLHSameLLs &&
mConditions.isXLHHHIncreased &&
mConditions.isXLHLowAttachedLL) &&
(
//
mConditions.isXCHMAMCTrendsDown
//
||
//
mConditions.isXCHMASCCrossedUnderMin
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTDBullCrossedUnderBear) &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL)
//
||
//
(mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMEndBearish &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverNearest)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMALCVale &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow)) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentOverMediest)
//
||
//
(mConditions.isXFIUnderZero &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXFIOverZero &&
mConditions.isXTMStartBullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXAMAStartBullish &&
mConditions.isXTSCurrentOverNearest)
//
)
//
)
//
||
//
((mConditions.isXTDSignalVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullishVale &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMANeutural)
//
)
//
)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMANeutural &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCOverMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest)
//
||
//
((mConditions.isXTMNeutural ||
mConditions.isXTMEndBearish) &&
(mConditions.isXAMANeutural ||
mConditions.isXAMAEndBearish) &&
mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTSCurrentOverNearest)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXFIOverZero &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXAMAStartBearish)
//
||
//
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXAMAEndBullish &&
mConditions.isXTMStartBearish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsDown)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// XCHMACC Short ...
// Resolve Stop Outs ...
(
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Otherwises ...
(mConditions.isXTDBullOverBear &&
(
//
((!mConditions.isXCHMALCTrendsUp &&
!mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedUnderNearest) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTSCurrentCrossedOverNearest &&
(
//
(mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCUnderMin)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTMStartBearish)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXLHHHIncreased &&
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
mConditions.isXTSCurrentMin
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentCrossedOverFarest)
//
)
//
)
//
||
//
(mConditions.isXTDSignalOverBear &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverNearest &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMStartBearish &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
(mConditions.isXRSICrossedUnderShortExit &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMABullish &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
mConditions.isXTSCurrentMax
//
||
//
mConditions.isXCHMASCCrossedUnderMin
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTSCurrentOverNearest &&
(
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
mConditions.isXTSCurrentCrossedOverNearest
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((!mConditions.isXCHMALCTrendsUp &&
!mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLLSameInLength &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXFIOverZero &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Under Signal ...
// Other wises ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentOverNearest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price In Signal Range ...
// All Neutural ...
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTDBullCrossedUnderBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDSignalCrossedUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXRSICrossedUnderShortExit &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Under Signal ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
(mConditions.isXRSICrossedUnderShortExit &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTSCurrentCrossedUnderNearest) &&
(
//
mConditions.isXCHLHSameLLs
//
||
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Stop Outs ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
||
//
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXTDBullCrossedUnderBear) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentCrossedOverFarest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedUnderNearest) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price In Signal Range ...
// All Neutural ...
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedUnderNearest) &&
(
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTMStartBearish &&
mConditions.isXTDSignalCrossedUnderBear)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin &&
(mConditions.isXTSAllSame ||
mConditions.isXTSCurrentMin)) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
(
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXTDBullCrossedUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverFarest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Under Signal ...
// All TM/AMA Bullish ...
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMBearish &&
(
//
mConditions.isXAMANeutural
//
||
//
(mConditions.isXAMABearish &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXCHLHMCLCLLSame &&
(
//
(mConditions.isXAMAStartBearish &&
(
//
mConditions.isXTMStartBearish
//
||
//
mConditions.isXTSCurrentUnderMediest
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(
mConditions.isXTSCurrentMax &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTSCurrentMax &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXTMStartBearish) &&
(mConditions.isXAMANeutural &&
mConditions.isXAMAEndBullish))
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXTMStartBearish &&
mConditions.isXAMANeutural &&
mConditions.isXAMAEndBullish)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentCrossedUnderNearest) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// Both HH and LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXFIOverZero &&
(
//
((mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((!mConditions.isXCHMALCTrendsUp &&
!mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLLIncreased &&
mConditions.isXLHPriceCrossedUnderSignal &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXFIOverZero &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish)
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
((mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// LL Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTSAllSame &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMin &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXTDBullCrossedUnderBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHIncreased &&
mConditions.isXTSCurrentCrossedUnderFarest) &&
(
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
||
//
((!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTSAllSame &&
(
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMASCUnderMin &&
(mConditions.isXCHLHSameLLs ||
mConditions.isXCHLHSCMCLLSame)) &&
(
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price In Signal Range ...
// All Neutural ...
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXCHMASCUnderMin &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXLHHHIncreased)
//
||
//
(mConditions.isXTSCurrentCrossedOverNearest &&
(
//
((mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCLLSame) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXAMAVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
(mConditions.isXLHLowAttachedLL &&
(
//
mConditions.isXCHLHSameLLs
//
||
//
mConditions.isXCHLHSCMCLLSame
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHIncreased) &&
(
//
((mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish) &&
(
//
mConditions.isXTDBullCrossedUnderBear
//
||
//
mConditions.isXLHPriceCrossedUnderSignal
//
||
//
(!mConditions.isXCHMASCTrendsUp &&
!mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTSCurrentCrossedOverMediest &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXAMABearish &&
mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHLHSCMCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Under Signal ...
// Otherwises ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalOverBear &&
(
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTSCurrentCrossedOverNearest &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
||
//
((mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullCrossedUnderBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
((!mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
(
//
(
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
(
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price In Signal Range ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Under Signal ...
// All Bearish ...
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
(mConditions.isXTDBullCrossedUnderBear &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTSCurrentOverMediest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Over Signal ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if SC Fast Under Slow But Trends Down ...
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if MC Fast Under Slow But Trends Down ...
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
false
//
)
//
)
//
||
//
// XCHMACC Short ...
// Resolve Guard Attacks ...
// not LL and HH Same In Length ...
// Price Free ...
// Check if LC Fast Under Slow But Trends Down ...
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTDBullCrossedUnderBear &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
((mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish) &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXLHHHDecreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentOverNearest)
//
||
//
((mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear) &&
(
//
mConditions.isXTSCurrentCrossedUnderFarest
//
||
//
(mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
||
//
(mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXRSICrossedUnderShortExit)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTSCurrentMin &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDBullCrossedUnderBear)
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCUnderMax &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullUnderBear)
//
)
//
)
//
||
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentOverNearest)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXLHLowAttachedLL &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXCHMASCTrendsUp &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsUp) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
// XCHMA Shorts ...
// Resolve Guard Attacks ...
||
//
(
//
(mConditions.isXTSCurrentOverNearest &&
(
//
(mConditions.isXTSCurrentCrossedOverNearest &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXCHMALCVale &&
mConditions.isXAMAEndBullish)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
(mConditions.isXAMABullish ||
mConditions.isXAMAStartBullish))
//
||
//
((mConditions.isXCHMAMCFastUnderSlow &&
(mConditions.isXCHMAMCTrendsDown ||
(!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown))) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
(mConditions.isXTDSignalCrossedOverBear &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTMStartBearish &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverMediest &&
(
//
(((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) ||
(mConditions.isXTMEndBearish &&
mConditions.isXAMAEndBearish)) &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCVale &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMAStartBearish &&
mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceOverSignal)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMAMCPeak &&
mConditions.isXTMEndBearish &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
((mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullOverBear &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin) &&
(
//
((mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish) &&
(
//
mConditions.isXLHHHIncreased
//
||
//
(mConditions.isXLHLowAttachedLL &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXCHMASCUnderMin &&
mConditions.isXLHPriceInSignalRange) &&
(
//
mConditions.isXTSAllSame
//
||
//
(mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMASCUnderMin) &&
(
//
mConditions.isXTSCurrentMin
//
||
//
mConditions.isXTSCurrentOverFarest
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastUnderSlow &&
(mConditions.isXCHMAMCTrendsDown ||
(!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown))) &&
(
//
((mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin) &&
(
//
(mConditions.isXTDBullishVale &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXTDSignalVale &&
(
//
mConditions.isXCHLHSameLLs
//
||
//
mConditions.isXCHLHMCLCHHSame
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceUnderSignal)
//
)
//
)
//
||
//
(mConditions.isXRSICrossedUnderShortExit &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMin &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXAMAEndBullish
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXLHHHIncreased &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXAMAStartBearish) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXLHHHIncreased &&
mConditions.isXTMStartBearish &&
mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceOverSignal &&
mConditions.isXTDBullCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHHHIncreased &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
(mConditions.isXRSICrossedUnderShortExit &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentOverFarest &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXAMAEndBullish)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalVale &&
mConditions.isXTDBullishVale)
//
)
//
)
//
||
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
mConditions.isXCHMASCUnderMin
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTDBullCrossedOverBear &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMASCUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTSCurrentCrossedUnderNearest) &&
(
//
(mConditions.isXLHLLDecreased &&
(
//
(mConditions.isXAMAStartBearish &&
mConditions.isXLHLowAttachedLL)
//
||
//
(mConditions.isXLHLowAttachedLL &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
(mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHHHSameInLength &&
mConditions.isXLHLLSameInLength &&
mConditions.isXLHPriceInSignalRange)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentCrossedOverFarest)
//
||
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMASCUnderMin &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverNearest)
//
||
//
((mConditions.isXCHMAMCVale &&
!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXTDBullCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMAMCFastUnderSlow)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBearishVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
||
//
(((mConditions.isXTSCurrentOverNearest ||
mConditions.isXTSCurrentCrossedOverNearest) &&
(mConditions.isXTSCurrentOverMediest ||
mConditions.isXTSCurrentCrossedOverMediest)) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXAMABullish &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
((mConditions.isXAMANeutural ||
mConditions.isXAMAEndBullish) &&
(mConditions.isXTMStartBearish) &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest) &&
(
//
mConditions.isXAMANeutural
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTDBullCrossedUnderBear)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
// XCHMACC Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTDBullOverBear &&
(mConditions.isXTSCurrentOverNearest ||
mConditions.isXTSCurrentCrossedOverNearest))
//
)
//
)
//
||
//
// XCHMACC Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMASCUnderMin)
//
||
//
((mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
(mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
||
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXRSICrossedUnderShortExit)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTDBullCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHMASCUnderMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHPriceCrossedUnderSignal)
//
||
//
((mConditions.isXTSCurrentOverNearest ||
mConditions.isXTSCurrentCrossedOverNearest) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
(mConditions.isXCHMASCUnderMin &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXRSICrossedUnderShortExit)
//
||
//
((mConditions.isXTSCurrentOverNearest ||
mConditions.isXTSCurrentCrossedOverNearest) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXCHLHMCLCHHSame) &&
(
//
(mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXFICrossedOverZero)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMASCUnderMin &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
mConditions.isXRSICrossedUnderShortExit
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)
//
||
//
(mConditions.isXTDBullOverBear &&
(mConditions.isXTSCurrentOverMediest ||
mConditions.isXTSCurrentCrossedOverMediest))
//
||
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDBullCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXCHMASCCrossedUnderMin)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
((mConditions.isXTDSignalUnderBear &&
mConditions.isXTDBullCrossedUnderBear) &&
(
//
mConditions.isXTSCurrentOverFarest
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMACC Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XCHMAMN ...
//
// Common Conditions ...
bool XCHMAMNHasLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
double nonSC2[] = {
mConditions.chmaMcFasts[2],
mConditions.chmaMcSlows[2],
mConditions.chmaLcFasts[2],
mConditions.chmaLcSlows[2],
};
//
double nonSCMax2 = GetMax(nonSC2);
double nonSCMin2 = GetMax(nonSC2);
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
mConditions.isXCHMASCCrossedOverMin &&
mConditions.chmaScFasts[2] < nonSCMin2 &&
mConditions.chmaScSlows[2] < nonSCMin2
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForLong(
mConditions,
true, // XCHMA Min
true, // XCHMA Max
false, // XCHMA Cycles
false, // XCHMA Peaks
false, // XCHMA Trend Powers
true, // XOBD
true // XTS
)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XCHMAMNHasSpecifiedLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XCHMAMNHasLongSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown) &&
(
//
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
||
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMALCTrendsDown) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHLHMCLCLLSame)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXLHHHDecreased &&
mConditions.isXLHLLDecreased &&
mConditions.isXTMStartBullish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXLHHHDecreased &&
mConditions.isXLHLLDecreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMALCTrendsDown) &&
(
//
(((mConditions.isXTMVale ||
mConditions.isXTMNeutural) &&
mConditions.isXTMEndBearish) &&
(mConditions.isXAMANeutural ||
mConditions.isXAMAEndBearish) &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMALCTrendsDown) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
// LC Vale ...
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown) &&
(
//
mConditions.isXCHMASCTrendsDown
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
||
//
((mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp &&
(mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow)) &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMALCTrendsDown) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown) &&
(
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale) &&
(
//
mConditions.isXCHMAMCVale
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXLHHHDecreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderNearest)
//
||
//
(mConditions.isXCHMALCVale &&
(
//
mConditions.isXCHMASCTrendsDown
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale)
//
||
//
(mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXTMStartBullish &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMALCTrendsDown &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
(mConditions.isXCHLHMCLCHHSame ||
mConditions.isXCHLHMCLCLLSame) &&
mConditions.isXTSCurrentUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown) &&
(
//
mConditions.isXCHMALCVale
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown) &&
(
//
((mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
||
//
(mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullUnderBear)
//
)
//
)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDSignalUnderBear)
//
||
//
mConditions.isXCHMASCTrendsDown
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// LC Vale ...
(mConditions.isXCHMALCVale &&
(
//
(mConditions.isXCHMAMCVale &&
(
//
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
)
//
)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Under Slow ...
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCTrendsUp &&
(
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXTDSignalUnderBear
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsUp)
//
||
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXLHHHIncreased &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXCHMASCFastCrossedOverSlow &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Under Slow ...
((mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow) &&
(
//
(mConditions.isXCHMALCTrendsUp &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) ||
(mConditions.isXTMEndBullish &&
mConditions.isXAMAEndBullish)) &&
(
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDSignalOverBear &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDSignalUnderBear)
//
||
//
(mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXCHMASCFastCrossedUnderSlow)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTDBullCrossedOverBear)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXCHMASCFastCrossedUnderSlow &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXAMAVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXTDSignalCrossedOverBear &&
mConditions.isXTSCurrentCrossedOverNearest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXLHLLIncreased &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedOverFarest)
//
)
//
)
//
||
//
(((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)) &&
(
//
(mConditions.isXTDSignalVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
||
//
(((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDSignalUnderBear) &&
(
//
mConditions.isXLHPriceCrossedOverSignal
//
||
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXCHMASCFastCrossedOverSlow)
//
)
//
)
//
||
//
((mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverNearest) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXTSCurrentMax &&
mConditions.isXCHMASCTrendsDown)
//
||
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXTSCurrentMax)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedUnderNearest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverFarest &&
mConditions.isXTSCurrentCrossedOverMediest)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
((mConditions.isXCHMASCPeak &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow) &&
(
//
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentCrossedOverFarest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHMASCPeak &&
mConditions.isXCHMAMCVale &&
mConditions.isXTSCurrentMax &&
mConditions.isXLHHHDecreased &&
mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow &&
mConditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTMStartBullish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDBullOverBear &&
mConditions.isXAMAStartBullish &&
mConditions.isXTDSignalOverBear &&
mConditions.isXCHMAMCFastUnderSlow &&
mConditions.isXCHMALCFastUnderSlow &&
mConditions.isXLHPriceCrossedOverSignal &&
mConditions.isXTSCurrentCrossedOverMediest)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
((mConditions.isXCHMALCVale &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XCHMAMN ...
//
// Common Conditions ...
bool XCHMAMNHasShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
double nonSC2[] = {
mConditions.chmaMcFasts[2],
mConditions.chmaMcSlows[2],
mConditions.chmaLcFasts[2],
mConditions.chmaLcSlows[2],
};
//
double nonSCMax2 = GetMax(nonSC2);
double nonSCMin2 = GetMax(nonSC2);
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.chmaScFasts[2] > nonSCMin2 &&
mConditions.chmaScSlows[2] > nonSCMin2
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForLong(
mConditions,
true, // XCHMA Min
true, // XCHMA Max
false, // XCHMA Cycles
false, // XCHMA Peaks
false, // XCHMA Trend Powers
true, // XOBD
true // XTS
)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XCHMAMNHasSpecifiedShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XCHMAMNHasShortSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXTMBearish ||
mConditions.isXTMNeutural) &&
mConditions.isXAMANeutural &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXLHLLIncreased &&
mConditions.isXTSCurrentOverNearest)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest) &&
(
//
(mConditions.isXFIOverZero &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
mConditions.isXAMANeutural &&
mConditions.isXAMAEndBullish &&
mConditions.isXTMStartBearish)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentOverMediest &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXFICrossedUnderZero &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
mConditions.isXRSICrossedUnderShortExit
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXTSCurrentOverFarest &&
(mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow)) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMAStartBearish)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCVale &&
mConditions.isXCHMALCVale &&
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)))
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTMEndBearish &&
mConditions.isXTSCurrentOverMediest)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if SC Fast Over Slow ...
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXTSAllSame &&
mConditions.isXAMABearish &&
mConditions.isXLHLLDecreased &&
mConditions.isXCHMALCFastOverSlow)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
((mConditions.isXFIOverZero &&
mConditions.isXTDBullOverBear &&
mConditions.isXFICrossedOverZero) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXCHMASCFastCrossedUnderSlow)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMASCTrendsDown)
//
||
//
(mConditions.isXCHMAMCVale &&
mConditions.isXCHMAMCTrendsDown)
//
||
//
(mConditions.isXCHMASCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
||
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMALCFastOverSlow &&
mConditions.isXTSCurrentOverNearest)
//
||
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXCHMALCVale &&
mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMASCCrossedUnderMin &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XCHMAMX ...
//
// Common Conditions ...
bool XCHMAMXHasLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
double nonSC2[] = {
mConditions.chmaMcFasts[2],
mConditions.chmaMcSlows[2],
mConditions.chmaLcFasts[2],
mConditions.chmaLcSlows[2],
};
//
double nonSCMax2 = GetMax(nonSC2);
double nonSCMin2 = GetMax(nonSC2);
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
mConditions.isXCHMASCCrossedOverMax &&
mConditions.chmaScFasts[2] < nonSCMax2 &&
mConditions.chmaScSlows[2] < nonSCMax2 &&
MathAbs(nonSCMax2 - mConditions.chmaScFasts[2]) > MathAbs(mConditions.chmaScFasts[2] - mConditions.chmaScSlows[2]) &&
MathAbs(nonSCMax2 - mConditions.chmaScSlows[2]) > MathAbs(mConditions.chmaScFasts[2] - mConditions.chmaScSlows[2])
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForLong(
mConditions,
true, // XCHMA Min
true, // XCHMA Max
false, // XCHMA Cycles
false, // XCHMA Peaks
false, // XCHMA Trend Powers
true, // XOBD
true // XTS
)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XCHMAMXHasSpecifiedLongSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XCHMAMXHasLongSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCPeak &&
(
//
(mConditions.isXCHMALCTrendsDown &&
(
//
(
//
mConditions.isXCHMASCPeak
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSameHHs &&
mConditions.isXLHHighAttachedHH &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(((mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow) &&
(mConditions.isXCHMALCFastUnderSlow ||
mConditions.isXCHMALCFastCrossedUnderSlow)) &&
(
//
(mConditions.isXLHHHDecreased &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXLHPriceCrossedOverSignal)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural)
//
||
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
||
//
(((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMALCTrendsDown) ||
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown) ||
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)) &&
(
//
(mConditions.isXCHMAMCPeak
//
||
//
mConditions.isXRSICrossedOverLongExit)
//
||
//
((mConditions.isXCHMAMCFastUnderSlow ||
mConditions.isXCHMAMCFastCrossedUnderSlow) &&
(
//
(mConditions.isXTMBullish &&
mConditions.isXAMABullish &&
mConditions.isXCHLHSCMCHHSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTMEndBullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentUnderNearest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMax &&
mConditions.isXTDBearishVale &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear &&
mConditions.isXCHMASCFastCrossedOverSlow &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMASCFastCrossedUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTDBearishVale &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentUnderFarest &&
mConditions.isXTSCurrentUnderMediest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
(
mConditions.isXCHMAMCPeak &&
(
//
((mConditions.isXTMBullish &&
mConditions.isXAMABullish) &&
(
//
(mConditions.isXTSCurrentMax &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear)
//
)
//
)
//
)
//
)
//
))
//
)
//
)
//
||
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// XCHMAMX ...
bool XCHMAMXHasShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
double nonSC2[] = {
mConditions.chmaMcFasts[2],
mConditions.chmaMcSlows[2],
mConditions.chmaLcFasts[2],
mConditions.chmaLcSlows[2],
};
//
double nonSCMax2 = GetMax(nonSC2);
double nonSCMin2 = GetMax(nonSC2);
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
// each Strategy must has a Base Conditions, which they are usually common combinations
// of Market Properties that must be happens to lookup for signals ...
(
//
mConditions.isXCHMASCCrossedUnderMax &&
mConditions.chmaScFasts[2] > nonSCMax2 &&
mConditions.chmaScSlows[2] > nonSCMax2
//
)
//
&&
//
// Next Step is combine sorts of Conditions which make our choice
// so Exact in Market ...
(
//
IsReadyForShort(
mConditions,
true, // XCHMA Min
true, // XCHMA Max
false, // XCHMA Cycles
false, // XCHMA Peaks
false, // XCHMA Trend Powers
true, // XOBD
true // XTS
)
//
)
//
;
//
return result;
}
//
// Symbol and Type Specific Conditions ...
bool XCHMAMXHasSpecifiedShortSignal(
X5MarketConditions &mConditions //
)
{
//
bool result = false;
//
// Check Common Signal Conditions ...
result = XCHMAMXHasShortSignal(mConditions);
if (!result)
{
return result;
}
//
// Validate Symbol ...
result = IsValidSymbolPeriod();
if (!result)
{
return result;
}
//
// Now We Can Filter Conditions based on Each Supported Symbol
// since we are in Correct Period ...
// NOTE: since base Common Conditions Checked Before,
// there is no need to double check them ...
//
bool isEURUSD = IsEURUSD();
if (isEURUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMNeutural &&
mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin)
//
||
//
(((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)) &&
(
//
(mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentOverFarest)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXLHHHIncreased &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMin &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
)
//
)
//
||
//
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)) &&
(
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak) &&
(
//
(mConditions.isXTMVale &&
mConditions.isXAMAVale)
//
||
//
(mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMAMCTrendsDown)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXCHMAMCPeak &&
mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXLHHHDecreased &&
mConditions.isXTMStartBearish &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
mConditions.isXCHMALCPeak
//
||
//
(mConditions.isXTSAllSame &&
mConditions.isXAMAEndBullish &&
mConditions.isXTMStartBearish &&
mConditions.isXTDBullOverBear &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
||
//
(((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)) &&
(
//
(
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCHHSame)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXCHLHSameLLs &&
mConditions.isXTSCurrentMin &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXLHLowAttachedLL &&
((mConditions.isXCHMASCFastOverSlow ||
mConditions.isXCHMASCFastCrossedOverSlow) &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow)))
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMAMCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHMAMCTrendsUp)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp &&
(mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow))
//
||
//
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMASCVale &&
mConditions.isXTSCurrentMin &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXTMBearish &&
mConditions.isXCHMAMCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHMCLCLLSame) &&
(
//
mConditions.isXTSCurrentOverFarest
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMALCTrendsDown)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXAMANeutural &&
mConditions.isXTMStartBearish)
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMASCTrendsUp &&
(mConditions.isXCHMASCFastUnderSlow ||
mConditions.isXCHMASCFastCrossedUnderSlow)) &&
(
//
(mConditions.isXFIUnderZero &&
(mConditions.isXTMBearish ||
mConditions.isXTMStartBearish) &&
(mConditions.isXAMABearish ||
mConditions.isXAMAStartBearish) &&
(mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear))
//
)
//
)
//
)
//
)
//
||
//
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
||
//
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
false
//
)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDJPY = IsUSDJPY();
if (isUSDJPY)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isUSDCHF = IsUSDCHF();
if (isUSDCHF)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check LC Fast Over Slow ...
((mConditions.isXCHMALCFastOverSlow ||
mConditions.isXCHMALCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHLHSameLLs &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXLHLowAttachedLL)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXCHMALCFastOverSlow &&
(
//
(mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMASCFastOverSlow)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
// Check if MC Fast Over Slow ...
((mConditions.isXCHMAMCFastOverSlow ||
mConditions.isXCHMAMCFastCrossedOverSlow) &&
(
//
(mConditions.isXCHMALCFastOverSlow &&
(
//
(mConditions.isXTSAllSame &&
mConditions.isXCHMALCPeak &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
bool isXAUUSD = IsXAUUSD();
if (isXAUUSD)
{
//
// Start Analysing Market based On Conditions ...
result =
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
(!mConditions.isXCHMAMCTrendsUp &&
!mConditions.isXCHMAMCTrendsDown) &&
mConditions.isXCHMAMCFastOverSlow)
//
||
//
(((mConditions.isXTMNeutural &&
mConditions.isXTMEndBearish) &&
(mConditions.isXAMANeutural &&
mConditions.isXAMAEndBearish)) &&
(
//
(mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear)
//
)
//
)
//
||
//
(((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow)) &&
(
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp)
//
)
//
)
//
||
//
(((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow)) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTDBullCrossedUnderBear &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
(mConditions.isXCHMASCVale &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMASCFastOverSlow &&
mConditions.isXCHMAMCFastOverSlow &&
mConditions.isXCHMALCFastOverSlow)
//
||
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDBullUnderBear &&
mConditions.isXCHMALCTrendsDown &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMALCFastUnderSlow)
//
)
//
)
//
||
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
(mConditions.isXTMNeutural &&
mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)
//
)
//
)
//
||
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCHHSame &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTMStartBearish &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXAMAStartBearish &&
mConditions.isXCHMASCFastCrossedUnderSlow)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastUnderSlow) &&
(
//
(mConditions.isXCHLHSameHHs &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTDSignalOverBear &&
mConditions.isXCHMAMCFastOverSlow)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL) &&
(
//
mConditions.isXTDSignalCrossedUnderBear
//
||
//
(mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTMNeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXAMAStartBearish &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDSignalOverBear &&
mConditions.isXTSCurrentCrossedUnderFarest)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalOverBear) &&
(
//
(mConditions.isXLHHHDecreased &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXLHPriceCrossedUnderSignal)
//
)
//
)
//
||
//
((mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear) &&
(
//
((mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish) &&
(
//
(mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
||
//
(((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)) &&
(
//
mConditions.isXTSCurrentOverFarest
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXTMStartBearish &&
mConditions.isXAMAStartBearish &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
mConditions.isXCHMAMCPeak &&
mConditions.isXCHMALCPeak &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest
//
)
//
)
//
||
//
((mConditions.isXTMBearish &&
mConditions.isXAMABearish) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
((mConditions.isXCHMALCPeak &&
mConditions.isXCHMALCTrendsUp &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXTDBullOverBear &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
||
//
(mConditions.isXTMBearish &&
mConditions.isXAMABearish &&
mConditions.isXCHMALCPeak &&
mConditions.isXTSCurrentMin &&
mConditions.isXCHLHSCMCLLSame &&
mConditions.isXTDBullUnderBear &&
mConditions.isXLHLowAttachedLL &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXCHMASCFastCrossedUnderSlow &&
mConditions.isXTSCurrentCrossedUnderNearest)
//
)
//
)
//
||
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
//
((mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow) &&
(
//
(mConditions.isXTDBullOverBear &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTDSignalCrossedUnderBear)
//
)
//
)
//
||
//
((mConditions.isXCHMAMCPeak &&
mConditions.isXCHMAMCTrendsUp &&
mConditions.isXCHMAMCFastOverSlow) &&
(
//
((mConditions.isXTMNeutural &&
mConditions.isXAMANeutural) &&
(
//
(mConditions.isXTSCurrentMin &&
mConditions.isXTDBullOverBear)
//
||
//
(mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest)
//
)
//
)
//
)
//
)
//
||
//
(((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)) &&
(
//
(mConditions.isXAMABullish &&
mConditions.isXTSCurrentMin &&
mConditions.isXTDBullUnderBear &&
mConditions.isXTDSignalUnderBear &&
mConditions.isXTSCurrentCrossedUnderFarest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
||
//
(mConditions.isXCHMALCPeak &&
mConditions.isXAMABullish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentCrossedUnderMediest)
//
)
//
)
//
||
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXAMANeutural &&
mConditions.isXTSCurrentMin &&
mConditions.isXAMAEndBullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTMStartBearish &&
mConditions.isXCHLHMCLCLLSame &&
mConditions.isXCHMASCCrossedUnderMax &&
mConditions.isXTDSignalCrossedUnderBear &&
mConditions.isXCHMASCFastCrossedUnderSlow)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
//
(((mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastUnderSlow) &&
(mConditions.isXCHMAMCTrendsDown &&
mConditions.isXCHMAMCFastUnderSlow)) &&
(
//
(mConditions.isXTMBearish &&
mConditions.isXAMABullish &&
mConditions.isXTDBullOverBear &&
mConditions.isXTSCurrentOverFarest &&
mConditions.isXTSCurrentOverNearest &&
mConditions.isXTSCurrentCrossedOverNearest)
//
)
//
)
//
)
//
)
//
||
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
}
//
return result;
}
//
// Signal Conditions Filtering ...
//
// Here we have to Implement all Signals Conditional Filtering ...
// this Filtering works based on Symbol and Period ....
// this means each signaller (Provider) has their own implementation based on
// Specific Period/Symbol parir ...
//
bool IsEURUSD()
{
//
string symbolIdentifiers[] = {
"EUR",
"USD" //
};
//
bool result = Contains(
symbolIdentifiers,
GetSymbol() //
);
//
return result;
}
//
bool IsUSDJPY()
{
//
string symbolIdentifiers[] = {
"USD",
"JPY" //
};
//
bool result = Contains(
symbolIdentifiers,
GetSymbol() //
);
//
return result;
}
//
bool IsUSDCHF()
{
//
string symbolIdentifiers[] = {
"USD",
"CHF" //
};
//
bool result = Contains(
symbolIdentifiers,
GetSymbol() //
);
//
return result;
}
//
bool IsXAUUSD()
{
//
string symbolIdentifiers[] = {
"XAU",
"USD" //
};
//
bool result = Contains(
symbolIdentifiers,
GetSymbol() //
);
//
return result;
}
//
bool IsValidSymbol()
{
//
bool isEURUSD = IsEURUSD();
bool isUSDJPY = IsUSDJPY();
bool isUSDCHF = IsUSDCHF();
bool isXAUUSD = IsXAUUSD();
//
bool result =
//
isEURUSD
//
||
//
isUSDJPY
//
||
//
isUSDCHF
//
||
//
isXAUUSD
//
;
//
return result;
}
//
bool IsValidPeriod()
{
//
ENUM_TIMEFRAMES period = GetPeriod();
//
bool result = period == PERIOD_M5;
//
return result;
}
//
bool IsValidSymbolPeriod()
{
//
bool result =
//
IsValidSymbol()
//
&&
//
IsValidPeriod()
//
;
//
return result;
}
//
// Detect Signal ...
bool HasSpecificSignal(
int barIndex, // Specified Bar Index ...
ENUM_POSITION_TYPE mType, // Specific Signal Type ...
string &provider, // Signal Provider ...
int &signalPusher, // Number Of Same Time Signals ...
X5MarketConditions &mConditions // Specified Market Conition ...
)
{
//
bool result = false;
//
// Validate Signal Type is Enables ...
bool isLong = IsLong(mType);
result =
(isLong && mIsLongEnable) ||
(!isLong && mIsShortEnable);
if (!result)
{
return result;
}
//
// Now we have to Filter based on Enabled Signal Providers ...
//
// Long ...
if (isLong && mIsLongEnable)
{
//
XSignal lSignal;
//
signalPusher = 0;
//
bool hasXSPSignal = false;
bool hasXTDSignal = false;
bool hasXTAMSignal = false;
bool hasXSISignal = false;
bool hasXTSFISignal = false;
bool hasXOBDLHSignal = false;
bool hasXCHMACCSignal = false;
bool hasXCHMAMNSignal = false;
bool hasXCHMAMXSignal = false;
//
// XPS ...
if (mIsXSPSignalProviderEnable)
{
//
hasXSPSignal = XSPHasSpecifiedLongSignal(
mConditions //
);
//
if (hasXSPSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XSP);
}
//
signalPusher++;
}
}
//
// XTD ...
if (mIsXTDSignalProviderEnable)
{
//
hasXTDSignal = XTDHasSpecifiedLongSignal(
mConditions //
);
//
if (hasXTDSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XTD);
}
//
signalPusher++;
}
}
//
// XTAM ...
if (mIsXTAMSignalProviderEnable)
{
//
hasXTAMSignal = XTAMHasSpecifiedLongSignal(
mConditions //
);
//
if (hasXTAMSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XTAM);
}
//
signalPusher++;
}
}
//
// XSI ...
if (mIsXSISignalProviderEnable)
{
//
hasXSISignal = XSIHasSpecifiedLongSignal(
mConditions //
);
//
if (hasXSISignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XSI);
}
//
signalPusher++;
}
}
//
// XTSFI ...
if (mIsXTSFISignalProviderEnable)
{
//
hasXTSFISignal = XTSFIHasSpecifiedLongSignal(
mConditions //
);
//
if (hasXTSFISignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XTSFI);
}
//
signalPusher++;
}
}
//
// XOBDLH ...
if (mIsXOBDLHSignalProviderEnable)
{
//
hasXOBDLHSignal = XOBDLHHasSpecifiedLongSignal(
mConditions //
);
//
if (hasXOBDLHSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XOBDLH);
}
//
signalPusher++;
}
}
//
// XCHMACC ...
if (mIsXCHMACCSignalProviderEnable)
{
//
hasXCHMACCSignal = XCHMACCHasSpecifiedLongSignal(
mConditions //
);
//
if (hasXCHMACCSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XCHMACC);
}
//
signalPusher++;
}
}
//
// XCHMAMN ...
if (mIsXCHMAMNSignalProviderEnable)
{
//
hasXCHMAMNSignal = XCHMAMNHasSpecifiedLongSignal(
mConditions //
);
//
if (hasXCHMAMNSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XCHMAMN);
}
//
signalPusher++;
}
}
//
// XCHMAMX ...
if (mIsXCHMAMXSignalProviderEnable)
{
//
hasXCHMAMXSignal = XCHMAMXHasSpecifiedLongSignal(
mConditions //
);
//
if (hasXCHMAMXSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XCHMAMX);
}
//
signalPusher++;
}
}
//
result =
//
hasXSPSignal
//
||
//
hasXTDSignal
//
||
//
hasXTAMSignal
//
||
//
hasXSISignal
//
||
//
hasXTSFISignal
//
||
//
hasXOBDLHSignal
//
||
//
hasXCHMACCSignal
//
||
//
hasXCHMAMNSignal
//
||
//
hasXCHMAMXSignal
//
;
//
if (result)
{
return result;
}
}
//
// Short ...
if (!isLong && mIsShortEnable)
{
//
XSignal sSignal;
//
signalPusher = 0;
//
bool hasXSPSignal = false;
bool hasXTDSignal = false;
bool hasXTAMSignal = false;
bool hasXSISignal = false;
bool hasXTSFISignal = false;
bool hasXOBDLHSignal = false;
bool hasXCHMACCSignal = false;
bool hasXCHMAMNSignal = false;
bool hasXCHMAMXSignal = false;
//
// XPS ...
if (mIsXSPSignalProviderEnable)
{
//
hasXSPSignal = XSPHasSpecifiedShortSignal(
mConditions //
);
//
if (hasXSPSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XSP);
}
//
signalPusher++;
}
}
//
// XTD ...
if (mIsXTDSignalProviderEnable)
{
//
hasXTDSignal = XTDHasSpecifiedShortSignal(
mConditions //
);
//
if (hasXTDSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XTD);
}
//
signalPusher++;
}
}
//
// XTAM ...
if (mIsXTAMSignalProviderEnable)
{
//
hasXTAMSignal = XTAMHasSpecifiedShortSignal(
mConditions //
);
//
if (hasXTAMSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XTAM);
}
//
signalPusher++;
}
}
//
// XSI ...
if (mIsXSISignalProviderEnable)
{
//
hasXSISignal = XSIHasSpecifiedShortSignal(
mConditions //
);
//
if (hasXSISignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XSI);
}
//
signalPusher++;
}
}
//
// XTSFI ...
if (mIsXTSFISignalProviderEnable)
{
//
hasXTSFISignal = XTSFIHasSpecifiedShortSignal(
mConditions //
);
//
if (hasXTSFISignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XTSFI);
}
//
signalPusher++;
}
}
//
// XOBDLH ...
if (mIsXOBDLHSignalProviderEnable)
{
//
hasXOBDLHSignal = XOBDLHHasSpecifiedShortSignal(
mConditions //
);
//
if (hasXOBDLHSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XOBDLH);
}
//
signalPusher++;
}
}
//
// XCHMACC ...
if (mIsXCHMACCSignalProviderEnable)
{
//
hasXCHMACCSignal = XCHMACCHasSpecifiedShortSignal(
mConditions //
);
//
if (hasXCHMACCSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XCHMACC);
}
//
signalPusher++;
}
}
//
// XCHMAMN ...
if (mIsXCHMAMNSignalProviderEnable)
{
//
hasXCHMAMNSignal = XCHMAMNHasSpecifiedShortSignal(
mConditions //
);
//
if (hasXCHMAMNSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XCHMAMN);
}
//
signalPusher++;
}
}
//
// XCHMAMX ...
if (mIsXCHMAMXSignalProviderEnable)
{
//
hasXCHMAMXSignal = XCHMAMXHasSpecifiedShortSignal(
mConditions //
);
//
if (hasXCHMAMXSignal)
{
//
if (!IsValid(provider))
{
provider = ToString(XCHMAMX);
}
//
signalPusher++;
}
}
//
result =
//
hasXSPSignal
//
||
//
hasXTDSignal
//
||
//
hasXTAMSignal
//
||
//
hasXSISignal
//
||
//
hasXTSFISignal
//
||
//
hasXOBDLHSignal
//
||
//
hasXCHMACCSignal
//
||
//
hasXCHMAMNSignal
//
||
//
hasXCHMAMXSignal
//
;
//
if (result)
{
return result;
}
}
//
return result;
}
};
//
// Tools ...
//
// Model Provider Descriptor ...
struct X5ProvierDescriptor
{
//
X5ProviderInputs inputs;
XSCX5Provider *provider;
//
XSignal signal;
X5MarketConditions conditions;
//
// Tools ...
//
// Cleanup ...
void Clean()
{
//
signal.Clean();
conditions.Clear();
}
//
// Check Signal ...
bool HasSignal(int barIndex = 0)
{
//
bool result = false;
//
result = inputs.IsValid();
if (!result)
{
return result;
}
//
// Clear Signal and Conditions ...
Clean();
//
result = provider.HasSignal(
barIndex,
signal,
conditions);
//
return result;
}
};
//
void GetAllX5SignalProviders(ENUM_X5_SIGNAL_PROVIDERS &result[])
{
//
Clean(result);
//
Add(NONE, result);
Add(XSP, result);
Add(XTD, result);
Add(XTAM, result);
Add(XSI, result);
Add(XTSFI, result);
Add(XOBDLH, result);
Add(XCHMACC, result);
Add(XCHMAMN, result);
Add(XCHMAMX, result);
}
//
string ToString(ENUM_X5_SIGNAL_PROVIDERS value)
{
return EnumToString(value);
}
//
ENUM_X5_SIGNAL_PROVIDERS ToX5SignalProvider(string content)
{
//
ENUM_X5_SIGNAL_PROVIDERS result = NONE;
//
if (!IsValid(content))
{
return result;
}
//
if (content == ToString(NONE))
{
result = NONE;
}
else if (content == ToString(XSP))
{
result = XSP;
}
else if (content == ToString(XTD))
{
result = XTD;
}
else if (content == ToString(XTAM))
{
result = XTAM;
}
else if (content == ToString(XSI))
{
result = XSI;
}
else if (content == ToString(XTSFI))
{
result = XTSFI;
}
else if (content == ToString(XOBDLH))
{
result = XOBDLH;
}
else if (content == ToString(XCHMACC))
{
result = XCHMACC;
}
else if (content == ToString(XCHMAMN))
{
result = XCHMAMN;
}
else if (content == ToString(XCHMAMX))
{
result = XCHMAMX;
}
//
return result;
}
//