This commit is contained in:
2025-01-01 22:04:17 +03:30
parent 574eb85107
commit faa50c55d2
8 changed files with 5962 additions and 3622 deletions
+309 -2
View File
@@ -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));
//