EA MT4 Orden de apertura a la tercera vela si se cumple condicion

 

Publi

Orden de apertura a la tercera vela si se cumple condicion

 

Publi

Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 10 de 17


  1. #1




    Reputación:
    Poder de reputación: 10

    Mensajes: 24
    Créditos: 847

    Re: Orden de apertura a la tercera vela si se cumple condicion


    Publi
    Muchas gracias a todos!!

    Me estais sirviendo de mucha ayuda y lo que es mejor es que me estais dando ideas. Luego también me estais enseñando un poco de la sintaxis ya que desconocia Close, iHigh, iVolume, etc... Como bien dije estoy aprendiendo y a medida que me van surgiendo las cosas voy preguntando o mirando la ayuda dándole a F1 en el metaeditor, que es bastante útil por cierto.

    Si no os importa no cierro el hilo todavía por si me surge alguna duda. Solo puedo programar un rato a estas horas, ya que el trabajo me absorbe el resto del dia, por eso solo contesto a la noche.

    Voy a probar lo que me habéis dicho y a ver que tal me va, ya os contare.

    Un saludo y gracias!!!
    Foro de Forex Trading United

  2. Publi
    Publi


  3. #2




    Reputación:
    Poder de reputación: 10

    Mensajes: 24
    Créditos: 847

    Re: Orden de apertura a la tercera vela si se cumple condicion

    Hola de nuevo a tod@s.

    Al fin conseguí ver lo que me decía almipa y MF1Forex, estaba obcecado con contar las velas hacia delante y no lo veía jaja.
    Cada día aprendo mas y leo para conocer diferentes estrategias. Ahora que estoy definiendo una (la cual esta muy verde) me encuentro con el problema a la hora de hacer backtest con el mt4. No consigo mas de un 25% en la calidad de modelado en el periodo m1. Estuve leyendo diferentes hilos en este foro y por la red y realmente no encuentro nada claro salvo que lo mejor es bajarse los datos de dukascopy y después utilizar un script de birt o algo así, pero como casi todos son de hace dos años, no se si funcionarían con al versión del mt4 que tengo, es la build 830.

    Alguien me podría pasar un manual actualizado (para tontos), de como conseguir la calidad del modelado al 90%?, ya si fuera al 99% seria la ostia.

    Un saludo y gracias.
    Foro de Forex Trading United

  4. #3




    Reputación:
    Poder de reputación: 12

    Mensajes: 35
    Créditos: 896

    Re: Orden de apertura a la tercera vela si se cumple condicion

    Cita Iniciado por Rick7 Ver mensaje
    Hola a todos. Aun estoy aprendiendo a esto de programar asesores expertos y necesito un poco de ayuda.

    Quiero hacer lo siguiente; Tenemos una condición con un if, si esta se cumple entra dentro de el pero no quiero que se emita una ordensend hasta el cierre de la tercera vela siempre y cuando se cumpla otra condición.

    Es decir vela actual (le llamaremos primera)-> entra en el primer if condicional al cumplirse la condicion->cierre de esa vela pero sigue dentro de la condición pasa un parametro ->vela segunda pasa un parametro-> vela tercera pasa otro parametro-> al cierre comprueba los parámetros en un if condicional. Si es favorable emite un ordensend, si no volveria a empezar hasta que se cumpliera el primer if.

    ontick()
    {
    if(condición)
    {
    cierre vela primera
    parametro
    Cierre vela segunda
    parametro
    Cierre vela tercera
    parametro
    if(condición parámetros al cierre de la vela tercera es favorable)
    {
    ordersend
    }
    }
    }

    Como puedo hacerlo. Estuve mirando por ahí que hacen algo parecido con bucles for, pero no llego a entender.

    Estoy con mql4 pero con la build moderna, asi que utilizo ontick en lugar de star

    Un saludo y gracias.

    hola Rick7
    A ver, yo utilizo otro lenguaje de programación pero como la lógica suele ser la misma, te doy una idea a ver si te vale:
    Creo que debes considerar esa tercera vela como si fuera la actual, es decir cuando se cierre esa tercera vela cumpliendo la condición que quieres.
    Luego también obligas a que cumpla otra condicion (o la misma) en la vela anterior (que sería tu segunda vela), y luego obligas a que también cumpla en la vela vela anterior a la anterior (que sería tu primera vela).
    Mas o menos así: if condicion1 AND condicion2[1] AND condicion3[2]
    los numeros entre corchetes serían las velas anterior y la anteanterior
    Foro de Forex Trading United

  5. #4
    Avatar de Vinisius
    Erectus


    Reputación:
    Poder de reputación: 12

    Espana
    Mensajes: 312
    Créditos: 126

    Re: Orden de apertura a la tercera vela si se cumple condicion

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    Por la red encontraras manuales de ambos programas.

    De hecho, en este foro hay uno mio de hace un par de años del TDS que creo te serviria aún.

    Del Tickstory también he visto manuales en castellano, pon en el google iniciar busqueda desde el 01-02-2014 y te saldran muy bién explicado por el compañero forista Andrest con imagenes y todo.


    Saludos.
    Foro de Forex Trading United

  6. #5

    Erectus


    Reputación:
    Poder de reputación: 11

    Espana
    Mensajes: 105
    Créditos: 3.068

    Re: Orden de apertura a la tercera vela si se cumple condicion

    Creo que lo estás planteando mal, o mejor dicho, creo que hay una mejor forma de tratarlo.

    La vela actual no es la primera de uin grupo de 4, sino que es la última. de esta forma, podrás hacer un if, llamando a funciones para la vela "current+3", "current+2", "current +1" y "Current".

    De esta forma seria de la siguente manera:

    if (condicion en indicador "current+3" && condicion en indicador "current+2" && condicion en indicador "current+1" && condicion en indicador "current"){
    compra/vender o lo que sea que quieras hacer
    }

    De todas forms es algo complicado de explicar así.

    SI necesitas algo concreto por aqui estaré.

    Uns aludo,
    Foro de Forex Trading United

  7. #6

    Erectus


    Reputación:
    Poder de reputación: 11

    Espana
    Mensajes: 105
    Créditos: 3.068

    Re: Orden de apertura a la tercera vela si se cumple condicion

    Hola RIck,

    Insisto en mi idea en lo mas fácil que puedes hacer (bajo mi humilde punto de vista claro )

    ontick()
    {

    RSI_hace_3_velas=iRSI(Symbol(),1,14,0,3); -> el último 3 indica que es la vela desplazada 3 posiciones a la izquierda. Recuerda que la actua es la 0.

    if(RSI_hace_3_velas<=70)
    {
    //Segunda condicion, como no sé me la invento
    Stoc_hace_2_velas=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,2) -> este ultimo 2 como he comentado antes, es el desplazamiento.

    if (Stoc_hace_2_velas>50)
    {
    //TErcera condicion, tambien me la invento, precio actual por encima de la vela anterior

    if (iHigh(NULL,0,1)>Ask)
    {
    //Ultima condicion con valores actuales (en la vela activa)

    if (iVolume>100)
    {
    //Compro, Vendo o lo que sea.

    }
    }
    }
    }
    }

    Otra opcion que a mi me gusta más dado que son valores pasados es definir todo y ejecutar solo un if de esta manera:

    RSI_hace_3_velas=iRSI(Symbol(),1,14,0,3);
    Stoc_hace_2_velas=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,2);
    if (Stoc_hace_2_velas>50) Mayor_hace_1_vela=TRUE else Mayor_hace_1_vela=FALSE;
    if (iVolume>100) Volumen_actual_ok=TRUE else Volumen_actual_ok=FALSE;

    if (RSI_hace_3_velas>X && Stoc_hace_2_velas>Y && Mayor_hace_1_vela && Volumen_actual_ok)
    {

    // Haz lo que sea

    }

    Obviamente faltan definir correctamente las variable, X e y darles valor, o definirlas como extern.

    Espero haberte ayudado con este ejemplo pero si sigues con dudas, miraré el hilo para ayudarte más si es necesario.

    Un saludo,
    Foro de Forex Trading United

  8. #7




    Reputación:
    Poder de reputación: 9

    Espana
    Mensajes: 10
    Créditos: 193

    Re: Orden de apertura a la tercera vela si se cumple condicion

    Cita Iniciado por Rick7 Ver mensaje
    ontick()
    {
    if(condición)
    {
    cierre vela primera
    parametro
    Cierre vela segunda
    parametro
    Cierre vela tercera
    parametro
    if(condición parámetros al cierre de la vela tercera es favorable)
    {
    ordersend
    }
    }
    }
    En leguaje Mql4 directo sería mas o menos así:

    Código:
    bool condicion;
    
    void OnTick()
    {
    if(condicion); //Si OK, seguimos
    {
    if (Close[3]>1) ;//Aqui pones lo que quieres que calule; //Si OK, seguimos
    {
    if (Close[2]>1) ;//Aqui pones lo que quieres que calule; //Si OK, seguimos
    {
    if (Close[1]>1) ;//Aqui pones lo que quieres que calule; //Si OK, seguimos
    {
    if (Close[0]>1) ;//Condicion parametros al cierre de la vela tercera es favorable; //Si OK, ponemos la Orden
    {
    //OrderSend tal tal
    }}}}}
    
    //Cerramos void OnTick
    }
    Tienes que hacer un "if" dentro de otro, porque si Close[3] se cumple, pasa al siguiente y así hasta que pone la orden.
    Si alguno de los "if" no se cumple saltará la última llave y no pondrá la orden.

    Piensa que la vela actual es la vela cero o su valor al cierre será el de Close[0]. Por eso yo haría las preguntas para poner la orden al Open de la vela cero y preguntaría para saber que ha hecho a partir del Close[1].

    Hay muchas maneras de hacerlo.
    Tambien puedes asignar a una variable si se cumple cada condición y al final montar un solo "If" y poner la orden.

    Lo que quieres hacer es RSI y acción del precio, entonces tienes que calcular con los Close[x], High[x], Low[x], de las últimas velas preguntando si ha hecho lo que quieres que haga.
    Saludos.
    Foro de Forex Trading United

  9. #8




    Reputación:
    Poder de reputación: 10

    Mensajes: 24
    Créditos: 847

    Re: Orden de apertura a la tercera vela si se cumple condicion

    Hola y gracias a todos por intentar ayudar.

    Igual no me explique bien. Voy a intentar explicarlo de nuevo.

    Imagina que tengo un indicador iRSI y al cumplirse una condición entra dentro del if. Por ejemplo:

    ontick()
    {

    RSIactual=iRSI(Symbol(),1,14,0,0);

    if(RSIactual<=70)
    {

    Ahora esta en la vela actual, pero quiero que cuando se cierren la dos proximas velas, al cierre de la segunda, me haga otra comprobación con otra condición. La duda que tengo no es como hacer la condicional, si no como puedo hacer para que el programa siga su curso hasta que hayan pasado dos velas desde que entro en el if(RSIactual<=70)

    }
    }

    Entiendo que puedo comprobar el cierre del RSI de las velas anteriores a la actual o al reves (que es lo que me aconseja "almipa"), pero no es lo que quiero hacer, porque la orden de compra dependerá de si la tendencia es alcista o no, al cierre de la segunda vela. En ese momento el RSI no cuenta para nada.

    No se si consigo explicarme bien, se que es difícil y mas para mi que no domino esto, se programar en C pero esto es diferente.


    Agradezco mucho vuestra ayuda.
    Un saludo.
    Foro de Forex Trading United

  10. #9




    Reputación:
    Poder de reputación: 10

    Mensajes: 24
    Créditos: 847

    Re: Orden de apertura a la tercera vela si se cumple condicion

    Cita Iniciado por Vinisius Ver mensaje
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    Por la red encontraras manuales de ambos programas.

    De hecho, en este foro hay uno mio de hace un par de años del TDS que creo te serviria aún.

    Del Tickstory también he visto manuales en castellano, pon en el google iniciar busqueda desde el 01-02-2014 y te saldran muy bién explicado por el compañero forista Andrest con imagenes y todo.


    Saludos.
    Gracias por la info Vinisius, investigare un poco y probare con lo que me dices.

    Saludos.
    Foro de Forex Trading United

  11. #10




    Reputación:
    Poder de reputación: 6

    Mexico
    Mensajes: 3
    Créditos: 17

    Re: Orden de apertura a la tercera vela si se cumple condicion


    Publi
    Cita Iniciado por Rick7 Ver mensaje
    Hola de nuevo a todos. Ya hice mi primer backtest después de seguir las indicaciones de vinisius (encontré tu manual) y tengo una duda. En la calidad de modelado me aparece la barra toda verde y pone n/a. Antes solamente me hacia un 25% de calidad y la barra estaba casi toda en rojo y en gris. ¿Quiere decir esto que me ha echo un buen backtest? ¿Seria el 99%?

    Al final utilice el programa Tick data Downloader, ya que uno de los que me propusisteis no me descargaba las bases de dukascopy, y el backtest lo hice con el metatrader4 en grafica de m1.

    Con permiso de Vinisius os pongo su manual y otro que tiene un videotutorial de un chico que lo hizo el 3 de marzo de 2015, por lo que esta bastante actualizado imposible, pero mejor explicado el de vinisius, sobre todo los elementos del script.

    http://www.tradingunited.es/foro/tra...ndaciones.html

    http://www.investingdev.com/backtest...rader-4-al-99/

    Un saludo y gracias.
    Adicionando a la pregunta anterior
    Foro de Forex Trading United

Página 1 de 2 12 ÚltimoÚltimo
This website uses 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.
     

 

Publi


Aviso Legal
Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal