last ...
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -44,6 +44,7 @@ enum ENUM_XCHARTOBJECTS
|
||||
X_SIGNAL_OBJ = 8860,
|
||||
X_TREND_OBJ = 8861,
|
||||
X_XPVPIVOT_OBJ = 8862,
|
||||
X_OHCL_OBJ = 8863,
|
||||
//
|
||||
// Structured ...
|
||||
X_TRADE_DAY_OBJ = 9860,
|
||||
@@ -76,7 +77,10 @@ enum ENUM_X_CHART_IDS
|
||||
X_ENTRY,
|
||||
X_TARGET,
|
||||
X_SL,
|
||||
X_TP
|
||||
X_TP,
|
||||
X_BAR_H_SHW,
|
||||
X_BAR_BDY,
|
||||
X_BAR_L_SHW,
|
||||
};
|
||||
|
||||
string ToString(ENUM_X_CHART_IDS value)
|
||||
@@ -126,6 +130,23 @@ string ToString(ENUM_X_CHART_IDS value)
|
||||
case X_TP:
|
||||
result = "TP";
|
||||
break;
|
||||
|
||||
//
|
||||
case X_BAR_H_SHW:
|
||||
result = "HSHW";
|
||||
break;
|
||||
|
||||
//
|
||||
case X_BAR_BDY:
|
||||
result = "BODY";
|
||||
break;
|
||||
|
||||
//
|
||||
case X_BAR_L_SHW:
|
||||
result = "LSHW";
|
||||
break;
|
||||
|
||||
//
|
||||
}
|
||||
|
||||
//
|
||||
@@ -2216,6 +2237,292 @@ class XCXPVPivotObject : public XCBaseObject
|
||||
CChartObjectTrend mTrend;
|
||||
};
|
||||
|
||||
class XCOHCLObject : public XCBaseObject
|
||||
{
|
||||
//
|
||||
public:
|
||||
//
|
||||
|
||||
/**
|
||||
* Creator ...
|
||||
*
|
||||
* @param chart_id: Long, Specified Chart ID ...
|
||||
* @param window: Integer, Specified Chart Window ID ...
|
||||
* @param pivot: XPVPivot instance ...
|
||||
* @param prefix: String ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool Create(
|
||||
long chart_id,
|
||||
int window,
|
||||
XOHCL &bar,
|
||||
datetime to,
|
||||
string prefix = NULL //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result = bar.IsValid() &&
|
||||
IsValid(to);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
string name = bar.GetTag();
|
||||
if (IsValid(prefix))
|
||||
{
|
||||
name = prefix + "_" + name;
|
||||
}
|
||||
string nameMD5 = ToMD5(name);
|
||||
|
||||
//
|
||||
// High Shadow ...
|
||||
string hShadowName = ToString(X_BAR_H_SHW) + "_" + nameMD5;
|
||||
|
||||
//
|
||||
result = mHighShadowRect.Create(
|
||||
chart_id,
|
||||
hShadowName,
|
||||
window,
|
||||
bar.time,
|
||||
bar.high,
|
||||
to,
|
||||
bar.GetUp() //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Body ...
|
||||
string bodyName = ToString(X_BAR_BDY) + "_" + nameMD5;
|
||||
|
||||
//
|
||||
result = mBodyRect.Create(
|
||||
chart_id,
|
||||
bodyName,
|
||||
window,
|
||||
bar.time,
|
||||
bar.GetUp(),
|
||||
to,
|
||||
bar.GetDown() //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
mHighShadowRect.Delete();
|
||||
mHighShadowRect.Detach();
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Low Shadow ...
|
||||
string lShadowName = ToString(X_BAR_L_SHW) + "_" + nameMD5;
|
||||
|
||||
//
|
||||
result = mLowShadowRect.Create(
|
||||
chart_id,
|
||||
lShadowName,
|
||||
window,
|
||||
bar.time,
|
||||
bar.GetDown(),
|
||||
to,
|
||||
bar.low //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
mBodyRect.Delete();
|
||||
mBodyRect.Detach();
|
||||
mHighShadowRect.Delete();
|
||||
mHighShadowRect.Detach();
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
if (result)
|
||||
{
|
||||
ObjName(name);
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Getter(s) / Setter(s) ...
|
||||
|
||||
/**
|
||||
* Set Pivot Width ...
|
||||
*
|
||||
* @param value: Integer ...
|
||||
*/
|
||||
void HighShadowWidth(int value)
|
||||
{
|
||||
//
|
||||
if (value < 1)
|
||||
{
|
||||
value = 1;
|
||||
}
|
||||
|
||||
//
|
||||
mHighShadowRect.Width(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Pivot Color ...
|
||||
*
|
||||
* @param value: Color ...
|
||||
*/
|
||||
void HighShadowColor(color value)
|
||||
{
|
||||
mHighShadowRect.Color(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Pivot Style ...
|
||||
*
|
||||
* @param value: ENUM_LINE_STYLE member ...
|
||||
*/
|
||||
void HighShadowStyle(ENUM_LINE_STYLE value)
|
||||
{
|
||||
mHighShadowRect.Style(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Pivot Fill ...
|
||||
*
|
||||
* @param value: Boolean ...
|
||||
*/
|
||||
void HighShadowFill(bool value)
|
||||
{
|
||||
mHighShadowRect.Fill(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Pivot Width ...
|
||||
*
|
||||
* @param value: Integer ...
|
||||
*/
|
||||
void BodyWidth(int value)
|
||||
{
|
||||
//
|
||||
if (value < 1)
|
||||
{
|
||||
value = 1;
|
||||
}
|
||||
|
||||
//
|
||||
mBodyRect.Width(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Pivot Color ...
|
||||
*
|
||||
* @param value: Color ...
|
||||
*/
|
||||
void BodyColor(color value)
|
||||
{
|
||||
mBodyRect.Color(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Pivot Style ...
|
||||
*
|
||||
* @param value: ENUM_LINE_STYLE member ...
|
||||
*/
|
||||
void BodyStyle(ENUM_LINE_STYLE value)
|
||||
{
|
||||
mBodyRect.Style(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Pivot Fill ...
|
||||
*
|
||||
* @param value: Boolean ...
|
||||
*/
|
||||
void BodyFill(bool value)
|
||||
{
|
||||
mBodyRect.Fill(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Pivot Width ...
|
||||
*
|
||||
* @param value: Integer ...
|
||||
*/
|
||||
void LowShadowWidth(int value)
|
||||
{
|
||||
//
|
||||
if (value < 1)
|
||||
{
|
||||
value = 1;
|
||||
}
|
||||
|
||||
//
|
||||
mLowShadowRect.Width(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Pivot Color ...
|
||||
*
|
||||
* @param value: Color ...
|
||||
*/
|
||||
void LowShadowColor(color value)
|
||||
{
|
||||
mLowShadowRect.Color(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Pivot Style ...
|
||||
*
|
||||
* @param value: ENUM_LINE_STYLE member ...
|
||||
*/
|
||||
void LowShadowStyle(ENUM_LINE_STYLE value)
|
||||
{
|
||||
mLowShadowRect.Style(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Pivot Fill ...
|
||||
*
|
||||
* @param value: Boolean ...
|
||||
*/
|
||||
void LowShadowFill(bool value)
|
||||
{
|
||||
mLowShadowRect.Fill(value);
|
||||
}
|
||||
|
||||
//
|
||||
// Virtual ...
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual ENUM_XCHARTOBJECTS Type()
|
||||
{
|
||||
return X_OHCL_OBJ;
|
||||
}
|
||||
|
||||
//
|
||||
private:
|
||||
//
|
||||
|
||||
//
|
||||
// Props ...
|
||||
CChartObjectRectangle mHighShadowRect;
|
||||
CChartObjectRectangle mBodyRect;
|
||||
CChartObjectRectangle mLowShadowRect;
|
||||
};
|
||||
|
||||
//
|
||||
// Zone Ticks ...
|
||||
|
||||
@@ -2455,7 +2762,7 @@ class XCTickZoneObject : public XCBaseObject
|
||||
}
|
||||
|
||||
//
|
||||
int fromToDiff = ((int) to - (int) from);
|
||||
int fromToDiff = ((int)to - (int)from);
|
||||
datetime labelsDate = (datetime)((int)to - (fromToDiff / 5));
|
||||
|
||||
//
|
||||
|
||||
@@ -123,6 +123,196 @@ class XCPOIDrawer : public XCBase
|
||||
mSubWindowIdentification = value;
|
||||
}
|
||||
|
||||
//
|
||||
// XOHCL ...
|
||||
|
||||
/**
|
||||
* Get Bar Width ...
|
||||
*
|
||||
* @return ( int )
|
||||
*/
|
||||
int BarWidth()
|
||||
{
|
||||
return mBarWidth;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Bar Width ...
|
||||
*
|
||||
* @param value: Integer ...
|
||||
*/
|
||||
void BarWidth(int value)
|
||||
{
|
||||
//
|
||||
if (value < 0)
|
||||
{
|
||||
value = 0;
|
||||
}
|
||||
|
||||
//
|
||||
mBarWidth = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Bar Bullish Color ...
|
||||
*
|
||||
* @return ( color )
|
||||
*/
|
||||
color BarBullishColor()
|
||||
{
|
||||
return mBarBullishColor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Bar Bullish Color ...
|
||||
*
|
||||
* @param value: Color ...
|
||||
*/
|
||||
void BarBullishColor(color value)
|
||||
{
|
||||
mBarBullishColor = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Bar Bearish Color ...
|
||||
*
|
||||
* @return ( color )
|
||||
*/
|
||||
color BarBearishColor()
|
||||
{
|
||||
return mBarBearishColor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Bar Bearish Color ...
|
||||
*
|
||||
* @param value: Color ...
|
||||
*/
|
||||
void BarBearishColor(color value)
|
||||
{
|
||||
mBarBearishColor = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Fill Bar High Shadow State ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool BarFillHighShadow()
|
||||
{
|
||||
return mBarFillHighShadow;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Fill Bar High Shadow State ...
|
||||
*
|
||||
* @param value: Boolean ...
|
||||
*/
|
||||
void BarFillHighShadow(bool value)
|
||||
{
|
||||
mBarFillHighShadow = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Bar High Shadow Style ...
|
||||
*
|
||||
* @return ( ENUM_LINE_STYLE )
|
||||
*/
|
||||
ENUM_LINE_STYLE BarHighShadowStyle()
|
||||
{
|
||||
return mBarHighShadowStyle;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Bar High Shadow Style ...
|
||||
*
|
||||
* @param value: ENUM_LINE_STYLE member ...
|
||||
*/
|
||||
void BarHighShadowStyle(ENUM_LINE_STYLE value)
|
||||
{
|
||||
mBarHighShadowStyle = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Fill Bar Body State ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool BarFillBody()
|
||||
{
|
||||
return mBarFillBody;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Fill Bar Body State ...
|
||||
*
|
||||
* @param value: Boolean ...
|
||||
*/
|
||||
void BarFillBody(bool value)
|
||||
{
|
||||
mBarFillBody = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Bar Body Style ...
|
||||
*
|
||||
* @return ( ENUM_LINE_STYLE )
|
||||
*/
|
||||
ENUM_LINE_STYLE BarBodyStyle()
|
||||
{
|
||||
return mBarBodyStyle;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Bar Body Style ...
|
||||
*
|
||||
* @param value: ENUM_LINE_STYLE member ...
|
||||
*/
|
||||
void BarBodyStyle(ENUM_LINE_STYLE value)
|
||||
{
|
||||
mBarBodyStyle = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Fill Bar Low Show State ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool BarFillLowShadow()
|
||||
{
|
||||
return mBarFillLowShadow;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Fill Bar Low Show State ...
|
||||
*
|
||||
* @param value: Boolean ...
|
||||
*/
|
||||
void BarFillLowShadow(bool value)
|
||||
{
|
||||
mBarFillLowShadow = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Bar Low Shadow Style ...
|
||||
*
|
||||
* @return ( ENUM_LINE_STYLE )
|
||||
*/
|
||||
ENUM_LINE_STYLE BarLowShadowStyle()
|
||||
{
|
||||
return mBarLowShadowStyle;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Bar Low Shadow Style ...
|
||||
*
|
||||
* @param value: ENUM_LINE_STYLE member ...
|
||||
*/
|
||||
void BarLowShadowStyle(ENUM_LINE_STYLE value)
|
||||
{
|
||||
mBarLowShadowStyle = value;
|
||||
}
|
||||
|
||||
//
|
||||
// Swing Low ...
|
||||
|
||||
@@ -1285,6 +1475,17 @@ class XCPOIDrawer : public XCBase
|
||||
ChartIdentification(0);
|
||||
SubWindowIdentification(0);
|
||||
|
||||
//
|
||||
BarWidth(1);
|
||||
BarBearishColor(clrRed);
|
||||
BarBullishColor(clrLime);
|
||||
BarFillBody(false);
|
||||
BarFillHighShadow(false);
|
||||
BarFillLowShadow(false);
|
||||
BarBodyStyle(STYLE_DOT);
|
||||
BarLowShadowStyle(STYLE_DOT);
|
||||
BarHighShadowStyle(STYLE_DOT);
|
||||
|
||||
//
|
||||
int arrowWidth = 1;
|
||||
|
||||
@@ -2550,6 +2751,113 @@ class XCPOIDrawer : public XCBase
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Bar Object ...
|
||||
*
|
||||
* @param bar: XOHCL instance Reference ..
|
||||
* @param object: XCOHCLObject pointer Reference ..
|
||||
* @param to: Datetime ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool CreateBar(
|
||||
XOHCL &bar,
|
||||
XCOHCLObject *&object,
|
||||
datetime to = NULL //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
object = NULL;
|
||||
|
||||
//
|
||||
result = bar.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
if (!IsValid(to))
|
||||
{
|
||||
to = bar.time + PeriodSeconds(bar.period);
|
||||
}
|
||||
|
||||
//
|
||||
string prefix = Prefix();
|
||||
long chartID = ChartIdentification();
|
||||
int window = SubWindowIdentification();
|
||||
|
||||
//
|
||||
int width = BarWidth();
|
||||
|
||||
//
|
||||
color bullishColor = BarBullishColor();
|
||||
color bearishColor = BarBearishColor();
|
||||
|
||||
//
|
||||
bool fillBody = BarFillBody();
|
||||
bool fillHighShadow = BarFillHighShadow();
|
||||
bool fillLowShadow = BarFillLowShadow();
|
||||
|
||||
//
|
||||
ENUM_LINE_STYLE bodyStyle = BarBodyStyle();
|
||||
ENUM_LINE_STYLE highShadowStyle = BarHighShadowStyle();
|
||||
ENUM_LINE_STYLE lowShadowStyle = BarLowShadowStyle();
|
||||
|
||||
//
|
||||
object = new XCOHCLObject();
|
||||
result = object.Create(
|
||||
chartID,
|
||||
window,
|
||||
bar,
|
||||
to,
|
||||
prefix //
|
||||
);
|
||||
if (result)
|
||||
{
|
||||
//
|
||||
// Apply Styling ...
|
||||
|
||||
//
|
||||
object.BodyWidth(width);
|
||||
object.LowShadowWidth(width);
|
||||
object.HighShadowWidth(width);
|
||||
|
||||
//
|
||||
object.BodyStyle(bodyStyle);
|
||||
object.LowShadowStyle(lowShadowStyle);
|
||||
object.HighShadowStyle(highShadowStyle);
|
||||
|
||||
//
|
||||
bool isBullish = bar.IsBullish();
|
||||
if (isBullish)
|
||||
{
|
||||
//
|
||||
object.BodyColor(bullishColor);
|
||||
object.LowShadowColor(bullishColor);
|
||||
object.HighShadowColor(bullishColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
object.BodyColor(bearishColor);
|
||||
object.LowShadowColor(bearishColor);
|
||||
object.HighShadowColor(bearishColor);
|
||||
}
|
||||
|
||||
//
|
||||
object.BodyFill(fillBody);
|
||||
object.HighShadowFill(fillHighShadow);
|
||||
object.LowShadowFill(fillLowShadow);
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Draw Specified Signal ...
|
||||
*
|
||||
@@ -3300,6 +3608,18 @@ class XCPOIDrawer : public XCBase
|
||||
long mChartIdentification; // Chart Id ...
|
||||
int mSubWindowIdentification; // Sub Window ...
|
||||
|
||||
//
|
||||
// XOHCL ...
|
||||
int mBarWidth; // Bar Width ...
|
||||
color mBarBullishColor; // Bar Bullish Color ...
|
||||
color mBarBearishColor; // Bar Bearish Color ...
|
||||
bool mBarFillHighShadow; // Fill Bar High Shadow ...
|
||||
ENUM_LINE_STYLE mBarHighShadowStyle; // Bar High Shadow Style ...
|
||||
bool mBarFillBody; // Fill Bar Body ...
|
||||
ENUM_LINE_STYLE mBarBodyStyle; // Bar Body Style ...
|
||||
bool mBarFillLowShadow; // Fill Bar Low Show ...
|
||||
ENUM_LINE_STYLE mBarLowShadowStyle; // Bar Low Shadow Style ...
|
||||
|
||||
//
|
||||
// Swing Low ...
|
||||
int mSwingLowWidth; // Swing Low Width ...
|
||||
|
||||
Reference in New Issue
Block a user