This commit is contained in:
2025-10-24 08:20:27 +03:30
parent 4ba253b2de
commit 645c179b12
5 changed files with 268 additions and 437 deletions
@@ -1312,15 +1312,6 @@ struct XPatternAnalysis
ENUM_X_BAR_PATTERN patterns[]; // All Bars Exists Patterns ...
ENUM_X_DIRECTION patternsDir[]; // Each Exists Patterns Directions ...
//
// Quarter Analysis ...
double quarter; // Premium Discount Verifier ...
XBoxZone majorSupport; // Major Support Zone ...
XBoxZone minorSupport; // Minor Support Zone ...
XBoxZone majorResistance; // Major Resistance Zone ...
XBoxZone minorResistance; // Minor Resistance Zone ...
ENUM_X_DETECTOR_ZONE_ACTION quarterActions[]; // Specified Quarter Actions based on Time ...
//
// Constructor ...
XPatternAnalysis()
@@ -1347,14 +1338,6 @@ struct XPatternAnalysis
resistance.Clean();
XClean(patternsDir);
//
quarter = 0;
XClean(quarterActions);
majorSupport.Clean();
minorSupport.Clean();
majorResistance.Clean();
minorResistance.Clean();
//
ZeroMemory(this);
}
@@ -1377,120 +1360,6 @@ struct XPatternAnalysis
return result;
}
//
// Quarter Actions ...
/**
* Check Has Major Support or not ...
*
* @return ( bool )
*/
bool HasMajorSupport()
{
return IsValid() &&
majorSupport.IsValid();
}
/**
* Check Has Minor Support or not ...
*
* @return ( bool )
*/
bool HasMinorSupport()
{
return IsValid() &&
IsQuarterReady() &&
minorSupport.IsValid();
}
/**
* Check Has Major Resistance or not ...
*
* @return ( bool )
*/
bool HasMajorResistance()
{
return IsValid() &&
majorResistance.IsValid();
}
/**
* Check Has Minor Resistance or not ...
*
* @return ( bool )
*/
bool HasMinorResistance()
{
return IsValid() &&
IsQuarterReady() &&
minorResistance.IsValid();
}
/**
* Check Zones Quarter Initialized ...
*
* @return ( bool )
*/
bool IsQuarterReady()
{
//
return IsValid() &&
HasMajorSupport() &&
HasMajorResistance() &&
quarter > 0;
}
/**
* Check Has Quarter Actions ...
*
* @return ( bool )
*/
bool HasQuarterActions()
{
return HasChild(quarterActions);
}
/**
* Check Contains Specified Quarter Actions or not ...
*
* @param value: ENUM_X_DETECTOR_ZONE_ACTION, Specified Action ...
*
* @return ( bool )
*/
bool HasQuarterAction(ENUM_X_DETECTOR_ZONE_ACTION value)
{
//
bool result = false;
//
result = IsXValid(value) &&
HasQuarterActions() &&
Contains(value, quarterActions);
//
return result;
}
/**
* Check Minor Support Retested or not ...
*
* @return ( bool )
*/
bool IsMinorSupportRetested()
{
return HasQuarterAction(X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_RETESTED);
}
/**
* Check Minor Resistance Retested or not ...
*
* @return ( bool )
*/
bool IsMinorResistanceRetested()
{
return HasQuarterAction(X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_RETESTED);
}
//
// Pattern Actions ...
@@ -2884,18 +2753,6 @@ struct XPatternAnalysisDrawConfig
//
// Props ...
//
// Quarters ...
bool drawQuarterZones; // Draw Quarters ...
bool drawQuarterMajors; // Draw Quarter Majors ...
bool drawQuarterMinors; // Draw Quarter Minors ...
bool drawQuarter; // Draw Quarter Trend Line ...
//
int quarterWidth;
color quarterColor;
ENUM_LINE_STYLE quarterStyle;
//
// Patterns ...
@@ -2906,8 +2763,6 @@ struct XPatternAnalysisDrawConfig
//
XPOIDrawConfig drawConfig;
XPOIDrawConfig quarterMajorsDrawConfig;
XPOIDrawConfig quarterMinorsDrawConfig;
//
// Constructor ...
@@ -2932,10 +2787,6 @@ struct XPatternAnalysisDrawConfig
XClean(allowedDraws);
XClean(allowedDrawZones);
XClean(allowedDrawPivots);
//
quarterMajorsDrawConfig.Clean();
quarterMinorsDrawConfig.Clean();
}
/**
@@ -2946,19 +2797,10 @@ struct XPatternAnalysisDrawConfig
//
// Drawing Configs ...
drawConfig.Default();
quarterMajorsDrawConfig.Default();
quarterMinorsDrawConfig.Default();
ConfigureQuarterDraws();
//
Full();
//
drawQuarter = true;
drawQuarterZones = true;
drawQuarterMajors = true;
drawQuarterMinors = true;
//
// Remove Unused From Zones ...
Remove(X_BAR_PATTERN_PINNED, allowedDrawZones);
@@ -2983,12 +2825,6 @@ struct XPatternAnalysisDrawConfig
XClean(allowedDraws);
XClean(allowedDrawZones);
XClean(allowedDrawPivots);
//
drawQuarter = false;
drawQuarterZones = false;
drawQuarterMajors = false;
drawQuarterMinors = false;
}
/**
@@ -2996,12 +2832,6 @@ struct XPatternAnalysisDrawConfig
*/
void Full()
{
//
drawQuarter = true;
drawQuarterZones = true;
drawQuarterMajors = true;
drawQuarterMinors = true;
//
GetAllBarPatters(allowedDraws);
GetAllBarPatters(allowedDrawZones);
@@ -3074,43 +2904,6 @@ struct XPatternAnalysisDrawConfig
//
return result;
}
//
// Drawer Configs ...
/**
* PreConfigure Default Drawer Configs of Quarters ...
*/
void ConfigureQuarterDraws()
{
//
// Quarter ...
quarterWidth = 2;
quarterStyle = STYLE_DOT;
quarterColor = clrYellow;
//
// Majors ...
//
quarterMajorsDrawConfig.Default();
quarterMajorsDrawConfig = drawConfig;
//
quarterMajorsDrawConfig.zonesWidth = 3;
quarterMajorsDrawConfig.bearishColor = clrRed;
quarterMajorsDrawConfig.bullishColor = clrLime;
//
// Minors ...
//
quarterMinorsDrawConfig.Default();
quarterMinorsDrawConfig = drawConfig;
//
quarterMinorsDrawConfig.zonesStyle = STYLE_DASH;
}
};
//
+24 -115
View File
@@ -307,121 +307,6 @@ int GetAllBarPatters(ENUM_X_BAR_PATTERN &dest[])
return ArraySize(dest);
}
/**
* Quarter Zones Actions ...
**/
enum ENUM_X_DETECTOR_ZONE_ACTION
{
X_DETECTOR_ZONE_ACTION_NONE = 0,
//
// Support ...
X_DETECTOR_ZONE_ACTION_MAJOR_SUPPORT_DETECTED = 1,
X_DETECTOR_ZONE_ACTION_MAJOR_SUPPORT_BREAKED = 2,
X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_DETECTED = 3,
X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_REFINED = 4,
X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_BREAKED = 5,
X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_RETESTED = 6,
//
// Resistance ...
X_DETECTOR_ZONE_ACTION_MAJOR_RESISTANCE_DETECTED = 7,
X_DETECTOR_ZONE_ACTION_MAJOR_RESISTANCE_BREAKED = 8,
X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_DETECTED = 9,
X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_REFINED = 10,
X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_BREAKED = 11,
X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_RETESTED = 12,
};
/**
* Validate an ENUM member ...
*
* @param value: ENUM_X_DETECTOR_ZONE_ACTION ...
*
* @return ( bool )
*/
bool IsXValid(ENUM_X_DETECTOR_ZONE_ACTION value)
{
return value != X_DETECTOR_ZONE_ACTION_NONE;
}
/**
* Converts a Pattern ENUM to String Representation ...
*
* @param value: ENUM_X_DETECTOR_ZONE_ACTION, member ...
*
* @return ( string )
*/
string ToXString(ENUM_X_DETECTOR_ZONE_ACTION value)
{
//
string result = NULL;
//
if (!IsXValid(value))
{
return result;
}
//
switch (value)
{
//
case X_DETECTOR_ZONE_ACTION_NONE:
result = "NONE";
break;
//
case X_DETECTOR_ZONE_ACTION_MAJOR_SUPPORT_DETECTED:
result = "MAJOR_SUPPORT_DETECTED";
break;
//
case X_DETECTOR_ZONE_ACTION_MAJOR_SUPPORT_BREAKED:
result = "MAJOR_SUPPORT_BREAKED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_DETECTED:
result = "MINOR_SUPPORT_DETECTED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_REFINED:
result = "MINOR_SUPPORT_REFINED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_BREAKED:
result = "MINOR_SUPPORT_BREAKED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_RETESTED:
result = "MINOR_SUPPORT_RETESTED";
break;
//
case X_DETECTOR_ZONE_ACTION_MAJOR_RESISTANCE_DETECTED:
result = "MAJOR_RESISTANCE_DETECTED";
break;
//
case X_DETECTOR_ZONE_ACTION_MAJOR_RESISTANCE_BREAKED:
result = "MAJOR_RESISTANCE_BREAKED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_DETECTED:
result = "MINOR_RESISTANCE_DETECTED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_REFINED:
result = "MINOR_RESISTANCE_REFINED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_BREAKED:
result = "MINOR_RESISTANCE_BREAKED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_RETESTED:
result = "MINOR_RESISTANCE_RETESTED";
break;
}
//
return result;
}
//
// Structures ...
@@ -1718,6 +1603,9 @@ struct XDirectionShift
}
};
/**
* Configure Draws ...
**/
struct XPOIDrawConfig
{
//
@@ -1726,6 +1614,7 @@ struct XPOIDrawConfig
//
color bullishColor;
color bearishColor;
color neuturalColor;
//
int arrowsWidth;
@@ -1741,6 +1630,12 @@ struct XPOIDrawConfig
bool ignoreZonesAt;
ENUM_LINE_STYLE zonesStyle;
//
int trendWidth;
bool trendRayLeft;
bool trendRayRight;
ENUM_LINE_STYLE trendStyle;
//
// Constructor ...
XPOIDrawConfig()
@@ -1759,6 +1654,7 @@ struct XPOIDrawConfig
//
bullishColor = CLR_NONE;
bearishColor = CLR_NONE;
neuturalColor = CLR_NONE;
//
arrowsWidth = 0;
@@ -1773,6 +1669,12 @@ struct XPOIDrawConfig
zonesFill = false;
ignoreZonesAt = true;
zonesStyle = STYLE_SOLID;
//
trendWidth = 0;
trendRayLeft = false;
trendRayRight = false;
trendStyle = STYLE_DOT;
}
/**
@@ -1783,6 +1685,7 @@ struct XPOIDrawConfig
//
bullishColor = clrAqua;
bearishColor = clrMagenta;
neuturalColor = clrGray;
//
arrowsWidth = 1;
@@ -1797,6 +1700,12 @@ struct XPOIDrawConfig
zonesFill = true;
ignoreZonesAt = true;
zonesStyle = STYLE_SOLID;
//
trendWidth = 2;
trendRayLeft = false;
trendRayRight = true;
trendStyle = STYLE_DOT;
}
//