add xchma for filter signals and clear and backup last filters for starting new Filtering ...

This commit is contained in:
2024-07-02 17:33:25 +03:30
parent 050b400412
commit fa5a526d6b
4 changed files with 453 additions and 329 deletions
+13 -326
View File
@@ -2098,159 +2098,6 @@ struct X121SignalGenerator
// Set Default Result to True ...
result = true;
//
// Global Conditions ...
result =
//
result &&
//
!(
//
(
//
// XICH ...
conditions.ichConditions.isClosedUnderKijunSen &&
conditions.ichConditions.isTenkanSenOverKijunSen
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isTenkanSenUnderKijunSen
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isSenkouSpanAOverB &&
!conditions.ichConditions.isSenkouSpanAOverLast
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isSenkouSpanAUnderB &&
conditions.ichConditions.isSenkouSpanAUnderLast
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isSenkouSpanAOverB &&
!conditions.ichConditions.isSenkouSpanAOverLast &&
conditions.ichConditions.isTenkanSenCrossedOverKijunSen &&
//
// XVLM ...
conditions.vlmConditions.isVolumeUnderLast
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isClosedOverKijunSen &&
conditions.ichConditions.isTenkanSenOverKijunSen &&
conditions.ichConditions.isSenkouSpanAUnderB
//
)
//
||
//
(
//
// XPV ...
!conditions.pvConditions.isSCBullish &&
!conditions.pvConditions.isSCHHBullish &&
!conditions.pvConditions.isSCLLBullish &&
!conditions.pvConditions.isMCBullish &&
!conditions.pvConditions.isMCHHBullish &&
!conditions.pvConditions.isMCLLBullish &&
!conditions.pvConditions.isLCBullish &&
!conditions.pvConditions.isLCHHBullish &&
!conditions.pvConditions.isLCLLBullish &&
!conditions.pvConditions.isHCBullish &&
!conditions.pvConditions.isHCHHBullish &&
!conditions.pvConditions.isHCLLBullish &&
//
// XICH ...
conditions.ichConditions.isClosedOverKijunSen &&
(conditions.ichConditions.isTenkanSenOverKijunSen ||
conditions.ichConditions.isTenkanSenCrossedOverKijunSen)
//
)
//
||
//
(
//
(
//
// XPV ...
conditions.pvConditions.isNewPeak &&
conditions.pvConditions.isNewPeakOverLast &&
conditions.pvConditions.isFiboIncreased &&
conditions.pvConditions.isCloseOverFib1 &&
conditions.pvConditions.isCloseOverFib2 &&
conditions.pvConditions.isCloseOverFib3 &&
conditions.pvConditions.isCloseOverFib4 &&
conditions.pvConditions.isCloseOverFib5
//
)
//
&&
//
(
//
// XSCORES ...
bearishScore < 5 &&
bullishScore > bearishScore * 10
//
)
//
&&
//
(
//
(
//
// XPV ...
conditions.pvConditions.isSCBullish &&
conditions.pvConditions.isSCHHBullish &&
conditions.pvConditions.isSCLLBullish &&
conditions.pvConditions.isMCBullish &&
conditions.pvConditions.isMCHHBullish &&
conditions.pvConditions.isMCLLBullish &&
conditions.pvConditions.isLCBullish &&
conditions.pvConditions.isLCHHBullish &&
conditions.pvConditions.isLCLLBullish &&
conditions.pvConditions.isHCBullish &&
conditions.pvConditions.isHCHHBullish &&
conditions.pvConditions.isHCLLBullish
//
)
//
)
//
)
//
)
//
;
//
// Apply Filter ...
// Based On Symbol and Period ...
@@ -3520,179 +3367,6 @@ struct X121SignalGenerator
// Set Default Result to True ...
result = true;
//
// Global Conditions ...
result =
//
result &&
//
!(
//
(
//
// XICH ...
conditions.ichConditions.isClosedOverKijunSen &&
conditions.ichConditions.isTenkanSenUnderKijunSen
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isTenkanSenOverKijunSen
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isSenkouSpanAUnderB &&
!conditions.ichConditions.isSenkouSpanAUnderLast
//
)
//
||
//
(
//
// XPV ...
conditions.pvConditions.isNewVale &&
conditions.pvConditions.isNewValeUnderLast &&
conditions.pvConditions.isFiboDecreased &&
conditions.pvConditions.isSCBearish &&
!conditions.pvConditions.isMCBearish &&
//
// XICH ...
conditions.ichConditions.isClosedOverKijunSen &&
//
// XHK ...
conditions.hkConditions.isHKSwitchedToBearish &&
conditions.hkConditions.isSMHKSwitchedToBearish
)
//
||
//
(
//
// XPV ...
conditions.pvConditions.isNewVale &&
conditions.pvConditions.isNewValeUnderLast &&
conditions.pvConditions.isFiboDecreased &&
!conditions.pvConditions.isSCBearish &&
!conditions.pvConditions.isSCHHBearish &&
//
// XVLM ...
conditions.vlmConditions.isVolumeBearish &&
!conditions.vlmConditions.isVolumeOverLast
//
)
//
||
//
(
//
(
//
// XPV ...
conditions.pvConditions.isNewVale &&
conditions.pvConditions.isNewValeUnderLast &&
conditions.pvConditions.isFiboDecreased &&
conditions.pvConditions.isCloseUnderFib1 &&
conditions.pvConditions.isCloseUnderFib2 &&
conditions.pvConditions.isCloseUnderFib3 &&
conditions.pvConditions.isCloseUnderFib4 &&
conditions.pvConditions.isCloseUnderFib5
//
)
//
&&
//
(
//
(
//
(
//
// XVLM ...
conditions.vlmConditions.isVolumeBearish &&
conditions.vlmConditions.isVolumeOverLast
//
)
//
&&
//
(
//
(
//
conditions.pvConditions.isSCBearish &&
conditions.pvConditions.isSCHHBearish &&
conditions.pvConditions.isSCLLBearish &&
conditions.pvConditions.isMCBearish &&
conditions.pvConditions.isMCHHBearish &&
conditions.pvConditions.isMCLLBearish &&
conditions.pvConditions.isLCBearish &&
conditions.pvConditions.isLCHHBearish &&
conditions.pvConditions.isLCLLBearish &&
conditions.pvConditions.isHCBearish &&
conditions.pvConditions.isHCHHBearish &&
conditions.pvConditions.isHCLLBearish &&
//
// XICH ...
conditions.ichConditions.isClosedUnderKijunSen &&
conditions.ichConditions.isTenkanSenUnderKijunSen &&
conditions.ichConditions.isSenkouSpanAUnderB &&
conditions.ichConditions.isSenkouSpanAUnderLast &&
conditions.ichConditions.isFutureSenkouSpanAUnderB &&
conditions.ichConditions.isFutureSenkouSpanAUnderLast &&
conditions.ichConditions.isSenkouSpanACrossedUnderLast
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isSenkouSpanACrossedUnderB
//
)
//
)
//
)
//
||
//
(
//
// XRL ...
conditions.rlConditions.isFastBearish &&
conditions.rlConditions.isSlowBearish &&
conditions.rlConditions.isFastOverSlow &&
conditions.rlConditions.isVerifierBearish
//
)
//
)
//
&&
//
// XSCORES ...
bullishScore < 5 &&
bearishScore > bullishScore * 10
//
)
//
)
//
;
//
// Apply Filter ...
// Based On Symbol and Period ...
@@ -4232,6 +3906,19 @@ public:
return result;
}
//
// XCHMA ...
chmaHelper = new XSCXCHMAHelper();
result = chmaHelper.Init(
inputs.symbol,
inputs.period,
inputs.chmaInputs //
);
if (!result)
{
return result;
}
//
// XATSL ...
atslHelper = new XSCXATSLHelper();
@@ -0,0 +1,202 @@
//
// Filter Long Conditions ...
bool FilterLongConditions(
X121SetupConditions &conditions, // Conditions
int pusher, // Pushers
string provider // Provider
)
{
//
bool result = false;
//
// Generating Conditions Score ...
double bullishScore = 0;
double bearishScore = 0;
conditions.GenerateScore(
bullishScore,
bearishScore //
);
//
bool isGBPUSD = symbolParser.IsGBPUSD(conditions.symbol);
//
bool isM5Period = conditions.period == PERIOD_M5;
bool isM15Period = conditions.period == PERIOD_M15;
bool isH1Period = conditions.period == PERIOD_H1;
bool isH4Period = conditions.period == PERIOD_H4;
//
// Set Default Result to True ...
result = true;
//
// Global Conditions ...
result =
//
result &&
//
!(
//
(
//
// XICH ...
conditions.ichConditions.isClosedUnderKijunSen &&
conditions.ichConditions.isTenkanSenOverKijunSen
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isTenkanSenUnderKijunSen
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isSenkouSpanAOverB &&
!conditions.ichConditions.isSenkouSpanAOverLast
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isSenkouSpanAUnderB &&
conditions.ichConditions.isSenkouSpanAUnderLast
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isSenkouSpanAOverB &&
!conditions.ichConditions.isSenkouSpanAOverLast &&
conditions.ichConditions.isTenkanSenCrossedOverKijunSen &&
//
// XVLM ...
conditions.vlmConditions.isVolumeUnderLast
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isClosedOverKijunSen &&
conditions.ichConditions.isTenkanSenOverKijunSen &&
conditions.ichConditions.isSenkouSpanAUnderB
//
)
//
||
//
(
//
// XPV ...
!conditions.pvConditions.isSCBullish &&
!conditions.pvConditions.isSCHHBullish &&
!conditions.pvConditions.isSCLLBullish &&
!conditions.pvConditions.isMCBullish &&
!conditions.pvConditions.isMCHHBullish &&
!conditions.pvConditions.isMCLLBullish &&
!conditions.pvConditions.isLCBullish &&
!conditions.pvConditions.isLCHHBullish &&
!conditions.pvConditions.isLCLLBullish &&
!conditions.pvConditions.isHCBullish &&
!conditions.pvConditions.isHCHHBullish &&
!conditions.pvConditions.isHCLLBullish &&
//
// XICH ...
conditions.ichConditions.isClosedOverKijunSen &&
(conditions.ichConditions.isTenkanSenOverKijunSen ||
conditions.ichConditions.isTenkanSenCrossedOverKijunSen)
//
)
//
||
//
(
//
(
//
// XPV ...
conditions.pvConditions.isNewPeak &&
conditions.pvConditions.isNewPeakOverLast &&
conditions.pvConditions.isFiboIncreased &&
conditions.pvConditions.isCloseOverFib1 &&
conditions.pvConditions.isCloseOverFib2 &&
conditions.pvConditions.isCloseOverFib3 &&
conditions.pvConditions.isCloseOverFib4 &&
conditions.pvConditions.isCloseOverFib5
//
)
//
&&
//
(
//
// XSCORES ...
bearishScore < 5 &&
bullishScore > bearishScore * 10
//
)
//
&&
//
(
//
(
//
// XPV ...
conditions.pvConditions.isSCBullish &&
conditions.pvConditions.isSCHHBullish &&
conditions.pvConditions.isSCLLBullish &&
conditions.pvConditions.isMCBullish &&
conditions.pvConditions.isMCHHBullish &&
conditions.pvConditions.isMCLLBullish &&
conditions.pvConditions.isLCBullish &&
conditions.pvConditions.isLCHHBullish &&
conditions.pvConditions.isLCLLBullish &&
conditions.pvConditions.isHCBullish &&
conditions.pvConditions.isHCHHBullish &&
conditions.pvConditions.isHCLLBullish
//
)
//
)
//
)
//
)
//
;
//
// Apply Filter ...
// Based On Symbol and Period ...
// if necessary ...
if (isGBPUSD)
{
//
// MEDIUM ...
if (isH1Period)
{
}
}
//
return result;
}
@@ -0,0 +1,222 @@
//
// Filter Short Conditions ...
bool FilterShortConditions(
X121SetupConditions &conditions, // Conditions
int pusher, // Pushers
string provider // Provider
)
{
//
bool result = false;
//
// Generating Conditions Score ...
double bullishScore = 0;
double bearishScore = 0;
conditions.GenerateScore(
bullishScore,
bearishScore //
);
//
bool isGBPUSD = symbolParser.IsGBPUSD(conditions.symbol);
//
bool isM5Period = conditions.period == PERIOD_M5;
bool isM15Period = conditions.period == PERIOD_M15;
bool isH1Period = conditions.period == PERIOD_H1;
bool isH4Period = conditions.period == PERIOD_H4;
//
// Set Default Result to True ...
result = true;
//
// Global Conditions ...
result =
//
result &&
//
!(
//
(
//
// XICH ...
conditions.ichConditions.isClosedOverKijunSen &&
conditions.ichConditions.isTenkanSenUnderKijunSen
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isTenkanSenOverKijunSen
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isSenkouSpanAUnderB &&
!conditions.ichConditions.isSenkouSpanAUnderLast
//
)
//
||
//
(
//
// XPV ...
conditions.pvConditions.isNewVale &&
conditions.pvConditions.isNewValeUnderLast &&
conditions.pvConditions.isFiboDecreased &&
conditions.pvConditions.isSCBearish &&
!conditions.pvConditions.isMCBearish &&
//
// XICH ...
conditions.ichConditions.isClosedOverKijunSen &&
//
// XHK ...
conditions.hkConditions.isHKSwitchedToBearish &&
conditions.hkConditions.isSMHKSwitchedToBearish
)
//
||
//
(
//
// XPV ...
conditions.pvConditions.isNewVale &&
conditions.pvConditions.isNewValeUnderLast &&
conditions.pvConditions.isFiboDecreased &&
!conditions.pvConditions.isSCBearish &&
!conditions.pvConditions.isSCHHBearish &&
//
// XVLM ...
conditions.vlmConditions.isVolumeBearish &&
!conditions.vlmConditions.isVolumeOverLast
//
)
//
||
//
(
//
(
//
// XPV ...
conditions.pvConditions.isNewVale &&
conditions.pvConditions.isNewValeUnderLast &&
conditions.pvConditions.isFiboDecreased &&
conditions.pvConditions.isCloseUnderFib1 &&
conditions.pvConditions.isCloseUnderFib2 &&
conditions.pvConditions.isCloseUnderFib3 &&
conditions.pvConditions.isCloseUnderFib4 &&
conditions.pvConditions.isCloseUnderFib5
//
)
//
&&
//
(
//
(
//
(
//
// XVLM ...
conditions.vlmConditions.isVolumeBearish &&
conditions.vlmConditions.isVolumeOverLast
//
)
//
&&
//
(
//
(
//
conditions.pvConditions.isSCBearish &&
conditions.pvConditions.isSCHHBearish &&
conditions.pvConditions.isSCLLBearish &&
conditions.pvConditions.isMCBearish &&
conditions.pvConditions.isMCHHBearish &&
conditions.pvConditions.isMCLLBearish &&
conditions.pvConditions.isLCBearish &&
conditions.pvConditions.isLCHHBearish &&
conditions.pvConditions.isLCLLBearish &&
conditions.pvConditions.isHCBearish &&
conditions.pvConditions.isHCHHBearish &&
conditions.pvConditions.isHCLLBearish &&
//
// XICH ...
conditions.ichConditions.isClosedUnderKijunSen &&
conditions.ichConditions.isTenkanSenUnderKijunSen &&
conditions.ichConditions.isSenkouSpanAUnderB &&
conditions.ichConditions.isSenkouSpanAUnderLast &&
conditions.ichConditions.isFutureSenkouSpanAUnderB &&
conditions.ichConditions.isFutureSenkouSpanAUnderLast &&
conditions.ichConditions.isSenkouSpanACrossedUnderLast
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isSenkouSpanACrossedUnderB
//
)
//
)
//
)
//
||
//
(
//
// XRL ...
conditions.rlConditions.isFastBearish &&
conditions.rlConditions.isSlowBearish &&
conditions.rlConditions.isFastOverSlow &&
conditions.rlConditions.isVerifierBearish
//
)
//
)
//
&&
//
// XSCORES ...
bullishScore < 5 &&
bearishScore > bullishScore * 10
//
)
//
)
//
;
//
// Apply Filter ...
// Based On Symbol and Period ...
// if necessary ...
if (isGBPUSD)
{
//
// MEDIUM ...
if (isH1Period)
{
}
}
//
return result;
}
+16 -3
View File
@@ -131,6 +131,7 @@ input bool x121EATerminalAlerts = false; // Terminal Alerts
// Local Variables ...
//
bool isInTestMode = false;
XTimeTracker x121EATimeTracker;
//
@@ -205,19 +206,31 @@ void OnTick()
//
if (x121EATimeTracker.IsNewHour())
{
x121EA.Alert("New Hour ...");
//
if (!isInTestMode)
{
x121EA.Alert("New Hour ...");
}
}
//
if (x121EATimeTracker.IsNewDay())
{
x121EA.Alert("New Day ...");
//
if (!isInTestMode)
{
x121EA.Alert("New Day ...");
}
}
//
if (x121EATimeTracker.IsNewMonth())
{
x121EA.Alert("New Mount ...");
//
if (!isInTestMode)
{
x121EA.Alert("New Mount ...");
}
}
//