¿Puede alguien ayudarme con este código? . . .
¿Puede alguien ayudarme con este código? . . .

 

Publi

Resultados 1 al 5 de 5

Tema: ¿Puede alguien ayudarme con este código? . . .

  1. #1
    Hola chicos,

    ¿Puede alguien ayudarme con esto?

    Cuando se cumple la condición para que aparezca la ventana emergente Alerta, sigue apareciendo cada pocos segundos durante el período de la barra. Ejecuto esto en gráficos de una hora, pero sigue forzando a que aparezca la ventana de alerta.

    Además, si puedo evitar que aparezca (así que solo se me notifica una vez), ¿se restablece la alerta por lo que si se activa en 3 compases si la condición vuelve a ser cierta?

    Si alguien puede ayudar, lo agradecería.

    Saludos
    Steve



    // ----------------------------------------------- -------------------
    //| My_First_Indior.mq4 |
    //|
    http://www.forex-tsd.com|
    // ----------------------------------------------- -------------------
    #property copyright Steve Dawson
    #property indior_separate_window
    #property indior_buffers 2
    #property indior_color1 Red
    #property indior_color2 Verde
    //---- buffers
    double ExtMapBuffer1 [];
    doble ExtMapBuffer2 [];
    bool buf_alert_already_triggered;
    // ----------------------------------------------- -------------------
    //| Función de inicialización del indicador personalizado |
    // ----------------------------------------------- -------------------
    int init ()
    {
    //---- indicadores
    SetIndexStyle (0, DRAW_HISTOGRAM, VACÍO, 3);
    SetIndexBuffer (0, ExtMapBuffer1);
    SetIndexStyle (1, DRAW_HISTOGRAM, VACÍO, 3);
    SetIndexBuffer (1, ExtMapBuffer2);
    string short_name = MAX - OBOS ¡Histograma con Alertas !;
    IndiorShortName (short_name);
    return (1);
    }
    // ----------------------------------------------- -------------------
    //| Función de desinicialización del indicador Custor |
    // ----------------------------------------------- -------------------
    int deinit ()
    {
    //----
    //----
    return (0);
    }
    // ----------------------------------------------- -------------------
    //| Función de iteración del indicador personalizado |
    // ----------------------------------------------- -------------------
    int start ()
    {
    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--;
    int pos = Bars-counted_bars;
    doble dVal, dLow, dResult, value;
    Comentario (¡Hola! ¡Estoy aquí en las ventanas principales del gráfico!);
    //---- lazo de cálculo principal para cargar el ArrayBsearch
    while (posgt; = 0)
    {
    dVal = iCustom (NULL, 0, J_TPO, 13,0, pos);
    if (dVal gt; 0)
    {
    dResult = 1;
    }
    más
    {
    dResult = -1;
    }

    //Aquí es donde se establece el color
    if (dResult == 1)
    {
    ExtMapBuffer2 [pos] = dResult;
    }
    más
    {
    ExtMapBuffer1 [pos] = dResult;
    }



    //ExtMapBuffer1 [pos] = dResult;
    pos = pos - 1;
    }
    //---- buffer ahora está cargado

    //Haz lo alerta ahora
    if ((((ExtMapBuffer1 [0] == 1) || (ExtMapBuffer2 [0] == 1)) ((ExtMapBuffer1 [1] == -1) || (ExtMapBuffer2 [1] == -1))) (buf_alert_already_triggered == 0))
    {
    Alerta (posible COMPRA de, símbolo (), encendido, período (), gráfico!);
    buf_alert_already_triggered = 1;
    } else
    {
    buf_alert_already_triggered = 0;
    }

    if ((((ExtMapBuffer1 [0] == -1) || (ExtMapBuffer2 [0] == -1)) ((ExtMapBuffer1 [1] == 1)) || (ExtMapBuffer2 [1] == 1)) (buf_alert_already_triggered == 0))
    {
    Alerta (VENTA posible para, símbolo (), encendido, período (), gráfico!);
    buf_alert_already_triggered = 1;
    } else
    {
    buf_alert_already_triggered = 0;
    }
    //----
    return (0);
    }
    // ----------------------------------------------- -------------------

  2.                         
    Publicidad
  3. #2
    #property indior_chart_window #property indior_buffers 8 #property indior_color1 Magenta #property indior_color2 Aqua #property indior_color3 Magenta #property indior_color4 Aqua #property indior_color5 Magenta #property indior_color6 Aqua #property indior_color7 Magenta #property indior_color8 Aqua/---- input parameters extern double stoch_period = 9; extern double stoch_max = 53; extern double stoch_min = 47; extern double atr_current_norm_factor = 0.435; extern double atr_before_norm_factor = 1.5; extern double atr_period = 7; extern int atr_before_step = 1; extern int NumBars = 10000;/Si desea visualizar TODOS los valores del indicador, configúrelo en 0 - usará más memoria de causa/---- buffers double sell_stop_dot_buf []; double buy_stop_dot_buf []; double sell_stop_line_buf []; double buy_stop_line_buf []; double sell_signal_buf []; double buy_signal_buf []; double down_buf []; double up_buf []; int init () {SetIndexStyle (0, DRAW_ARROW); SetIndexArrow (0,115); SetIndexBuffer (0, sell_stop_dot_buf); SetIndexLabel (0, sell_stop_dot); SetIndexEmptyValue (0, EMPTY_VALUE); SetIndexStyle (1, DRAW_ARROW); SetIndexArrow (1,115); SetIndexBuffer (1, buy_stop_dot_buf); SetIndexLabel (1, buy_stop_dot); SetIndexEmptyValue (1, EMPTY_VALUE); SetIndexStyle (2, DRAW_LINE); SetIndexBuffer (2, sell_stop_line_buf); SetIndexLabel (2, sell_stop_line); SetIndexEmptyValue (2, EMPTY_VALUE); SetIndexStyle (3, DRAW_LINE); SetIndexBuffer (3, buy_stop_line_buf); SetIndexLabel (3, buy_stop_line); SetIndexEmptyValue (3, EMPTY_VALUE); SetIndexStyle (4, DRAW_ARROW); SetIndexArrow (4,108); SetIndexBuffer (4, sell_signal_buf); SetIndexLabel (4, sell_signal); SetIndexEmptyValue (4, EMPTY_VALUE); SetIndexStyle (5, DRAW_ARROW); SetIndexArrow (5,108); SetIndexBuffer (5, buy_signal_buf); SetIndexLabel (5, buy_signal); SetIndexEmptyValue (5, EMPTY_VALUE); SetIndexStyle (6, DRAW_HISTOGRAM); SetIndexBuffer (6, down_buf); SetIndexLabel (6, down_trend); SetIndexStyle (7, DRAW_HISTOGRAM); SetIndexBuffer (7, up_buf); SetIndexLabel (7, up_trend); } int start () {double stoch_current, atr_current_normalised, atr_before_normalised; double value3, value4, value5, val1, val2, close_diff, r; int flag1, flag2;/flags = 1 cuando el par cae rápidamente. Stoch está debajo de stoch_min y diff en Closes excede atr_current_normalised./flags = 2 cuando el par sube rápidamente. Stoch está por encima de stoch_max y diff en Closes excede atr_current_normalised. if (NumBars == 0) int shift = Bars - MathMax (stoch_period, atr_period); else shift = MathMax (Bars, NumBars) - MathMax (stoch_period, atr_period); while (shiftgt; = 0) {atr_current_normalised = iATR (NULL, 0, atr_period, shift) * atr_current_norm_factor; atr_before_normalised = atr_before_norm_factor * iATR (NULL, 0, atr_period atr_before_step, shift);stoch_current = iStochastic (NULL, 0, stoch_period, stoch_period, 1,0,0,0, shift); val1 = 0; val2 = 0; value4 = High [shift] atr_before_normalised; value5 = Low [shift] - atr_before_normalised; close_diff = MathAbs (Cerrar [shift] - Cerrar [shift 2]);/Process Sharp Drops Rises if (close_diff gt; atr_current_normalised) if (stoch_current lt; stoch_min flag1! = 1)/el par cae rápidamente {value3 = High [shift] atr_before_normalised4; flag1 = 1; val1 = valor3; r = valor3; sell_signal_buf [shift] = value3; sell_stop_line_buf [shift] = value3; } else if (stoch_current gt; stoch_max flag1! = 2)/el par sube rápidamente {value3 = Low [shift] - atr_before_normalised4; flag1 = 2; val2 = valor3; r = valor3; buy_signal_buf [shift] = value3; buy_stop_line_buf [shift] = value3; }/Process small Drops Rises if (val1 == 0 val2 == 0)/switch (flag1) {case 1: if (value4 lt; r) {r = value4; } sell_stop_dot_buf [shift] = r; sell_stop_line_buf [shift] = r; descanso; caso 2: if (valor5 gt; r) {r = valor5; } buy_stop_dot_buf [shift] = r; buy_stop_line_buf [shift] = r; descanso; } if (close_diff gt; atr_current_normalised) {if (stoch_current lt; stoch_min) flag2 = 1; else if (stoch_current gt; stoch_max) flag2 = 2; } if ((stoch_current lt; stoch_min flag2 == 1) || (stoch_current lt; stoch_min flag2 == 0)) {if (close_diff gt; atr_current_normalised) {down_buf [shift] = Alto [shift]; up_buf [shift] = Low [shift]; }} else if ((stoch_current gt; stoch_max flag2 == 2) || (stoch_current gt; stoch_max flag2 == 0)) {up_buf [shift] = Alto [shift]; down_buf [shift] = Low [shift]; } /------------------------------------------ cambio--; }}

  4. #3
    Necesitarás alguna forma de volver a configurarlo en 0

  5. #4
    Gracias Tom, funciona bien ahora. Una pregunta más si no te importa. Si, por ejemplo, en 10 compases, se supone que la alerta se activará de nuevo, ¿qué sucederá? ¿La variable se restablece en la barra siguiente o la alerta no funciona nuevamente hasta que reinicie la plataforma? Gracias Steve

  6. #5
    esta parte está volviendo a 0} else {buf_alert_already_triggered = 0; } debes cambiar eso

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Uso de 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: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español. Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.