TSI_MACD traduzione codice in prorealtime

Forums ProRealTime forum Italiano Supporto ProBuilder TSI_MACD traduzione codice in prorealtime

Viewing 1 post (of 1 total)
  • #112662

    //Incrocio tra indicatore e segnale in acquisto e vendita

    ——————————————————————+
    //| TSI_MACD.mq4 |
    //+——————————————————————+
    #property indicator_separate_window
    #property indicator_buffers 2
    #property indicator_color1 Red
    #property indicator_color2 Green
    #property indicator_maximum 110
    #property indicator_minimum -110
    #property indicator_level1 0
    //—- input parameters
    extern int Fast = 8;
    extern int Slow = 21;
    extern int Signal = 5;
    extern int First_R = 8;
    extern int Second_S = 5;
    extern int SignalPeriod = 5;
    extern int Mode_Smooth = 2;
    //—- buffers
    double TSI_Buffer[];
    double SignalBuffer[];
    double MTM_Buffer[];
    double EMA_MTM_Buffer[];
    double EMA2_MTM_Buffer[];
    double ABSMTM_Buffer[];
    double EMA_ABSMTM_Buffer[];
    double EMA2_ABSMTM_Buffer[];
    //+——————————————————————+
    //| Custom indicator initialization function |
    //+——————————————————————+
    int init()
    {
    //—- indicators
    IndicatorBuffers(8);
    SetIndexBuffer(2, MTM_Buffer);
    SetIndexBuffer(3, EMA_MTM_Buffer);
    SetIndexBuffer(4, EMA2_MTM_Buffer);
    SetIndexBuffer(5, ABSMTM_Buffer);
    SetIndexBuffer(6, EMA_ABSMTM_Buffer);
    SetIndexBuffer(7, EMA2_ABSMTM_Buffer);
    //—-
    SetIndexStyle(0, DRAW_LINE);
    SetIndexBuffer(0, TSI_Buffer);
    SetIndexLabel(1, “TSI_MACD”);
    SetIndexStyle(1, DRAW_LINE);
    SetIndexBuffer(1, SignalBuffer);
    SetIndexLabel(1, “Signal”);
    IndicatorShortName(“TSI_MACD(” + Fast + “, ” + Slow + “, ” + Signal + “; ” +
    First_R + “, ” + Second_S + “, ” + SignalPeriod + “)”);
    //—-
    return(0);
    }
    //+——————————————————————+
    //| Custor indicator deinitialization function |
    //+——————————————————————+
    int deinit()
    {
    //—-
    return(0);
    }
    //+——————————————————————+
    //| Custom indicator iteration function |
    //+——————————————————————+
    int start()
    {
    int counted_bars = IndicatorCounted();
    int limit, i;
    limit = Bars – counted_bars – 1;
    //—-
    for(i = Bars – 1; i >= 0; i–)
    {
    MTM_Buffer[i] = iMACD(NULL, 0, Fast, Slow, Signal, PRICE_CLOSE, MODE_MAIN, i – 1) –
    iMACD(NULL, 0, Fast, Slow, Signal, PRICE_CLOSE, MODE_MAIN, i);
    ABSMTM_Buffer[i] = MathAbs(MTM_Buffer[i]);
    }
    //—-
    for(i=Bars-1;i>=0;i–)
    {
    EMA_MTM_Buffer[i] = iMAOnArray(MTM_Buffer, 0, First_R, 0, MODE_EMA, i);
    EMA_ABSMTM_Buffer[i] = iMAOnArray(ABSMTM_Buffer, 0, First_R, 0, MODE_EMA, i);
    }
    //—-
    for(i = Bars – 1; i >= 0; i–)
    {
    EMA2_MTM_Buffer[i] = iMAOnArray(EMA_MTM_Buffer, 0, Second_S, 0, MODE_EMA, i);
    EMA2_ABSMTM_Buffer[i] = iMAOnArray(EMA_ABSMTM_Buffer, 0, Second_S, 0, MODE_EMA, i);
    }
    //—-
    for(i = limit; i >= 0; i–)
    TSI_Buffer[i] = 100.0*EMA2_MTM_Buffer[i] / EMA2_ABSMTM_Buffer[i];
    //—-
    for(i = limit; i >= 0; i–)
    {
    SignalBuffer[i] = iMAOnArray(TSI_Buffer, 0, SignalPeriod, 0, Mode_Smooth, i);
    }
    //—-
    return(0);

    }
    //+——————————————————————+

Viewing 1 post (of 1 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login