Walk Forward con indicadores propios

Viewing 15 posts - 1 through 15 (of 19 total)
  • Author
    Posts
  • #100670 quote
    RafaRafa
    Participant
    Senior

    Hola a todos,

    Tengo una duda porque no consigo hacer que funcione. En otro post he escrito acerca de el RSI normalizado, quiero hacer un walk foward y los resultados que me aparecen son todos 0.

    Hay alguna limitación para esto? se puede hacer?

    Muchas gracias

    #100671 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    ¿Puedes publicar el código que usaste para probarlo?

    #100673 quote
    RafaRafa
    Participant
    Senior

    Si claro Roberto no es ningún secreto

    // Definición de los parámetros del código
    
    DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
    
    DEFPARAM FLATBEFORE = 070000
    DEFPARAM FLATAFTER = 230000
    
    noEntryBeforeTime = 070000
    
    timeEnterBefore = Time >= noEntryBeforeTime
    
    // Impide al sistema lanzar nuevas órdenes para entrar al mercado o aumentar el tamaño de la posición después de una hora precisa
    
    noEntryAfterTime = 230000
    
    timeEnterAfter = Time < noEntryAfterTime
    
    // Impide al sistema operar en días precisos de la semana
    
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    // ===== Variables =====
    
    //ValorRSI = 7
    //ValorEMA = 5
    
    EMABollinger = 24
    
    NumeroDeContratos = 1
    
    // ====== Constantes ======
    
    //MiSTOP = 90
    //MiPROFIT = 110
    
    // ********* A PARTIR DE AQUÍ NO SE TOCA EL CÓDIGO ***********
    
    //===== INDICADORES DE LA ESTRATEGIA ======
    
    MIRSI = CALL “NormalizedRSI”[ValorRSI,EMABollinger]
    MiEMA = ExponentialAverage[ValorEMA](MiRSI)
    
    MiSMI = CALL NormalizedSMI[EMABollinger]
    
    // ===== Condiciones para ejecutar la estrategia =====
    
    ESTOSubiendo = MiSMI[1] < MiSMI
    
    ESTOBajando = MiSMI[1] > MiSMI
    
    // ****** Esta es la Estrategia ******
    
    CruceLargo = MiRSI CROSSES OVER MiEMA AND (ESTOSubiendo)
    
    CruceCorto = MiRSI CROSSES UNDER MiEMA AND (ESTOBajando )
    
    // Condiciones para entrada de posiciones largas
    
    IF CruceLargo AND (timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry) THEN
    BUY NumeroDeContratos SHARES AT MARKET
    ENDIF
    
    // Condiciones de salida de posiciones largas
    
    IF CruceCorto THEN
    SELL AT MARKET
    ENDIF
    
    // Condiciones de entrada de posiciones cortas
    
    IF CruceCorto AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    SELLSHORT NumeroDeContratos SHARES AT MARKET
    ENDIF
    
    // Condiciones de salida de posiciones cortas
    
    IF CruceLargo THEN
    EXITSHORT AT MARKET
    ENDIF
    
    // Stops y objetivos
    
    SET STOP $TRAILING MiSTOP
    SET TARGET $PROFIT MiPROFIT
    #100683 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Para escribir el código , utilice el botón <> “insert PRT code”

    Gracias.

    #100684 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Parece que hay un problema en la línea 41 y no puedo entender por qué, así que necesito probar nuevamente. Intenta agregar esta última línea:

    GRAPH MiEMA

    ¡Y nada será tramado!

    #100694 quote
    RafaRafa
    Participant
    Senior

    Muchas gracias Roberto pero no me funciona

    #100698 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Sé que no funciona. Se ha enviado un informe de error a PRT, debemos esperar su respuesta (lo que puede llevar algún tiempo).

    #100700 quote
    RafaRafa
    Participant
    Senior

    Ah perdón, había entendido mal. Muchas gracias por tu ayuda!

    #100709 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Parece que el problema se relaciona solo con el cálculo del MEDIO EXPONENCIAL (ya sea mediante el uso de ExponentialAverage o del Average[n, 1]) usando MiRSI, porque si reemplaza la línea 41 por:

    MiEMA = WeightedAverage[ValorEMA](MIRSI)  //wma
     MiEMA = Average[ValorEMA, 2](MIRSI)      // wma
     MiEMA = Average[ValorEMA](MIRSI)         // sma

    ¡Todo funciona bien! Pero todavía estamos esperando una respuesta de PRT.

    #100748 quote
    RafaRafa
    Participant
    Senior

    Grazzie mile!! Roberto…

    Yo todavía soy un newbie, así que en estos temas no puedo ayudar porque no se

    Un saludo fuerte

    #100849 quote
    NicolasNicolas
    Keymaster
    Legend

    Hola rafa. ¿Podrías adjuntar el archivo .itf de tu estrategia en tu próxima publicación para poder replicar el problema de manera idéntica a la tuya? (¡Y para descubrir por qué los promedios móviles no se calculan correctamente!). Gracias por adelantado.

    #100893 quote
    RafaRafa
    Participant
    Senior

    Perdona Nicolás,

    Ya sabes que soy un novato en esto y necesito práctica.

    Un saludo

    Normalized-RSI-EMA.itf
    #101010 quote
    NicolasNicolas
    Keymaster
    Legend

    Hice un informe técnico sobre esta cuestión, esta mañana.

    #101054 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Intente reemplazar las líneas 41-42 con estas (es una versión personalizada del Promedio Móvil Exponencial):

    // customized EMA
    Periods = ValorEMA
    Alpha   = 2 / (Periods + 1)
    i       = 0
    TREMA   = MiRSI
    FOR j = 0 TO Periods
       i = i + 1
       TREMA = ((MiRSI[j] - TREMA) * Alpha) + TREMA
       IF i = Periods THEN
          BREAK
       ENDIF
    NEXT
    IF TREMA = 0 THEN
       TREMA = MiRSI
    ENDIF
    MiEMA = TREMA//ExponentialAverage[ValorEMA](MiRSI)
    #101125 quote
    RafaRafa
    Participant
    Senior

    Muchas gracias Roberto,

    Eso por ahora es muy avanzado para mi jejeje

    Un abrazo fuerte

Viewing 15 posts - 1 through 15 (of 19 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Walk Forward con indicadores propios


ProOrder: Trading Automático y Backtesting

New Reply
Author
author-avatar
Rafa @rafa Participant
Summary

This topic contains 18 replies,
has 3 voices, and was last updated by NicolasNicolas
7 years, 2 months ago.

Topic Details
Forum: ProOrder: Trading Automático y Backtesting
Language: Spanish
Started: 06/14/2019
Status: Active
Attachments: 1 files
ProRealCode ProRealCode
Loading...