/////////////////////////////////////////////////////// // // 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_ZONE_DETECTED, // Support Zone ... X_RESISTANCE_ZONE_DETECTED, // Resistance Zone ... }; // // 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; }