697 lines
32 KiB
Plaintext
697 lines
32 KiB
Plaintext
//
|
|
// XTAM Short Signal Checking ...
|
|
bool XEU5XTAMHasShortSignal()
|
|
{
|
|
//
|
|
bool result = false;
|
|
|
|
//
|
|
// Validate Args ...
|
|
if (!xEU5MXTAMEnableSignaller ||
|
|
!xEU5MXTAMAllowShortSignals)
|
|
{
|
|
return result;
|
|
}
|
|
|
|
//
|
|
result =
|
|
//
|
|
xAMAMaBuffer[1] < xTMMaBuffer[1] &&
|
|
xAMAMaBuffer[2] < xTMMaBuffer[2]
|
|
//
|
|
&&
|
|
//
|
|
xEU5Conditions.isXAMABearish
|
|
//
|
|
&&
|
|
//
|
|
xEU5Conditions.isXTMBearish
|
|
//
|
|
&&
|
|
//
|
|
xEU5Conditions.isXFIUnderZero
|
|
//
|
|
&&
|
|
//
|
|
xEU5Conditions.isXTSCurrentMin
|
|
//
|
|
&&
|
|
//
|
|
xEU5Conditions.isXTSCurrentUnderFarest
|
|
//
|
|
&&
|
|
//
|
|
!xEU5Conditions.isXOBDSwingHigh
|
|
//
|
|
&&
|
|
//
|
|
!(
|
|
//
|
|
xEU5Conditions.isXCHMASCVale &&
|
|
xEU5Conditions.isXCHMAMCVale &&
|
|
xEU5Conditions.isXCHMALCVale
|
|
//
|
|
)
|
|
//
|
|
&&
|
|
//
|
|
(
|
|
//
|
|
(
|
|
(
|
|
xEU5Conditions.isXTSCurrentUnderNearest ||
|
|
xEU5Conditions.isXTSCurrentCrossedUnderNearest) ||
|
|
(xEU5Conditions.isXTSCurrentUnderMediest ||
|
|
xEU5Conditions.isXTSCurrentCrossedUnderMediest))
|
|
? (
|
|
//
|
|
(
|
|
//
|
|
(xEU5Conditions.isXLHPriceUnderSignal ||
|
|
xEU5Conditions.isXLHPriceInSignalRange ||
|
|
xEU5Conditions.isXLHPriceCrossedUnderSignal)
|
|
? !(
|
|
(xEU5Conditions.isXLHLowAttachedLL &&
|
|
xEU5Conditions.isXLHHHSameInLength &&
|
|
xEU5Conditions.isXCHLHSCMCLLSame)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHLLDecreased &&
|
|
(xEU5Conditions.isXCHLHSCMCLLSame ||
|
|
xEU5Conditions.isXCHLHMCLCHHSame))
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHLHSameHHs &&
|
|
xEU5Conditions.isXLHHHIncreased)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCVale &&
|
|
xEU5Conditions.isXCHLHSCMCHHSame)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCVale &&
|
|
xEU5Conditions.isXCHMALCVale)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHLHSameLLs ||
|
|
xEU5Conditions.isXLHLowAttachedLL ||
|
|
xEU5Conditions.isXLHHHSameInLength)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHLLSameInLength &&
|
|
//
|
|
(
|
|
//
|
|
xEU5Conditions.isXLHHHSameInLength
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCTrendsUp &&
|
|
xEU5Conditions.isXCHMALCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMASCFastOverSlow &&
|
|
xEU5Conditions.isXCHMALCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMASCTrendsDown &&
|
|
xEU5Conditions.isXCHMALCTrendsDown &&
|
|
xEU5Conditions.isXCHMASCFastUnderSlow &&
|
|
xEU5Conditions.isXCHMALCFastUnderSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMASCOverMax &&
|
|
xEU5Conditions.isXCHMASCUnderMax)
|
|
//
|
|
||
|
|
//
|
|
(
|
|
xEU5Conditions.isXCHMALCPeak &&
|
|
(
|
|
//
|
|
xEU5Conditions.isXCHMAMCVale
|
|
//
|
|
||
|
|
//
|
|
xEU5Conditions.isXCHMAMCPeak
|
|
//
|
|
||
|
|
//
|
|
xEU5Conditions.isXLHHHDecreased
|
|
//
|
|
||
|
|
//
|
|
xEU5Conditions.isXLHLLIncreased
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCFastOverSlow &&
|
|
xEU5Conditions.isXCHMASCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMASCFastOverSlow &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow &&
|
|
xEU5Conditions.isXCHMALCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCFastOverSlow &&
|
|
xEU5Conditions.isXTDBullCrossedUnderBear)
|
|
//
|
|
)
|
|
//
|
|
)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHLHSCMCHHSame &&
|
|
(xEU5Conditions.isXTDBullCrossedUnderBear
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCFastOverSlow &&
|
|
(!xEU5Conditions.isXCHMAMCTrendsUp &&
|
|
!xEU5Conditions.isXCHMAMCTrendsDown))
|
|
//
|
|
)
|
|
//
|
|
)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCTrendsUp &&
|
|
xEU5Conditions.isXCHMALCTrendsUp &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow &&
|
|
xEU5Conditions.isXCHMALCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHLHMCLCLLSame &&
|
|
xEU5Conditions.isXCHMALCVale &&
|
|
xEU5Conditions.isXCHMALCTrendsDown &&
|
|
xEU5Conditions.isXCHMALCFastUnderSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHHHDecreased &&
|
|
(
|
|
//
|
|
xEU5Conditions.isXRSIVale
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCFastOverSlow &&
|
|
xEU5Conditions.isXCHMALCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCVale &&
|
|
xEU5Conditions.isXCHMALCFastOverSlow)
|
|
//
|
|
)
|
|
//
|
|
)
|
|
//
|
|
)
|
|
//
|
|
)
|
|
//
|
|
)
|
|
: (xEU5Conditions.isXLHPriceOverSignal ||
|
|
xEU5Conditions.isXLHPriceCrossedOverSignal)
|
|
? (
|
|
!(
|
|
xEU5Conditions.isXCHLHSameHHs
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMASCOverMin &&
|
|
xEU5Conditions.isXCHMASCUnderMin)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCVale &&
|
|
xEU5Conditions.isXCHMALCVale &&
|
|
xEU5Conditions.isXCHLHSCMCHHSame)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHLLIncreased &&
|
|
(xEU5Conditions.isXLHHHIncreased
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCPeak &&
|
|
xEU5Conditions.isXLHHHSameInLength &&
|
|
xEU5Conditions.isXCHMALCFastOverSlow)))
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHLLSameInLength &&
|
|
(
|
|
//
|
|
xEU5Conditions.isXLHHHSameInLength
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCPeak &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCVale &&
|
|
xEU5Conditions.isXCHMALCVale)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCPeak &&
|
|
xEU5Conditions.isXCHMALCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCVale &&
|
|
xEU5Conditions.isXTDSignalVale &&
|
|
xEU5Conditions.isXTDBullishVale)
|
|
//
|
|
)
|
|
//
|
|
)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHHHSameInLength &&
|
|
(
|
|
//
|
|
(xEU5Conditions.isXCHMASCOverMax &&
|
|
(xEU5Conditions.isXCHMASCUnderMax ||
|
|
xEU5Conditions.isXCHMASCCrossedUnderMax))
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCVale &&
|
|
xEU5Conditions.isXCHMALCVale)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMASCVale &&
|
|
xEU5Conditions.isXCHMAMCPeak &&
|
|
xEU5Conditions.isXCHMALCVale)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCPeak &&
|
|
xEU5Conditions.isXCHMALCVale)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCVale &&
|
|
xEU5Conditions.isXTDSignalVale &&
|
|
xEU5Conditions.isXTDBullishVale)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCVale &&
|
|
xEU5Conditions.isXCHMAMCTrendsUp &&
|
|
xEU5Conditions.isXCHMALCTrendsDown &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow &&
|
|
xEU5Conditions.isXCHMALCFastUnderSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHLHMCLCHHSame ||
|
|
(xEU5Conditions.isXCHMAMCPeak &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow))
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCPeak &&
|
|
xEU5Conditions.isXCHMALCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHHHIncreased &&
|
|
xEU5Conditions.isXCHMASCTrendsDown &&
|
|
xEU5Conditions.isXCHMAMCTrendsDown &&
|
|
xEU5Conditions.isXCHMASCFastUnderSlow &&
|
|
xEU5Conditions.isXCHMAMCFastUnderSlow)
|
|
//
|
|
)
|
|
//
|
|
)
|
|
//
|
|
||
|
|
//
|
|
(
|
|
xEU5Conditions.isXLHLLSameInLength &&
|
|
(
|
|
//
|
|
(xEU5Conditions.isXCHMASCTrendsDown &&
|
|
xEU5Conditions.isXCHMAMCTrendsDown &&
|
|
xEU5Conditions.isXCHMALCTrendsDown &&
|
|
xEU5Conditions.isXCHMASCFastUnderSlow &&
|
|
xEU5Conditions.isXCHMAMCFastUnderSlow &&
|
|
xEU5Conditions.isXCHMALCFastUnderSlow)
|
|
//
|
|
))
|
|
//
|
|
)
|
|
//
|
|
)
|
|
: (
|
|
!xEU5Conditions.isXLHPriceOverSignal &&
|
|
!xEU5Conditions.isXLHPriceUnderSignal &&
|
|
!xEU5Conditions.isXLHPriceInSignalRange &&
|
|
!xEU5Conditions.isXLHPriceCrossedOverSignal &&
|
|
!xEU5Conditions.isXLHPriceCrossedUnderSignal)
|
|
? !(
|
|
//
|
|
(xEU5Conditions.isXLHHHSameInLength &&
|
|
xEU5Conditions.isXLHLLSameInLength)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCTrendsUp &&
|
|
xEU5Conditions.isXCHMALCTrendsUp &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow &&
|
|
xEU5Conditions.isXCHMALCFastOverSlow)
|
|
//
|
|
)
|
|
: true)
|
|
//
|
|
)
|
|
: true
|
|
//
|
|
)
|
|
//
|
|
&&
|
|
//
|
|
(
|
|
//
|
|
(
|
|
(xEU5Conditions.isXTDBullOverBear ||
|
|
(xEU5Conditions.isXTDBullUnderBear ||
|
|
xEU5Conditions.isXTDBullCrossedUnderBear)) &&
|
|
(xEU5Conditions.isXTDSignalUnderBear ||
|
|
xEU5Conditions.isXTDSignalCrossedUnderBear))
|
|
? !(
|
|
(xEU5Conditions.isXTMVale &&
|
|
xEU5Conditions.isXAMAVale)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCVale &&
|
|
xEU5Conditions.isXCHMALCVale &&
|
|
xEU5Conditions.isXLHLLSameInLength)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXTDSignalVale &&
|
|
xEU5Conditions.isXTDBullishVale &&
|
|
xEU5Conditions.isXLHLLIncreased &&
|
|
xEU5Conditions.isXLHHHSameInLength)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHLLIncreased &&
|
|
xEU5Conditions.isXLHHHSameInLength &&
|
|
xEU5Conditions.isXLHPriceCrossedUnderSignal)
|
|
//
|
|
)
|
|
: true
|
|
//
|
|
)
|
|
//
|
|
&&
|
|
//
|
|
(
|
|
//
|
|
(xEU5Conditions.isXLHPriceUnderSignal ||
|
|
xEU5Conditions.isXLHPriceCrossedUnderSignal)
|
|
? !(
|
|
//
|
|
(xEU5Conditions.isXLHLLSameInLength &&
|
|
(
|
|
//
|
|
(xEU5Conditions.isXCHMALCFastOverSlow &&
|
|
(xEU5Conditions.isXCHMALCPeak ||
|
|
xEU5Conditions.isXCHMAMCVale))
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCPeak &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow)
|
|
//
|
|
)
|
|
//
|
|
)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHLowAttachedLL &&
|
|
xEU5Conditions.isXCHLHSameHHs)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHHHSameInLength &&
|
|
(
|
|
//
|
|
(xEU5Conditions.isXCHMASCOverMin &&
|
|
xEU5Conditions.isXCHMASCUnderMin)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHLHSCMCLLSame &&
|
|
xEU5Conditions.isXCHLHMCLCHHSame)
|
|
//
|
|
||
|
|
(
|
|
//
|
|
(xEU5Conditions.isXLHLLSameInLength &&
|
|
//
|
|
(
|
|
(xEU5Conditions.isXCHMAMCFastOverSlow &&
|
|
xEU5Conditions.isXCHMALCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHLHSCMCHHSame &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHLHSCMCLLSame &&
|
|
(xEU5Conditions.isXCHLHMCLCHHSame ||
|
|
xEU5Conditions.isXCHMALCFastOverSlow))
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCVale &&
|
|
xEU5Conditions.isXCHMALCTrendsDown &&
|
|
xEU5Conditions.isXCHMALCFastUnderSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCVale &&
|
|
xEU5Conditions.isXCHMALCTrendsDown &&
|
|
xEU5Conditions.isXCHMALCFastUnderSlow)
|
|
//
|
|
)
|
|
//
|
|
)
|
|
//
|
|
||
|
|
//
|
|
((xEU5Conditions.isXTDSignalVale &&
|
|
xEU5Conditions.isXTDBullishVale)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHLHSCMCLLSame &&
|
|
xEU5Conditions.isXCHMALCFastOverSlow))
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCPeak &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHLHSCMCLLSame &&
|
|
xEU5Conditions.isXLHLowAttachedLL)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCVale &&
|
|
(
|
|
//
|
|
xEU5Conditions.isXCHMAMCVale
|
|
//
|
|
||
|
|
//
|
|
xEU5Conditions.isXCHMASCFastOverSlow
|
|
//
|
|
)
|
|
//
|
|
)
|
|
//
|
|
||
|
|
//
|
|
xEU5Conditions.isXCHLHSameLLs
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXAMAVale &&
|
|
xEU5Conditions.isXCHMALCPeak &&
|
|
xEU5Conditions.isXCHLHSCMCLLSame &&
|
|
xEU5Conditions.isXCHLHMCLCHHSame)
|
|
//
|
|
)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCVale &&
|
|
xEU5Conditions.isXCHMALCTrendsDown &&
|
|
xEU5Conditions.isXCHMALCFastUnderSlow)
|
|
//
|
|
))
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHLLIncreased &&
|
|
xEU5Conditions.isXCHMASCFastOverSlow &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow &&
|
|
xEU5Conditions.isXRSICrossedOverLongExit &&
|
|
xEU5Conditions.isXLHPriceCrossedUnderSignal)
|
|
//
|
|
)
|
|
: xEU5Conditions.isXLHPriceInSignalRange
|
|
? (
|
|
//
|
|
(
|
|
xEU5Conditions.isXLHHHSameInLength
|
|
? !(
|
|
//
|
|
xEU5Conditions.isXCHLHSameLLs
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMASCVale &&
|
|
xEU5Conditions.isXCHMALCVale)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCVale &&
|
|
xEU5Conditions.isXCHMALCVale)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXTDSignalVale ||
|
|
xEU5Conditions.isXLHLLSameInLength)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCPeak &&
|
|
xEU5Conditions.isXCHMALCPeak &&
|
|
xEU5Conditions.isXLHHHIncreased &&
|
|
xEU5Conditions.isXCHLHMCLCHHSame)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCVale &&
|
|
((xEU5Conditions.isXCHMAMCTrendsUp &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMALCTrendsDown &&
|
|
xEU5Conditions.isXCHMALCFastUnderSlow)
|
|
//
|
|
))
|
|
//
|
|
)
|
|
: true
|
|
//
|
|
)
|
|
//
|
|
)
|
|
: (xEU5Conditions.isXLHPriceOverSignal ||
|
|
xEU5Conditions.isXLHPriceCrossedOverSignal)
|
|
? !(
|
|
(xEU5Conditions.isXCHMAMCPeak &&
|
|
xEU5Conditions.isXCHMALCPeak)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHHHSameInLength &&
|
|
(
|
|
//
|
|
xEU5Conditions.isXLHLLSameInLength
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCPeak &&
|
|
xEU5Conditions.isXCHMALCVale &&
|
|
xEU5Conditions.isXCHMAMCTrendsUp &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow)
|
|
//
|
|
)
|
|
//
|
|
)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXLHLLSameInLength &&
|
|
(
|
|
//
|
|
xEU5Conditions.isXFICrossedUnderZero
|
|
//
|
|
||
|
|
//
|
|
xEU5Conditions.isXTDBullCrossedUnderBear
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMAMCPeak &&
|
|
xEU5Conditions.isXCHMAMCFastOverSlow)
|
|
//
|
|
||
|
|
//
|
|
(xEU5Conditions.isXCHMASCOverMax &&
|
|
xEU5Conditions.isXCHMASCUnderMax)
|
|
//
|
|
))
|
|
//
|
|
)
|
|
: true
|
|
//
|
|
)
|
|
//
|
|
&&
|
|
//
|
|
!(
|
|
//
|
|
xEU5Conditions.isXCHMAMCPeak &&
|
|
xEU5Conditions.isXCHMALCPeak &&
|
|
xEU5Conditions.isXLHHHIncreased &&
|
|
xEU5Conditions.isXLHHHSameInLength &&
|
|
xEU5Conditions.isXLHPriceInSignalRange &&
|
|
xEU5Conditions.isXTSCurrentCrossedUnderFarest
|
|
//
|
|
)
|
|
//
|
|
;
|
|
|
|
//
|
|
return result;
|
|
}
|