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:
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user