last ...
This commit is contained in:
@@ -164,12 +164,14 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
double targets[];
|
||||
double reward = 0;
|
||||
XBoxZone signalBox;
|
||||
int activatedFVGIDX = 0;
|
||||
int activatedZoneIDX = 0;
|
||||
double amountPercent = 0;
|
||||
bool hasPriority = false;
|
||||
int activatedFVGIDX = -1;
|
||||
int activatedBoxIDX = -1;
|
||||
int activatedZoneIDX = -1;
|
||||
double amountPercent = -1;
|
||||
bool hasSignalBox = false;
|
||||
bool hasWaitingZones = false;
|
||||
bool hasWaitingBoxes = false;
|
||||
bool hasRewardAmount = false;
|
||||
bool isSignalBoxReversal = false;
|
||||
bool hasWorkingZoneOveralDirection = false;
|
||||
@@ -214,10 +216,14 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
.DetectOveralDirection(wzOveralDir);
|
||||
|
||||
//
|
||||
// Detect Zones and Boxes ...
|
||||
hasWaitingZones = workingZone.DetectZone(
|
||||
provider //
|
||||
);
|
||||
|
||||
//
|
||||
hasWaitingBoxes = workingZone.HasWaitingBoxes();
|
||||
|
||||
//
|
||||
// Checking Working Zone Destory or not ...
|
||||
bool isWorkingZoneDestroyed = workingZone.IsDestroyed(
|
||||
@@ -264,8 +270,7 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
//
|
||||
true, // Draw Supply Zone ...
|
||||
true, // Draw Demand Zone ...
|
||||
true, // Draw Waiting Zones ...
|
||||
true // Draw Waiting Zones Box Area ...
|
||||
true // Draw Waiting Zones ...
|
||||
//
|
||||
);
|
||||
}
|
||||
@@ -276,7 +281,9 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
|
||||
//
|
||||
// Detect Signal Box ...
|
||||
hasSignalBox =
|
||||
|
||||
//
|
||||
bool isZoneActivated =
|
||||
hasWorkingZone &&
|
||||
hasWaitingZones &&
|
||||
workingZone.IsZoneActivated(
|
||||
@@ -285,23 +292,38 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
provider,
|
||||
zIndex //
|
||||
);
|
||||
|
||||
//
|
||||
bool isBoxActivated =
|
||||
hasWorkingZone &&
|
||||
hasWaitingBoxes &&
|
||||
workingZone.IsBoxActivated(
|
||||
activatedBoxIDX,
|
||||
provider,
|
||||
zIndex //
|
||||
);
|
||||
|
||||
//
|
||||
hasSignalBox =
|
||||
isBoxActivated ||
|
||||
isZoneActivated;
|
||||
if (hasSignalBox)
|
||||
{
|
||||
//
|
||||
signalBox.Clean();
|
||||
|
||||
//
|
||||
XOBFVG iOBFVG = workingZone.waitingZones[activatedZoneIDX];
|
||||
XCFVG *activatedFVG = iOBFVG.fvgs[activatedFVGIDX];
|
||||
hasSignalBox = ToBox(
|
||||
signalBox,
|
||||
activatedFVG //
|
||||
);
|
||||
if (hasSignalBox)
|
||||
if (isZoneActivated)
|
||||
{
|
||||
//
|
||||
signalBox.to = cTime;
|
||||
signalBoxDir = signalBox.dir;
|
||||
XOBFVG iOBFVG = workingZone.waitingZones[activatedZoneIDX];
|
||||
XCFVG *activatedFVG = iOBFVG.fvgs[activatedFVGIDX];
|
||||
hasSignalBox = ToBox(
|
||||
signalBox,
|
||||
activatedFVG //
|
||||
);
|
||||
|
||||
//
|
||||
signalProvider = X121SMC_XWZ_PROVIDER_ACTIVATED_ZONE;
|
||||
|
||||
//
|
||||
@@ -326,13 +348,48 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
1 //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
iOBFVG.Clean();
|
||||
ZeroMemory(activatedFVG);
|
||||
}
|
||||
|
||||
//
|
||||
iOBFVG.Clean();
|
||||
ZeroMemory(activatedFVG);
|
||||
if (isBoxActivated)
|
||||
{
|
||||
//
|
||||
signalBox = workingZone.waitingBoxes[activatedBoxIDX];
|
||||
|
||||
//
|
||||
signalProvider = X121SMC_XWZ_PROVIDER_ACTIVATED_BOX;
|
||||
|
||||
//
|
||||
AddRef(
|
||||
signalBox,
|
||||
workingZone.unavailableBoxes //
|
||||
);
|
||||
|
||||
//
|
||||
ArrayRemove(
|
||||
workingZone.waitingBoxes,
|
||||
activatedBoxIDX,
|
||||
1 //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
if (hasSignalBox)
|
||||
{
|
||||
//
|
||||
signalBox.to = cTime;
|
||||
signalBoxDir = signalBox.dir;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
//
|
||||
// Remove Invalidate Zones ...
|
||||
if (hasWaitingZones)
|
||||
@@ -343,6 +400,16 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
hasWaitingZones = workingZone.HasWaitingZones();
|
||||
}
|
||||
|
||||
//
|
||||
// Remove InValidate Boxes ...
|
||||
if (hasWaitingBoxes)
|
||||
{
|
||||
//
|
||||
// Validate Waiting Boxes ...
|
||||
workingZone.ValidateWaitingBoxes(zIndex);
|
||||
hasWaitingBoxes = workingZone.HasWaitingBoxes();
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
@@ -413,6 +480,12 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
? signalBox.upper
|
||||
: signalBox.lower;
|
||||
|
||||
//
|
||||
double entry = GetEntry(
|
||||
signalBox.symbol,
|
||||
signalBoxDir //
|
||||
);
|
||||
|
||||
//
|
||||
double iSL = 0;
|
||||
|
||||
@@ -432,6 +505,11 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
// }
|
||||
|
||||
//
|
||||
double iAtr = provider.decisionXConditions.atrBuffer[1];
|
||||
iAtr *= 1.5;
|
||||
|
||||
//
|
||||
// Default SL ...
|
||||
iSL = pivot;
|
||||
|
||||
//
|
||||
@@ -443,19 +521,13 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
//
|
||||
// Select Condition SL ...
|
||||
|
||||
//
|
||||
double entry = GetEntry(
|
||||
signalBox.symbol,
|
||||
signalBoxDir //
|
||||
);
|
||||
|
||||
//
|
||||
double slsMin = GetMin(sls);
|
||||
double slsMax = GetMax(sls);
|
||||
|
||||
//
|
||||
double longSL = slsMin;
|
||||
double shortSL = slsMax;
|
||||
double longSL = slsMin - iAtr;
|
||||
double shortSL = slsMax + iAtr;
|
||||
|
||||
//
|
||||
sl = isBullish
|
||||
|
||||
Reference in New Issue
Block a user