complete xea class ...

This commit is contained in:
2024-05-21 04:36:05 +03:30
parent 74ffc15d04
commit 57371b9343
15 changed files with 3227 additions and 1505 deletions
+61 -15
View File
@@ -1023,8 +1023,8 @@ struct XOHCL
//
ENUM_SERIESMODE mMode = swing == X_SWING_HIGH
? MODE_HIGH
: MODE_LOW;
? MODE_HIGH
: MODE_LOW;
//
result = swing == X_SWING_HIGH
@@ -1048,7 +1048,7 @@ struct XOHCL
//
// Find Lowest Bar Index ...
int FindHighestIndex(
int mLength, // Loopback ...
int mLength, // Loopback ...
ENUM_SERIESMODE mMode // Calculation mode
)
{
@@ -1082,7 +1082,7 @@ struct XOHCL
//
// Find Lowest ...
double FindHighest(
int mLength, // Loopback ...
int mLength, // Loopback ...
ENUM_SERIESMODE mMode // Calculation mode
)
{
@@ -1127,7 +1127,7 @@ struct XOHCL
//
// Find Lowest Bar Index ...
int FindLowestIndex(
int mLength, // Loopback ...
int mLength, // Loopback ...
ENUM_SERIESMODE mMode // Calculation mode
)
{
@@ -1161,7 +1161,7 @@ struct XOHCL
//
// Find Lowest ...
double FindLowest(
int mLength, // Loopback ...
int mLength, // Loopback ...
ENUM_SERIESMODE mMode // Calculation mode
)
{
@@ -3877,6 +3877,49 @@ string GetToken(T &item)
return result;
}
//
// Same as Get Token for Use in Classes ...
template <typename T>
string GetSpecificToken(T &item)
{
//
string mType = GetTypeName(item);
//
string result = mType;
//
string parts[];
int partsCount = SplitContent(
parts,
result,
" "
//
);
if (partsCount <= 0)
{
//
result = mType;
return result;
}
//
bool hasLastPart = GetLastItem(
result,
parts
//
);
if (!hasLastPart)
{
//
result = mType;
return result;
}
//
return result;
}
//
// Generate Unique Tags ...
template <typename T>
@@ -4855,14 +4898,14 @@ bool Contains(
//
result = queryIdx >= 0;
//
return result;
}
//
bool Contains(
string &mQueries[], // Search Strings
string &mQueries[], // Search Strings
string mContent, // Search Content
bool ignoreCase = true // Ignore Case
)
@@ -4874,29 +4917,32 @@ bool Contains(
// Validate Queries ...
int queriesCount = ArraySize(mQueries);
result = queriesCount > 0;
if (!result) {
if (!result)
{
return result;
}
//
// Validate Content ...
result = IsValid(mContent);
if (!result) {
if (!result)
{
return result;
}
//
int containsCount = 0;
for (int i = 0; i < queriesCount; i++) {
for (int i = 0; i < queriesCount; i++)
{
//
bool isContains = Contains(
mQueries[i],
mContent,
ignoreCase
);
ignoreCase);
//
if (!isContains) {
if (!isContains)
{
//
result = false;
break;
@@ -4908,7 +4954,7 @@ bool Contains(
//
result = containsCount == queriesCount;
//
return result;
}