last ...
This commit is contained in:
@@ -1300,6 +1300,15 @@ 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()
|
||||
@@ -1326,6 +1335,14 @@ struct XPatternAnalysis
|
||||
resistance.Clean();
|
||||
XClean(patternsDir);
|
||||
|
||||
//
|
||||
quarter = 0;
|
||||
XClean(quarterActions);
|
||||
majorSupport.Clean();
|
||||
minorSupport.Clean();
|
||||
majorResistance.Clean();
|
||||
minorResistance.Clean();
|
||||
|
||||
//
|
||||
ZeroMemory(this);
|
||||
}
|
||||
@@ -1348,6 +1365,123 @@ 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 ...
|
||||
|
||||
//
|
||||
int Count(
|
||||
ENUM_X_DIRECTION forDir = X_DIRECTION_NONE //
|
||||
@@ -2308,6 +2442,12 @@ struct XPatternAnalysisConfig
|
||||
//
|
||||
// Props ...
|
||||
|
||||
//
|
||||
// Quarter ...
|
||||
int quarterZonesRequiredToStart;
|
||||
int quarterZoneDetectionLoopback;
|
||||
int quarterZonesValidationLength;
|
||||
|
||||
//
|
||||
// PV ...
|
||||
int pvValidationLength;
|
||||
@@ -2365,6 +2505,12 @@ struct XPatternAnalysisConfig
|
||||
*/
|
||||
void Clean()
|
||||
{
|
||||
//
|
||||
// Quarter ...
|
||||
quarterZonesRequiredToStart = 0;
|
||||
quarterZoneDetectionLoopback = 0;
|
||||
quarterZonesValidationLength = 0;
|
||||
|
||||
//
|
||||
// PV ...
|
||||
pvValidationLength = 0;
|
||||
@@ -2416,6 +2562,12 @@ struct XPatternAnalysisConfig
|
||||
*/
|
||||
void Default()
|
||||
{
|
||||
//
|
||||
// Quarter ...
|
||||
quarterZonesRequiredToStart = 20;
|
||||
quarterZonesValidationLength = 3;
|
||||
quarterZoneDetectionLoopback = 1500;
|
||||
|
||||
//
|
||||
// PV ...
|
||||
pvValidationLength = 5;
|
||||
|
||||
@@ -285,6 +285,121 @@ 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 ...
|
||||
|
||||
|
||||
Reference in New Issue
Block a user