diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index ca47653..ea90a50 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -51,7 +51,7 @@ jobs: - uses: actions/checkout@v3 with: path: Include/EA31337-classes - ref: v3.000.1 + ref: v3.000-dev repository: EA31337/EA31337-classes - name: Compile (build 2361) uses: fx31337/mql-compile-action@master diff --git a/Oscillators/SuperSlope.mq5.fixme b/Oscillators/SuperSlope.mq5 similarity index 51% rename from Oscillators/SuperSlope.mq5.fixme rename to Oscillators/SuperSlope.mq5 index 8d7c8bc..b0e73a8 100644 --- a/Oscillators/SuperSlope.mq5.fixme +++ b/Oscillators/SuperSlope.mq5 @@ -41,7 +41,46 @@ #define extern input #define Bars (ChartStatic::iBars(_Symbol, _Period)) #define Bid (SymbolInfoStatic::GetBid(_Symbol)) -#define TimeDayOfWeek (DateTime::DateOfWeek()) +#define TimeDayOfWeek DateTimeStatic::DayOfWeek + +int WindowFirstVisibleBar(const long chart_ID = 0) { + long result = -1; + + ResetLastError(); + + if (!ChartGetInteger(chart_ID, CHART_FIRST_VISIBLE_BAR, 0, result)) { + Print(__FUNCTION__ + ", Error Code = ", GetLastError()); + } + + return (int)result; +} + +int WindowBarsPerChart() { + return (int)ChartGetInteger(0, CHART_VISIBLE_BARS, 0); +} + +int ObjectFind(string name) { return ObjectFind(0, name); } + +bool ObjectSetText(string name, string text, int font_size, string font = "", + color text_color = CLR_NONE) { + int tmpObjType = (int)ObjectGetInteger(0, name, OBJPROP_TYPE); + if (tmpObjType != OBJ_LABEL && tmpObjType != OBJ_TEXT) + return (false); + if (StringLen(text) > 0 && font_size > 0) { + if (ObjectSetString(0, name, OBJPROP_TEXT, text) == true && + ObjectSetInteger(0, name, OBJPROP_FONTSIZE, font_size) == true) { + if ((StringLen(font) > 0) && + ObjectSetString(0, name, OBJPROP_FONT, font) == false) + return (false); + if (text_color != CLR_NONE && + ObjectSetInteger(0, name, OBJPROP_COLOR, text_color) == false) + return (false); + return (true); + } + return (false); + } + return (false); +} // Define global functions. #undef DoubleToStr @@ -57,6 +96,33 @@ int WindowsTotal(const long _cid = 0) { } return (int)result; } +int WindowOnDropped() { return ChartWindowOnDropped(); } +int WindowFind(string name) { + int window = -1; + if ((ENUM_PROGRAM_TYPE)MQLInfoInteger(MQL_PROGRAM_TYPE) == + PROGRAM_INDICATOR) { + window = ChartWindowFind(); + } else { + window = ChartWindowFind(0, name); + if (window == -1) + Print(__FUNCTION__ + "(): Error = ", GetLastError()); + } + return (window); +} + +// Following methods are only valid when used in MQL4 code. +string StringTrimLeftMQL4(string text) { + StringTrimLeft(text); + return text; +} + +string StringTrimRightMQL4(string text) { + StringTrimRight(text); + return text; +} + +#define StringTrimLeft StringTrimLeftMQL4 +#define StringTrimRight StringTrimRightMQL4 // Includes the main file. #include "SuperSlope.mq4"