Publi

Publi

Resultados 1 al 6 de 6


  1. #1




    Reputación:
    Poder de reputación: 4

    Mensajes: 52
    Créditos: 50

    Función spread


    Publi
    Hola a todos.

    Bueno pues me gustaría saber como poner en mi recién nacido EA la función para limitar el máximo spread permitido. Con una variable externa para poder modificarlo.

    Por ejemplo, si el spread máximo lo pongo en 2, si el spread actual es 2.1 pues no entraría al mercado.

    Espero que me entendais.

    Saludos.
    Foro de Forex Trading United

     

  2.                         
    Publi
  3. #2
    Avatar de Wolfman
    Heidelbergensis


    Reputación:
    Poder de reputación: 15

    Mensajes: 2,052
    Créditos: 7,617

    Re: Función spread

    Cita Iniciado por israfel Ver mensaje
    Hola a todos.

    Bueno pues me gustaría saber como poner en mi recién nacido EA la función para limitar el máximo spread permitido. Con una variable externa para poder modificarlo.

    Por ejemplo, si el spread máximo lo pongo en 2, si el spread actual es 2.1 pues no entraría al mercado.

    Espero que me entendais.

    Saludos.
    Hasta donde yo he podido observar esta variable no esta definida en mt4, si me equivoco disculpas de antemano.

    Esta tendrás que construirla tu mismo, algo muy importante a tomar en cuenta.

    margin-left:40px">Que tipo de broker tienes, Es MM o ECN, en que influye esto, pues en que en el ECN el Spread es cambiante y hay que sumarle la comisión a la variable. En un broker mm, pues normalmente los spread son fijos, últimamente hasta esos están cambiando.


    Una ve definido estos conceptos, te propongo lo siguiente. Recuerda que en programación existen diferentes maneras de hacer las cosas y funcionan todo depende del gusto de programador.


    1. Definir una variable para el precio de compra, venta y comision si el broker es ECN. de ejemplo tomaremos el XMT-Scalper v. 2.4.1, como lo han definido aunque de manera muy explicado es un expert muy complejo para mi nivel de programación. Entonces.

    extern double MaxSpread = 30.0; // Max allowed spread in points (1 / 10 pip)
    extern double Commission = 0; // Some broker accounts charge commission in USD per 1.0 lot. Commission in points.

    Estas dos variables son externas y almacenan el valor definido por el usuario.

    double local_ask;
    double local_bid;

    Variables internas donde almacenaras el valor del bid y el ask.

    local_ask = MarketInfo(Symbol(), MODE_ASK);
    local_bid = MarketInfo(Symbol(), MODE_BID);

    Le asignamos el valor del ask y el bid a nuestras variables.

    ahora tenemos nuestras variables definidas y con sus valores. solo nos falta hacer la evaluacion que seria algo como esto

    if(local_ask-Local_bid)<(MaxSpread+Comision)

    Este ultima instrucción pienso que debe ir como condicionante antes de OrdenSend pero después de las evaluaciones técnicas para realizar la operación.

    En caso de ser afirmativo se ejecutaria la operación, en caso contrario seria interesante que devuelva un error, para tener registro de cuantas operaciones no se realizan por este problema.


    Saludos espero no haberte confundido.









    Foro de Forex Trading United



    "La mente es como un paracaídas, sólo funciona si se abre. Albert Einstein

  4. #3




    Reputación:
    Poder de reputación: 4

    Mensajes: 52
    Créditos: 50

    Re: Función spread

    Cita Iniciado por Wolfman Ver mensaje
    Hasta donde yo he podido observar esta variable no esta definida en mt4, si me equivoco disculpas de antemano.

    Esta tendrás que construirla tu mismo, algo muy importante a tomar en cuenta.
    margin-left:40px">Que tipo de broker tienes, Es MM o ECN, en que influye esto, pues en que en el ECN el Spread es cambiante y hay que sumarle la comisión a la variable. En un broker mm, pues normalmente los spread son fijos, últimamente hasta esos están cambiando.


    Una ve definido estos conceptos, te propongo lo siguiente. Recuerda que en programación existen diferentes maneras de hacer las cosas y funcionan todo depende del gusto de programador.


    1. Definir una variable para el precio de compra, venta y comision si el broker es ECN. de ejemplo tomaremos el XMT-Scalper v. 2.4.1, como lo han definido aunque de manera muy explicado es un expert muy complejo para mi nivel de programación. Entonces.

    extern double MaxSpread = 30.0; // Max allowed spread in points (1 / 10 pip)
    extern double Commission = 0; // Some broker accounts charge commission in USD per 1.0 lot. Commission in points.

    Estas dos variables son externas y almacenan el valor definido por el usuario.

    double local_ask;
    double local_bid;

    Variables internas donde almacenaras el valor del bid y el ask.

    local_ask = MarketInfo(Symbol(), MODE_ASK);
    local_bid = MarketInfo(Symbol(), MODE_BID);

    Le asignamos el valor del ask y el bid a nuestras variables.

    ahora tenemos nuestras variables definidas y con sus valores. solo nos falta hacer la evaluacion que seria algo como esto

    if(local_ask-Local_bid)<(MaxSpread+Comision)

    Este ultima instrucción pienso que debe ir como condicionante antes de OrdenSend pero después de las evaluaciones técnicas para realizar la operación.

    En caso de ser afirmativo se ejecutaria la operación, en caso contrario seria interesante que devuelva un error, para tener registro de cuantas operaciones no se realizan por este problema.


    Saludos espero no haberte confundido.











    Muchas gracias por el curro. Gente como usted hace que este foro sea grande.

    Mi brooker es ECN. En el spread le he metido la comisión que equivale a 0.3 pips.

    El código es el siguiente y lo que hace es que si hay un Spread superior al permitido no opera.

    Es mucho más comodo porque como puede ver, hay una función que ya lo calcula.

    Espero que sea de utilidad.


    Código:
    extern double MaxSpread = 20.0;
    
    Definir variable local
    
    double Spread;
    
    En cada tick ejecuta lo siguiente
    
    Spread = MarketInfo(Symbol(), MODE_SPREAD);
    
    if(Spread >= MaxSpread * Point) { return(0);}
    Foro de Forex Trading United

     

  5. #4
    Avatar de Wolfman
    Heidelbergensis


    Reputación:
    Poder de reputación: 15

    Mensajes: 2,052
    Créditos: 7,617

    Re: Función spread

    Cita Iniciado por israfel Ver mensaje




    Muchas gracias por el curro. Gente como usted hace que este foro sea grande.

    Mi brooker es ECN. En el spread le he metido la comisión que equivale a 0.3 pips.

    El código es el siguiente y lo que hace es que si hay un Spread superior al permitido no opera.

    Es mucho más comodo porque como puede ver, hay una función que ya lo calcula.

    Espero que sea de utilidad.


    Código:
    extern double MaxSpread = 20.0;
    
    Definir variable local
    
    double Spread;
    
    En cada tick ejecuta lo siguiente
    
    Spread = MarketInfo(Symbol(), MODE_SPREAD);
    
    if(Spread >= MaxSpread * Point) { return(0);}
    Perfecto, yo no habia dado con la funcion.

    Lo que si te aconsejo es que le sumes el valor de la comision, ya que eso es parte del costo y no lo se contabiliza con el spread. si el spread sube a 19 puntos digamos, con la comision de .3 queda en 2.2 pips.

    Por cierto la comision es solo de .3 pips por lote por toda la operación, bastante baja pero verifica que sea por toda la operación algunas veces el broker solo menciona que es .30 por abrir y .30 por cerrar en total el costo es de .60 pips.

    Saludos y exitos.
    Foro de Forex Trading United



    "La mente es como un paracaídas, sólo funciona si se abre. Albert Einstein

  6. #5

    ergaster


    Reputación:
    Poder de reputación: 5

    Mensajes: 39
    Créditos: 52

    Re: Función spread

    Debemos tener en cuenta que cuando utilizamos la funcion MarketInfo estamos haciendo una llamada al broker para pedirle este dato, una llamada implica acceso telefonico (red, o adsl) y al broker le ocupas un tiempo y ordenadores en responder a una pregunta que no es necesaria.
    te recomiendo que utilices simplemente
    Spread = Ask - Bid;
    es mucho más rápido para todos, ten en cuenta que tu plataforma cuando hace una petición al broker se queda a la espera de que le conteste.
    Un saludo.

    Foro de Forex Trading United

     

  7. #6




    Reputación:
    Poder de reputación: 4

    Mensajes: 52
    Créditos: 50

    Re: Función spread


    Publi
    Cita Iniciado por elcctroo Ver mensaje
    Debemos tener en cuenta que cuando utilizamos la funcion MarketInfo estamos haciendo una llamada al broker para pedirle este dato, una llamada implica acceso telefonico (red, o adsl) y al broker le ocupas un tiempo y ordenadores en responder a una pregunta que no es necesaria.
    te recomiendo que utilices simplemente
    Spread = Ask - Bid;
    es mucho más rápido para todos, ten en cuenta que tu plataforma cuando hace una petición al broker se queda a la espera de que le conteste.
    Un saludo.

    No gracias.
    Foro de Forex Trading United

     

Publi
Publi


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