indicador para señalizar solo en la barra actual

 

Publi

Resultados 1 al 5 de 5

Tema: indicador para señalizar solo en la barra actual

  1. #1
    Hola,
    Tengo un indicador cruzado de promedios móviles que produce una alerta cada vez que los promedios móviles se cruzan.

    Que disfrutaría el indicador para crear una alerta solo cuando haya ocurrido una cruz (es decir, en la barra actual). Sin embargo, con este indicador, cada vez que abro MT4 o cambio entre marcos de tiempo recibo alertas aunque la cruz haya ocurrido hace 2-3 barras.

    Aquí hay una copia del código debajo. Muchas gracias.


    #property indior_chart_window
    #property indior_buffers 2
    #property indior_color1 DarkGoldenrod
    #property indior_color2 FireBrick
    doble CrossUp [];
    double CrossDown [];
    extern int FasterEMA = 1;
    extern int SlowerEMA = 50;
    extern bool SoundON = verdadero;
    alerta doble;
    doble control = 2147483647;

    // ----------------------------------------------- -------------------
    //| Función de inicialización del indicador personalizado |
    // ----------------------------------------------- -------------------
    int init ()

    //- indicadores
    SetIndexStyle (0, DRAW_ARROW, VACÍO, 1);
    SetIndexArrow (0, 233);
    SetIndexBuffer (0, CrossUp);
    SetIndexStyle (1, DRAW_ARROW, VACÍO, 1);
    SetIndexArrow (1, 234);
    SetIndexBuffer (1, CrossDown);
    //-
    return (0);

    // ----------------------------------------------- -------------------
    //| Función de desinitialización del indicador personalizado |
    // ----------------------------------------------- -------------------
    int deinit ()

    //-
    //-
    return (0);

    // ----------------------------------------------- -------------------
    //| Función de iteración del indicador personalizado |
    // ----------------------------------------------- -------------------
    int start ()
    int límite, i, contador;
    doble más rápido, ahora, lento, ahora, más rápido, anterior, lento, anterior, más rápido, después, más lento, después;
    doble Rango, Promedio de Rango;
    int counted_bars = IndiorCounted ();
    //- verificar posibles errores
    if (counted_barslt; 0) return (-1);
    //- la última barra contada será contada
    if (counted_barsgt; 0) counted_bars--;
    limit = Bars-counted_bars;

    para (i = 0; i lt; = limit; i )

    contador = i;
    Rango = 0;
    AvgRange = 0;
    for (counter = i; counterlt; = i 9; counter )

    AvgRange = AvgRange MathAbs (High [contador] -Low [contador]);

    Rango = Promedio de Rango10;

    fasterEMAnow = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);
    fasterEMAprevious = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i 1);
    fasterEMAafter = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);
    slowerEMAnow = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i);
    slowerEMAprevious = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i 1);
    slowerEMAafter = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);

    if ((fasterLINEnowgt; slowerEMAnow) (fasterEMAprevious lt; slowerEMAprevious) (fasterEMAafter gt; slowerEMAafter))
    CrossUp [i] = Low [i] - Rango * 0.5;

    de lo contrario, si ((fasterEMAnowlt lt; slowerEMAnow) (fasterEMAprevious gt; slowerEMAprevious) (fasterEMAafter lt; slowerEMAafter))
    CrossDown [i] = Alto [i] Rango * 0.5;

    if (SoundON == verdadero i == 1 CrossUp [i] gt; CrossDown [i] alertTag! = Tiempo [0])
    Alerta (MACD 0 cruce ABAJO, Símbolo (),, Período ());
    alertTag = Tiempo [0];
    SendNotifiion (MACD 0 cruz abajo en _Symbol);

    if (SoundON == exacto I == 1 CrossUp [I] lt; CrossDown [I] alertTag! = Tiempo [0])
    Alerta (MACD 0 cruz arriba, Símbolo (),, Período ());
    alertTag = Tiempo [0];
    SendNotifiion (MACD 0 cross UP en _Symbol);




    return (0);

  2. #2
    #property indior_chart_window #property indior_buffers 2 #property indior_color1 DarkGoldenrod #property indior_color2 FireBrick double CrossUp []; double CrossDown []; extern int FasterEMA = 1; extern int SlowerEMA = 50; extern bool SoundON = verdadero; alerta doble; doble control = 2147483647;/ ----------------------------------------------- ------------------- /| Función de inicialización del indicador personalizado |/ ----------------------------------------------- ------------------- int init ()/- indicadores SetIndexStyle (0, DRAW_ARROW, VACÍO, 1); SetIndexArrow (0, 233); SetIndexBuffer (0, CrossUp); SetIndexStyle (1, DRAW_ARROW, VACÍO, 1); SetIndexArrow (1, 234); SetIndexBuffer (1, CrossDown);/- return (0);/ ----------------------------------------------- ------------------- /| Función de desinitialización del indicador personalizado |/ ----------------------------------------------- ------------------- int deinit ()/-/- return (0);/ ----------------------------------------------- ------------------- /| Función de iteración del indicador personalizado |/ ----------------------------------------------- ------------------- int start () int límite, I, contador; doble más rápido, ahora, lento, ahora, más rápido, anterior, lento, anterior, más rápido, después, más lento, después; doble Rango, Promedio de Rango; int counted_bars = IndiorCounted ();/- verifica si hay errores posibles (counted_barslt; 0) return (-1);/- la última barra contada se contará si (counted_barsgt; 0) counted_bars--; limit = Bars-counted_bars; para (I = 0; I lt; = limit; I ) counter = I; Rango = 0; AvgRange = 0; for (counter = I; counterlt; = I 9; counter ) AvgRange = AvgRange MathAbs (High [contador] -Low [contador]); Rango = Promedio de Rango10; fasterEMAnow = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, I); fasterEMAprevious = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, I 1); fasterEMAafter = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1); slowerEMAnow = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, I); slowerEMAprevious = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, I 1); slowerEMAafter = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1); if ((fasterLINEnowgt; slowerEMAnow) (fasterEMAprevious lt; slowerEMAprevious) (fasterEMAafter gt; slowerEMAafter)) CrossUp [I] = Low [I] - Range * 0.5; else if ((fasterLINEnowgt; slowerEMAnow) (fasterEMAprevious anterior; slowerEMAprevious) (fasterEMAafterfter después)) CrossDown [I] = High [I] Range * 0.5; if (SoundON == verdadero I == 1 CrossUp [0] gt; CrossDown [0] alertTag! = Timing [0]) Alerta (MACD 0 cruz abajo en, Symbol (), Stage ()); alertTag = Temporización [0]; SendNotifiion (MACD 0 cruz abajo en _Symbol); if (SoundON == exacto I == 1 CrossUp [0] lt; CrossDown [0] alertTag! = Timing [0]) Alerta (MACD 0 cross-up on, Symbol (), Stage ()); alertTag = Temporización [0]; SendNotifiion (MACD 0 cross UP en _Symbol); return (0);

  3. #3

  4. #4
    ¿Está cruzado por asociado?

  5. #5

    Cita Iniciado por ;
    puede ser macd cross related
    Para el indicador, puede colocar dos promedios móviles. 12 y 26 cruz significa una cruz de 0 líneas en el MACD.

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Cookies
Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede cambiar la configuración u obtener más información y política de cookies aquí.