last works ...
This commit is contained in:
@@ -0,0 +1,240 @@
|
||||
///////////////////////////////////////////////////////
|
||||
//
|
||||
// SaherElm IT Center MQL5 Library
|
||||
// -------------------------------------------------
|
||||
// Name: XCXFIMAEALib ...
|
||||
// Description: XFIMAEA Library ...
|
||||
//
|
||||
//
|
||||
// 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 XFIMAEA Library"
|
||||
#property strict
|
||||
|
||||
//
|
||||
// Imports ...
|
||||
#include "../../Helpers/x-saherelm.xfima.helper.mq5"
|
||||
|
||||
//
|
||||
// Definitions ...
|
||||
|
||||
//
|
||||
// Enumerations ...
|
||||
|
||||
//
|
||||
// ZigZag Point Type ...
|
||||
enum ENUM_X_ZIGZAG_POINT_TYPE
|
||||
{
|
||||
X_ZIGZAG_POINT_TYPE_NONE = 0, // None
|
||||
X_ZIGZAG_POINT_TYPE_PEAK = 1, // PEAK
|
||||
X_ZIGZAG_POINT_TYPE_VALE = 2, // VALE
|
||||
};
|
||||
|
||||
/**
|
||||
* Validate ...
|
||||
*
|
||||
* @param value: ENUM_X_ZIGZAG_POINT_TYPE ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool IsXValid(ENUM_X_ZIGZAG_POINT_TYPE value)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result = value != X_ZIGZAG_POINT_TYPE_NONE;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represent Specified ZigZag Point Type as String ...
|
||||
*
|
||||
* @param value: ENUM_X_ZIGZAG_POINT_TYPE ...
|
||||
*
|
||||
* @return ( string )
|
||||
*/
|
||||
string ToXString(ENUM_X_ZIGZAG_POINT_TYPE value)
|
||||
{
|
||||
return EnumToString(value);
|
||||
}
|
||||
|
||||
//
|
||||
// Structs ...
|
||||
|
||||
/**
|
||||
* Specified ZigZag Point ...
|
||||
**/
|
||||
struct XZigZagPoint
|
||||
{
|
||||
//
|
||||
// Props ...
|
||||
double value; // Value
|
||||
datetime time; // Time
|
||||
ENUM_X_DIRECTION dir; // Direction
|
||||
ENUM_X_ZIGZAG_POINT_TYPE type; // Type
|
||||
|
||||
//
|
||||
// Constructor ...
|
||||
XZigZagPoint()
|
||||
{
|
||||
Clean();
|
||||
}
|
||||
|
||||
//
|
||||
// Tools ...
|
||||
|
||||
/**
|
||||
* Cleanup Model ...
|
||||
*/
|
||||
void Clean()
|
||||
{
|
||||
//
|
||||
value = 0;
|
||||
time = NULL;
|
||||
dir = X_DIRECTION_NONE;
|
||||
type = X_ZIGZAG_POINT_TYPE_NONE;
|
||||
|
||||
//
|
||||
ZeroMemory(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Model ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool IsValid()
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result =
|
||||
value > 0 &&
|
||||
IsXValid(type) &&
|
||||
HasDirection(dir) &&
|
||||
IsSpecifiedValid(time);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check Point is Bullish or not ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool IsBullish()
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result = IsValid() &&
|
||||
IsSpecifiedBullish(dir);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check Point is Bearish or not ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool IsBearish()
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result = IsValid() &&
|
||||
IsSpecifiedBearish(dir);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract Specified Token of Struct ...
|
||||
*
|
||||
* @return ( string )
|
||||
*/
|
||||
string GetTag()
|
||||
{
|
||||
return GetToken(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Represent an String Unique Identifier for Chart Objects ...
|
||||
*
|
||||
* @return ( string )
|
||||
*/
|
||||
string GetObjectID()
|
||||
{
|
||||
//
|
||||
string result = "";
|
||||
|
||||
//
|
||||
if (!IsValid())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = GetTag() + "_" + ToXString(dir) + "_" + ToXString(type) + "_" + ToXString(TimeToSeconds(time));
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represent a Point as String ...
|
||||
*
|
||||
* @param spacer: string, How to Represent Spaces ...
|
||||
*
|
||||
* @return ( string )
|
||||
*/
|
||||
string GetMessage(string spacer = NULL)
|
||||
{
|
||||
//
|
||||
string result = "";
|
||||
|
||||
//
|
||||
// Normalize Spacer ...
|
||||
if (!IsSpecifiedValid(spacer))
|
||||
{
|
||||
spacer = " ";
|
||||
}
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
if (!IsValid())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result =
|
||||
ToXString(dir) + spacer + GetTag() + ":" + spacer +
|
||||
"Value: " + ToXString(value) + spacer +
|
||||
"Time: " + ToXString(time) + spacer;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
Reference in New Issue
Block a user