add support for leg management in XFIMA1 Signaller ...
This commit is contained in:
@@ -2323,10 +2323,10 @@ struct XPatternAnalysis
|
||||
|
||||
/**
|
||||
* Extract All Exists Patterns Pivots ...
|
||||
*
|
||||
*
|
||||
* @param dest: XPivot, collection reference to holds Extracted Patterns ...
|
||||
* @param forDir: ENUM_X_DIRECTION, Specified Direction of Extractions ...
|
||||
*
|
||||
*
|
||||
* @return ( int )
|
||||
*/
|
||||
int GetPatterns(
|
||||
@@ -2584,7 +2584,8 @@ struct XPatternAnalysisConfig
|
||||
/**
|
||||
* Remove all Allowed Patterns and Directions ...
|
||||
*/
|
||||
void CleanPatterns() {
|
||||
void CleanPatterns()
|
||||
{
|
||||
//
|
||||
XClean(allowedDirs);
|
||||
XClean(allowedPatterns);
|
||||
@@ -2915,6 +2916,199 @@ struct XPatternAnalysisDrawConfig
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* an strucutre to Model Specified Leg Pattern ...
|
||||
**/
|
||||
struct XLeg
|
||||
{
|
||||
//
|
||||
// Props ...
|
||||
|
||||
//
|
||||
datetime time;
|
||||
string symbol;
|
||||
ENUM_X_DIRECTION dir;
|
||||
ENUM_TIMEFRAMES period;
|
||||
|
||||
//
|
||||
double upper;
|
||||
double lower;
|
||||
|
||||
//
|
||||
XOHCL bullishBars[];
|
||||
XOHCL bearishBars[];
|
||||
|
||||
//
|
||||
XBoxZone supports[];
|
||||
XBoxZone resistances[];
|
||||
|
||||
//
|
||||
XBoxZone bullishFVGs[];
|
||||
XBoxZone bearishFVGs[];
|
||||
|
||||
//
|
||||
XPatternAnalysis patterns[];
|
||||
|
||||
//
|
||||
int sequentialBullishBars;
|
||||
int sequentialBearishBars;
|
||||
|
||||
//
|
||||
// Constructor ...
|
||||
|
||||
//
|
||||
// Tools ...
|
||||
|
||||
/**
|
||||
* Cleanup ...
|
||||
*/
|
||||
void Clean()
|
||||
{
|
||||
//
|
||||
time = NULL;
|
||||
symbol = NULL;
|
||||
period = NULL;
|
||||
dir = X_DIRECTION_NONE;
|
||||
|
||||
//
|
||||
upper = 0;
|
||||
lower = 0;
|
||||
sequentialBullishBars = 0;
|
||||
sequentialBearishBars = 0;
|
||||
|
||||
//
|
||||
XClean(patterns);
|
||||
XClean(supports);
|
||||
XClean(bullishBars);
|
||||
XClean(bearishBars);
|
||||
XClean(resistances);
|
||||
XClean(bullishFVGs);
|
||||
XClean(bearishFVGs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool IsValid()
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result =
|
||||
IsXValid(time) &&
|
||||
IsXValid(symbol) &&
|
||||
IsXValid(period) &&
|
||||
HasDirection(dir) &&
|
||||
NotEmptyZero(upper) &&
|
||||
NotEmptyZero(lower) &&
|
||||
upper > lower;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check is Bullish ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool IsBullish()
|
||||
{
|
||||
return IsValid() &&
|
||||
IsXBullish(dir);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check is Bearish ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool IsBearish()
|
||||
{
|
||||
return IsValid() &&
|
||||
IsXBearish(dir);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a Leg to XBoxZone ...
|
||||
*
|
||||
* @param zone: XBoxZone, reference to holds Converted ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool ToBox(XBoxZone &zone)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
// Prepare ...
|
||||
zone.Clean();
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
result = IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
zone.at = time;
|
||||
zone.dir = dir;
|
||||
zone.from = time;
|
||||
zone.upper = upper;
|
||||
zone.lower = lower;
|
||||
zone.symbol = symbol;
|
||||
zone.period = period;
|
||||
zone.to = TimeCurrent();
|
||||
zone.type = ToXString(X_BAR_PATTERN_LEG);
|
||||
|
||||
//
|
||||
result = zone.IsValid();
|
||||
|
||||
//
|
||||
// Cleanup ...
|
||||
if (!result)
|
||||
{
|
||||
zone.Clean();
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Times of Collections ...
|
||||
*
|
||||
* @param value: datetime, Specified Time ...
|
||||
*/
|
||||
void UpdateTimes(datetime value = NULL)
|
||||
{
|
||||
//
|
||||
// Normalize ...
|
||||
value = NormalizeTime(value);
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
if (!IsValid())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
UpdateToTime(supports, value);
|
||||
UpdateToTime(resistances, value);
|
||||
UpdateToTime(bullishFVGs, value);
|
||||
UpdateToTime(bearishFVGs, value);
|
||||
}
|
||||
|
||||
//
|
||||
};
|
||||
|
||||
//
|
||||
// Extensions ...
|
||||
|
||||
|
||||
Reference in New Issue
Block a user