last ...
This commit is contained in:
@@ -538,64 +538,9 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
result = hasStartZone;
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
Clean(visionPoiEvents);
|
||||
Clean(analysePoiEvents);
|
||||
Clean(decisionPoiEvents);
|
||||
Clean(visionCycleEvents);
|
||||
Clean(analyseCycleEvents);
|
||||
Clean(decisionCycleEvents);
|
||||
Clean(consolidationPoiEvents);
|
||||
Clean(consolidationCycleEvents);
|
||||
|
||||
//
|
||||
visionState.Clean();
|
||||
analyseState.Clean();
|
||||
decisionZBar.Clean();
|
||||
decisionCBar.Clean();
|
||||
decisionPBar.Clean();
|
||||
decisionState.Clean();
|
||||
visionConditions.Clean();
|
||||
analyseConditions.Clean();
|
||||
visionXConditions.Clean();
|
||||
consolidationState.Clean();
|
||||
decisionConditions.Clean();
|
||||
analyseXConditions.Clean();
|
||||
decisionXConditions.Clean();
|
||||
consolidationConditions.Clean();
|
||||
consolidationXConditions.Clean();
|
||||
|
||||
//
|
||||
RemoveDraws();
|
||||
RemoveWorkingZoneDraws();
|
||||
|
||||
//
|
||||
mConditions.Clean();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
mConditions.UpdateTo(cTime);
|
||||
|
||||
//
|
||||
// Detect Start Zone Conditions ...
|
||||
bool hasCondition = mConditions
|
||||
.startZone
|
||||
.HasCondition(
|
||||
decisionState,
|
||||
zIndex,
|
||||
period //
|
||||
);
|
||||
ENUM_X_DIRECTION conditionsDir = mConditions
|
||||
.startZone
|
||||
.GetDirection();
|
||||
|
||||
//
|
||||
// Detect Condition Priority ...
|
||||
ENUM_X121SMC_XWZ_PRIORITY bullishPriority;
|
||||
@@ -617,8 +562,77 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
? canLookupShort
|
||||
: false;
|
||||
|
||||
//
|
||||
bool hasCondition = false;
|
||||
ENUM_X_DIRECTION conditionsDir = X_DIRECTION_NONE;
|
||||
|
||||
//
|
||||
// Detect Start Zone Based Conditions ...
|
||||
if (hasStartZone)
|
||||
{
|
||||
//
|
||||
// Detect Start Zone Conditions ...
|
||||
hasCondition = mConditions
|
||||
.startZone
|
||||
.HasCondition(
|
||||
decisionState,
|
||||
zIndex,
|
||||
NULL // period //
|
||||
);
|
||||
conditionsDir = mConditions
|
||||
.startZone
|
||||
.GetDirection();
|
||||
}
|
||||
|
||||
//
|
||||
RemoveWorkingZoneDraws();
|
||||
DrawWorkingZone(mConditions, visionCycleHelper.mPOIDrawer);
|
||||
|
||||
//
|
||||
// Detect Supply and Deman Zone Based Conditions ...
|
||||
if (!hasCondition)
|
||||
{
|
||||
//
|
||||
bool isPriceInsideSupplyZone =
|
||||
bearishPriority == X121SMC_XWZ_PRIORITY_STRONG_HIGH;
|
||||
|
||||
//
|
||||
bool isPriceInsideDemandZone =
|
||||
bullishPriority == X121SMC_XWZ_PRIORITY_STRONG_HIGH;
|
||||
|
||||
//
|
||||
bool isPriceInsideSupDem = isPriceInsideSupplyZone ||
|
||||
isPriceInsideDemandZone;
|
||||
if (isPriceInsideSupDem)
|
||||
{
|
||||
//
|
||||
hasCondition = mConditions.HasWorkingZoneConditions(
|
||||
conditionsDir,
|
||||
decisionState //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
isBullish = IsBullish(conditionsDir);
|
||||
isBearish = IsBearish(conditionsDir);
|
||||
|
||||
//
|
||||
double reward;
|
||||
double amountPercent;
|
||||
ENUM_X121SMC_XWZ_PRIORITY priority =
|
||||
isBullish
|
||||
? bullishPriority
|
||||
: bearishPriority;
|
||||
bool hasRewardAmount = CalculateRiskReward(
|
||||
priority,
|
||||
reward,
|
||||
amountPercent //
|
||||
);
|
||||
|
||||
//
|
||||
result = hasCondition &&
|
||||
hasRewardAmount &&
|
||||
isPriorityPassed &&
|
||||
trend == conditionsDir;
|
||||
if (!result)
|
||||
@@ -658,14 +672,60 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
}
|
||||
|
||||
//
|
||||
// Apply Traget ...
|
||||
switch (priority)
|
||||
{
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_STRONG_HIGH:
|
||||
//
|
||||
target =
|
||||
isBullish
|
||||
? mConditions.workingZone.quarter3
|
||||
: mConditions.workingZone.quarter1;
|
||||
break;
|
||||
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_HIGH:
|
||||
//
|
||||
target =
|
||||
isBullish
|
||||
? mConditions.workingZone.quarter3
|
||||
: mConditions.workingZone.quarter1;
|
||||
break;
|
||||
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_REGULAR:
|
||||
//
|
||||
target =
|
||||
isBullish
|
||||
? mConditions.workingZone.quarter2
|
||||
: mConditions.workingZone.quarter2;
|
||||
break;
|
||||
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_LOW:
|
||||
//
|
||||
target =
|
||||
isBullish
|
||||
? mConditions.workingZone.quarter1
|
||||
: mConditions.workingZone.quarter3;
|
||||
break;
|
||||
|
||||
//
|
||||
default:
|
||||
target = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
mConditions.reward = reward;
|
||||
mConditions.target = target;
|
||||
mConditions.setupTime = cTime;
|
||||
mConditions.priority = priority;
|
||||
mConditions.dir = conditionsDir;
|
||||
mConditions.amountPercent = amountPercent;
|
||||
mConditions.pivot = mConditions.GetExit();
|
||||
mConditions.point = mConditions.GetPoint();
|
||||
isBullish = mConditions.startZone.IsBullish();
|
||||
isBearish = mConditions.startZone.IsBearish();
|
||||
result = isBullish ||
|
||||
isBearish;
|
||||
|
||||
//
|
||||
mConditions.UpdateTo(cTime);
|
||||
@@ -869,18 +929,16 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
//
|
||||
isBullish =
|
||||
//
|
||||
isBullish
|
||||
// &&
|
||||
// isPointBreaked
|
||||
isBullish &&
|
||||
isPointBreaked
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
isBearish =
|
||||
//
|
||||
isBearish
|
||||
// &&
|
||||
// isPointBreaked
|
||||
isBearish &&
|
||||
isPointBreaked
|
||||
//
|
||||
;
|
||||
|
||||
@@ -939,7 +997,7 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
|
||||
//
|
||||
double iAtr = decisionXConditions.atrBuffer[1];
|
||||
iAtr *= 1.5;
|
||||
iAtr *= 2;
|
||||
|
||||
//
|
||||
double slsMin = GetMin(sls);
|
||||
@@ -2701,30 +2759,37 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
switch (priority)
|
||||
{
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_HIGH:
|
||||
case X121SMC_XWZ_PRIORITY_STRONG_HIGH:
|
||||
//
|
||||
reward = 6;
|
||||
amountPercent = 2;
|
||||
break;
|
||||
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_HIGH:
|
||||
//
|
||||
reward = 4;
|
||||
amountPercent = 2;
|
||||
break;
|
||||
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_REGULAR:
|
||||
//
|
||||
reward = 6;
|
||||
reward = 3;
|
||||
amountPercent = 1.5;
|
||||
break;
|
||||
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_LOW:
|
||||
//
|
||||
reward = 4;
|
||||
reward = 2;
|
||||
amountPercent = 1;
|
||||
break;
|
||||
|
||||
//
|
||||
case X121SMC_XWZ_PRIORITY_WEAK:
|
||||
//
|
||||
reward = 2;
|
||||
reward = 1;
|
||||
amountPercent = 0.5;
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user