Files
xMQL4/Docs/Samples/DrawFibonnaciTemplate.md
T
2024-01-25 04:03:36 +03:30

4.8 KiB

DrawFibonnaci

    //
    // START Draw Fibonachi Retracement Object ...
    //
    // //
    // int fibIndex = 0;
    // int fibLevelsCount = 6;
    // int fibLevelWidths[6];
    // color fibLevelColors[6];
    // double fibLevelValues[6];
    // string fibLevelDescriptions[6];
    // ENUM_LINE_STYLE fibLevelStyles[6];

    // //
    // // Level 1 ...
    // // 0.0
    // // clrGray ...
    // fibLevelValues[fibIndex] = 0.0;
    // fibLevelColors[fibIndex] = clrGray;
    // fibLevelStyles[fibIndex] = STYLE_DOT;
    // fibLevelWidths[fibIndex] = 1;
    // fibLevelDescriptions[fibIndex] = "0.0 @ %$";
    // fibIndex++;

    // //
    // // Level 2 ...
    // // 0.236
    // // clrOliveDrab ...
    // fibLevelValues[fibIndex] = 0.236;
    // fibLevelColors[fibIndex] = clrOliveDrab;
    // fibLevelStyles[fibIndex] = STYLE_DOT;
    // fibLevelWidths[fibIndex] = 1;
    // fibLevelDescriptions[fibIndex] = "0.236 @ %$";
    // fibIndex++;

    // //
    // // Level 3 ...
    // // 0.382
    // // clrYellow ...
    // fibLevelValues[fibIndex] = 0.382;
    // fibLevelColors[fibIndex] = clrYellow;
    // fibLevelStyles[fibIndex] = STYLE_DASHDOTDOT;
    // fibLevelWidths[fibIndex] = 1;
    // fibLevelDescriptions[fibIndex] = "0.382 @ %$";
    // fibIndex++;

    // //
    // // Level 4 ...
    // // 0.5
    // // clrLime ...
    // fibLevelValues[fibIndex] = 0.5;
    // fibLevelColors[fibIndex] = clrLime;
    // fibLevelStyles[fibIndex] = STYLE_DASHDOT;
    // fibLevelWidths[fibIndex] = 1;
    // fibLevelDescriptions[fibIndex] = "0.5 @ %$";
    // fibIndex++;

    // //
    // // Level 5 ...
    // // 0.618 
    // // clrYellow ...
    // fibLevelValues[fibIndex] = 0.618;
    // fibLevelColors[fibIndex] = clrYellow;
    // fibLevelStyles[fibIndex] = STYLE_DASHDOTDOT;
    // fibLevelWidths[fibIndex] = 1;
    // fibLevelDescriptions[fibIndex] = "0.618 @ %$";
    // fibIndex++;

    // //
    // // Level 6 ...
    // // 1
    // // clrGray ...
    // fibLevelValues[fibIndex] = 1.0;
    // fibLevelColors[fibIndex] = clrGray;
    // fibLevelStyles[fibIndex] = STYLE_DOT;
    // fibLevelWidths[fibIndex] = 1;
    // fibLevelDescriptions[fibIndex] = "1.0 @ %$";
    // fibIndex++;

    // //
    // string fibName = StringConcatenate(
    //     signalPrefix, 
    //     "_[", totalSignals, "]_",
    //     "[Fibo]"
    // );

    // //
    // double fibDestPrice = hasLongSignal ?
    //     slInfo.longSL :
    //     slInfo.shortSL;

    // //
    // // Draw Fibonacci on Signal Propposed Area ...
    // DrawCustomFibonacci(
    //     fibLevelsCount,
    //     fibLevelValues,
    //     fibLevelColors,
    //     fibLevelStyles,
    //     fibLevelWidths,
    //     fibLevelDescriptions,
    //     0, // Chart ID ...
    //     fibName, // Object Name ...
    //     0, // SubWindow ...
    //     zigZagHighTime, // Time 1 ...
    //     zigZagHigh, // Price 1 ...
    //     time, // Time 2 ...
    //     fibDestPrice, // Price 2 ...
    //     clrCadetBlue // Fib Aroow Color ...
    // );

    //
    // TODO: now we have to analyse Entry Point (price), using Fib ...
    // string fibLevel3Description = "";
    // fibLevel3Description = ObjectGetFiboDescription(fibName, 2);
    // string message = StringConcatenate(
    //     "Fib Level 3 Desc: ", 
    //     fibLevel3Description
    // );
    // LogMessage(fibLevel3Description);

    // //
    // //
    // string fibLevel5Description = "";

    //
    double fibDestPrice = hasLongSignal ?
        slInfo.longSL :
        slInfo.shortSL;
    
    //
    datetime fibTime1 = iTime(
        _Symbol,
        _Period,
        1
    );
    
    //
    datetime fibTime2 = iTime(
        _Symbol,
        _Period,
        0
    );

    //
    double minFibLevelValue = 0.382;
    double minFibLevel = GetFibonacciLevel(
        zigZagHigh, // Up ...
        fibDestPrice, // Down ...
        minFibLevelValue, // Level ...
        X_DOWN // Direction ...
    );
    string minFibLevelName = StringConcatenate(
        signalPrefix, 
        "_[", totalSignals, "]_",
        "[Fibo_0.382]"
    );

    //
    // Draw minFibLevel ...
    DrawTrendLine(
        0,
        minFibLevelName,
        0,
        fibTime1,
        minFibLevel,
        fibTime2,
        minFibLevel,
        clrYellow
    );

    //
    double maxFibLevelValue = 0.618;
    double maxFibLevel = GetFibonacciLevel(
        zigZagHigh, // Up ...
        fibDestPrice, // Down ...
        maxFibLevelValue, // Level ...
        X_DOWN // Direction ...
    );
    string maxFibLevelName = StringConcatenate(
        signalPrefix, 
        "_[", totalSignals, "]_",
        "[Fibo_0.618]"
    );

    //
    // Draw minFibLevel ...
    DrawTrendLine(
        0,
        minFibLevelName,
        0,
        fibTime1,
        maxFibLevel,
        fibTime2,
        maxFibLevel,
        clrYellow
    );

    //
    // END Draw Fibonachi Retracement Object ...
    //