last ...
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
///////////////////////////////////////////////////////
|
||||
//
|
||||
// SaherElm IT Center MQL5 Class
|
||||
// -------------------------------------------------
|
||||
// Name: XCXFIMAPoiDrawer ...
|
||||
// Description: XFIMA POI Drawer Class ...
|
||||
//
|
||||
//
|
||||
// Maintainer:
|
||||
// ------------
|
||||
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
|
||||
//
|
||||
//////////////////////////////////////////////////////
|
||||
//
|
||||
// Global Properties ...
|
||||
#property library
|
||||
#property copyright "Copyright 2023, SaherElm IT Center"
|
||||
#property link "https://saherelm.ir"
|
||||
#property version "1.00"
|
||||
#property description "SaherElm XFIMA POI Drawer Class"
|
||||
#property strict
|
||||
|
||||
//
|
||||
// Imports ...
|
||||
#include "../../Classes/x-saherelm.x-poi.drawer.class.mq5"
|
||||
#include "../Libraries/x-saherelm.xfima.lib.mq5"
|
||||
|
||||
//
|
||||
// Implementation ...
|
||||
class XCXFIMAPOIDrawer : public XCPOIDrawer
|
||||
{
|
||||
//
|
||||
public:
|
||||
//
|
||||
|
||||
/**
|
||||
* Draw Specified XZigZagMarketStyle on Chart ...
|
||||
*
|
||||
* @param object: XCZigZagAnalysisObject, pointer reference to Drawn Object ...
|
||||
* @param model: XZigZagAnalysis, reference to Model ...
|
||||
* @param numberOfPivots: int, required number of pivots for Draw Trends ...
|
||||
* @param rayRight: bool, Ray To Right ...
|
||||
* @param rayLeft: bool, Ray To Left ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool DrawZigZagMarketAnalysis(
|
||||
XCZigZagAnalysisObject *&object,
|
||||
XZigZagAnalysis &model,
|
||||
bool rayRight = false,
|
||||
bool rayLeft = false,
|
||||
int numberOfPivots = 2 //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
// Prepare ...
|
||||
object = NULL;
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
result = model.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
object = new XCZigZagAnalysisObject();
|
||||
result = object.Create(
|
||||
ChartIdentification(),
|
||||
SubWindowIdentification(),
|
||||
model,
|
||||
numberOfPivots //
|
||||
);
|
||||
if (result)
|
||||
{
|
||||
//
|
||||
// Apply Style ...
|
||||
bool isBullish = model.IsBullish();
|
||||
|
||||
//
|
||||
XPOIStyle style;
|
||||
if (isBullish)
|
||||
{
|
||||
style = defaultBullishStyle;
|
||||
}
|
||||
else
|
||||
{
|
||||
style = defaultBearishStyle;
|
||||
}
|
||||
|
||||
//
|
||||
ApplyZigZagMarketAnalysisStyle(
|
||||
object,
|
||||
style,
|
||||
false, // Ray Right ...
|
||||
true // Ray Left ...
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply Specified Style to Object ...
|
||||
*/
|
||||
void ApplyZigZagMarketAnalysisStyle(
|
||||
XCZigZagAnalysisObject *&object,
|
||||
XPOIStyle &style,
|
||||
bool rayRight = false,
|
||||
bool rayLeft = false //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool has = object != NULL;
|
||||
if (!has)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
object.UpperColor(style.clr);
|
||||
object.LowerColor(style.clr);
|
||||
object.UpperWidth(style.width);
|
||||
object.UpperRayLeft(rayLeft);
|
||||
object.UpperRayRight(rayRight);
|
||||
object.LowerWidth(style.width);
|
||||
object.UpperStyle(style.style);
|
||||
object.LowerStyle(style.style);
|
||||
object.LowerRayLeft(rayLeft);
|
||||
object.LowerRayRight(rayRight);
|
||||
}
|
||||
|
||||
//
|
||||
};
|
||||
|
||||
//
|
||||
Reference in New Issue
Block a user