last works ...
This commit is contained in:
@@ -4073,7 +4073,8 @@ class XCXFIMAHelper : public XCBaseHelper
|
|||||||
bool isBearish = false;
|
bool isBearish = false;
|
||||||
double iMin = EMPTY_VALUE;
|
double iMin = EMPTY_VALUE;
|
||||||
double iMax = EMPTY_VALUE;
|
double iMax = EMPTY_VALUE;
|
||||||
ENUM_X_DIRECTION iDir = X_DIRECTION_NONE;
|
bool isCond1Bullish = false;
|
||||||
|
bool isCond1Bearish = false;
|
||||||
for (int i = 0; i < decisionBarsCount; i++)
|
for (int i = 0; i < decisionBarsCount; i++)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -4092,15 +4093,21 @@ class XCXFIMAHelper : public XCBaseHelper
|
|||||||
//
|
//
|
||||||
// Validate ...
|
// Validate ...
|
||||||
|
|
||||||
|
//
|
||||||
|
isCond1Bullish = decisionBars[i].IsBullish();
|
||||||
|
|
||||||
|
//
|
||||||
|
isCond1Bearish = decisionBars[i].IsBearish();
|
||||||
|
|
||||||
//
|
//
|
||||||
isBullish =
|
isBullish =
|
||||||
isBullish &&
|
isBullish &&
|
||||||
decisionBars[i].IsBullish();
|
(isCond1Bullish);
|
||||||
|
|
||||||
//
|
//
|
||||||
isBearish =
|
isBearish =
|
||||||
isBearish &&
|
isBearish &&
|
||||||
decisionBars[i].IsBearish();
|
(isCond1Bearish);
|
||||||
|
|
||||||
//
|
//
|
||||||
if (forceTouchBoundary)
|
if (forceTouchBoundary)
|
||||||
@@ -4119,24 +4126,9 @@ class XCXFIMAHelper : public XCBaseHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
has = (isBullish && !isBearish) ||
|
has =
|
||||||
(isBearish && !isBullish);
|
isBullish ||
|
||||||
if (!has)
|
isBearish;
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
iDir =
|
|
||||||
isBullish
|
|
||||||
? X_DIRECTION_BULLISH
|
|
||||||
: X_DIRECTION_BEARISH;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Validate For Dir ...
|
|
||||||
has = !HasDirection(forDir)
|
|
||||||
? HasDirection(iDir)
|
|
||||||
: iDir == forDir;
|
|
||||||
if (has)
|
if (has)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -4147,7 +4139,7 @@ class XCXFIMAHelper : public XCBaseHelper
|
|||||||
|
|
||||||
//
|
//
|
||||||
Add(
|
Add(
|
||||||
iDir,
|
decisionBarDirs[i],
|
||||||
dirs //
|
dirs //
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -4225,56 +4217,78 @@ class XCXFIMAHelper : public XCBaseHelper
|
|||||||
bool isBearish = false;
|
bool isBearish = false;
|
||||||
double iMin = EMPTY_VALUE;
|
double iMin = EMPTY_VALUE;
|
||||||
double iMax = EMPTY_VALUE;
|
double iMax = EMPTY_VALUE;
|
||||||
ENUM_X_DIRECTION iDir = X_DIRECTION_NONE;
|
bool isCond1Bullish = false;
|
||||||
|
bool isCond1Bearish = false;
|
||||||
for (int i = 0; i < decisionBarsCount; i++)
|
for (int i = 0; i < decisionBarsCount; i++)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// Read Boundary Values ...
|
// Read Indexed Bars Boundaries ...
|
||||||
has = GetBoundaryValues(iMin, iMax, i);
|
has = GetBoundaryValues(iMin, iMax, decisionBars[i].Index());
|
||||||
if (!has)
|
if (!has)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Validate ...
|
// Make Direction Opposit ...
|
||||||
|
decisionBarDirs[i] = Opposit(decisionBarDirs[i]);
|
||||||
|
|
||||||
|
//
|
||||||
|
isBullish = IsXBullish(decisionBarDirs[i]);
|
||||||
|
isBearish = IsXBearish(decisionBarDirs[i]);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check Bar Validations ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Cond 1 ...
|
||||||
|
|
||||||
|
//
|
||||||
|
isCond1Bullish =
|
||||||
|
decisionBars[i].IsBearish() &&
|
||||||
|
(decisionBars[i].low >= iMax ||
|
||||||
|
(decisionBars[i].low <= iMax &&
|
||||||
|
decisionBars[i].GetUp() >= iMax));
|
||||||
|
|
||||||
|
//
|
||||||
|
isCond1Bearish =
|
||||||
|
decisionBars[i].IsBullish() &&
|
||||||
|
(decisionBars[i].high <= iMin ||
|
||||||
|
(decisionBars[i].high >= iMin &&
|
||||||
|
decisionBars[i].GetDown() <= iMin));
|
||||||
|
|
||||||
//
|
//
|
||||||
isBullish =
|
isBullish =
|
||||||
decisionBars[i].high > iMax &&
|
isBullish &&
|
||||||
IsXBearish(decisionBarDirs[i]);
|
(isCond1Bullish);
|
||||||
// &&
|
|
||||||
// decisionBars[i].IsBullish();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
isBearish =
|
isBearish =
|
||||||
decisionBars[i].low < iMin &&
|
isBearish &&
|
||||||
IsXBullish(decisionBarDirs[i]);
|
(isCond1Bearish);
|
||||||
// &&
|
|
||||||
// decisionBars[i].IsBearish();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check Direction ...
|
if (forceTouchBoundary)
|
||||||
has =
|
|
||||||
isBullish ||
|
|
||||||
!isBearish;
|
|
||||||
// has = (isBullish && !isBearish) ||
|
|
||||||
// (isBearish && !isBullish);
|
|
||||||
if (!has)
|
|
||||||
{
|
{
|
||||||
continue;
|
//
|
||||||
|
isBullish =
|
||||||
|
isBullish &&
|
||||||
|
(decisionBars[i].low >= iMax ||
|
||||||
|
(decisionBars[i].low <= iMax &&
|
||||||
|
decisionBars[i].GetUp() >= iMax));
|
||||||
|
|
||||||
|
//
|
||||||
|
isBearish =
|
||||||
|
isBearish &&
|
||||||
|
(decisionBars[i].high <= iMin ||
|
||||||
|
(decisionBars[i].high >= iMin &&
|
||||||
|
decisionBars[i].GetDown() <= iMin));
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
iDir = isBullish
|
has =
|
||||||
? X_DIRECTION_BULLISH
|
isBullish ||
|
||||||
: X_DIRECTION_BEARISH;
|
isBearish;
|
||||||
|
|
||||||
//
|
|
||||||
// Validate For Dir ...
|
|
||||||
has = !HasDirection(forDir)
|
|
||||||
? HasDirection(iDir)
|
|
||||||
: iDir == forDir;
|
|
||||||
if (has)
|
if (has)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -4285,90 +4299,14 @@ class XCXFIMAHelper : public XCBaseHelper
|
|||||||
|
|
||||||
//
|
//
|
||||||
Add(
|
Add(
|
||||||
iDir,
|
decisionBarDirs[i],
|
||||||
dirs //
|
dirs //
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// //
|
|
||||||
// isBullish =
|
|
||||||
// (decisionBars[i].low > iMax ||
|
|
||||||
// decisionBars[i].GetDown() > iMax) &&
|
|
||||||
// IsXBearish(decisionBarDirs[i]) &&
|
|
||||||
// decisionBars[i].IsBullish();
|
|
||||||
|
|
||||||
// //
|
|
||||||
// isBearish =
|
|
||||||
// (decisionBars[i].high < iMin ||
|
|
||||||
// decisionBars[i].GetUp() < iMin) &&
|
|
||||||
// IsXBullish(decisionBarDirs[i]) &&
|
|
||||||
// decisionBars[i].IsBearish();
|
|
||||||
|
|
||||||
// //
|
|
||||||
// if (forceTouchBoundary)
|
|
||||||
// {
|
|
||||||
// //
|
|
||||||
// isBullish =
|
|
||||||
// isBullish &&
|
|
||||||
// decisionBars[i].low < iMax &&
|
|
||||||
// decisionBars[i].GetUp() > iMax;
|
|
||||||
|
|
||||||
// //
|
|
||||||
// isBearish =
|
|
||||||
// isBearish &&
|
|
||||||
// decisionBars[i].high > iMin &&
|
|
||||||
// decisionBars[i].GetDown() < iMin;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// //
|
|
||||||
// has = (isBullish && !isBearish) ||
|
|
||||||
// (isBearish && !isBullish);
|
|
||||||
// if (!has)
|
|
||||||
// {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// //
|
|
||||||
// iDir =
|
|
||||||
// isBullish
|
|
||||||
// ? X_DIRECTION_BULLISH
|
|
||||||
// : X_DIRECTION_BEARISH;
|
|
||||||
|
|
||||||
// //
|
|
||||||
// // Validate For Dir ...
|
|
||||||
// has = !HasDirection(forDir)
|
|
||||||
// ? HasDirection(iDir)
|
|
||||||
// : iDir == forDir;
|
|
||||||
// if (has)
|
|
||||||
// {
|
|
||||||
// //
|
|
||||||
// AddRef(
|
|
||||||
// decisionBars[i],
|
|
||||||
// bars //
|
|
||||||
// );
|
|
||||||
|
|
||||||
// //
|
|
||||||
// Add(
|
|
||||||
// iDir,
|
|
||||||
// dirs //
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
|
|
||||||
//
|
|
||||||
AddRef(
|
|
||||||
decisionBars[i],
|
|
||||||
bars //
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
|
||||||
Add(
|
|
||||||
decisionBarDirs[i],
|
|
||||||
dirs //
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
result = ArraySize(bars);
|
result = MathMin(ArraySize(bars), ArraySize(dirs));
|
||||||
|
|
||||||
//
|
//
|
||||||
// Cleanup Resources ...
|
// Cleanup Resources ...
|
||||||
@@ -4379,6 +4317,12 @@ class XCXFIMAHelper : public XCBaseHelper
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int DetectXFIMAPOIBarPatterns(
|
||||||
|
XOHCL &bars[],
|
||||||
|
XOHCL &dirs[],
|
||||||
|
int barIndex = 0,
|
||||||
|
)
|
||||||
|
|
||||||
//
|
//
|
||||||
// Values Retrievers ...
|
// Values Retrievers ...
|
||||||
|
|
||||||
|
|||||||
@@ -3985,6 +3985,7 @@ bool ToBox(
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Flags for Patterns ...
|
// Flags for Patterns ...
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,233 @@
|
|||||||
//
|
//
|
||||||
// Definitions ...
|
// Definitions ...
|
||||||
|
|
||||||
|
/**
|
||||||
|
* All Available Market Patterns ...
|
||||||
|
**/
|
||||||
|
enum ENUM_X_BAR_PATTERN
|
||||||
|
{
|
||||||
|
X_BAR_PATTERN_NONE = 0,
|
||||||
|
X_BAR_PATTERN_HIGH = 1,
|
||||||
|
X_BAR_PATTERN_LOW = 2,
|
||||||
|
X_BAR_PATTERN_MOMENTUM = 3,
|
||||||
|
X_BAR_PATTERN_ENGULFED = 4,
|
||||||
|
X_BAR_PATTERN_TRUE_GAPPED = 5,
|
||||||
|
X_BAR_PATTERN_PINNED = 6,
|
||||||
|
X_BAR_PATTERN_STAR = 7,
|
||||||
|
X_BAR_PATTERN_PIERCING = 8,
|
||||||
|
X_BAR_PATTERN_RISING = 9,
|
||||||
|
X_BAR_PATTERN_FLAG = 10,
|
||||||
|
X_BAR_PATTERN_SIGNALKEY = 11,
|
||||||
|
X_BAR_PATTERN_OB = 12,
|
||||||
|
X_BAR_PATTERN_FVG = 13,
|
||||||
|
X_BAR_PATTERN_SUPPORT = 14,
|
||||||
|
X_BAR_PATTERN_RESISTANCE = 15,
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate an ENUM member ...
|
||||||
|
*
|
||||||
|
* @param value: ENUM_X_BAR_PATTERN ...
|
||||||
|
*
|
||||||
|
* @return ( bool )
|
||||||
|
*/
|
||||||
|
bool IsXValid(ENUM_X_BAR_PATTERN value)
|
||||||
|
{
|
||||||
|
return value != X_BAR_PATTERN_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a Pattern ENUM to String Representation ...
|
||||||
|
*
|
||||||
|
* @param value: ENUM_X_BAR_PATTERN, member ...
|
||||||
|
*
|
||||||
|
* @return ( string )
|
||||||
|
*/
|
||||||
|
string ToXString(ENUM_X_BAR_PATTERN value)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
string result = NULL;
|
||||||
|
|
||||||
|
//
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_NONE:
|
||||||
|
result = "X_NONE";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_HIGH:
|
||||||
|
result = "XHIGH";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_LOW:
|
||||||
|
result = "XLOW";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_MOMENTUM:
|
||||||
|
result = "XMOMENTUM";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_ENGULFED:
|
||||||
|
result = "XENGULFED";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_TRUE_GAPPED:
|
||||||
|
result = "XGAPPED";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_PINNED:
|
||||||
|
result = "XPINNED";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_STAR:
|
||||||
|
result = "XSTAR";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_PIERCING:
|
||||||
|
result = "XPIERCING";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_RISING:
|
||||||
|
result = "XRISING";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_FLAG:
|
||||||
|
result = "XFLAG";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_SIGNALKEY:
|
||||||
|
result = "XSIGNALKEY";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_OB:
|
||||||
|
result = "XOB";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_FVG:
|
||||||
|
result = "XFVG";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_SUPPORT:
|
||||||
|
result = "XSUPPORT";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_BAR_PATTERN_RESISTANCE:
|
||||||
|
result = "XRESISTANCE";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse an String Representation to it's Corresponding Bar Pattern ENUM ...
|
||||||
|
*
|
||||||
|
* @param value: string, provided pattern's string ...
|
||||||
|
*
|
||||||
|
* @return ( ENUM_X_BAR_PATTERN )
|
||||||
|
*/
|
||||||
|
ENUM_X_BAR_PATTERN ToBarPattern(string value)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
ENUM_X_BAR_PATTERN result = X_BAR_PATTERN_NONE;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Validate ...
|
||||||
|
if (!IsXValid(value))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (value == ToXString(X_BAR_PATTERN_NONE))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_NONE;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_HIGH))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_HIGH;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_LOW))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_LOW;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_MOMENTUM))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_MOMENTUM;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_ENGULFED))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_ENGULFED;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_TRUE_GAPPED))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_TRUE_GAPPED;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_PINNED))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_PINNED;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_STAR))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_STAR;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_PIERCING))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_PIERCING;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_RISING))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_RISING;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_FLAG))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_FLAG;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_SIGNALKEY))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_SIGNALKEY;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_OB))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_OB;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_FVG))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_FVG;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_SUPPORT))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_SUPPORT;
|
||||||
|
}
|
||||||
|
else if (value == ToXString(X_BAR_PATTERN_RESISTANCE))
|
||||||
|
{
|
||||||
|
result = X_BAR_PATTERN_RESISTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Structures ...
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represent a Pivot ...
|
* Represent a Pivot ...
|
||||||
**/
|
**/
|
||||||
|
|||||||
@@ -726,8 +726,24 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
|
|||||||
//
|
//
|
||||||
// Detect DecisionBars ...
|
// Detect DecisionBars ...
|
||||||
XOHCL decisionBars[];
|
XOHCL decisionBars[];
|
||||||
|
int decisionBarsCount = 0;
|
||||||
ENUM_X_DIRECTION decisionBarDirs[];
|
ENUM_X_DIRECTION decisionBarDirs[];
|
||||||
int decisionBarsCount = fimaHelper.DetectXFIMAContinuationalPOIBars(
|
// decisionBarsCount = fimaHelper.DetectXFIMAPOIBars(
|
||||||
|
// decisionBars,
|
||||||
|
// decisionBarDirs,
|
||||||
|
// iBar.Index(),
|
||||||
|
// X_DIRECTION_ALL, // For Dir ...
|
||||||
|
// 300 // Required Number of Bars ...
|
||||||
|
// );
|
||||||
|
// decisionBarsCount = fimaHelper.DetectXFIMAReversalPOIBars(
|
||||||
|
// decisionBars,
|
||||||
|
// decisionBarDirs,
|
||||||
|
// iBar.Index(),
|
||||||
|
// true, // Force Touch Boundary ...
|
||||||
|
// X_DIRECTION_ALL, // For Dir ...
|
||||||
|
// 300 // Required Number of Bars ...
|
||||||
|
// );
|
||||||
|
decisionBarsCount = fimaHelper.DetectXFIMAContinuationalPOIBars(
|
||||||
decisionBars,
|
decisionBars,
|
||||||
decisionBarDirs,
|
decisionBarDirs,
|
||||||
iBar.Index(),
|
iBar.Index(),
|
||||||
@@ -735,14 +751,6 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
|
|||||||
X_DIRECTION_ALL, // For Dir ...
|
X_DIRECTION_ALL, // For Dir ...
|
||||||
300 // Required Number of Bars ...
|
300 // Required Number of Bars ...
|
||||||
);
|
);
|
||||||
// int decisionBarsCount = fimaHelper.DetectXFIMAPOIBars(
|
|
||||||
// decisionBars,
|
|
||||||
// decisionBarDirs,
|
|
||||||
// iBar.Index(),
|
|
||||||
// true,
|
|
||||||
// X_DIRECTION_ALL, // For Dir ...
|
|
||||||
// 300 // Required Number of Bars ...
|
|
||||||
// );
|
|
||||||
|
|
||||||
//
|
//
|
||||||
has = IsValidSize(decisionBarsCount);
|
has = IsValidSize(decisionBarsCount);
|
||||||
@@ -758,9 +766,9 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
|
|||||||
iObj,
|
iObj,
|
||||||
IsXBullish(decisionBarDirs[i]) ? X_PRICE_LOW : X_PRICE_HIGH,
|
IsXBullish(decisionBarDirs[i]) ? X_PRICE_LOW : X_PRICE_HIGH,
|
||||||
159,
|
159,
|
||||||
IsXBullish(decisionBarDirs[i]) ? clrYellow : clrDarkOrange,
|
IsXBullish(decisionBarDirs[i]) ? clrAqua : clrMagenta,
|
||||||
5,
|
5,
|
||||||
IsXBullish(decisionBarDirs[i]) ? ANCHOR_BOTTOM : ANCHOR_TOP,
|
IsXBullish(decisionBarDirs[i]) ? ANCHOR_TOP : ANCHOR_BOTTOM,
|
||||||
"XOHCL_" + ToXString(TimeToSeconds(decisionBars[i].time)),
|
"XOHCL_" + ToXString(TimeToSeconds(decisionBars[i].time)),
|
||||||
true, // Ignore Bar Tag ...
|
true, // Ignore Bar Tag ...
|
||||||
5 // Threshold ...
|
5 // Threshold ...
|
||||||
|
|||||||
Reference in New Issue
Block a user