last ...
This commit is contained in:
@@ -3810,6 +3810,526 @@ class XCPOIDrawer : public XCBase
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
int DrawOrderBlock(
|
||||
XCOrderBlock *zone,
|
||||
XCBaseObject *&objects[],
|
||||
//
|
||||
bool drawStartedBar = true,
|
||||
bool drawActivatedBar = true,
|
||||
bool drawBreakedBar = true,
|
||||
bool drawWorkedBar = true,
|
||||
//
|
||||
int widthStartedBar = 1,
|
||||
color clrStartedBar = clrYellow,
|
||||
ENUM_LINE_STYLE styleStartedBar = STYLE_SOLID,
|
||||
//
|
||||
int widthActivatedBar = 1,
|
||||
color clrActivatedBar = clrLime,
|
||||
ENUM_LINE_STYLE styleActivatedBar = STYLE_SOLID,
|
||||
//
|
||||
int widthBreakedBar = 1,
|
||||
color clrBreakedBar = clrRed,
|
||||
ENUM_LINE_STYLE styleBreakedBar = STYLE_SOLID,
|
||||
//
|
||||
int widthWorkedBar = 1,
|
||||
color clrWorkedBar = clrAqua,
|
||||
ENUM_LINE_STYLE styleWorkedBar = STYLE_SOLID
|
||||
//
|
||||
)
|
||||
{
|
||||
//
|
||||
int result = 0;
|
||||
|
||||
//
|
||||
Clean(objects);
|
||||
|
||||
//
|
||||
if (zone == NULL ||
|
||||
!zone.IsValid())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
ENUM_X_DIRECTION zoneDir = zone.GetDirection();
|
||||
|
||||
//
|
||||
// Started Bar ...
|
||||
XOHCL startedBar;
|
||||
bool isBodyOut = false;
|
||||
bool isStarted = zone
|
||||
.IsStarted(
|
||||
zoneDir,
|
||||
startedBar,
|
||||
isBodyOut //
|
||||
);
|
||||
if (isStarted)
|
||||
{
|
||||
//
|
||||
datetime iBarTo = startedBar.NextAt();
|
||||
|
||||
//
|
||||
XCOHCLObject *iBarObj;
|
||||
bool isCreated = CreateBar(
|
||||
startedBar,
|
||||
iBarObj,
|
||||
iBarTo //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
//
|
||||
iBarObj.BodyWidth(widthStartedBar);
|
||||
iBarObj.LowShadowWidth(widthStartedBar);
|
||||
iBarObj.HighShadowWidth(widthStartedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyStyle(styleStartedBar);
|
||||
iBarObj.LowShadowStyle(styleStartedBar);
|
||||
iBarObj.HighShadowStyle(styleStartedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyColor(clrStartedBar);
|
||||
iBarObj.LowShadowColor(clrStartedBar);
|
||||
iBarObj.HighShadowColor(clrStartedBar);
|
||||
|
||||
//
|
||||
Add(
|
||||
(XCBaseObject *)iBarObj,
|
||||
objects //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Activated Bar ...
|
||||
XOHCL activatedBar;
|
||||
bool isBodyIn = false;
|
||||
bool isActivated = zone
|
||||
.IsActivated(
|
||||
zoneDir,
|
||||
activatedBar,
|
||||
isBodyIn,
|
||||
false // Force Body Out Started ...
|
||||
);
|
||||
if (isActivated)
|
||||
{
|
||||
//
|
||||
datetime iBarTo = activatedBar.NextAt();
|
||||
|
||||
//
|
||||
XCOHCLObject *iBarObj;
|
||||
bool isCreated = CreateBar(
|
||||
activatedBar,
|
||||
iBarObj,
|
||||
iBarTo //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
//
|
||||
iBarObj.BodyWidth(widthActivatedBar);
|
||||
iBarObj.LowShadowWidth(widthActivatedBar);
|
||||
iBarObj.HighShadowWidth(widthActivatedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyStyle(styleActivatedBar);
|
||||
iBarObj.LowShadowStyle(styleActivatedBar);
|
||||
iBarObj.HighShadowStyle(styleActivatedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyColor(clrActivatedBar);
|
||||
iBarObj.LowShadowColor(clrActivatedBar);
|
||||
iBarObj.HighShadowColor(clrActivatedBar);
|
||||
|
||||
//
|
||||
Add(
|
||||
(XCBaseObject *)iBarObj,
|
||||
objects //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Breaked Bar ...
|
||||
XOHCL breakedBar;
|
||||
isBodyOut = false;
|
||||
bool isBreaked = zone
|
||||
.IsBreaked(
|
||||
zoneDir,
|
||||
breakedBar,
|
||||
isBodyOut,
|
||||
false, // Ignore Start ...
|
||||
false // Force Body Out Started ...
|
||||
);
|
||||
if (isBreaked)
|
||||
{
|
||||
//
|
||||
datetime iBarTo = breakedBar.NextAt();
|
||||
|
||||
//
|
||||
XCOHCLObject *iBarObj;
|
||||
bool isCreated = CreateBar(
|
||||
breakedBar,
|
||||
iBarObj,
|
||||
iBarTo //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
//
|
||||
iBarObj.BodyWidth(widthBreakedBar);
|
||||
iBarObj.LowShadowWidth(widthBreakedBar);
|
||||
iBarObj.HighShadowWidth(widthBreakedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyStyle(styleBreakedBar);
|
||||
iBarObj.LowShadowStyle(styleBreakedBar);
|
||||
iBarObj.HighShadowStyle(styleBreakedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyColor(clrBreakedBar);
|
||||
iBarObj.LowShadowColor(clrBreakedBar);
|
||||
iBarObj.HighShadowColor(clrBreakedBar);
|
||||
|
||||
//
|
||||
Add(
|
||||
(XCBaseObject *)iBarObj,
|
||||
objects //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Worked Bar ...
|
||||
XOHCL workedBar;
|
||||
isBodyOut = false;
|
||||
bool isWorked = zone
|
||||
.IsWorked(
|
||||
zoneDir,
|
||||
workedBar,
|
||||
isBodyOut,
|
||||
false, // Ignore Activation ...
|
||||
false, // Force Body Out Started ...
|
||||
false // Force Body In Activated ...
|
||||
);
|
||||
if (isWorked)
|
||||
{
|
||||
//
|
||||
datetime iBarTo = workedBar.NextAt();
|
||||
|
||||
//
|
||||
XCOHCLObject *iBarObj;
|
||||
bool isCreated = CreateBar(
|
||||
workedBar,
|
||||
iBarObj,
|
||||
iBarTo //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
//
|
||||
iBarObj.BodyWidth(widthWorkedBar);
|
||||
iBarObj.LowShadowWidth(widthWorkedBar);
|
||||
iBarObj.HighShadowWidth(widthWorkedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyStyle(styleWorkedBar);
|
||||
iBarObj.LowShadowStyle(styleWorkedBar);
|
||||
iBarObj.HighShadowStyle(styleWorkedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyColor(clrWorkedBar);
|
||||
iBarObj.LowShadowColor(clrWorkedBar);
|
||||
iBarObj.HighShadowColor(clrWorkedBar);
|
||||
|
||||
//
|
||||
Add(
|
||||
(XCBaseObject *)iBarObj,
|
||||
objects //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
XCBaseObject *iObj;
|
||||
bool isCreated = CreateOrderBlock(
|
||||
zone,
|
||||
iObj //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
(XCBaseObject *)iObj,
|
||||
objects //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
result = ArraySize(objects);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
int DrawFairValueGap(
|
||||
XCFVG *zone,
|
||||
XCBaseObject *&objects[],
|
||||
//
|
||||
bool drawStartedBar = true,
|
||||
bool drawActivatedBar = true,
|
||||
bool drawBreakedBar = true,
|
||||
bool drawWorkedBar = true,
|
||||
//
|
||||
int widthStartedBar = 1,
|
||||
color clrStartedBar = clrYellow,
|
||||
ENUM_LINE_STYLE styleStartedBar = STYLE_SOLID,
|
||||
//
|
||||
int widthActivatedBar = 1,
|
||||
color clrActivatedBar = clrLime,
|
||||
ENUM_LINE_STYLE styleActivatedBar = STYLE_SOLID,
|
||||
//
|
||||
int widthBreakedBar = 1,
|
||||
color clrBreakedBar = clrRed,
|
||||
ENUM_LINE_STYLE styleBreakedBar = STYLE_SOLID,
|
||||
//
|
||||
int widthWorkedBar = 1,
|
||||
color clrWorkedBar = clrAqua,
|
||||
ENUM_LINE_STYLE styleWorkedBar = STYLE_SOLID
|
||||
//
|
||||
)
|
||||
{
|
||||
//
|
||||
int result = 0;
|
||||
|
||||
//
|
||||
Clean(objects);
|
||||
|
||||
//
|
||||
if (zone == NULL ||
|
||||
!zone.IsValid())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
ENUM_X_DIRECTION zoneDir = zone.GetDirection();
|
||||
|
||||
//
|
||||
// Started Bar ...
|
||||
XOHCL startedBar;
|
||||
bool isBodyOut = false;
|
||||
bool isStarted = zone
|
||||
.IsStarted(
|
||||
zoneDir,
|
||||
startedBar,
|
||||
isBodyOut //
|
||||
);
|
||||
if (isStarted)
|
||||
{
|
||||
//
|
||||
datetime iBarTo = startedBar.NextAt();
|
||||
|
||||
//
|
||||
XCOHCLObject *iBarObj;
|
||||
bool isCreated = CreateBar(
|
||||
startedBar,
|
||||
iBarObj,
|
||||
iBarTo //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
//
|
||||
iBarObj.BodyWidth(widthStartedBar);
|
||||
iBarObj.LowShadowWidth(widthStartedBar);
|
||||
iBarObj.HighShadowWidth(widthStartedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyStyle(styleStartedBar);
|
||||
iBarObj.LowShadowStyle(styleStartedBar);
|
||||
iBarObj.HighShadowStyle(styleStartedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyColor(clrStartedBar);
|
||||
iBarObj.LowShadowColor(clrStartedBar);
|
||||
iBarObj.HighShadowColor(clrStartedBar);
|
||||
|
||||
//
|
||||
Add(
|
||||
(XCBaseObject *)iBarObj,
|
||||
objects //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Activated Bar ...
|
||||
XOHCL activatedBar;
|
||||
bool isBodyIn = false;
|
||||
bool isActivated = zone
|
||||
.IsActivated(
|
||||
zoneDir,
|
||||
activatedBar,
|
||||
isBodyIn,
|
||||
false // Force Body Out Started ...
|
||||
);
|
||||
if (isActivated)
|
||||
{
|
||||
//
|
||||
datetime iBarTo = activatedBar.NextAt();
|
||||
|
||||
//
|
||||
XCOHCLObject *iBarObj;
|
||||
bool isCreated = CreateBar(
|
||||
activatedBar,
|
||||
iBarObj,
|
||||
iBarTo //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
//
|
||||
iBarObj.BodyWidth(widthActivatedBar);
|
||||
iBarObj.LowShadowWidth(widthActivatedBar);
|
||||
iBarObj.HighShadowWidth(widthActivatedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyStyle(styleActivatedBar);
|
||||
iBarObj.LowShadowStyle(styleActivatedBar);
|
||||
iBarObj.HighShadowStyle(styleActivatedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyColor(clrActivatedBar);
|
||||
iBarObj.LowShadowColor(clrActivatedBar);
|
||||
iBarObj.HighShadowColor(clrActivatedBar);
|
||||
|
||||
//
|
||||
Add(
|
||||
(XCBaseObject *)iBarObj,
|
||||
objects //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Breaked Bar ...
|
||||
XOHCL breakedBar;
|
||||
isBodyOut = false;
|
||||
bool isBreaked = zone
|
||||
.IsBreaked(
|
||||
zoneDir,
|
||||
breakedBar,
|
||||
isBodyOut,
|
||||
false, // Ignore Start ...
|
||||
false // Force Body Out Started ...
|
||||
);
|
||||
if (isBreaked)
|
||||
{
|
||||
//
|
||||
datetime iBarTo = breakedBar.NextAt();
|
||||
|
||||
//
|
||||
XCOHCLObject *iBarObj;
|
||||
bool isCreated = CreateBar(
|
||||
breakedBar,
|
||||
iBarObj,
|
||||
iBarTo //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
//
|
||||
iBarObj.BodyWidth(widthBreakedBar);
|
||||
iBarObj.LowShadowWidth(widthBreakedBar);
|
||||
iBarObj.HighShadowWidth(widthBreakedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyStyle(styleBreakedBar);
|
||||
iBarObj.LowShadowStyle(styleBreakedBar);
|
||||
iBarObj.HighShadowStyle(styleBreakedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyColor(clrBreakedBar);
|
||||
iBarObj.LowShadowColor(clrBreakedBar);
|
||||
iBarObj.HighShadowColor(clrBreakedBar);
|
||||
|
||||
//
|
||||
Add(
|
||||
(XCBaseObject *)iBarObj,
|
||||
objects //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Worked Bar ...
|
||||
XOHCL workedBar;
|
||||
isBodyOut = false;
|
||||
bool isWorked = zone
|
||||
.IsWorked(
|
||||
zoneDir,
|
||||
workedBar,
|
||||
isBodyOut,
|
||||
false, // Ignore Activation ...
|
||||
false, // Force Body Out Started ...
|
||||
false // Force Body In Activated ...
|
||||
);
|
||||
if (isWorked)
|
||||
{
|
||||
//
|
||||
datetime iBarTo = workedBar.NextAt();
|
||||
|
||||
//
|
||||
XCOHCLObject *iBarObj;
|
||||
bool isCreated = CreateBar(
|
||||
workedBar,
|
||||
iBarObj,
|
||||
iBarTo //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
//
|
||||
iBarObj.BodyWidth(widthWorkedBar);
|
||||
iBarObj.LowShadowWidth(widthWorkedBar);
|
||||
iBarObj.HighShadowWidth(widthWorkedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyStyle(styleWorkedBar);
|
||||
iBarObj.LowShadowStyle(styleWorkedBar);
|
||||
iBarObj.HighShadowStyle(styleWorkedBar);
|
||||
|
||||
//
|
||||
iBarObj.BodyColor(clrWorkedBar);
|
||||
iBarObj.LowShadowColor(clrWorkedBar);
|
||||
iBarObj.HighShadowColor(clrWorkedBar);
|
||||
|
||||
//
|
||||
Add(
|
||||
(XCBaseObject *)iBarObj,
|
||||
objects //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
XCBaseObject *iObj;
|
||||
bool isCreated = CreateFairValueGap(
|
||||
zone,
|
||||
iObj //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
(XCBaseObject *)iObj,
|
||||
objects //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
result = ArraySize(objects);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
protected:
|
||||
//
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+1519
-1321
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -354,17 +354,17 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
||||
|
||||
//
|
||||
// Fix Signal TP Based On Working Zone ...
|
||||
double maxAllowedTP =
|
||||
hasLong
|
||||
? mXWZConditions.workingZone.upper
|
||||
: mXWZConditions.workingZone.lower;
|
||||
bool canApplyMaxAlowedTP = (hasLong &&
|
||||
signal.tp > maxAllowedTP) ||
|
||||
(!hasLong && signal.tp < maxAllowedTP);
|
||||
if (canApplyMaxAlowedTP)
|
||||
{
|
||||
signal.tp = maxAllowedTP;
|
||||
}
|
||||
// double maxAllowedTP =
|
||||
// hasLong
|
||||
// ? mXWZConditions.workingZone.upper
|
||||
// : mXWZConditions.workingZone.lower;
|
||||
// bool canApplyMaxAlowedTP = (hasLong &&
|
||||
// signal.tp > maxAllowedTP) ||
|
||||
// (!hasLong && signal.tp < maxAllowedTP);
|
||||
// if (canApplyMaxAlowedTP)
|
||||
// {
|
||||
// signal.tp = maxAllowedTP;
|
||||
// }
|
||||
|
||||
//
|
||||
// Configuring Global Protector ...
|
||||
@@ -599,13 +599,13 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
||||
{
|
||||
//
|
||||
mXWZSignalDetector.RemoveDraws();
|
||||
mXWZSignalDetector.RemoveWorkingZoneDraws();
|
||||
// mXWZSignalDetector.RemoveWorkingZoneDraws();
|
||||
|
||||
//
|
||||
mXWZSignalDetector.DrawWorkingZone(
|
||||
mXWZSignalDetector.mConditions,
|
||||
mVisionCycleHelper.mPOIDrawer //
|
||||
);
|
||||
// mXWZSignalDetector.DrawWorkingZone(
|
||||
// mXWZSignalDetector.mConditions,
|
||||
// mVisionCycleHelper.mPOIDrawer //
|
||||
// );
|
||||
|
||||
//
|
||||
mXWZSignalDetector.DrawConditions(
|
||||
@@ -619,7 +619,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
||||
{
|
||||
//
|
||||
mXWZSignalDetector.RemoveDraws();
|
||||
mXWZSignalDetector.RemoveWorkingZoneDraws();
|
||||
// mXWZSignalDetector.RemoveWorkingZoneDraws();
|
||||
|
||||
//
|
||||
int items = mXWZSignalDetector
|
||||
@@ -695,13 +695,13 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
||||
{
|
||||
//
|
||||
mXWZSignalDetector.RemoveDraws();
|
||||
mXWZSignalDetector.RemoveWorkingZoneDraws();
|
||||
// mXWZSignalDetector.RemoveWorkingZoneDraws();
|
||||
|
||||
//
|
||||
mXWZSignalDetector.DrawWorkingZone(
|
||||
mTmpConditions[i],
|
||||
mVisionCycleHelper.mPOIDrawer //
|
||||
);
|
||||
// mXWZSignalDetector.DrawWorkingZone(
|
||||
// mTmpConditions[i],
|
||||
// mVisionCycleHelper.mPOIDrawer //
|
||||
// );
|
||||
|
||||
//
|
||||
mXWZSignalDetector.DrawConditions(
|
||||
|
||||
Reference in New Issue
Block a user