¿Cómo obtener valores de indicadores personalizados?

 

Publi

Página 1 de 402 12 ÚltimoÚltimo
Resultados 1 al 10 de 13

Tema: ¿Cómo obtener valores de indicadores personalizados?

  1. #1
    Estoy tratando de utilizar el indicador EMA Crossover Signal dentro de un EA y tengo problemas para obtener los valores de él. Estoy usando iCustom () y no importa qué estilo elijo (0 o 1) el indicador simplemente devuelve 2147483647. ¿Alguna idea sobre lo que estoy haciendo mal?

    Aquí hay una ilustración de lo que estoy tratando de hacer:

    EMA dual = iCustom (NULL, 0, EMA Crossover Signal, 5,13, ​​falso, 0,0);

    Impresión (EMA);

    Aquí está su código indy:

    // ----------------------------------------------- -------------------
    //| EMA-Crossover_Signal. Mq4 |
    //| Copyright © 2005, Jason Robinson (jnrtrading) |
    //|
    http://www.jnrtading.co.uk|
    //pag----------------------------------------------- -------------------

    /*
    ------------------------------------------------- -----------------
    | te permite ingresar dos períodos ema y luego te mostrará |
    | Qué punto cruzaron. Es más útil sobre el más corto |
    | tramos que se oscurecen por los barescandelabros y cuando |
    | el nivel de zoom está afuera. También te permite eliminar el emas |
    | en el gráfico. (emas se establecen originalmente en 5 y 6) |
    ------------------------------------------------- -----------------
    *
    #property copyright Copyright © 2005, Jason Robinson (jnrtrading)
    #property Hyperlink http://www.jnrtrading.co.uk

    #property indior_chart_window
    #property indior_buffers 2
    #property indior_color1 SeaGreen
    #property indior_color2 Red

    doble CrossUp [];
    double CrossDown [];
    extern int FasterEMA = 5;
    extern int SlowerEMA = 13;
    extern bool SoundON = falso;
    alerta doble;
    doble control = 2147483647;

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

    //- indicadores
    SetIndexStyle (0, DRAW_ARROW, VACÍO, 3);
    SetIndexArrow (0, 233);
    SetIndexBuffer (0, CrossUp);
    SetIndexStyle (1, DRAW_ARROW, VACÍO, 3);
    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 (EMA Cross Trend bajando, Symbol (), Stage ());
    alertTag = Tiempo [0];

    if (SoundON == exacto I == 1 CrossUp [I] lt; CrossDown [Id] alertTag! = Tiempo [0])
    Alerta (EMA Cross Trend encendido, Symbol (), Stage ());
    alertTag = Tiempo [0];



    return (0);

  2. #2
    Verifique el nombre de archivo de esta icustom. Asegúrese de tener todos los guiones y guiones bajos en su lugar. También asegúrese de que las letras mayúsculas estén en el lugar correcto. Debe ser justo como el documento está escrito.

  3. #3

    Cita Iniciado por ;
    verifique el nombre de archivo de icustom. Asegúrese de tener todos los guiones y guiones bajos en su lugar. También asegúrese de que las letras de los fondos estén en el lugar ideal. Como el archivo está escrito, debe ser exactamente.
    Sin fortuna ... el nombre del archivo es EMA Crossover Signal y así es exactamente como lo ingresé.

  4. #4
    Publique el archivo del indicador en algo simple como EMACS o algo. He tenido algunos problemas con los nombres de archivo y las distancias.

  5. #5

    Cita Iniciado por ;
    Cambie el nombre del documento indicador a algo simple como EMACS o algo. He tenido algunos problemas con los nombres de archivo y las distancias.
    No, eso tampoco funcionó. Estoy pensando en incorporar el código indy directamente en el EA o meramente componiendo el código cruzado de MA ... sin embargo, esperaba no reinventar la rueda y usar las señales EMA para ver las flechas una vez que vea esa cruz.

  6. #6
    ¿Has visto qué valor tiene el indicador en la ventana de información? No tendría ningún valor.

  7. #7
    Tu iCustom debería verse más o menos así. ICustom (NULL, 0, EMA Crossover Signal, FasterEMA, SlowerEMA, 0); Yo editaba el indicador para configurar cada no-flecha en 0, así. Lo encuentro más simple al colocar la lógica comercial.
    Cita Iniciado por ;
    // ----------------------------------------------- ------------------- /| EMA-Crossover_Signal. Mq4 |/| Copyright © 2005, Jason Robinson (jnrtrading) |/|
    http://www.jnrtading.co.uk|/pag----------------------------------------------- ------------------- * --------------------------- --------------------------------------- | te permite ingresar dos períodos ema y luego te mostrará | | Qué punto cruzaron. Es más útil en el más breve | | luces que se oscurecen por los barrotescandelabros y cuando | | el nivel de zoom está afuera. También le permite sacar el emas | | de la tabla. (emas se establecen inicialmente en 5 y 6) | ------------------------------------------------- ----------------- *#property copyright Copyright © 2005, Jason Robinson (jnrtrading) #property hyperlink http://www.jnrtrading.co.uk #property indior_chart_window # propiedad indior_buffers 2 #property indior_color1 SeaGreen #property indior_color2 Red double CrossUp []; double CrossDown []; extern int FasterEMA = 5; extern int SlowerEMA = 13; extern bool SoundON = falso; alerta doble; doble control = 2147483647;/ ----------------------------------------------- ------------------- /| Función de inicialización del indicador personalizado |/ ----------------------------------------------- ------------------- int init ()/- indicadores SetIndexStyle (0, DRAW_ARROW, VACÍO, 3); SetIndexArrow (0, 233); SetIndexBuffer (0, CrossUp); SetIndexStyle (1, DRAW_ARROW, VACÍO, 3); 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 CrossUp [I] = 0; else if ((fasterEMAnow lt; slowerEMAnow) (fasterEMApreviousgt; slowerEMAprevious) (fasterEMAafter lt; slowerEMAafter)) CrossDown [I] = High [I] Range * 0.5; else CrossDown [I] = 0; if (SoundON == verdadero I == 1 CrossUp [I] gt; CrossDown [I] alertTag! = Timing [0]) Alerta (EMA Cross Trend bajando, Symbol (),, Stage ()); alertTag = Temporización [0]; if (SoundON == verdadero I == 1 CrossUp [I] lt; CrossDown [I] alertTag! = Timing [0]) Alerta (EMA Cross Trend encendido, Symbol (),, Stage ()); alertTag = Temporización [0]; return (0);
    Cita Iniciado por ;
    // ----------------------------------------------- ------------------- /| EMA-Crossover_Signal. Mq4 |/| Copyright © 2005, Jason Robinson (jnrtrading) |/|
    http://www.jnrtading.co.uk|/pag----------------------------------------------- ------------------- * --------------------------- --------------------------------------- | te permite ingresar dos períodos ema y luego te mostrará | | Qué punto cruzaron. Es más útil en el más breve | | luces que se oscurecen por los barrotescandelabros y cuando | | el nivel de zoom está afuera. También le permite sacar el emas | | de la tabla. (emas se establecen inicialmente en 5 y 6) | ------------------------------------------------- ----------------- *#property copyright Copyright © 2005, Jason Robinson (jnrtrading) #property hyperlink http://www.jnrtrading.co.uk #property indior_chart_window # propiedad indior_buffers 2 #property indior_color1 SeaGreen #property indior_color2 Red double CrossUp []; double CrossDown []; extern int FasterEMA = 5; extern int SlowerEMA = 13; extern bool SoundON = falso; alerta doble; doble control = 2147483647;/ ----------------------------------------------- ------------------- /| Función de inicialización del indicador personalizado |/ ----------------------------------------------- ------------------- int init ()/- indicadores SetIndexStyle (0, DRAW_ARROW, VACÍO, 3); SetIndexArrow (0, 233); SetIndexBuffer (0, CrossUp); SetIndexStyle (1, DRAW_ARROW, VACÍO, 3); 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 CrossUp [I] = 0; else if ((fasterEMAnow lt; slowerEMAnow) (fasterEMApreviousgt; slowerEMAprevious) (fasterEMAafter lt; slowerEMAafter)) CrossDown [I] = High [I] Range * 0.5; else CrossDown [I] = 0; if (SoundON == verdadero I == 1 CrossUp [I] gt; CrossDown [I] alertTag! = Timing [0]) Alerta (EMA Cross Trend bajando, Symbol (),, Stage ()); alertTag = Temporización [0]; if (SoundON == verdadero I == 1 CrossUp [I] lt; CrossDown [I] alertTag! = Timing [0]) Alerta (EMA Cross Trend encendido, Symbol (),, Stage ()); alertTag = Temporización [0]; return (0);

  8. #8
    Si construye su EA para intercambiar de acuerdo con este indicador únicamente, tenga en cuenta que este indicador está repintando a lo grande. La flecha aparecerá y desaparecerá y reaparecerá nuevamente. Lea el código del indicador cuidadosamente y modifique estas líneas para que no sea una flecha de repintado.

  9. #9

    Cita Iniciado por ;
    ¿Realmente ha mirado a qué valores regresa el indicador en la ventana de datos? Por lo general, no tendría ningún valor.
    Me interesa, si un campo para valores dentro de un indicador está en blanco, ¿qué coloco en la lógica de comercio? EMPTY_VALUE no hace el trabajo.

  10. #10
    sí ... if (EMA == EMPTY_VALUE) {.... .... Equivalente o al número 2147483647

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í.