Necesito una mano codificando un EA de cross de MA
Necesito una mano codificando un EA de cross de MA

 

Publi

Página 1 de 352 12 ??ltimo??ltimo
Resultados 1 al 10 de 15

Tema: Necesito una mano codificando un EA de cross de MA

  1. #1
    Cita Iniciado por ;
    Jaja Lo siento, RR no quiero molestarte. Lento pero seguro leo los tutoriales. Probablemente me esté arruinando debido a una idea preconcebida de cómo deberían funcionar las cosas en lugar de cómo funcionan realmente. ¡Gracias de todos modos!
    Algunos de sus comentarios sugieren una relativa inexperiencia con la programación en general.

  2.                         
    Publicidad
  3. #2
    Bueno, después de pensar un poco, creo que para lograr mi objetivo, la AE debería obtener datos de M1 MA. Entonces, si quiero que se genere una señal cuando se crucen los precios, digamos 10SMA en el gráfico de 1 hora. Tendré que codificar algo sobre un M1, 600SMA. El MA no coincidirá perfectamente con una 10SMA de 1 hora, pero al menos tendré datos de la última barra M1, que está 1 minuto atrás en lugar de 60 minutos. Supongo que tendré que intentar esto y ver si parece más tiempo real. Nuevamente gracias por toda la ayuda de la gente!

  4. #3

    Cita Iniciado por ;
    Desordenado todo el hilo cuando mencioné las palabras MA CROSS. Mi punto original era encontrar un código que encontrara el valor de un MA y el precio de Oferta o Pregunta que se pintaría en la barra. De lo contrario, tendría una orden activada en el tick exacto que el MA y la barra se intersecan entre sí.
    Ah mi mal De todos modos, hay complicaciones que habrá que tener en cuenta. Si está trabajando en un tic tac por tic, el precio a veces cambia de un lado a otro del MA, lo que hace que su EA abra y cierre muchas posiciones. Necesitarás un búfer de algún tipo para manejar eso. El EA se llama en cada tick. Bid and Ask son los precios actuales de la marca que se procesa. Haga una oferta por la marca actual = Cerrar [0] de la barra. Los datos calculados por iMA () con el índice 0 son el valor de MA actual. Código insertado #define ABOVE 1 #define BELOW 2 int start () static int prev_state = 0; double ma_current = iMA (NULL, 0,5,0, MODE_SMA, PRICE_CLOSE, 0); if (bidgt; ma_current prev_state = BELOW) {prev_state = ABOVE;/cerrar orden de venta/abrir orden de compra} if (bidlt; ??????ma1_current state = ARRIBA) {prev_state = BELOW;/cerrar orden de compra/abrir orden de venta}/manejar la condición de inicio si (estado_vac = = 0) {if (bidgt; = ma_current) prev_state = ABOVE; if (bidlt; ??????ma_current) prev_state = BELOW; }}

  5. #4
    Cita Iniciado por ;
    Tal vez es hora de que leas esto: book.mql4.com
    Jaja Lo siento, RR no quiero molestarte. Lento pero seguro leo los tutoriales. Probablemente me esté arruinando debido a una idea preconcebida de cómo deberían funcionar las cosas en lugar de cómo funcionan realmente. ¡Gracias de todos modos!

  6. #5
    Tal vez es hora de que leas esto: book.mql4.com

  7. #6

    Cita Iniciado por ;
    Es muy raro que dos MA diferentes tengan exactamente el mismo valor. Así que verificas el movimiento de MA relativo.
    Así que cuando 2 MA se cruzan. ¿Cómo metatrader pinta los píxeles en la pantalla. Cuando los píxeles con números para colores, etc. se generan para ser pintados. En algún lugar se generan las mismas coordenadas X, Y (números). Los números deben coincidir en un momento dado, de lo contrario los MA nunca se cruzarían. ¿Derecha?

  8. #7

    Cita Iniciado por ;
    Publique el código usando etiquetas de código y probablemente obtendrá más ayuda. [C??DIGO] [/C??DIGO] No he revisado su código, ya que el editor no lo ha formateado. Sin embargo, aquí hay un ejemplo de lo que podría hacer: [código] #define CROSS_UP 1 #define CROSS_DOWN 2 int my_ticket; int start () {if (ma_crossover (1) == CROSS_UP) my_ticket = OrderSend (Symbol (), OP_BUY, 1, Ask, 3, Ask-10 * Point, Ask 10 * Point); if (ma_crossover (1) == CROSS_DOWN) my_ticket = OrderSend (Symbol (), OP_SELL, 1, Bid, 3, Bid-10 * Point, Ask 10 * Point); }/----------------------------------------------- -------------------/...
    Gracias por el aporte. Desordenado todo el hilo cuando mencioné las palabras MA CROSS. Mi punto original era encontrar un código que encontrara el valor de un MA y el precio de Oferta o Pregunta que se pintaría en la barra. De lo contrario, tendría una orden activada en el tick exacto que el MA y la barra se intersecan entre sí. Comencé a usar 2 MA uno de ellos establecido en 1 solo como un proxy de la explicación anterior porque no sé qué código da el precio en tiempo real.

  9. #8
    Es muy raro que dos MA diferentes tengan exactamente el mismo valor. Así que verificas el movimiento de MA relativo.

  10. #9

    Cita Iniciado por ;
    Lo que ve la EA es un conjunto de números. ¿Cómo se traduce un patrón visual a un conjunto de números?
    Exactamente, es por eso que estoy teniendo dificultades con el código. Tenía la impresión de que para que el metatrader pintara un MA cruzando otro precio de cruce, los números deberían ser los mismos en el momento de la cruz. Si iMA está enviando una coordenada a los ejes X e Y para pintar, y la barra se está pintando en función del precio al mismo tiempo y X, Y coordina iMA y Bid or Ask (o iMA y iMA in). el caso de la cruz MA debe tener el mismo valor en este momento preciso. Pero supongo que no funciona así.

  11. #10
    Publique el código usando etiquetas de código y probablemente obtendrá más ayuda. [C??DIGO] [/C??DIGO] No he revisado su código, ya que el editor no lo ha formateado. Sin embargo, aquí hay un ejemplo de lo que podría hacer: Código insertado #define CROSS_UP 1 #define CROSS_DOWN 2 int my_ticket; int start () {if (ma_crossover (1) == CROSS_UP) my_ticket = OrderSend (Symbol (), OP_BUY, 1, Ask, 3, Ask-10 * Point, Ask 10 * Point); if (ma_crossover (1) == CROSS_DOWN) my_ticket = OrderSend (Symbol (), OP_SELL, 1, Bid, 3, Bid-10 * Point, Ask 10 * Point); }/----------------------------------------------- -------------------/ma_crossover ()/Regresa 1 en la cruz hacia arriba. Devuelva 2 al cruzar hacia abajo/------------------------------------------- ----------------------- int ma_crossover (int pos) {double ma1_current, ma1_previous, ma2_current, ma2_previous; ma1_current = iMA (NULL, 0,5,0, MODE_SMA, PRICE_CLOSE, pos); ma1_previous = iMA (NULL, 0,5,0, MODE_SMA, PRICE_CLOSE, pos 1); ma2_current = iMA (NULL, 0,21,0, MODE_SMA, PRICE_CLOSE, pos); ma2_previous = iMA (NULL, 0,21,0, MODE_SMA, PRICE_CLOSE, pos 1);/Cruce hacia arriba if (ma1_currentgt; ma1_previous ma2_currentlt; ma2_previous) return (CROSS_UP);/Cruzar hacia abajo si (ma1_currentlt; ma1_previous ma2_currentgt; ma2_previous) return (CROSS_DOWN); retorno (0); }

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.