apply some changes on signal senario 1 ...
This commit is contained in:
@@ -34,6 +34,8 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
public:
|
||||
//
|
||||
// Props ...
|
||||
bool useGuards;
|
||||
bool useQuarterTargets;
|
||||
X121SMCStrategyXWZWorkingZone workingZone;
|
||||
X121SMCStrategyXWZSignalConditions mConditions;
|
||||
X121SMCStrategyXWZSignalConditions mConditionsCollection[];
|
||||
@@ -443,39 +445,39 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
}
|
||||
else if (signalProvider == X121SMC_XWZ_PROVIDER_ACTIVATED_BOX)
|
||||
{
|
||||
//
|
||||
if (isBullish)
|
||||
{
|
||||
//
|
||||
iSL = MathMin(
|
||||
provider.decisionXConditions.le1Buffer[1],
|
||||
provider.decisionXConditions.le2Buffer[1] //
|
||||
);
|
||||
if (iSL > 0)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
iSL,
|
||||
sls //
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
iSL = MathMax(
|
||||
provider.decisionXConditions.se1Buffer[1],
|
||||
provider.decisionXConditions.se2Buffer[1] //
|
||||
);
|
||||
if (iSL > 0)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
iSL,
|
||||
sls //
|
||||
);
|
||||
}
|
||||
}
|
||||
// //
|
||||
// if (isBullish)
|
||||
// {
|
||||
// //
|
||||
// iSL = MathMin(
|
||||
// provider.decisionXConditions.le1Buffer[1],
|
||||
// provider.decisionXConditions.le2Buffer[1] //
|
||||
// );
|
||||
// if (iSL > 0)
|
||||
// {
|
||||
// //
|
||||
// Add(
|
||||
// iSL,
|
||||
// sls //
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// //
|
||||
// iSL = MathMax(
|
||||
// provider.decisionXConditions.se1Buffer[1],
|
||||
// provider.decisionXConditions.se2Buffer[1] //
|
||||
// );
|
||||
// if (iSL > 0)
|
||||
// {
|
||||
// //
|
||||
// Add(
|
||||
// iSL,
|
||||
// sls //
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
}
|
||||
else if (signalProvider == X121SMC_XWZ_PROVIDER_ACTIVATED_AREA)
|
||||
{
|
||||
@@ -483,7 +485,7 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
|
||||
//
|
||||
double iAtr = provider.decisionXConditions.atrBuffer[1];
|
||||
iAtr *= 0;
|
||||
iAtr *= 2;
|
||||
|
||||
//
|
||||
// Select Condition SL ...
|
||||
@@ -532,266 +534,271 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
|
||||
//
|
||||
// Based On Priority ...
|
||||
has = priority != X121SMC_XWZ_PRIORITY_NONE;
|
||||
if (has)
|
||||
useQuarterTargets = false;
|
||||
if (useQuarterTargets)
|
||||
{
|
||||
//
|
||||
switch (priority)
|
||||
has = priority != X121SMC_XWZ_PRIORITY_NONE;
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_WEAK:
|
||||
//
|
||||
if (isBullish)
|
||||
switch (priority)
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.supplyZone.Lower(),
|
||||
targets //
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.demandZone.Upper(),
|
||||
targets //
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_LOW:
|
||||
//
|
||||
if (isBullish)
|
||||
{
|
||||
case X121SMC_XWZ_PRIORITY_WEAK:
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.supplyZone.Lower(),
|
||||
targets //
|
||||
);
|
||||
if (isBullish)
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.supplyZone.Lower(),
|
||||
targets //
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.demandZone.Upper(),
|
||||
targets //
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter1,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.demandZone.Upper(),
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter3,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_REGULAR:
|
||||
//
|
||||
if (isBullish)
|
||||
{
|
||||
case X121SMC_XWZ_PRIORITY_LOW:
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.supplyZone.Lower(),
|
||||
targets //
|
||||
);
|
||||
if (isBullish)
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.supplyZone.Lower(),
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter1,
|
||||
targets //
|
||||
);
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter1,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.demandZone.Upper(),
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Regular ...
|
||||
Add(
|
||||
workingZone.quarter2,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.demandZone.Upper(),
|
||||
targets //
|
||||
);
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter3,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter3,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Regular ...
|
||||
Add(
|
||||
workingZone.quarter2,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_HIGH:
|
||||
//
|
||||
if (isBullish)
|
||||
{
|
||||
case X121SMC_XWZ_PRIORITY_REGULAR:
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.supplyZone.Lower(),
|
||||
targets //
|
||||
);
|
||||
if (isBullish)
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.supplyZone.Lower(),
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter1,
|
||||
targets //
|
||||
);
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter1,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Regular ...
|
||||
Add(
|
||||
workingZone.quarter2,
|
||||
targets //
|
||||
);
|
||||
//
|
||||
// Regular ...
|
||||
Add(
|
||||
workingZone.quarter2,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.demandZone.Upper(),
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// High ...
|
||||
Add(
|
||||
workingZone.quarter3,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.demandZone.Upper(),
|
||||
targets //
|
||||
);
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter3,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter3,
|
||||
targets //
|
||||
);
|
||||
//
|
||||
// Regular ...
|
||||
Add(
|
||||
workingZone.quarter2,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
//
|
||||
// Regular ...
|
||||
Add(
|
||||
workingZone.quarter2,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// High ...
|
||||
Add(
|
||||
workingZone.quarter1,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_STRONG_HIGH:
|
||||
//
|
||||
if (isBullish)
|
||||
{
|
||||
case X121SMC_XWZ_PRIORITY_HIGH:
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.supplyZone.Lower(),
|
||||
targets //
|
||||
);
|
||||
if (isBullish)
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.supplyZone.Lower(),
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter1,
|
||||
targets //
|
||||
);
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter1,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Regular ...
|
||||
Add(
|
||||
workingZone.quarter2,
|
||||
targets //
|
||||
);
|
||||
//
|
||||
// Regular ...
|
||||
Add(
|
||||
workingZone.quarter2,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// High ...
|
||||
Add(
|
||||
workingZone.quarter3,
|
||||
targets //
|
||||
);
|
||||
//
|
||||
// High ...
|
||||
Add(
|
||||
workingZone.quarter3,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.demandZone.Upper(),
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter3,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Regular ...
|
||||
Add(
|
||||
workingZone.quarter2,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// High ...
|
||||
Add(
|
||||
workingZone.quarter1,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_STRONG_HIGH:
|
||||
//
|
||||
// Strong High ...
|
||||
Add(
|
||||
workingZone.demandZone.Upper(),
|
||||
targets //
|
||||
);
|
||||
if (isBullish)
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.supplyZone.Lower(),
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter1,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Regular ...
|
||||
Add(
|
||||
workingZone.quarter2,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// High ...
|
||||
Add(
|
||||
workingZone.quarter3,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Strong High ...
|
||||
Add(
|
||||
workingZone.demandZone.Upper(),
|
||||
targets //
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.demandZone.Upper(),
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter3,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Regular ...
|
||||
Add(
|
||||
workingZone.quarter2,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// High ...
|
||||
Add(
|
||||
workingZone.quarter1,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Strong High ...
|
||||
Add(
|
||||
workingZone.supplyZone.Lower(),
|
||||
targets //
|
||||
);
|
||||
}
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Weak ...
|
||||
Add(
|
||||
workingZone.demandZone.Upper(),
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Low ...
|
||||
Add(
|
||||
workingZone.quarter3,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Regular ...
|
||||
Add(
|
||||
workingZone.quarter2,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// High ...
|
||||
Add(
|
||||
workingZone.quarter1,
|
||||
targets //
|
||||
);
|
||||
|
||||
//
|
||||
// Strong High ...
|
||||
Add(
|
||||
workingZone.supplyZone.Lower(),
|
||||
targets //
|
||||
);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -967,6 +974,12 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
if (!useGuards)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
Clean(guards);
|
||||
|
||||
@@ -1653,6 +1666,9 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
*/
|
||||
void Init()
|
||||
{
|
||||
//
|
||||
useGuards = true;
|
||||
useQuarterTargets = true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user