Ayuda Ayuda para Indicador
Resultados 1 al 2 de 2


  1. #1




    Reputación:
    Poder de reputación: 10

    Bahamas
    Mensajes: 149
    Créditos: 768

    Re: Ayuda para Indicador

    Correcto como decís! A simple vista lo que veo es que el valor para la linea 0 es (Cyan buffer UpTrend) y para la linea 1 es (rojo buffer Dntrend)

    si queres tomar esos valores para un EA es algo así como esto:

    Código:
       double val0=iCustom(NULL,0,"Slope",80,3,0,0,0);
       double val1=iCustom(NULL,0,"Slope",80,3,0,1,0);
    Debes tener en cuenta lo siguiente cuando el trend es UP (cyan) el buffer Uptrend contiene el valor del indicador y el Buffer Dntrend debe tener EMPTY_VALUE. Y viceversa para cuando el trend es Down (Rojo)

    mql4 por defecto fija el valor de 2147483647.0 para indicar EMPTY_VALUE, entonces por ejemplo:

    Si esta viendo el par EURUSD desde el EA y el trend es arriba (UP) el valor de las dos variables seria por ejemplo:

    val0 = 1.6085 (valor del indicador)
    val1= 2147483647.0 (valor del EMPTY_VALUE)

    Ya teniendo claro eso podes hacer las operaciones que requieres en el EA,

    Espero esto ayude,

    Saludes,
    Foro de Forex Trading United

  2. #2




    Reputación:
    Poder de reputación: 8

    Espana
    Mensajes: 11
    Créditos: 228

    Ayuda para Indicador

    Hola buenas , tengo el slope direction line , y he estado buscando en internet y no sé si es que no entiendo el concepto o que lo estoy haciendo mal, el caso es que quiero saber si el trend es a la alza ( UPtrend o color azul) o es a la baja ( Dntrend) o color rojo.

    Quisiera coger ese valor del que hablo ( el que me diga si la linea es azul o roja) desde otro expert advisor fuera del slope direction line. Muchas gracias. He aquí el codigo del spl.




    #property indicator_chart_window
    #property indicator_buffers 2
    #property indicator_color1 Aqua
    #property indicator_color2 Red
    //---- input parameters
    extern int period=80;
    extern int method=3; // MODE_SMA
    extern int price=0; // PRICE_CLOSE
    //---- buffers
    double Uptrend[];
    double Dntrend[];
    double ExtMapBuffer[];




    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    IndicatorBuffers(3);
    SetIndexBuffer(0, Uptrend);
    //ArraySetAsSeries(Uptrend, true);
    SetIndexBuffer(1, Dntrend);
    //ArraySetAsSeries(Dntrend, true);
    SetIndexBuffer(2, ExtMapBuffer);
    ArraySetAsSeries(ExtMapBuffer, true);

    SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
    SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);

    IndicatorShortName("Slope Direction Line("+period+")");
    return(0);
    }


    //+------------------------------------------------------------------+
    //| Custor indicator deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    // ???? ????? ?????? ??????
    return(0);
    }


    //+------------------------------------------------------------------+
    //| ?????????? ??????? |
    //+------------------------------------------------------------------+
    double WMA(int x, int p)
    {
    return(iMA(NULL, 0, p, 0, method, price, x));
    }


    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int start()
    {
    int counted_bars = IndicatorCounted();

    if(counted_bars < 0)
    return(-1);

    int x = 0;
    int p = MathSqrt(period);
    int e = Bars - counted_bars + period + 1;

    double vect[], trend[];

    if(e > Bars)
    e = Bars;


    ArrayResize(vect, e);
    ArraySetAsSeries(vect, true);
    ArrayResize(trend, e);
    ArraySetAsSeries(trend, true);

    for(x = 0; x < e; x++)
    {
    vect[x] = 2*WMA(x, period/2) - WMA(x, period);
    // Print("Bar date/time: ", TimeToStr(Time[x]), " close: ", Close[x], " vect[", x, "] = ", vect[x], " 2*WMA(p/2) = ", 2*WMA(x, period/2), " WMA(p) = ", WMA(x, period));
    }


    for(x = 0; x < e-period; x++)

    ExtMapBuffer[x] = iMAOnArray(vect, 0, p, 0, method, x);

    for(x = e-period; x >= 0; x--)
    {
    trend[x] = trend[x+1];
    if (ExtMapBuffer[x]> ExtMapBuffer[x+1]) trend[x] =1;
    if (ExtMapBuffer[x]< ExtMapBuffer[x+1]) trend[x] =-1;

    if (trend[x]>0)
    { Uptrend[x] = ExtMapBuffer[x];
    if (trend[x+1]<0) Uptrend[x+1]=ExtMapBuffer[x+1];
    Dntrend[x] = EMPTY_VALUE;
    }
    else
    if (trend[x]<0)
    {
    Dntrend[x] = ExtMapBuffer[x];
    if (trend[x+1]>0) Dntrend[x+1]=ExtMapBuffer[x+1];
    Uptrend[x] = EMPTY_VALUE;
    }

    //Print( " trend=",trend[x]);
    }

    return(0);
    }
    Foro de Forex Trading United

This website uses cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

Aviso Legal
Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal