Files
MQL5Data/Projects/XBTUS5/Providers/x-saherelm.xbtus5.provider.indicators.lib.mq5
T

6437 lines
186 KiB
Plaintext

///////////////////////////////////////////////////////////////////
//
// SaherElm IT Center MQL5 XBTUS5 Signal Provider Indicators Library
// ----------------------------------------------------------------
//
// Maintainer:
// ------------
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
//
//////////////////////////////////////////////////////
//
// Global Properties ...
#property library
#property copyright "Copyright 2023, SaherElm IT Center"
#property link "https://www.saherelm.ir"
#property version "1.00"
#property strict
//
// Include Provider Inputs ...
#include "x-saherelm.xbtus5.provider.inputs.lib.mq5"
//
// Include Provider Class ...
#include "../Classes/x-saherelm.provider.lib.mq5"
//
// Signallers ...
input group "XBTUS5 Signallers";
//
// XTD ...
input group "XBTUS5 XTD Signaller";
input bool xBTUS5XTDEnableSignaller = true; // Enable Signaller
input bool xBTUS5XTDAllowLongSignals = true; // Enable Long Signals
input bool xBTUS5XTDAllowShortSignals = true; // Enable Short Signals
//
// XTAM ...
input group "XBTUS5 XTAM Signaller";
input bool xBTUS5XTAMEnableSignaller = true; // Enable Signaller
input bool xBTUS5XTAMAllowLongSignals = true; // Enable Long Signals
input bool xBTUS5XTAMAllowShortSignals = true; // Enable Short Signals
//
// XSI ...
input group "XBTUS5 XSI Signaller";
input bool xBTUS5XSIEnableSignaller = true; // Enable Signaller
input bool xBTUS5XSIAllowLongSignals = true; // Enable Long Signals
input bool xBTUS5XSIAllowShortSignals = true; // Enable Short Signals
//
// XTSFI ...
input group "XBTUS5 XTSFI Signaller";
input bool xBTUS5XTSFIEnableSignaller = true; // Enable Signaller
input bool xBTUS5XTSFIAllowLongSignals = true; // Enable Long Signals
input bool xBTUS5XTSFIAllowShortSignals = true; // Enable Short Signals
//
// XOBDLH ...
// input group "XBTUS5 XOBDLH Signaller";
// input bool xBTUS5XOBDLHEnableSignaller = true; // Enable Signaller
// input bool xBTUS5XOBDLHAllowLongSignals = true; // Enable Long Signals
// input bool xBTUS5XOBDLHAllowShortSignals = true; // Enable Short Signals
//
// XCHMACC ...
input group "XBTUS5 XCHMACC Signaller";
input bool xBTUS5XCHMACCEnableSignaller = true; // Enable Signaller
input bool xBTUS5XCHMACCAllowLongSignals = true; // Enable Long Signals
input bool xBTUS5XCHMACCAllowShortSignals = true; // Enable Short Signals
//
// XCHMAMX ...
// input group "XBTUS5 XCHMAMX Signaller";
// input bool xBTUS5XCHMAMXEnableSignaller = true; // Enable Signaller
// input bool xBTUS5XCHMAMXAllowLongSignals = true; // Enable Long Signals
// input bool xBTUS5XCHMAMXAllowShortSignals = true; // Enable Short Signals
//
// XCHMAMN ...
input group "XBTUS5 XCHMAMN Signaller";
// input bool xBTUS5XCHMAMNEnableSignaller = true; // Enable Signaller
// input bool xBTUS5XCHMAMNAllowLongSignals = true; // Enable Long Signals
// input bool xBTUS5XCHMAMNAllowShortSignals = true; // Enable Short Signals
//
// Check in Test Mode or not ...
bool xBTUS5IsTestMode = false;
//
// Detect max Input Length of Indicators ...
int xBTUS5MaxLengthOfInputs = 0;
//
// Detect Calculated Bars ...
int xBTUS5CalculatedBars = 0;
//
// Check prevent Double Signalling on Same Candle ...
bool xBTUS5WaitUntilNextCandle = false;
//
// Signaller Variables ...
//
// XTD ...
bool xBTUS5MXTDEnableSignaller = xBTUS5XTDEnableSignaller;
bool xBTUS5MXTDAllowLongSignals = xBTUS5XTDAllowLongSignals;
bool xBTUS5MXTDAllowShortSignals = xBTUS5XTDAllowShortSignals;
//
// XTAM ...
bool xBTUS5MXTAMEnableSignaller = xBTUS5XTAMEnableSignaller;
bool xBTUS5MXTAMAllowLongSignals = xBTUS5XTAMAllowLongSignals;
bool xBTUS5MXTAMAllowShortSignals = xBTUS5XTAMAllowShortSignals;
//
// XSI ...
bool xBTUS5MXSIEnableSignaller = xBTUS5XSIEnableSignaller;
bool xBTUS5MXSIAllowLongSignals = xBTUS5XSIAllowLongSignals;
bool xBTUS5MXSIAllowShortSignals = xBTUS5XSIAllowShortSignals;
//
// XTSFI ...
bool xBTUS5MXTSFIEnableSignaller = xBTUS5XTSFIEnableSignaller;
bool xBTUS5MXTSFIAllowLongSignals = xBTUS5XTSFIAllowLongSignals;
bool xBTUS5MXTSFIAllowShortSignals = xBTUS5XTSFIAllowShortSignals;
//
// XOBDLH ...
bool xBTUS5MXOBDLHEnableSignaller = false; // xBTUS5XOBDLHEnableSignaller;
bool xBTUS5MXOBDLHAllowLongSignals = false; // xBTUS5XOBDLHAllowLongSignals;
bool xBTUS5MXOBDLHAllowShortSignals = false; // xBTUS5XOBDLHAllowShortSignals;
//
// XCHMACC ...
bool xBTUS5MXCHMACCEnableSignaller = xBTUS5XCHMACCEnableSignaller;
bool xBTUS5MXCHMACCAllowLongSignals = xBTUS5XCHMACCAllowLongSignals;
bool xBTUS5MXCHMACCAllowShortSignals = xBTUS5XCHMACCAllowShortSignals;
//
// XCHMAMX ...
bool xBTUS5MXCHMAMXEnableSignaller = false; // xBTUS5XCHMAMXEnableSignaller;
bool xBTUS5MXCHMAMXAllowLongSignals = false; // xBTUS5XCHMAMXAllowLongSignals;
bool xBTUS5MXCHMAMXAllowShortSignals = false; // xBTUS5XCHMAMXAllowShortSignals;
//
// XCHMAMN ...
bool xBTUS5MXCHMAMNEnableSignaller = false; // xBTUS5XCHMAMNEnableSignaller;
bool xBTUS5MXCHMAMNAllowLongSignals = false; // xBTUS5XCHMAMNAllowLongSignals;
bool xBTUS5MXCHMAMNAllowShortSignals = false; // xBTUS5XCHMAMNAllowShortSignals;
//
XCProvider *xBTUS5Provider;
//
// Validate Indicators Inputs ...
bool XBTUS5ValidateIndicatorsInputs()
{
//
bool result = false;
//
// XTM ...
result = XTMValidateInputs();
if (!result)
{
return result;
}
//
// XAMA ...
result = XAMAValidateInputs();
if (!result)
{
return result;
}
//
// XTD ...
result = XTDValidateInputs();
if (!result)
{
return result;
}
//
// XFI ...
result = XFIValidateInputs();
if (!result)
{
return result;
}
//
// XTS ...
result = XTSValidateInputs();
if (!result)
{
return result;
}
//
// XOBD ...
result = XOBDValidateInputs();
if (!result)
{
return result;
}
//
// XLH ...
result = XLHValidateInputs();
if (!result)
{
return result;
}
//
// XRSI ...
result = XRSIValidateInputs();
if (!result)
{
return result;
}
//
// XCHLH ...
result = XCHLHValidateInputs();
if (!result)
{
return result;
}
//
// XCHMA ...
result = XCHMAValidateInputs();
if (!result)
{
return result;
}
//
// Make an Instance Of XCProvider Class for Use ...
xBTUS5Provider = new XCProvider(
//
// Commons ...
_Symbol,
_Period,
//
// Signallers ...
//
// XTD ...
xBTUS5MXTDEnableSignaller,
xBTUS5MXTDAllowLongSignals,
xBTUS5MXTDAllowShortSignals,
//
// XTAM ...
xBTUS5MXTAMEnableSignaller,
xBTUS5MXTAMAllowLongSignals,
xBTUS5MXTAMAllowShortSignals,
//
// XSI ...
xBTUS5MXSIEnableSignaller,
xBTUS5MXSIAllowLongSignals,
xBTUS5MXSIAllowShortSignals,
//
// XTSFI ...
xBTUS5MXTSFIEnableSignaller,
xBTUS5MXTSFIAllowLongSignals,
xBTUS5MXTSFIAllowShortSignals,
//
// XOBDLH ...
xBTUS5MXOBDLHEnableSignaller,
xBTUS5MXOBDLHAllowLongSignals,
xBTUS5MXOBDLHAllowShortSignals,
//
// XCHMACC ...
xBTUS5MXCHMACCEnableSignaller,
xBTUS5MXCHMACCAllowLongSignals,
xBTUS5MXCHMACCAllowShortSignals,
//
// XCHMAMX ...
xBTUS5MXCHMAMXEnableSignaller,
xBTUS5MXCHMAMXAllowLongSignals,
xBTUS5MXCHMAMXAllowShortSignals,
//
// XCHMAMN ...
xBTUS5MXCHMAMNEnableSignaller,
xBTUS5MXCHMAMNAllowLongSignals,
xBTUS5MXCHMAMNAllowShortSignals
//
);
//
result = true;
//
return result;
}
//
// Init Indicators ...
bool XBTUS5InitIndicators()
{
//
bool result = false;
//
// Make it Enable when we need to Log Market Conditions ...
xBTUS5IsTestMode = IsRunningOnTestMode();
//
// Check and Calculate Max Length in Inputs ...
//
//
// XTM ...
xBTUS5MaxLengthOfInputs = MathMax(
xTMMaPeriod,
xBTUS5NumberOfItemsPerTick);
//
// XAMA ...
xBTUS5MaxLengthOfInputs = MathMax(
xAMALength,
xBTUS5NumberOfItemsPerTick);
xBTUS5MaxLengthOfInputs = MathMax(
xAMAFastEMA,
xBTUS5NumberOfItemsPerTick);
xBTUS5MaxLengthOfInputs = MathMax(
xAMASlowEMA,
xBTUS5NumberOfItemsPerTick);
//
// XLH ...
xBTUS5MaxLengthOfInputs = MathMax(
xLHLength,
xBTUS5NumberOfItemsPerTick);
//
// XTD ...
xBTUS5MaxLengthOfInputs = MathMax(
xTDLength,
xBTUS5MaxLengthOfInputs);
//
// XFI ...
xBTUS5MaxLengthOfInputs = MathMax(
xFILength,
xBTUS5MaxLengthOfInputs);
//
// XRSI ...
xBTUS5MaxLengthOfInputs = MathMax(
xRSILength,
xBTUS5MaxLengthOfInputs);
//
// XOBD ...
xBTUS5MaxLengthOfInputs = MathMax(
xOBDLength,
xBTUS5MaxLengthOfInputs);
//
// XCHLH ...
xBTUS5MaxLengthOfInputs = MathMax(
xCHLHLcLength,
xBTUS5MaxLengthOfInputs);
xBTUS5MaxLengthOfInputs = MathMax(
xCHLHMcLength,
xBTUS5MaxLengthOfInputs);
xBTUS5MaxLengthOfInputs = MathMax(
xCHLHScLength,
xBTUS5MaxLengthOfInputs);
//
// XCHMA ...
xBTUS5MaxLengthOfInputs = MathMax(
xCHMAScFastLength,
xBTUS5MaxLengthOfInputs);
xBTUS5MaxLengthOfInputs = MathMax(
xCHMAScSlowLength,
xBTUS5MaxLengthOfInputs);
xBTUS5MaxLengthOfInputs = MathMax(
xCHMAMcFastLength,
xBTUS5MaxLengthOfInputs);
xBTUS5MaxLengthOfInputs = MathMax(
xCHMAMcSlowLength,
xBTUS5MaxLengthOfInputs);
xBTUS5MaxLengthOfInputs = MathMax(
xCHMALcFastLength,
xBTUS5MaxLengthOfInputs);
xBTUS5MaxLengthOfInputs = MathMax(
xCHMALcSlowLength,
xBTUS5MaxLengthOfInputs);
//
// Validate Indicators Inputs before Initialization ...
result = XBTUS5ValidateIndicatorsInputs();
if (!result)
{
return result;
}
//
// Validate Signallers ...
//
// XTD ...
bool isXTDEnable =
xBTUS5XTDEnableSignaller &&
(xBTUS5XTDAllowLongSignals ||
xBTUS5XTDAllowShortSignals);
//
// XTAM ...
bool isXTAMEnable =
xBTUS5XTAMEnableSignaller &&
(xBTUS5XTAMAllowLongSignals ||
xBTUS5XTAMAllowShortSignals);
//
// XSI ...
bool isXSIEnable =
xBTUS5XSIEnableSignaller &&
(xBTUS5XSIAllowLongSignals ||
xBTUS5XSIAllowShortSignals);
//
// XTSFI ...
bool isXTSFIEnable =
xBTUS5XTSFIEnableSignaller &&
(xBTUS5XTSFIAllowLongSignals ||
xBTUS5XTSFIAllowShortSignals);
//
// XOBDLH ...
bool isXOBDLHEnable = false;
// xBTUS5XOBDLHEnableSignaller &&
// (xBTUS5XOBDLHAllowLongSignals ||
// xBTUS5XOBDLHAllowShortSignals);
//
// XCHMACC ...
bool isXCHMACCEnable =
xBTUS5XCHMACCEnableSignaller &&
(xBTUS5XCHMACCAllowLongSignals ||
xBTUS5XCHMACCAllowShortSignals);
//
// XCHMAMX ...
bool isXCHMAMXEnable = false;
// xBTUS5XCHMAMXEnableSignaller &&
// (xBTUS5XCHMAMXAllowLongSignals ||
// xBTUS5XCHMAMXAllowShortSignals);
//
// XCHMAMN ...
bool isXCHMAMNEnable = false;
// xBTUS5XCHMAMNEnableSignaller &&
// (xBTUS5XCHMAMNAllowLongSignals ||
// xBTUS5XCHMAMNAllowShortSignals);
//
bool hasSignaller =
//
isXTDEnable ||
isXTAMEnable ||
isXSIEnable ||
isXTSFIEnable ||
isXOBDLHEnable ||
isXCHMACCEnable ||
isXCHMAMXEnable ||
isXCHMAMNEnable
//
;
result = hasSignaller;
if (!result)
{
//
LogMessage("XBTUS5 doesn't enable any Signaller ...");
//
return result;
}
//
// Initialize Indicator/Oscillator Handlers ...
ResetLastError();
//
// XTM Init ...
result = XTMInitHandlers();
if (!result)
{
return result;
}
//
// XAMA Init ...
result = XAMAInitHandlers();
if (!result)
{
return result;
}
//
// XLH Init ...
result = XLHInitHandlers();
if (!result)
{
return result;
}
//
// XTD Init ...
result = XTDInitHandlers();
if (!result)
{
return result;
}
//
// XFI Init ...
result = XFIInitHandlers();
if (!result)
{
return result;
}
//
// XTS Init ...
result = XTSInitHandlers();
if (!result)
{
return result;
}
//
// XRSI Init ...
result = XRSIInitHandlers();
if (!result)
{
return result;
}
//
// XOBD Init ...
result = XOBDInitHandlers();
if (!result)
{
return result;
}
//
// XCLH Init ...
result = XCHLHInitHandlers();
if (!result)
{
return result;
}
//
// XCHMA Init ...
result = XCHMAInitHandlers();
if (!result)
{
return result;
}
//
result = true;
//
return result;
}
//
// Release Indicators ...
void XBTUS5ReleaseIndicators()
{
//
// Release Handlers ...
XTMReleaseHandlers();
XAMAReleaseHandlers();
XLHReleaseHandlers();
XTDReleaseHandlers();
XFIReleaseHandlers();
XTSReleaseHandlers();
XRSIReleaseHandlers();
XOBDReleaseHandlers();
XCHMAReleaseHandlers();
XCHLHReleaseHandlers();
}
//
// Handle Reading Buffers ...
void XBTUS5HandleReadingBuffers()
{
//
// Reading Calculated Bars for a Simple Handler ...
xBTUS5CalculatedBars = BarsCalculated(xTMHandler);
//
// Read Indicators Buffers ...
XTMReadBuffers(xBTUS5NumberOfItemsPerTick);
XAMAReadBuffers(xBTUS5NumberOfItemsPerTick);
XLHReadBuffers(xBTUS5NumberOfItemsPerTick);
XTDReadBuffers(xBTUS5NumberOfItemsPerTick);
XFIReadBuffers(xBTUS5NumberOfItemsPerTick);
XTSReadBuffers(xBTUS5NumberOfItemsPerTick);
XRSIReadBuffers(xBTUS5NumberOfItemsPerTick);
XOBDReadBuffers(xBTUS5NumberOfItemsPerTick);
XCHMAReadBuffers(xBTUS5NumberOfItemsPerTick);
XCHLHReadBuffers(xBTUS5NumberOfItemsPerTick);
//
xBTUS5Provider.ReadConditions();
}
//
//
// START Combination Functions ...
//
//
//
// Can Open Long Trade ...
// this is a Function will Check all market Conditions and get all
// Strategy requirement Verifications for Long Signals ...
bool XBTUS5CanOpenLongTrade(
XProvidedSignal &info // Retrieve Signal Additional Info on this Object
)
{
//
bool result = false;
//
info.tp = 0;
info.sl = 0;
ArrayResize(
info.signallers,
0);
//
bool hasSignal = XBTUS5HasLongSignal(info);
//
result =
//
hasSignal
//
;
//
if (result)
{
xBTUS5Provider.ClearConditions();
}
//
return result;
}
//
// Can Close Long Trade ...
// this is a Function will Check all market Conditions and get all
// Strategy requirement Verifications for Long Signals ...
bool XBTUS5CanCloseLongTrade()
{
//
bool result = false;
//
return result;
}
//
// Can Open Short Trade ...
// this is a Function will Check all market Conditions and get all
// Strategy requirement Verifications for Short Signals ...
bool XBTUS5CanOpenShortTrade(
XProvidedSignal &info // Retrieve Signal Additional Info on this Object
)
{
//
bool result = false;
//
info.tp = 0;
info.sl = 0;
ArrayResize(
info.signallers,
0);
//
bool hasSignal = XBTUS5HasShortSignal(info);
//
result =
//
hasSignal
//
;
//
if (result)
{
xBTUS5Provider.ClearConditions();
}
//
return result;
}
//
// Can Close Short Trade ...
// this is a Function will Check all market Conditions and get all
// Strategy requirement Verifications for Short Signals ...
bool XBTUS5CanCloseShortTrade()
{
//
bool result = false;
//
return result;
}
//
//
// END Combination Functions ...
//
//
//
//
// START Combination Signaling ...
//
//
//
// Check Market Conditions by Combination of Power of All tools for LONGs ...
bool XBTUS5HasLongSignal(
XProvidedSignal &info // Retrieve Signal Additional Info on this Object
)
{
//
bool result = false;
//
// XTD ...
bool isXTDHasSignal = XBTUS5XTDHasLongSignal();
if (isXTDHasSignal)
{
//
Add(
EnumToString(XTD),
info.signallers);
}
//
// XTAM ...
bool isXTAMHasSignal = XBTUS5XTAMHasLongSignal();
if (isXTAMHasSignal)
{
//
Add(
EnumToString(XTAM),
info.signallers);
}
//
// XSI ...
bool isXSIHasSignal = XBTUS5XSIHasLongSignal();
if (isXSIHasSignal)
{
//
Add(
EnumToString(XSI),
info.signallers);
}
//
// XTSFI ...
bool isXTSFIHasSignal = XBTUS5XTSFIHasLongSignal();
if (isXTSFIHasSignal)
{
//
Add(
EnumToString(XTSFI),
info.signallers);
}
//
// XOBD XLH ...
bool isXOBDLHHasSignal = XBTUS5XOBDLHHasLongSignal();
if (isXOBDLHHasSignal)
{
//
Add(
EnumToString(XOBDLH),
info.signallers);
}
//
// XCHMA Cycles Cross ...
bool isXCHMACCHasSignal = XBTUS5XCHMACCHasLongSignal();
if (isXCHMACCHasSignal)
{
//
Add(
EnumToString(XCHMACC),
info.signallers);
}
//
// XCHMA Cycles Min ...
bool isXCHMAMNHasSignal = XBTUS5XCHMAMNHasLongSignal();
if (isXCHMAMNHasSignal)
{
//
Add(
EnumToString(XCHMAMN),
info.signallers);
}
//
// XCHMA Cycles Max
bool isXCHMAMXHasSignal = XBTUS5XCHMAMXHasLongSignal();
if (isXCHMAMXHasSignal)
{
//
Add(
EnumToString(XCHMAMX),
info.signallers);
}
//
result =
//
isXTDHasSignal
//
||
//
isXTAMHasSignal
//
||
//
isXSIHasSignal
//
||
//
isXTSFIHasSignal
//
||
//
isXOBDLHHasSignal
//
||
//
isXCHMACCHasSignal
//
||
//
isXCHMAMNHasSignal
//
||
//
isXCHMAMXHasSignal
//
;
//
if (result)
{
//
// Only Log Signals Time Market Conditions if is in Testing Mode ...
if (xBTUS5IsTestMode || xBTUS5EnableSignalAlerts)
{
//
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
string message = xBTUS5Provider.GenerateConditionsString(mConditions);
//
LogMessage(
"Long Signal Provided by: \n" +
info.signallers[ArraySize(info.signallers) - 1] + "\n" +
"Pusher: " + (string)ArraySize(info.signallers) + "\n" +
"Market Conditions: " + message);
}
}
//
return result;
}
//
// Check Market Conditions by Combination of Power of All tools for SHORTs ...
bool XBTUS5HasShortSignal(
XProvidedSignal &info // Retrieve Signal Additional Info on this Object
)
{
//
bool result = false;
//
// XTD ...
bool isXTDHasSignal = XBTUS5XTDHasShortSignal();
if (isXTDHasSignal)
{
//
Add(
EnumToString(XTD),
info.signallers);
}
//
// XTAM ...
bool isXTAMHasSignal = XBTUS5XTAMHasShortSignal();
if (isXTAMHasSignal)
{
//
Add(
EnumToString(XTAM),
info.signallers);
}
//
// XSI ...
bool isXSIHasSignal = XBTUS5XSIHasShortSignal();
if (isXSIHasSignal)
{
//
Add(
EnumToString(XSI),
info.signallers);
}
//
// XTSFI ...
bool isXTSFIHasSignal = XBTUS5XTSFIHasShortSignal();
if (isXTSFIHasSignal)
{
//
Add(
EnumToString(XTSFI),
info.signallers);
}
//
// XOBD XLH ...
bool isXOBDLHHasSignal = XBTUS5XOBDLHHasShortSignal();
if (isXOBDLHHasSignal)
{
//
Add(
EnumToString(XOBDLH),
info.signallers);
}
//
// XCHMA Cycles Cross ...
bool isXCHMACCHasSignal = XBTUS5XCHMACCHasShortSignal();
if (isXCHMACCHasSignal)
{
//
Add(
EnumToString(XCHMACC),
info.signallers);
}
//
// XCHMA Cycles Min ...
bool isXCHMAMNHasSignal = XBTUS5XCHMAMNHasShortSignal();
if (isXCHMAMNHasSignal)
{
//
Add(
EnumToString(XCHMAMN),
info.signallers);
}
//
// XCHMA Cycles Max
bool isXCHMAMXHasSignal = XBTUS5XCHMAMXHasShortSignal();
if (isXCHMAMXHasSignal)
{
//
Add(
EnumToString(XCHMAMX),
info.signallers);
}
//
result =
//
isXTDHasSignal
//
||
//
isXTAMHasSignal
//
||
//
isXSIHasSignal
//
||
//
isXTSFIHasSignal
//
||
//
isXOBDLHHasSignal
//
||
//
isXCHMACCHasSignal
//
||
//
isXCHMAMNHasSignal
//
||
//
isXCHMAMXHasSignal
//
;
//
if (result)
{
//
// Only Log Signals Time Market Conditions if is in Testing Mode ...
if (xBTUS5IsTestMode || xBTUS5EnableSignalAlerts)
{
//
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
string message = xBTUS5Provider.GenerateConditionsString(mConditions);
//
LogMessage(
"Short Signal Provided by: \n" +
info.signallers[ArraySize(info.signallers) - 1] + "\n" +
"Pusher: " + (string)ArraySize(info.signallers) + "\n" +
"Market Conditions: " + message);
}
}
//
return result;
}
//
//
// END Combination Signaling ...
//
//
//
// START Signal Providers ...
//
//
// Disbale All Signallers Longs ...
void XBTUS5DisableLongSignallers()
{
//
// XTD ...
if (xBTUS5MXTDEnableSignaller)
{
//
xBTUS5Provider.DisbaleXTDLongs();
xBTUS5MXTDAllowLongSignals = false;
}
//
// XTAM ...
if (xBTUS5MXTAMEnableSignaller)
{
//
xBTUS5Provider.DisbaleXTAMLongs();
xBTUS5MXTAMAllowLongSignals = false;
}
//
// XSI ...
if (xBTUS5MXSIEnableSignaller)
{
//
xBTUS5Provider.DisbaleXSILongs();
xBTUS5MXSIAllowLongSignals = false;
}
//
// XTSFI ...
if (xBTUS5MXTSFIEnableSignaller)
{
//
xBTUS5Provider.DisbaleXTSFILongs();
xBTUS5MXTSFIAllowLongSignals = false;
}
//
// XOBDLH ...
// if (xBTUS5MXOBDLHEnableSignaller)
// {
// //
// xBTUS5Provider.DisbaleXOBDLHLongs();
// xBTUS5MXOBDLHAllowLongSignals = false;
// }
//
// XCHMACC ...
if (xBTUS5MXCHMACCEnableSignaller)
{
//
xBTUS5Provider.DisbaleXCHMACCLongs();
xBTUS5MXCHMACCAllowLongSignals = false;
}
//
// XCHMAMX ...
// if (xBTUS5MXCHMAMXEnableSignaller)
// {
// //
// xBTUS5Provider.DisbaleXCHMAMXLongs();
// xBTUS5MXCHMAMXAllowLongSignals = false;
// }
//
// XCHMAMN ...
// if (xBTUS5MXCHMAMNEnableSignaller)
// {
// //
// xBTUS5Provider.DisbaleXCHMAMNLongs();
// xBTUS5MXCHMAMNAllowLongSignals = false;
// }
}
//
// Enable All Signallers Longs ...
// Only if they are Configured as Enable at Settings ...
void XBTUS5EnableLongSignallers()
{
//
// XTD ...
if (xBTUS5MXTDEnableSignaller)
{
//
xBTUS5MXTDAllowLongSignals =
xBTUS5XTDAllowLongSignals
? true
: xBTUS5MXTDAllowLongSignals;
//
if (xBTUS5MXTDAllowLongSignals)
{
xBTUS5Provider.EnableXTDLongs();
}
}
//
// XTAM ...
if (xBTUS5MXTAMEnableSignaller)
{
//
xBTUS5MXTAMAllowLongSignals =
xBTUS5XTAMAllowLongSignals
? true
: xBTUS5MXTAMAllowLongSignals;
//
if (xBTUS5MXTAMAllowLongSignals)
{
xBTUS5Provider.EnableXTAMLongs();
}
}
//
// XSI ...
if (xBTUS5MXSIEnableSignaller)
{
//
xBTUS5MXSIAllowLongSignals =
xBTUS5XSIAllowLongSignals
? true
: xBTUS5MXSIAllowLongSignals;
//
if (xBTUS5MXSIAllowLongSignals)
{
xBTUS5Provider.EnableXSILongs();
}
}
//
// XTSFI ...
if (xBTUS5MXTSFIEnableSignaller)
{
//
xBTUS5MXTSFIAllowLongSignals =
xBTUS5XTSFIAllowLongSignals
? true
: xBTUS5MXTSFIAllowLongSignals;
//
if (xBTUS5MXTSFIAllowLongSignals)
{
xBTUS5Provider.EnableXTSFILongs();
}
}
//
// XOBDLH ...
// if (xBTUS5MXOBDLHEnableSignaller)
// {
// //
// xBTUS5MXOBDLHAllowLongSignals =
// xBTUS5XOBDLHAllowLongSignals
// ? true
// : xBTUS5MXOBDLHAllowLongSignals;
// //
// if (xBTUS5MXOBDLHAllowLongSignals)
// {
// xBTUS5Provider.EnableXOBDLHLongs();
// }
// }
//
// XCHMACC ...
if (xBTUS5MXCHMACCEnableSignaller)
{
//
xBTUS5MXCHMACCAllowLongSignals =
xBTUS5XCHMACCAllowLongSignals
? true
: xBTUS5MXCHMACCAllowLongSignals;
//
if (xBTUS5MXCHMACCAllowLongSignals)
{
xBTUS5Provider.EnableXCHMACCLongs();
}
}
//
// XCHMAMX ...
// if (xBTUS5MXCHMAMXEnableSignaller)
// {
// //
// xBTUS5MXCHMAMXAllowLongSignals =
// xBTUS5XCHMAMXAllowLongSignals
// ? true
// : xBTUS5MXCHMAMXAllowLongSignals;
// //
// if (xBTUS5MXCHMAMXAllowLongSignals)
// {
// xBTUS5Provider.EnableXCHMAMXLongs();
// }
// }
//
// XCHMAMN ...
// if (xBTUS5MXCHMAMNEnableSignaller)
// {
// //
// xBTUS5MXCHMAMNAllowLongSignals =
// xBTUS5XCHMAMNAllowLongSignals
// ? true
// : xBTUS5MXCHMAMNAllowLongSignals;
// //
// if (xBTUS5MXCHMAMNAllowLongSignals)
// {
// xBTUS5Provider.EnableXCHMAMNLongs();
// }
// }
}
//
// Disable All Signallers Shorts ...
void XBTUS5DisableShortSignallers()
{
//
// XTD ...
if (xBTUS5MXTDEnableSignaller)
{
//
xBTUS5Provider.DisableXTDShorts();
xBTUS5MXTDAllowShortSignals = false;
}
//
// XTAM ...
if (xBTUS5MXTAMEnableSignaller)
{
//
xBTUS5Provider.DisableXTAMShorts();
xBTUS5MXTAMAllowShortSignals = false;
}
//
// XSI ...
if (xBTUS5MXSIEnableSignaller)
{
//
xBTUS5Provider.DisableXSIShorts();
xBTUS5MXSIAllowShortSignals = false;
}
//
// XTSFI ...
if (xBTUS5MXTSFIEnableSignaller)
{
//
xBTUS5Provider.DisableXTSFIShorts();
xBTUS5MXTSFIAllowShortSignals = false;
}
//
// XOBDLH ...
// if (xBTUS5MXOBDLHEnableSignaller)
// {
// //
// xBTUS5Provider.DisableXOBDLHShorts();
// xBTUS5MXOBDLHAllowShortSignals = false;
// }
//
// XCHMACC ...
if (xBTUS5MXCHMACCEnableSignaller)
{
//
xBTUS5Provider.DisableXCHMACCShorts();
xBTUS5MXCHMACCAllowShortSignals = false;
}
//
// XCHMAMX ...
// if (xBTUS5MXCHMAMXEnableSignaller)
// {
// //
// xBTUS5Provider.DisableXCHMAMXShorts();
// xBTUS5MXCHMAMXAllowShortSignals = false;
// }
//
// XCHMAMN ...
// if (xBTUS5MXCHMAMNEnableSignaller)
// {
// //
// xBTUS5Provider.DisableXCHMAMNShorts();
// xBTUS5MXCHMAMNAllowShortSignals = false;
// }
}
//
// Enable All Signallers Shorts ...
// Only if they are Configured as Enable at Settings ...
void XBTUS5EnableShortSignallers()
{
//
// XTD ...
if (xBTUS5MXTDEnableSignaller)
{
//
xBTUS5MXTDAllowShortSignals =
xBTUS5XTDAllowShortSignals
? true
: xBTUS5MXTDAllowShortSignals;
//
if (xBTUS5MXTDAllowShortSignals)
{
xBTUS5Provider.EnableXTDShorts();
}
}
//
// XTAM ...
if (xBTUS5MXTAMEnableSignaller)
{
//
xBTUS5MXTAMAllowShortSignals =
xBTUS5XTAMAllowShortSignals
? true
: xBTUS5MXTAMAllowShortSignals;
//
if (xBTUS5MXTAMAllowShortSignals)
{
xBTUS5Provider.EnableXTAMShorts();
}
}
//
// XSI ...
if (xBTUS5MXSIEnableSignaller)
{
//
xBTUS5MXSIAllowShortSignals =
xBTUS5XSIAllowShortSignals
? true
: xBTUS5MXSIAllowShortSignals;
//
if (xBTUS5MXSIAllowShortSignals)
{
xBTUS5Provider.EnableXSIShorts();
}
}
//
// XTSFI ...
if (xBTUS5MXTSFIEnableSignaller)
{
//
xBTUS5MXTSFIAllowShortSignals =
xBTUS5XTSFIAllowShortSignals
? true
: xBTUS5MXTSFIAllowShortSignals;
//
if (xBTUS5MXTSFIAllowShortSignals)
{
xBTUS5Provider.EnableXTSFIShorts();
}
}
//
// XOBDLH ...
// if (xBTUS5MXOBDLHEnableSignaller)
// {
// //
// xBTUS5MXOBDLHAllowShortSignals =
// xBTUS5XOBDLHAllowShortSignals
// ? true
// : xBTUS5MXOBDLHAllowShortSignals;
// //
// if (xBTUS5MXOBDLHAllowShortSignals)
// {
// xBTUS5Provider.EnableXOBDLHShorts();
// }
// }
//
// XCHMACC ...
if (xBTUS5MXCHMACCEnableSignaller)
{
//
xBTUS5MXCHMACCAllowShortSignals =
xBTUS5XCHMACCAllowShortSignals
? true
: xBTUS5MXCHMACCAllowShortSignals;
//
if (xBTUS5MXCHMACCAllowShortSignals)
{
xBTUS5Provider.EnableXCHMACCShorts();
}
}
//
// XCHMAMX ...
// if (xBTUS5MXCHMAMXEnableSignaller)
// {
// //
// xBTUS5MXCHMAMXAllowShortSignals =
// xBTUS5XCHMAMXAllowShortSignals
// ? true
// : xBTUS5MXCHMAMXAllowShortSignals;
// //
// if (xBTUS5MXCHMAMXAllowShortSignals)
// {
// xBTUS5Provider.EnableXCHMAMXShorts();
// }
// }
//
// XCHMAMN ...
// if (xBTUS5MXCHMAMNEnableSignaller)
// {
// //
// xBTUS5MXCHMAMNAllowShortSignals =
// xBTUS5XCHMAMNAllowShortSignals
// ? true
// : xBTUS5MXCHMAMNAllowShortSignals;
// //
// if (xBTUS5MXCHMAMNAllowShortSignals)
// {
// xBTUS5Provider.EnableXCHMAMNShorts();
// }
// }
}
//
//
//
//
// XTD Long Signal Checking ...
bool XBTUS5XTDHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXTDEnableSignaller ||
!xBTUS5MXTDAllowLongSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XTDHasLongConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// 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) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// 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) &&
//
(
false)
//
)
//
||
//
// XTD Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// 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)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// XTD Short Signal Checking ...
bool XBTUS5XTDHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXTDEnableSignaller ||
!xBTUS5MXTDAllowShortSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XTDHasShortConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTD Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// 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) &&
//
(
false)
//
)
//
||
//
// 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) &&
//
(
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) &&
//
(
false)
//
)
//
||
//
// 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) &&
//
(
false)
//
)
//
||
//
// 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 Long Signal Checking ...
bool XBTUS5XTAMHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXTAMEnableSignaller ||
!xBTUS5MXTAMAllowLongSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XTAMHasLongConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// 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) &&
//
(
false)
//
)
//
||
//
// 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) &&
//
(
false)
//
)
//
||
//
// 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) &&
//
(
false)
//
)
//
||
//
// 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 Short Signal Checking ...
bool XBTUS5XTAMHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXTAMEnableSignaller ||
!xBTUS5MXTAMAllowShortSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XTAMHasShortConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTAM Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// 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) &&
//
(
false)
//
)
//
||
//
// 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) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// 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) &&
//
(
false)
//
)
//
||
//
// XTAM Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// 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 Long Signal Checking ...
bool XBTUS5XSIHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXSIEnableSignaller ||
!xBTUS5MXSIAllowLongSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XSIHasLongConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
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) &&
//
(
false)
//
)
//
||
//
// 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) &&
//
(
false)
//
)
//
||
//
// XSI 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 ...
//
// 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) &&
//
(
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 ...
//
// XSI Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// XSI Short Signal Checking ...
bool XBTUS5XSIHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXSIEnableSignaller ||
!xBTUS5MXSIAllowShortSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XSIHasShortConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XSI Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// 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) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI 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 ...
//
// XSI Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XSI Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// XTSFI Long Signal Checking ...
bool XBTUS5XTSFIHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXTSFIEnableSignaller ||
!xBTUS5MXTSFIAllowLongSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XTSFIHasLongConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// XTSFI Short Signal Checking ...
bool XBTUS5XTSFIHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXTSFIEnableSignaller ||
!xBTUS5MXTSFIAllowShortSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XTSFIHasShortConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XTSFI Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XTSFI Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// XOBDLH Long Signal Checking ...
bool XBTUS5XOBDLHHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXOBDLHEnableSignaller ||
!xBTUS5MXOBDLHAllowLongSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XOBDLHHasLongConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// XOBDLH Short Signal Checking ...
bool XBTUS5XOBDLHHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXOBDLHEnableSignaller ||
!xBTUS5MXOBDLHAllowShortSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XOBDLHHasShortConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XOBDLH Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XOBDLH Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// XCHMACC Long Signal Checking ...
bool XBTUS5XCHMACCHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXCHMACCEnableSignaller ||
!xBTUS5MXCHMACCAllowLongSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XCHMACCHasLongConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// XCHMACC Short Signal Checking ...
bool XBTUS5XCHMACCHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXCHMACCEnableSignaller ||
!xBTUS5MXCHMACCAllowShortSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XCHMACCHasShortConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMACC Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMACC Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// XCHMAMN Long Signal Checking ...
bool XBTUS5XCHMAMNHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXCHMAMNEnableSignaller ||
!xBTUS5MXCHMAMNAllowLongSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XCHMAMNHasLongConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// XCHMAMN Short Signal Checking ...
bool XBTUS5XCHMAMNHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXCHMAMNEnableSignaller ||
!xBTUS5MXCHMAMNAllowShortSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XCHMAMNHasShortConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMN Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMN Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// XCHMAMX Long Signal Checking ...
bool XBTUS5XCHMAMXHasLongSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXCHMAMXEnableSignaller ||
!xBTUS5MXCHMAMXAllowLongSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XCHMAMXHasLongConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Long ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Long ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// XCHMAMX Short Signal Checking ...
bool XBTUS5XCHMAMXHasShortSignal()
{
//
bool result = false;
//
// Validate Args ...
if (!xBTUS5MXCHMAMXEnableSignaller ||
!xBTUS5MXCHMAMXAllowShortSignals)
{
return result;
}
//
// Retrieve Market Condition ...
XMarketConditions mConditions = xBTUS5Provider.GetLastMarketCondition();
//
// Start Analysing Market based On Conditions ...
result =
//
// Base Condition:
xBTUS5Provider.XCHMAMXHasShortConditions()
//
&&
//
// Exceptions:
// there some commonly Exceptions which makes our choice incorrect,
// here we are combined knownly Exceptions ...
!(
//
// for Exception we used XLH Conditions as follow ...
//
// Check Conditions if Price In Signal Range ...
(mConditions.isXLHPriceInSignalRange &&
//
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceInSignalRange ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Under Signal ...
(
//
((mConditions.isXLHPriceUnderSignal ||
mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceUnderSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is Over Signal ...
(
//
((mConditions.isXLHPriceOverSignal ||
mConditions.isXLHPriceCrossedOverSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceOverSignal ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
||
//
// Check Conditions if Price is not has clear state ...
(
//
((!mConditions.isXLHPriceOverSignal &&
!mConditions.isXLHPriceUnderSignal &&
!mConditions.isXLHPriceInSignalRange &&
!mConditions.isXLHPriceCrossedOverSignal &&
!mConditions.isXLHPriceCrossedUnderSignal) &&
(
//
// Next Step is to Check LL and HH Same Style ...
//
// XCHMAMX Short ...
// PriceFree ...
// Check if Both LL and HH Same In Length ...
((mConditions.isXLHLLSameInLength &&
mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceFree ...
// Check If LL Same In Length ...
((mConditions.isXLHLLSameInLength &&
!mConditions.isXLHHHSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceFree ...
// Check If HH is Same In Length ...
((mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
||
//
// XCHMAMX Short ...
// PriceFree ...
// Not Same LL or HH in Lenght ...
((!mConditions.isXLHHHSameInLength &&
!mConditions.isXLHLLSameInLength) &&
//
(
false)
//
)
//
)
//
)
//
)
//
)
//
;
//
return result;
}
//
// END Signal Providers ...
//