last ...
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#property strict
|
||||
|
||||
//
|
||||
#include "../Libraries/x-saherelm.x-pivot.analysis.lib.mq5"
|
||||
#include "../Libraries/x-saherelm.x-poi.lib.mq5"
|
||||
#include "../Libraries/x-saherelm.x-trade.lib.mq5"
|
||||
|
||||
@@ -44,6 +45,7 @@ enum ENUM_XCHARTOBJECTS
|
||||
X_SIGNAL_OBJ = 8860,
|
||||
X_OHCL_OBJ = 8863,
|
||||
X_RR_OBJ = 8864,
|
||||
X_PIVOT_OBJ = 8865,
|
||||
//
|
||||
// 9860 Custom Object ...
|
||||
};
|
||||
@@ -1438,4 +1440,391 @@ class XCBoxObject : public XCBaseObject
|
||||
CChartObjectRectangle mRect;
|
||||
};
|
||||
|
||||
/**
|
||||
* XPivotAnalysis Chart Object ...
|
||||
**/
|
||||
class XCPivotAnalysisObject : public XCBaseObject
|
||||
{
|
||||
//
|
||||
public:
|
||||
//
|
||||
|
||||
/**
|
||||
* Create Object ...
|
||||
*
|
||||
* @param chart_id: Long, Specified Chart ID ...
|
||||
* @param window: Integer, Specified Chart Window ID ...
|
||||
* @param model: XPivotAnalysis, reference model ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool Create(
|
||||
long chart_id,
|
||||
int window,
|
||||
XPivotAnalysis &model //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
result = model.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Generate Object ID ...
|
||||
string objID = model.GetObjectID();
|
||||
string upperName = "Upper_" + objID;
|
||||
string lowerName = "Lower_" + objID;
|
||||
|
||||
//
|
||||
// Extract Recent Pivots ...
|
||||
|
||||
//
|
||||
// Creating Upper ...
|
||||
result = mUpper.Create(
|
||||
chart_id,
|
||||
upperName,
|
||||
window,
|
||||
model.fromTime,
|
||||
model.peakFrom,
|
||||
model.toTime,
|
||||
model.peakTo //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Create Lower ...
|
||||
result = mLower.Create(
|
||||
chart_id,
|
||||
lowerName,
|
||||
window,
|
||||
model.fromTime,
|
||||
model.valeFrom,
|
||||
model.toTime,
|
||||
model.valeTo //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
mUpper.Detach();
|
||||
mUpper.Delete();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Support ...
|
||||
XBoxZone tmpBox;
|
||||
mSupportBox = NULL;
|
||||
if (model.HasSupportBox(tmpBox))
|
||||
{
|
||||
//
|
||||
mSupportBox = new XCBoxObject();
|
||||
mSupportBox.Create(
|
||||
chart_id,
|
||||
window,
|
||||
tmpBox.GetTag(),
|
||||
tmpBox.upper,
|
||||
tmpBox.lower,
|
||||
tmpBox.from,
|
||||
tmpBox.to //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Resistance ...
|
||||
tmpBox.Clean();
|
||||
mResistanceBox = NULL;
|
||||
if (model.HasResistanceBox(tmpBox))
|
||||
{
|
||||
//
|
||||
mResistanceBox = new XCBoxObject();
|
||||
mResistanceBox.Create(
|
||||
chart_id,
|
||||
window,
|
||||
tmpBox.GetTag(),
|
||||
tmpBox.upper,
|
||||
tmpBox.lower,
|
||||
tmpBox.from,
|
||||
tmpBox.to //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Setting Object Name ...
|
||||
if (result)
|
||||
{
|
||||
ObjName(objID);
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Virtuals ...
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual ENUM_XCHARTOBJECTS Type()
|
||||
{
|
||||
return X_PIVOT_OBJ;
|
||||
}
|
||||
|
||||
//
|
||||
// Styling ...
|
||||
|
||||
/**
|
||||
* Set Width ...
|
||||
*
|
||||
* @param value: Integer ...
|
||||
*/
|
||||
void UpperWidth(int value)
|
||||
{
|
||||
//
|
||||
if (value < 1)
|
||||
{
|
||||
value = 1;
|
||||
}
|
||||
|
||||
//
|
||||
mUpper.Width(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Color ...
|
||||
*
|
||||
* @param value: Color ...
|
||||
*/
|
||||
void UpperColor(color value)
|
||||
{
|
||||
//
|
||||
mUpper.Color(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Style ...
|
||||
*
|
||||
* @param value: ENUM_LINE_STYLE member ...
|
||||
*/
|
||||
void UpperStyle(ENUM_LINE_STYLE value)
|
||||
{
|
||||
//
|
||||
mUpper.Style(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Specified Upper Ray to Left or not ...
|
||||
*
|
||||
* @param value: bool
|
||||
*/
|
||||
void UpperRayLeft(bool value)
|
||||
{
|
||||
mUpper.RayLeft(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Specified Upper Ray to Right or not ...
|
||||
*
|
||||
* @param value: bool
|
||||
*/
|
||||
void UpperRayRight(bool value)
|
||||
{
|
||||
mUpper.RayRight(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Width ...
|
||||
*
|
||||
* @param value: Integer ...
|
||||
*/
|
||||
void LowerWidth(int value)
|
||||
{
|
||||
//
|
||||
if (value < 1)
|
||||
{
|
||||
value = 1;
|
||||
}
|
||||
|
||||
//
|
||||
mLower.Width(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Color ...
|
||||
*
|
||||
* @param value: Color ...
|
||||
*/
|
||||
void LowerColor(color value)
|
||||
{
|
||||
//
|
||||
mLower.Color(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Style ...
|
||||
*
|
||||
* @param value: ENUM_LINE_STYLE member ...
|
||||
*/
|
||||
void LowerStyle(ENUM_LINE_STYLE value)
|
||||
{
|
||||
//
|
||||
mLower.Style(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Specified Lower Ray to Left or not ...
|
||||
*
|
||||
* @param value: bool
|
||||
*/
|
||||
void LowerRayLeft(bool value)
|
||||
{
|
||||
mLower.RayLeft(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Specified Lower Ray to Right or not ...
|
||||
*
|
||||
* @param value: bool
|
||||
*/
|
||||
void LowerRayRight(bool value)
|
||||
{
|
||||
mLower.RayRight(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Width ...
|
||||
*
|
||||
* @param value: Integer ...
|
||||
*/
|
||||
void SupportWidth(int value)
|
||||
{
|
||||
//
|
||||
if (value < 1)
|
||||
{
|
||||
value = 1;
|
||||
}
|
||||
|
||||
//
|
||||
if (mSupportBox == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
mSupportBox.Width(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Color ...
|
||||
*
|
||||
* @param value: Color ...
|
||||
*/
|
||||
void SupportColor(color value)
|
||||
{
|
||||
//
|
||||
if (mSupportBox == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
mSupportBox.Color(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Style ...
|
||||
*
|
||||
* @param value: ENUM_LINE_STYLE member ...
|
||||
*/
|
||||
void SupportStyle(ENUM_LINE_STYLE value)
|
||||
{
|
||||
//
|
||||
if (mSupportBox == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
mSupportBox.Style(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Width ...
|
||||
*
|
||||
* @param value: Integer ...
|
||||
*/
|
||||
void ResistanceWidth(int value)
|
||||
{
|
||||
//
|
||||
if (value < 1)
|
||||
{
|
||||
value = 1;
|
||||
}
|
||||
|
||||
//
|
||||
if (mResistanceBox == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
mResistanceBox.Width(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Color ...
|
||||
*
|
||||
* @param value: Color ...
|
||||
*/
|
||||
void ResistanceColor(color value)
|
||||
{
|
||||
//
|
||||
if (mResistanceBox == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
mResistanceBox.Color(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Style ...
|
||||
*
|
||||
* @param value: ENUM_LINE_STYLE member ...
|
||||
*/
|
||||
void ResistanceStyle(ENUM_LINE_STYLE value)
|
||||
{
|
||||
//
|
||||
if (mResistanceBox == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
mResistanceBox.Style(value);
|
||||
}
|
||||
|
||||
//
|
||||
private:
|
||||
//
|
||||
CChartObjectTrend mUpper;
|
||||
CChartObjectTrend mLower;
|
||||
XCBoxObject *mSupportBox;
|
||||
XCBoxObject *mResistanceBox;
|
||||
};
|
||||
|
||||
//
|
||||
Reference in New Issue
Block a user