/////////////////////////////////////////////////////// // // SaherElm IT Center MQL5 X12 Draw Library // ------------------------------------------ // Name: X121Draw // Description: provides Draw Requirements ... // // // 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.draw.lib.mq5" #include "../Libraries/x-saherelm.common.lib.mq5" #include "../Libraries/x-saherelm.models.lib.mq5" // // START Draw Functions ... // // // Draw Signal ... void DrawSignal(const ulong ticket, XSignal &signal) { // bool isLong = IsLong(signal.type); // string prefix = (string)ticket + "_" + ToString(signal.period); // // Retrieve Time ... datetime time = iTime( signal.symbol, signal.period, 0); // // Retrieve 3 Time ... datetime time3 = iTime( signal.symbol, signal.period, 3); // color posColor = isLong ? clrSpringGreen : clrTomato; color tpColor = clrSpringGreen; color slColor = clrTomato; color entryColor = clrGold; // ENUM_LINE_STYLE vLineStyle = STYLE_DOT; ENUM_LINE_STYLE tpLineStyle = STYLE_SOLID; ENUM_LINE_STYLE slLineStyle = STYLE_SOLID; ENUM_LINE_STYLE entryLineStyle = STYLE_SOLID; // int lineWidth = 2; // long chartID = ChartID(); // // Vertical Line ... string vlName = prefix + "_" + (string)time; // DrawVerticalLine( chartID, vlName, 0, time, posColor, vLineStyle, lineWidth); // // TP ... double profit = (MathAbs(signal.tp - signal.entry)) * signal.volume; string tpName = prefix + "_TP_" + (string)profit; // DrawTrendLine( chartID, tpName, 0, time3, signal.tp, time, signal.tp, tpColor, tpLineStyle, lineWidth); // // SL ... double lost = (MathAbs(signal.sl - signal.entry)) * signal.volume; string slName = prefix + "_SL_" + (string)lost; // DrawTrendLine( chartID, slName, 0, time3, signal.sl, time, signal.sl, slColor, slLineStyle, lineWidth); // // ENTRY ... string entryName = prefix + "_ENTRY_" + (string)lost; // DrawTrendLine( chartID, entryName, 0, time3, signal.entry, time, signal.entry, entryColor, entryLineStyle, lineWidth); } // // Draw Support and Resistance ... void DrawSupportResistance( int bar_index, XOHCLSupRes &data, string prefix = "", color supportColor = clrOrange, color resistanceColor = clrOrange) { // datetime barTime = GetCandleTime( _Symbol, _Period, bar_index); // datetime prevBarTime = GetCandleTime( _Symbol, _Period, bar_index + 5); // long chID = ChartID(); int subWindiw = 0; int lineWidth = 1; // string mPrefix = prefix + "_" + (string)barTime + "_"; // // SUPPORTS ... // int supCount = ArraySize(data.sup); if (supCount > 0) { // for (int i = 0; i < supCount; i++) { // double iSup = data.sup[i]; // string supTlName = mPrefix + "SUP[" + (string)(i + 1) + "]_(" + (string)iSup + ")"; // // Draw Support ... DrawTrendLine( chID, supTlName, subWindiw, prevBarTime, iSup, barTime, iSup, supportColor, STYLE_DOT, lineWidth, true); } } // // RESISTANCES ... // int resCount = ArraySize(data.res); if (resCount > 0) { // for (int i = 0; i < resCount; i++) { // double iRes = data.res[i]; // string resTlName = mPrefix + "RES[" + (string)(i + 1) + "]_(" + (string)iRes + ")"; // // Draw Support ... DrawTrendLine( chID, resTlName, subWindiw, prevBarTime, iRes, barTime, iRes, resistanceColor, STYLE_DOT, lineWidth, true); } } } // // END Draw Functions ... //