/////////////////////////////////////////////////////// // // SaherElm IT Center MQL5 Class Library // -------------------------------------- // Name: XChartObjects // Description: provides all require Chart Objects ... // // // 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 // #include "../Libraries/x-saherelm.x-poi.lib.mq5" // #include #include // // Definitions ... enum ENUM_XCHARTOBJECTS { X_FROM_TO, X_TRADE_DAY, X_MARKET_SESSION, }; enum ENUM_X_CHART_IDS { X_FROM, X_TO }; // // Extensions ... /** * Convert ENUM_X_TRADE_DAY_IDS membr to String ... * * @param value: ENUM_X_TRADE_DAY_IDS member ... * * @return ( string ) */ string ToString(ENUM_X_CHART_IDS value) { // string result = NULL; // switch (value) { // case X_FROM: result = "XFROM"; break; // case X_TO: result = "XTO"; break; } // return result; } // // Implementation ... // // From To Chart Object ... class XCFromToObject : public CChartObject { // public: // // // Constructors ... void XCFromToObject() { } // // Deconstructors ... void ~XCFromToObject() { // mToVLine.Detach(); mFromVLine.Detach(); mToVLine.Delete(); mFromVLine.Delete(); } /** * Create XCFromToObject ... * * @param chart_id: Long ... * @param name: String ... * @param window: Integer ... * @param time1: DateTime ... * @param time2: DateTime ... * * @return ( bool ) */ bool Create( long chart_id, const string name, const int window, const datetime from, const datetime to, const string objprefix = NULL // ) { // bool result = false; // string mPrefix = (IsValid(objprefix) ? objprefix + "_" : ""); // string mFromVLineName = mPrefix + ToString(X_FROM) + "_" + name; result = mFromVLine.Create(chart_id, mFromVLineName, window, from); if (!result) { return result; } // string mToVLineName = mPrefix + ToString(X_TO) + "_" + name; result = mToVLine.Create(chart_id, mToVLineName, window, to); if (!result) { return result; } // return result; } /** * Retrieve Object Type ... * * @return ( ENUM_XCHARTOBJECTS ) */ virtual ENUM_XCHARTOBJECTS Type() { return X_FROM_TO; } /** * Set From Date Line Color ... * * @param value: Color ... * * @return ( bool ) */ bool FromColor(color value) { return mFromVLine.Color(value); } /** * Set From Date Line Style ... * * @param value: ENUM_LINE_STYLE ... * * @return ( bool ) */ bool FromStyle(ENUM_LINE_STYLE value) { return mFromVLine.Style(value); } /** * Set To Date Line Color ... * * @param value: Color ... * * @return ( bool ) */ bool ToColor(color value) { return mToVLine.Color(value); } /** * Set To Date Line Style ... * * @param value: ENUM_LINE_STYLE ... * * @return ( bool ) */ bool ToStyle(ENUM_LINE_STYLE value) { return mToVLine.Style(value); } // protected: // // private: // CChartObjectVLine mFromVLine; CChartObjectVLine mToVLine; // }; // // XTradeDay Object ... class XCTardeDayObject : public XCFromToObject { // public: // // // Constructors ... void XCTardeDayObject() { } // // Deconstructors ... void ~XCTardeDayObject() { } bool CreateByDay( long chart_id, const string name, const int window, XTradeDay &day // ) { // bool result = false; // result = Create( chart_id, name, window, day.from, day.to, "XTDAY" // ); // return result; } /** * Retrieve Object Type ... * * @return ( ENUM_XCHARTOBJECTS ) */ virtual ENUM_XCHARTOBJECTS Type() { return X_TRADE_DAY; } // protected: // // private: // // }; // // XMarketSession Object ... class XCMarketSessionObject : public XCFromToObject { // public: // // // Constructors ... void XCMarketSessionObject() { } // // Deconstructors ... void ~XCMarketSessionObject() { } bool CreateByMarketSession( long chart_id, const string name, const int window, XMarketSession &session // ) { // bool result = false; // string sessionLabel = ToString(session.session); result = Create( chart_id, name, window, session.from, session.to, sessionLabel // ); // return result; } /** * Retrieve Object Type ... * * @return ( ENUM_XCHARTOBJECTS ) */ virtual ENUM_XCHARTOBJECTS Type() { return X_MARKET_SESSION; } // protected: // // private: // // }; //