last ...
This commit is contained in:
@@ -20,6 +20,7 @@
|
|||||||
#property strict
|
#property strict
|
||||||
|
|
||||||
//
|
//
|
||||||
|
#include "../Libraries/x-saherelm.x-pivot.analysis.lib.mq5"
|
||||||
#include "../Libraries/x-saherelm.x-poi.lib.mq5"
|
#include "../Libraries/x-saherelm.x-poi.lib.mq5"
|
||||||
#include "../Libraries/x-saherelm.x-trade.lib.mq5"
|
#include "../Libraries/x-saherelm.x-trade.lib.mq5"
|
||||||
|
|
||||||
@@ -44,6 +45,7 @@ enum ENUM_XCHARTOBJECTS
|
|||||||
X_SIGNAL_OBJ = 8860,
|
X_SIGNAL_OBJ = 8860,
|
||||||
X_OHCL_OBJ = 8863,
|
X_OHCL_OBJ = 8863,
|
||||||
X_RR_OBJ = 8864,
|
X_RR_OBJ = 8864,
|
||||||
|
X_PIVOT_OBJ = 8865,
|
||||||
//
|
//
|
||||||
// 9860 Custom Object ...
|
// 9860 Custom Object ...
|
||||||
};
|
};
|
||||||
@@ -1438,4 +1440,391 @@ class XCBoxObject : public XCBaseObject
|
|||||||
CChartObjectRectangle mRect;
|
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