Complete Market Sessions POI ...

This commit is contained in:
2024-10-21 12:49:01 +03:30
parent 4dbd744ba1
commit 9f43c4ab43
3 changed files with 1170 additions and 674 deletions
+416
View File
@@ -0,0 +1,416 @@
///////////////////////////////////////////////////////
//
// SaherElm IT Center MQL5 Seriallize Library
// ---------------------------------------
// Name: XPOILib
// Description: All models related to POIs ...
//
//
// Maintainer:
// ------------
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
//
//////////////////////////////////////////////////////
//
// Global Properties ...
#property library
#property copyright "Copyright 2023, SaherElm IT Center"
#property link "https://www.saherelm.ir"
#property version "1.00"
#property strict
//
// Imports ...
#include "../Libraries/x-saherelm.common.lib.mq5"
//
// Definitions ...
//
// Definitions ...
//
// All Available POI(s) ...
enum ENUM_XPOIS
{
//
// Momentum Bar ...
X_POI_MOMENTUM_BAR, // Momentum Bar ...
//
// Rejection Bar ...
X_POI_REJECTION_BAR, // Rejection Bar ...
//
// Swings ...
X_POI_SWING_HIGH, // Simple Swing High ...
X_POI_SWING_LOW, // Simple Swing Low ...
//
// Support nad Resistance ...
X_POI_SUPPORT, // Support Zone ...
X_POI_RESISTANCE, // Resistance Zone ...
};
//
// Event Types ...
enum ENUM_XPOI_EVENTS
{
//
// Trading Days ...
X_TRADE_DAY_FIRST_BAR, // Trading Day Start ...
X_TRADE_DAY_LAST_BAR, // Trading Day End ...
//
// Session ...
X_SESSION_FIRST_BAR, // Session First Bar ...
X_SESSION_LAST_BAR, // Session Last Bar ...
//
// Momentum Bar ...
X_MOMENTUM_BAR_DETECTED, // Momentum Bar ...
//
// Rejection Bar ...
X_REJECTION_BAR_DETECTED, // Rejection Bar ...
//
// Swings ...
X_SWING_HIGH_DETECTED,
X_SWING_LOW_DETECTED,
//
// Support nad Resistance ...
X_SUPPORT_DETECTED,
X_RESISTANCE_DETECTED,
};
//
// Forext Sessions ...
enum ENUM_XSESSION
{
X_TOKYO,
X_SYDNEY,
X_LONDON,
X_NEW_YORK
};
//
// Represent a Session Working Time ...
struct XSession
{
//
// Props ...
ENUM_XSESSION session; // Session Identifier
string start; // Start Time
string end; // End Time
//
bool allowDraw;
color startColor;
ENUM_LINE_STYLE startStyle;
color endColor;
ENUM_LINE_STYLE endStyle;
/**
* Constructor ...
*/
void XSession()
{
Clean();
}
/**
* Clean Structure ...
*/
void Clean()
{
//
start = NULL;
end = NULL;
//
allowDraw = false;
endColor = clrAqua;
endStyle = STYLE_DOT;
startColor = clrAqua;
endStyle = STYLE_DOT;
}
/**
* Validate Structure ...
*
* @return ( bool )
*/
bool IsValid()
{
//
bool result = false;
//
result = IsValid(start) &&
IsValid(end);
//
return result;
}
/**
* Initialize Specified Session ...
*
* @param _session: ENUM_XSESSION member ...
* @param _start: String (Session Start Time) ...
* @param _end: String (Session End Time) ...
*
* @return ( bool )
*/
bool Init(
ENUM_XSESSION _session,
string _start,
string _end //
)
{
//
bool result = false;
//
result = IsValid(_start) &&
IsValid(_end);
if (!result)
{
return result;
}
//
end = _end;
start = _start;
session = _session;
//
result = IsValid();
//
return result;
}
//
};
//
struct XTradeDay
{
//
datetime from;
datetime to;
//
void XTradeDay()
{
Clean();
}
//
void Clean()
{
//
from = NULL;
to = NULL;
}
//
bool IsValid()
{
//
bool result = false;
//
result = IsValid(from) &&
IsValid(to);
//
return result;
}
//
string GetTag()
{
//
string result = NULL;
//
if (!IsValid())
{
return result;
}
//
result = "XDay_" + ToFormatString(from) + "_" + ToFormatString(to);
//
return result;
}
//
};
//
// Detected Session ...
struct XMarketSession
{
//
ENUM_XSESSION session;
datetime from;
datetime to;
//
void XMarketSession()
{
Clean();
}
//
void Clean()
{
from = NULL;
to = NULL;
}
//
bool IsValid()
{
//
bool result = false;
//
result = IsValid(from) &&
IsValid(to);
//
return result;
}
//
string GetTag()
{
//
string result = NULL;
//
if (!IsValid())
{
return result;
}
//
result =
ToFormatString(from) + "_" +
ToFormatString(to) + "_";
//
return result;
}
};
//
// XOHCL Event Handler ...
typedef void (*TXOHCLEventHandler)(
XOHCL &bar //
);
//
// POI Event Handler ...
typedef void (*TXPOIEventHandler)(
ENUM_XPOI_EVENTS event //
);
//
// Session Event Handler ...
typedef void (*TXSessionEventHandler)(
ENUM_XSESSION session,
ENUM_XPOI_EVENTS event //
);
//
// Extensions ...
/**
* Converts ENUM_XPOI value to String Representation ...
*
* @param value: ENUM_XPOI member ...
*
* @return ( string )
*/
string ToString(ENUM_XPOIS value)
{
//
string result = NULL;
//
switch (value)
{
//
case X_POI_MOMENTUM_BAR:
result = "XMNTMB";
break;
//
case X_POI_REJECTION_BAR:
result = "XRJCTB";
break;
//
case X_POI_SWING_HIGH:
result = "XSPH";
break;
//
case X_POI_SWING_LOW:
result = "XSPL";
break;
//
case X_POI_SUPPORT:
result = "XSUP";
break;
//
case X_POI_RESISTANCE:
result = "XRES";
break;
}
//
return result;
}
/**
* Converts ENUM_XSESSION value to String Representation ...
*
* @param value: ENUM_XSESSION member ...
*
* @return ( string )
*/
string ToString(ENUM_XSESSION value)
{
//
string result = NULL;
//
switch (value)
{
//
case X_SYDNEY:
result = "Sydney";
break;
//
case X_TOKYO:
result = "Tokyo";
break;
//
case X_LONDON:
result = "London";
break;
//
case X_NEW_YORK:
result = "NewYork";
break;
}
//
return result;
}