Acostumbro a este simple indicador.
Acostumbro a este simple indicador.

 

Publi

Resultados 1 al 10 de 10

Tema: Acostumbro a este simple indicador.

  1. #1
    Hola, espero que alguien pueda ayudar aquí. Intenté una solución simple de usar variables globales para intentar obtener valores 0,-1,1 de este indicador simple que estaría bien pero no funciona. En la ventana de datos del indicador, se muestra bien cuando pasa el mouse sobre la vela, pero solo muestra 0 en la variable global, incluso si debería decir 1 o -1. Si alguien puede averiguar por qué, genial, será genial.

    Luego traté de llamar al valor usando el icustom (no lo usé antes) pensé que sería simple ya que no hay entradas y solo 3 búferes pero tampoco pude hacer que funcionara, así que si puedes ayudar sería genial. A continuación se muestra el código del indicador. El indicador se llama swingindior.

    gracias

    #property indicador_separate_window
    #propiedad indicador_mínimo -1
    #propiedad indicador_maximum 1
    #propiedad indicador_buffers 3
    #propiedad indicador_color1 Rojo
    #property indicador_color2 Lima
    #property indicador_color3 Gris Pizarra
    color externo SPlow = Lima;
    color externo SPhigh = Rojo;
    color externo ZeroLine = SlateGray;
    externo int MarkerWidth = 3;
    //--- búferes
    doble ExtMapBuffer1[];
    doble ExtMapBuffer2[];
    doble ExtMapBuffer3[];
    // -------------------------------------------------------- -------------------
    //| Función de inicialización de indicador personalizado |
    // -------------------------------------------------------- -------------------
    int inicial()
    {
    //---- adentro
    SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,MarkerWidth,S Plow);
    SetIndexBuffer(0,ExtMapBuffer1);
    SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,MarkerWidth,S Phigh);
    SetIndexBuffer(1,ExtMapBuffer2);
    SetIndexStyle(2,DRAW_LINE,EMPTY,1,ZeroLine);
    SetIndexBuffer(2,ExtMapBuffer3);
    //----
    retorno(0);
    }
    // -------------------------------------------------------- -------------------
    //| Función de desinicialización de indicador personalizado |
    // -------------------------------------------------------- -------------------
    definición int()
    {
    //----

    //----
    retorno(0);
    }
    // -------------------------------------------------------- -------------------
    //| Función de iteración de indicador personalizado |
    // -------------------------------------------------------- -------------------
    inicio int()
    {
    int counted_bars=IndiorCounted();
    ent yo;
    bool c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15 ,c16,c17,c18;
    //----
    for(i=0;ilt;barras_contadas;i ){

    //detección de un SP estándar alto
    c1 = Alto[i 2]gt;Alto[i];
    c2 = Alto[i 2]gt;Alto[i 1];
    c3 = Alto[i 2]gt;Alto[i 3];
    c4 = Alto[i 2]gt;Alto[i 4];

    //detección de un SP High con 2 agudos medios iguales
    c5 = Alto[i 2]==Alto[i 3];
    c6 = Alto[i 2]gt;Alto[i 0];
    c7 = Alto[i 2]gt;Alto[i 1];
    c8 = Alto[i 2]gt;Alto[i 4];
    c9 = Alto[i 2]gt;Alto[i 5];

    //detección de un SP bajo estándar
    c10 = Bajo[i 2]lt;Bajo[i 0];
    c11 = Bajo[i 2]lt;Bajo[i 1];
    c12 = Bajo[i 2]lt;Bajo[i 3];
    c13 = Bajo[i 2]lt;Bajo[i 4];

    //detección de un SP Low con 2 bajos medios iguales
    c14 = Bajo[i 2]==Bajo[i 3];
    c15 = Bajo[i 2]lt;Bajo[i 0];
    c16 = Bajo[i 2]lt;Bajo[i 1];
    c17 = Bajo[i 2]lt;Bajo[i 4];
    c18 = Bajo[i 2]lt;Bajo[i 5];

    int a=0;
    si(c1 c2 c3 c4) a= 1;
    si(a==0 c5 c6 c7 c8 c9) a= 1;
    si(a==0 c10 c11 c12 c13) a=-1;
    si(a==0 c14 c15 c16 c17 c18) a=-1;

    if(a== -1)ConjuntoVariableGlobal(Símbolo() SP,-1);
    if(a== 1)ConjuntoVariableGlobal(Símbolo() SP,1);
    if(a== 0)ConjuntoVariableGlobal(Símbolo() SP,0);

    if(a== -1) ExtMapBuffer1[i]=-1;
    if(a== -1) ExtMapBuffer1[i]=-1;
    if(a== 1) ExtMapBuffer2[i]= 1;
    si(a== 0) {
    ExtMapBuffer2[i]=VALOR_VACÍO;
    ExtMapBuffer1[i]=VALOR_VACÍO;
    }
    ExtMapBuffer3[i]=0;

    }


    //----
    retorno(0);
    }
    // -------------------------------------------------------- -------------------

  2.                         
    Publicidad
  3. #2
    3 Adjunto(s) lo que la mayoría de la gente no sabe es que si llama a la función iCostom() carga una segunda copia del indicador (suponiendo que esté visible en el gráfico) la segunda copia se adjunta al EA o script y se ejecuta dentro del hilo comercial, esto ralentizará el EA, ya que tiene que ejecutar el código indicador en el momento en que se realiza la llamada. Este también es el caso con los indicadores integrados. Si llama a algunos indicadores, puede agregarse al tiempo de ejecución de los EA. Entonces, si tiene un indicador ejecutándose en el gráfico y lo llama desde el EA, en realidad tiene dos copias ejecutándose, una en el hilo principal y otra en el hilo comercial. por lo tanto, si codifica el indicador dentro del EA, en la mayoría de los casos no ralentizará más el EA que llamar a los datos con iCustom, ya que en ambos sentidos tiene que ejecutar el código interior en el EA. El uso de la variable global puede ahorrar tiempo de ejecución si tiene el indicador ejecutándose en el gráfico y envía un valor a un global y el EA lee el global, no tendrá que ejecutar el código del indicador desde su propio código y en el hilo comercial. . Si tiene varios códigos indicadores que se usan de esta manera, puede reducir en gran medida el tiempo de ejecución de los EA si necesita datos de todos ellos. Pero como usted dice, tienen problemas incorporados, uno importante es que solo puede enviarles datos de tipo init, no aceptarán dobles ni cadenas, dos solo un punto de datos se puede transmitir a uno global, otros tres progr se ejecutan en un una ventana diferente puede verlos y cambiarlos, cuatro se guardan entre las ejecuciones del programa y puede hacer que su EA active un evento si lee los datos anteriores antes de que se actualicen. He publicado algunos bloques de código de una forma diferente de comunicación entre programas que se ejecutan dentro de una ventana determinada donde solo el programa en esa ventana puede acceder a ellos. Este ejemplo solo maneja un bit de datos de tipo doble, tengo otros que pueden manejar hasta 6 bits de datos al mismo tiempo y cualquier tipo de datos incluyendo cadenas, esto nunca se ha publicado antes, tendrás que estudiarlo ya que está escrito en mi estilo habitual y puede llevar tiempo entenderlo. Keit
    Cita Iniciado por ;
    hey censura... a veces es mejor simplemente codificar una señal en el propio ea en lugar de llamar a la señal a través de variables personalizadas o globales... en lugar de apuntar a en su ejemplo, podría ser mejor apuntar a los búferes mismos ..... y tal vez mover el GlobalVariableSet fuera del ciclo for(i=0;ilt;counted_bars;i ){ ..... mi elección sería usar una función simple incluida en el ea y soltar el indicador todo junto ...... hay algunos inconvenientes en el uso de variables globales ....... h breve ejemplo ..... [código]...
    https://www.forosforex.com/trading-d...l-traders.html
    https://www.forosforex.com/trading-d...ily-chart.html
    https://www.forosforex.com/bitcoin-t...-possible.html

  4. #3
    hey censura... a veces es mejor simplemente codificar una señal en el propio ea en lugar de llamar a la señal a través de variables personalizadas o globales... en lugar de apuntar a en su ejemplo, podría ser mejor apuntar a los búferes mismos ..... y tal vez mover el GlobalVariableSet fuera del ciclo for(i=0;ilt;counted_bars;i ){ ..... mi elección sería usar una función simple incluida en el ea y soltar el indicador todo junto ...... existen algunos inconvenientes al usar variables globales .......h breve ejemplo ..... Código insertado if(ExtMapBuffer1#91;1#93;== -1)GlobalVariableSet(Symbol() SP,-1); else if(ExtMapBuffer2#91;1#93;== 1)GlobalVariableSet(Symbol() SP,1 ); else GlobalVariableSet(Símbolo() SP,0 );

  5. #4

  6. #5

    Cita Iniciado por ;
    no hay entradas
    Tiene 4 entradas: Código insertado color externo SPlow = Lima; color externo SPhigh = Rojo; color externo ZeroLine = SlateGray; externo int MarkerWidth = 3; i = barra para la que desea leer datos. Código insertado Buffer0#91;i#93;=iCustom(NULL,0,ThisSimpleIndior,L ime,Red,SlateGray,3,0,i); Buffer1#91;i#93;=iCustom(NULL,0,ThisSimpleIndior,L ime,Red,SlateGray,3,1,i); Buffer2#91;i#93;=iCustom(NULL,0,ThisSimpleIndior,L ime,Red,SlateGray,3,2,i); Cualquier error en los parámetros de iCustom puede hacer que falle silenciosamente. Asegúrese de que todos los parámetros estén presentes y sean correctos.

  7. #6
    En su EA intente algo como... YourVar = iCustom(NULL, 0, YourIndiName, Lime, Red, SlateGray, 3, ZZZ, 0) Donde ZZZ es el número del búfer al que desea hacer referencia. referencia para formato ... doble iCustom (símbolo de cadena, marco de tiempo int, nombre de cadena, ..., modo int, cambio int) HTH

  8. #7
    Como dije, no estoy seguro de lo que estás tratando de hacer. Lo establece como una variable global dentro del código para el indicador. Si luego desea un EA diferente, deberá hacer referencia al indi del EA usando iCustom () No tuve tiempo de estudiar su código, por lo que no puedo proporcionar el código real para eso en este momento

  9. #8
    No estoy seguro de lo que está tratando de hacer, GlobalVariableSet es para cuando cierra un gráfico y luego lo recupera cuando lo vuelve a abrir. Para la variable global use String mMyVar = ; antes de la función init. entonces if(a== -1)GlobalVariableSet(Symbol() SP,-1); se convierte en if(a == -1) mMyVar = (Symbol() SP -1); Espero que sirva de ayuda. aprenda a sangrar su código, lo hace más fácil de leer y más inclinado a mirarlo.

  10. #9
    Gracias, pero aún no estoy seguro de cómo obtengo la variable en el ea. String mMyVar = ; almacene el valor como una variable global sin tener que usar el conjunto, gracias, lo siento por ser tonto

  11. #10
    1 Anexo(s) En caso de que alguien esté interesado, este es mi código más nuevo, funciona con clics del mouse y las teclas de flecha en su teclado. Keit
    https://www.forosforex.com/trading-d...5-eur-jpy.html

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.