This commit is contained in:
2025-03-30 01:20:09 +03:30
parent 1b93b469a1
commit ac95a26e24
10 changed files with 1798 additions and 174 deletions
+332
View File
@@ -451,6 +451,63 @@ struct X121Conditions
bool isTenkanSenCrossedOverKijunSen;
bool isTenkanSenCrossedUnderKijunSen;
//
// XDELTA ...
//
bool isDeltaBullish;
bool isDeltaBearish;
bool isDeltaSwitchedToBullish;
bool isDeltaSwitchedToBearish;
//
bool isDeltaOverMa;
bool isDeltaUnderMa;
bool isDeltaCrossedOverMa;
bool isDeltaCrossedUnderMa;
//
// XVOLUME ...
bool isBullishVolumeOverMa;
bool isBullishVolumeCrossedOverMa;
//
bool isBullishVolumeUnderMa;
bool isBullishVolumeCrossedUnderMa;
//
bool isBullishVolumeIncreased;
bool isBullishVolumeSwitchedToIncreased;
//
bool isBullishVolumeDecreased;
bool isBullishVolumeSwitchedToDecreased;
//
bool isBearishVolumeOverMa;
bool isBearishVolumeCrossedOverMa;
//
bool isBearishVolumeUnderMa;
bool isBearishVolumeCrossedUnderMa;
//
bool isBearishVolumeIncreased;
bool isBearishVolumeSwitchedToIncreased;
//
bool isBearishVolumeDecreased;
bool isBearishVolumeSwitchedToDecreased;
//
bool isVolumeSwitchedToBullish;
bool isVolumeSwitchedToBearish;
//
bool isBullishVolumeMaOverBearishVolumeMa;
bool isBullishVolumeMaUnderBearishVolumeMa;
//
// Complex Conditions ...
@@ -956,6 +1013,64 @@ struct X121Conditions
isTenkanSenCrossedOverKijunSen = false;
isTenkanSenCrossedUnderKijunSen = false;
//
// XDELTA ...
//
isDeltaBullish = false;
isDeltaBearish = false;
isDeltaSwitchedToBullish = false;
isDeltaSwitchedToBearish = false;
//
isDeltaOverMa = false;
isDeltaUnderMa = false;
isDeltaCrossedOverMa = false;
isDeltaCrossedUnderMa = false;
//
// XVOLUME ...
//
isBullishVolumeOverMa = false;
isBullishVolumeCrossedOverMa = false;
//
isBullishVolumeUnderMa = false;
isBullishVolumeCrossedUnderMa = false;
//
isBullishVolumeIncreased = false;
isBullishVolumeSwitchedToIncreased = false;
//
isBullishVolumeDecreased = false;
isBullishVolumeSwitchedToDecreased = false;
//
isBearishVolumeOverMa = false;
isBearishVolumeCrossedOverMa = false;
//
isBearishVolumeUnderMa = false;
isBearishVolumeCrossedUnderMa = false;
//
isBearishVolumeIncreased = false;
isBearishVolumeSwitchedToIncreased = false;
//
isBearishVolumeDecreased = false;
isBearishVolumeSwitchedToDecreased = false;
//
isVolumeSwitchedToBullish = false;
isVolumeSwitchedToBearish = false;
//
isBullishVolumeMaOverBearishVolumeMa = false;
isBullishVolumeMaUnderBearishVolumeMa = false;
//
// Complex Conditions ...
@@ -1667,6 +1782,135 @@ struct X121Conditions
bullishScore += minScore;
}
//
// XDELTA ...
//
if (isDeltaOverMa)
{
bullishScore += minScore;
}
if (isDeltaBullish)
{
bullishScore += minScore;
}
if (isDeltaCrossedOverMa)
{
bullishScore += score;
}
if (isDeltaSwitchedToBullish)
{
bullishScore += score;
}
if (isDeltaBearish)
{
bearishScore += minScore;
}
if (isDeltaUnderMa)
{
bearishScore += minScore;
}
if (isDeltaCrossedUnderMa)
{
bearishScore += score;
}
if (isDeltaSwitchedToBearish)
{
bearishScore += score;
}
//
// XVOLUME ...
//
if (isBullishVolumeOverMa)
{
bullishScore += minScore;
}
if (isBearishVolumeUnderMa)
{
bullishScore += minScore;
}
if (isBullishVolumeIncreased)
{
bullishScore += minScore;
}
if (isBearishVolumeDecreased)
{
bullishScore += minScore;
}
if (isBullishVolumeMaOverBearishVolumeMa)
{
bullishScore += minScore;
}
//
if (isVolumeSwitchedToBullish)
{
bullishScore += score;
}
if (isBullishVolumeCrossedOverMa)
{
bullishScore += score;
}
if (isBearishVolumeCrossedUnderMa)
{
bullishScore += score;
}
if (isBullishVolumeSwitchedToIncreased)
{
bullishScore += score;
}
if (isBearishVolumeSwitchedToDecreased)
{
bullishScore += score;
}
//
if (isBearishVolumeOverMa)
{
bearishScore += minScore;
}
if (isBullishVolumeUnderMa)
{
bearishScore += minScore;
}
if (isBullishVolumeDecreased)
{
bearishScore += minScore;
}
if (isBearishVolumeIncreased)
{
bearishScore += minScore;
}
if (isBullishVolumeMaUnderBearishVolumeMa)
{
bearishScore += minScore;
}
//
if (isVolumeSwitchedToBearish)
{
bearishScore += score;
}
if (isBearishVolumeCrossedOverMa)
{
bearishScore += score;
}
if (isBullishVolumeCrossedUnderMa)
{
bearishScore += score;
}
if (isBullishVolumeSwitchedToDecreased)
{
bearishScore += score;
}
if (isBearishVolumeSwitchedToIncreased)
{
bearishScore += score;
}
//
//
//
@@ -2032,6 +2276,42 @@ struct X121Conditions
ToString("isSenkouSpanACrossedUnderB", isSenkouSpanACrossedUnderB, ignoreFalseConditions, separator) +
//
"-----------------------" + separator +
"XDELTA ..." + separator +
"-----------------------" + separator +
ToString("isDeltaBullish", isDeltaBullish, ignoreFalseConditions, separator) +
ToString("isDeltaBearish", isDeltaBearish, ignoreFalseConditions, separator) +
ToString("isDeltaSwitchedToBullish", isDeltaSwitchedToBullish, ignoreFalseConditions, separator) +
ToString("isDeltaSwitchedToBearish", isDeltaSwitchedToBearish, ignoreFalseConditions, separator) +
ToString("isDeltaOverMa", isDeltaOverMa, ignoreFalseConditions, separator) +
ToString("isDeltaUnderMa", isDeltaUnderMa, ignoreFalseConditions, separator) +
ToString("isDeltaCrossedOverMa", isDeltaCrossedOverMa, ignoreFalseConditions, separator) +
ToString("isDeltaCrossedUnderMa", isDeltaCrossedUnderMa, ignoreFalseConditions, separator) +
//
"-----------------------" + separator +
"XVOLUME ..." + separator +
"-----------------------" + separator +
ToString("isBullishVolumeOverMa", isBullishVolumeOverMa, ignoreFalseConditions, separator) +
ToString("isBullishVolumeCrossedOverMa", isBullishVolumeCrossedOverMa, ignoreFalseConditions, separator) +
ToString("isBullishVolumeUnderMa", isBullishVolumeUnderMa, ignoreFalseConditions, separator) +
ToString("isBullishVolumeCrossedUnderMa", isBullishVolumeCrossedUnderMa, ignoreFalseConditions, separator) +
ToString("isBullishVolumeIncreased", isBullishVolumeIncreased, ignoreFalseConditions, separator) +
ToString("isBullishVolumeSwitchedToIncreased", isBullishVolumeSwitchedToIncreased, ignoreFalseConditions, separator) +
ToString("isBullishVolumeDecreased", isBullishVolumeDecreased, ignoreFalseConditions, separator) +
ToString("isBullishVolumeSwitchedToDecreased", isBullishVolumeSwitchedToDecreased, ignoreFalseConditions, separator) +
ToString("isBearishVolumeOverMa", isBearishVolumeOverMa, ignoreFalseConditions, separator) +
ToString("isBearishVolumeCrossedOverMa", isBearishVolumeCrossedOverMa, ignoreFalseConditions, separator) +
ToString("isBearishVolumeUnderMa", isBearishVolumeUnderMa, ignoreFalseConditions, separator) +
ToString("isBearishVolumeCrossedUnderMa", isBearishVolumeCrossedUnderMa, ignoreFalseConditions, separator) +
ToString("isBearishVolumeIncreased", isBearishVolumeIncreased, ignoreFalseConditions, separator) +
ToString("isBearishVolumeSwitchedToIncreased", isBearishVolumeSwitchedToIncreased, ignoreFalseConditions, separator) +
ToString("isBearishVolumeDecreased", isBearishVolumeDecreased, ignoreFalseConditions, separator) +
ToString("isBearishVolumeSwitchedToDecreased", isBearishVolumeSwitchedToDecreased, ignoreFalseConditions, separator) +
ToString("isVolumeSwitchedToBullish", isVolumeSwitchedToBullish, ignoreFalseConditions, separator) +
ToString("isVolumeSwitchedToBearish", isVolumeSwitchedToBearish, ignoreFalseConditions, separator) +
ToString("isBullishVolumeMaOverBearishVolumeMa", isBullishVolumeMaOverBearishVolumeMa, ignoreFalseConditions, separator) +
ToString("isBullishVolumeMaUnderBearishVolumeMa", isBullishVolumeMaUnderBearishVolumeMa, ignoreFalseConditions, separator) +
//
"-----------------------" + separator +
"Slopes ..." + separator +
"-----------------------" + separator +
ToString("isRsiSlopeBullish", isRsiSlopeBullish, ignoreFalseConditions, separator) +
@@ -4061,6 +4341,18 @@ class XCX121Helper : public XCBase
//
// Conditions ...
//
conditions.isDeltaBullish = xdeltaConditions.isDeltaBullish;
conditions.isDeltaBearish = xdeltaConditions.isDeltaBearish;
conditions.isDeltaSwitchedToBullish = xdeltaConditions.isDeltaSwitchedToBullish;
conditions.isDeltaSwitchedToBearish = xdeltaConditions.isDeltaSwitchedToBearish;
//
conditions.isDeltaOverMa = xdeltaConditions.isDeltaOverMa;
conditions.isDeltaUnderMa = xdeltaConditions.isDeltaUnderMa;
conditions.isDeltaCrossedOverMa = xdeltaConditions.isDeltaCrossedOverMa;
conditions.isDeltaCrossedUnderMa = xdeltaConditions.isDeltaCrossedUnderMa;
//
// XVOLUME ...
@@ -4094,6 +4386,46 @@ class XCX121Helper : public XCBase
//
// Conditions ...
//
conditions.isBullishVolumeOverMa = xvolumeConditions.isBullishVolumeOverMa;
conditions.isBullishVolumeCrossedOverMa = xvolumeConditions.isBullishVolumeCrossedOverMa;
//
conditions.isBullishVolumeUnderMa = xvolumeConditions.isBullishVolumeUnderMa;
conditions.isBullishVolumeCrossedUnderMa = xvolumeConditions.isBullishVolumeCrossedUnderMa;
//
conditions.isBullishVolumeIncreased = xvolumeConditions.isBullishVolumeIncreased;
conditions.isBullishVolumeSwitchedToIncreased = xvolumeConditions.isBullishVolumeSwitchedToIncreased;
//
conditions.isBullishVolumeDecreased = xvolumeConditions.isBullishVolumeDecreased;
conditions.isBullishVolumeSwitchedToDecreased = xvolumeConditions.isBullishVolumeSwitchedToDecreased;
//
conditions.isBearishVolumeOverMa = xvolumeConditions.isBearishVolumeOverMa;
conditions.isBearishVolumeCrossedOverMa = xvolumeConditions.isBearishVolumeCrossedOverMa;
//
conditions.isBearishVolumeUnderMa = xvolumeConditions.isBearishVolumeUnderMa;
conditions.isBearishVolumeCrossedUnderMa = xvolumeConditions.isBearishVolumeCrossedUnderMa;
//
conditions.isBearishVolumeIncreased = xvolumeConditions.isBearishVolumeIncreased;
conditions.isBearishVolumeSwitchedToIncreased = xvolumeConditions.isBearishVolumeSwitchedToIncreased;
//
conditions.isBearishVolumeDecreased = xvolumeConditions.isBearishVolumeDecreased;
conditions.isBearishVolumeSwitchedToDecreased = xvolumeConditions.isBearishVolumeSwitchedToDecreased;
//
conditions.isVolumeSwitchedToBullish = xvolumeConditions.isVolumeSwitchedToBullish;
conditions.isVolumeSwitchedToBearish = xvolumeConditions.isVolumeSwitchedToBearish;
//
conditions.isBullishVolumeMaOverBearishVolumeMa = xvolumeConditions.isBullishVolumeMaOverBearishVolumeMa;
conditions.isBullishVolumeMaUnderBearishVolumeMa = xvolumeConditions.isBullishVolumeMaUnderBearishVolumeMa;
//
// Slopes ...