estrategia con la media de Hull

Viewing 15 posts - 1 through 15 (of 25 total)
  • Author
    Posts
  • #54108 quote
    josemi
    Participant
    Average

    hola a todos, alguien me puede ayudar a crear un sistema automático con dicha media. He intentado hacer un sistema pero luego no ejecuta las òrdenes en el momento justo y no entiendo el porqué.

    #54176 quote
    Jesús
    Participant
    Veteran

    Hola josemi, eso es porque ProOrder no reconoce la Media Móvil de Hull a la hora de construir una estrategia con el asistente y la trata como una Media Móvil Simple. Por lo tanto, tienes que cambiar el código haciendo una llamada al indicador de la Media Movil de Hull que debes de instalar en tu librería de indicadores.

    Te dejo el enlace al indicador que ya publicó un usuario en la Libreria: https://www.prorealcode.com/prorealtime-indicators/hull-moving-average/

    #54968 quote
    josemi
    Participant
    Average

    ya instalé esa media de Hull y estoy estancado…me puedes ayudar con la programacion, o qué orden en concreto tengo que escribir, si no es mucho pedir…

    #54981 quote
    Nicolas
    Keymaster
    Master

    Proporcione una descripción completa (con capturas de pantalla si es posible) de la estrategia que desea codificar. De lo contrario, sería difícil saber exactamente qué hacer. 🙂

    #55040 quote
    Jesús
    Participant
    Veteran

    Hola Josemi, te voy a dejar el indicador de la Media Móvil de Hull (MMH) modificado para que puedas configurar el color cuando indica compra o cuando indica venta. También te dejo un ejemplo de lo que sería un código simple con la MMH. Compra cuando el precio cruza al alza la MMH y venta cuando el precio cruza a la baja la MMH.

    En la imagen que te adjunto verás como efectivamente se ejecutan las ordenes cuando el precio cruza con la MMH.

    Un saludo.

    // Definición de los parámetros del código
    DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
    
    // Condiciones para entrada de posiciones largas
    indicator1 = CALL "Hull Moving Average"[16]
    c1 = (close CROSSES OVER indicator1)
    
    IF c1 THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    // Condiciones de entrada de posiciones cortas
    indicator2 = CALL "Hull Moving Average"[16]
    c2 = (close CROSSES UNDER indicator2)
    
    IF c2 THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF

     

    Ejemplo-1.png Ejemplo-1.png Hull-Moving-Average.itf
    #55045 quote
    Jesús
    Participant
    Veteran

    Si tu estrategia de trading lo que busca es un cruce entre dos MMH con diferentes periodos, debes de configurar dos indicadores MMH con periodos distintos. Te dejo un ejemplo donde puedes observar que efectivamente se abre una operación de compra después de un cruce al alza de la MMH de periodo corto con respecto a la MMH con periodo largo, y esta operación se cierra cuando el cruce de la MMH de periodo corto es a la baja con respecto a la MMH de periodo largo.

    Un saludo.

    Ejemplo-2.png Ejemplo-2.png
    #55118 quote
    josemi
    Participant
    Average

    Hola Jesús, yo simplemente quiero crear un sistema en donde me compre cuando la media de hull sea positiva(verde) y salga de dicha posicion cuando sea negativa (roja) respecto al periodo anterior. He probado lo que me has pasado y no me deja validarlo, y no sé lo que es. Y luego si creo un sistema en grafico diario, tengo que activar la casilla de tick por tick para el backtest??

    #55130 quote
    josemi
    Participant
    Average

    me he dado cuenta de que el ejemplo que me mandaste consistía en que compraba (largos) cuando el precio cruza la media Hull al alza y vendía (cortos) cuando la cruza a la baja y la idea es que compre cuando la media sea positiva respecto a su periodo anterior y venda cuando la media sea negativa respecto a su periodo anterior. Y no soy capaz de escribir el código. Por favor ayudaaaaa :)))

    #55183 quote
    Jesús
    Participant
    Veteran

    Para lo que pides creo que el código correcto sería lo siguiente:

    // Definición de los parámetros del código
    DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
    
    // Condiciones para entrada de posiciones largas
    MMH = CALL "Hull Moving Average"[16]
    Verde = (MMH > MMH[1])
    Rojo = (MMH < MMH[1])
    
    IF Verde THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    IF Rojo THEN
    SELL 1 CONTRACT AT MARKET
    ENDIF

     

    Ejemplo-1-1.png Ejemplo-1-1.png
    #55185 quote
    Jesús
    Participant
    Veteran

    El único problema que veo a lo que propones es que con el lanzamiento de orden por el cambio de color,  la orden entra una vela más tarde que con el cruce del precio al cierre, porque la MMH reacciona al movimiento de precio algo más tarde.

    #55187 quote
    Jesús
    Participant
    Veteran

    Debes de instalarte previamente el indicador “Hull Moving Average” que te adjunté, para que el backtest funcione, porque hace una llamada CALL al indicador, si no lo tienes instalado con el mismo nombre, la llamada no lo reconoce.

    #55330 quote
    josemi
    Participant
    Average

     hola de nuevo Jesús, instalo el indicador como me dijiste (le llamo igual que dice el indicador: Hull Moving Average) y cuando escribo el sistema no reconoce la llamada CALL. Me dice esto:

    error de sintaxis: la funcion “Hull Moving Average” llamada desde mi sistema es llamada con un parametro(s) en lugar de 0 esperados.

    Me puedes ayudar Jesús. por cierto. parece que funciona mejor el sistema con el cruce del precio a la media como tu decías. Gracias.

    #55397 quote
    josemi
    Participant
    Average

    ya he encontrado el fallo, resulta que en el codigo ponía además del indicador de la media de Hull, el numero de periodos y al borrar el número (16) se pudo validar el sistema. 

    #55433 quote
    Jesús
    Participant
    Veteran

    Ok, pues solucionado

    #56099 quote
    josemi
    Participant
    Average
    hola Jesús, el código  último que me enviaste de la media Hull :
    // Definición de los parámetros del código
    DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
    // Condiciones para entrada de posiciones largas
    MMH = CALL “Hull Moving Average”
    Verde = (MMH > MMH[1])
    Rojo = (MMH < MMH[1])
    IF Verde THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    IF Rojo THEN
    SELL 1 CONTRACT AT MARKET
    ENDIF
    solamente entra en largos y no entiendo el porqué, si me puedes ayudar te lo agradezco
Viewing 15 posts - 1 through 15 (of 25 total)
  • You must be logged in to reply to this topic.

estrategia con la media de Hull


ProOrder: Trading Automático y Backtesting

New Reply
Author
author-avatar
josemi @josemi Participant
Summary

This topic contains 24 replies,
has 4 voices, and was last updated by Jesús
8 years, 1 month ago.

Topic Details
Forum: ProOrder: Trading Automático y Backtesting
Language: Spanish
Started: 11/27/2017
Status: Active
Attachments: 4 files
Logo Logo
Loading...