Error en sistema ichimoku

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #240038 quote
    inmoduinmodu
    Participant
    New

    The code for the system that I attached gives me an error.
    Could someone correct it?
    Thank you

    El código para el sistema que adjunto me da error.
    ¿Alguien podría corregirlo?
    Gracias

    // Parámetros Ichimoku
    TenkanLength = 9
    KijunLength = 26
    SenkouLength = 52
    Displacement = 26

    // Cálculo de las líneas Ichimoku
    Tenkan = (Highest[TenkanLength](High) + Lowest[TenkanLength](Low)) / 2
    Kijun = (Highest[KijunLength](High) + Lowest[KijunLength](Low)) / 2
    SenkouA = (Tenkan + Kijun) / 2
    SenkouB = (Highest[SenkouLength](High) + Lowest[SenkouLength](Low)) / 2

    // Desplazar Senkou Span A y B
    SenkouA_Lead = SenkouA[Displacement]
    SenkouB_Lead = SenkouB[Displacement]

    // Calcular Chikou Span (línea de rezago)
    Chikou = Close[Displacement]

    // Condiciones para la señal de compra
    BuySignal = Close > SenkouA_Lead AND Close > SenkouB_Lead AND Tenkan > Kijun AND Chikou > Close

    // Condiciones para la señal de venta
    SellSignal = Close < SenkouA_Lead AND Close < SenkouB_Lead AND Tenkan < Kijun AND Chikou < Close

    // Definir las alertas
    IF BuySignal THEN
    ALERT(“Señal de compra Ichimoku”, 1)

    IF SellSignal THEN
    ALERT(“Señal de venta Ichimoku”, 1)

     

    
    
            
            
        
    #240039 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Publica solo en el idioma del foro en el que publicas. Por ejemplo, inglés solo en foros en inglés y español solo en foros en español. Gracias 🙂

    1. sólo se pueden utilizar LETRAS y NÚMEROS para los nombres de variables, no se permiten otros caracteres o símbolos;
    2. la instrucción ALERT no existe (la reemplacé con SCREENER);
    3. Faltan dos ENDIF al final.

    Esta versión funciona (solo verifiqué errores de sintaxis):

    // Parámetros Ichimoku
    TenkanLength = 9
    KijunLength  = 26
    SenkouLength = 52
    Displacement = 26
    
    // Cálculo de las líneas Ichimoku
    Tenkan  = (Highest[TenkanLength](High) + Lowest[TenkanLength](Low)) / 2
    Kijun   = (Highest[KijunLength](High) + Lowest[KijunLength](Low)) / 2
    SenkouA = (Tenkan + Kijun) / 2
    SenkouB = (Highest[SenkouLength](High) + Lowest[SenkouLength](Low)) / 2
    
    // Desplazar Senkou Span A y B
    SenkouALead = SenkouA[Displacement]
    SenkouBLead = SenkouB[Displacement]
    
    // Calcular Chikou Span (línea de rezago)
    Chikou = Close[Displacement]
    
    // Condiciones para la señal de compra
    BuySignal = Close > SenkouALead AND Close > SenkouBLead AND Tenkan > Kijun AND Chikou > Close
    
    // Condiciones para la señal de venta
    SellSignal = Close < SenkouALead AND Close < SenkouBLead AND Tenkan < Kijun AND Chikou < Close
    
    // Definir las alertas
    Signal = 0
    IF BuySignal THEN
       Signal = 1
    ELSIF SellSignal THEN
       Signal = 2
    ENDIF
    
    SCREENER[Signal](Signal AS "Señal Ichimoku 1=↑,2=↓")

    Los valores devueltos por SCREENER no pueden ser negativos, por lo que utilicé 1 para señales alcistas y 2 para señales bajistas.

    inmodu and Iván González thanked this post
    #240040 quote
    fifi743fifi743
    Participant
    Master

    pequeña modificación
    chikou =close

     

     

    // Parámetros Ichimoku
    TenkanLength = 9
    KijunLength  = 26
    SenkouLength = 52
    Displacement = 26
    
    // Cálculo de las líneas Ichimoku
    Tenkan  = (Highest[TenkanLength](High) + Lowest[TenkanLength](Low)) / 2
    Kijun   = (Highest[KijunLength](High) + Lowest[KijunLength](Low)) / 2
    SenkouA = (Tenkan + Kijun) / 2
    SenkouB = (Highest[SenkouLength](High) + Lowest[SenkouLength](Low)) / 2
    
    // Desplazar Senkou Span A y B
    SenkouALead = SenkouA[Displacement]
    SenkouBLead = SenkouB[Displacement]
    
    // Calcular Chikou Span (línea de rezago)
    Chikou = Close
    
    // Condiciones para la señal de compra
    BuySignal = Close > SenkouALead AND Close > SenkouBLead AND Tenkan > Kijun AND Chikou > Close[Displacement]
    // Condiciones para la señal de venta
    SellSignal = Close < SenkouALead AND Close < SenkouBLead AND Tenkan < Kijun AND Chikou < Close[Displacement]
    
    // Definir las alertas
    Signal = 0
    IF BuySignal THEN
       Signal = 1
    ELSIF SellSignal THEN
       Signal = 2
    ENDIF
    
    SCREENER[Signal](Signal AS "Señal Ichimoku 1=↑,2=↓")
    Iván González and robertogozzi thanked this post
    #240043 quote
    inmoduinmodu
    Participant
    New

    Gracias!!!

    Intento que el sistema me marque en el gráfico cuándo hacer las entradas y las salidas, pero al pasarlo por el verificador me da un par de errores, a ver si me los podéis solucionar, gracias de antemano.

     

    TenkanLength = 9 // Periodo Tenkan
    KijunLength = 26 // Periodo Kijun
    SenkouLength = 52 // Periodo Senkou Span B
    Displacement = 26 // Desplazamiento de la nube (Senkou Span A y B)

    // Cálculos de las líneas Ichimoku
    Tenkan = (Highest[TenkanLength](High) + Lowest[TenkanLength](Low)) / 2
    Kijun = (Highest[KijunLength](High) + Lowest[KijunLength](Low)) / 2
    SenkouA = (Tenkan + Kijun) / 2
    SenkouB = (Highest[SenkouLength](High) + Lowest[SenkouLength](Low)) / 2

    // Desplazar Senkou Span A y B
    SenkouALead = SenkouA[Displacement]
    SenkouBLead = SenkouB[Displacement]

    // Cálculo de la Chikou Span
    Chikou = Close[Displacement]

    // Condiciones de compra (long)
    BuyCondition = Close > SenkouALead AND Close > SenkouBLead AND Tenkan > Kijun AND Chikou > Close

    // Condiciones de venta (short)
    SellCondition = Close < SenkouALead AND Close < SenkouBLead AND Tenkan < Kijun AND Chikou < Close

    // Entradas y salidas
    IF BuyCondition THEN
    BUY 1 CONTRACT AT MARKET
    // Marcar entrada en gráfico con una flecha verde
    DRAWARROWUP(Close, “BUY”, color.green)

    IF SellCondition THEN
    SELL 1 CONTRACT AT MARKET
    // Marcar salida en gráfico con una flecha roja
    DRAWARROWDOWN(Close, “SELL”, color.red)

    // Opcional: Stop Loss y Take Profit (puedes ajustarlos según tu estrategia)
    StopLoss = 200 // Ejemplo: Stop Loss de 200 puntos
    TakeProfit = 400 // Ejemplo: Take Profit de 400 puntos

    // Aplicando Stop Loss y Take Profit
    SET STOP LOSS StopLoss
    SET TAKE PROFIT TakeProfit

    #240048 quote
    Iván GonzálezIván González
    Moderator
    Legend

    Buenas. En el módulo de backtesting no puedes dibujar flechas. De todas formas cuando el sistema entra/sale ya te dibuja una flecha…
    Lo que puedes hacer es poner al final del código lo siguiente:

    GRAPH BUYCONDITION COLOURED("GREEN")
    GRAPH SELLCONDITION COLOURED("RED")

    Se abrirá un cuadro marcando las señales de entrada y salida.

    Revisando tu código hay algun error. No me meto en cómo funciona (si bien o mal). He corregido esos errores para que se pueda ejecutar.

    TenkanLength = 9 // Periodo Tenkan
    KijunLength = 26 // Periodo Kijun
    SenkouLength = 52 // Periodo Senkou Span B
    Displacement = 26 // Desplazamiento de la nube (Senkou Span A y B)
    
    // Cálculos de las líneas Ichimoku
    Tenkan = (Highest[TenkanLength](High) + Lowest[TenkanLength](Low)) / 2
    Kijun = (Highest[KijunLength](High) + Lowest[KijunLength](Low)) / 2
    SenkouA = (Tenkan + Kijun) / 2
    SenkouB = (Highest[SenkouLength](High) + Lowest[SenkouLength](Low)) / 2
    
    // Desplazar Senkou Span A y B
    SenkouALead = SenkouA[Displacement]
    SenkouBLead = SenkouB[Displacement]
    
    // Cálculo de la Chikou Span
    Chikou = Close[Displacement]
    
    // Condiciones de compra (long)
    BuyCondition = Close > SenkouALead AND Close > SenkouBLead AND Tenkan > Kijun AND Chikou > Close
    
    // Condiciones de venta (short)
    SellCondition = Close < SenkouALead AND Close < SenkouBLead AND Tenkan < Kijun AND Chikou < Close
    
    // Entradas y salidas
    IF BuyCondition THEN
    BUY 1 CONTRACT AT MARKET
    endif
    // Marcar entrada en gráfico con una flecha verde
    //DRAWARROWUP(Close, "BUY", color.green)
    
    IF SellCondition THEN
    SELL 1 CONTRACT AT MARKET
    endif
    // Marcar salida en gráfico con una flecha roja
    //DRAWARROWDOWN(Close, "SELL", color.red)
    
    // Opcional: Stop Loss y Take Profit (puedes ajustarlos según tu estrategia)
    StopLoss = 200 // Ejemplo: Stop Loss de 200 puntos
    TakeProfit = 400 // Ejemplo: Take Profit de 400 puntos
    
    // Aplicando Stop Loss y Take Profit
    SET STOP LOSS StopLoss
    SET TARGET PROFIT TakeProfit
    
    GRAPH BUYCONDITION COLOURED("GREEN")
    GRAPH SELLCONDITION COLOURED("RED")
    

    Si al sistema no le dices nada va a estar comprando cada vez que se produzca la señal de entrada. Por otro lado, el cierre de las posiciones lo haces de 1 en 1, no sé si es lo que quieres. En caso de querer cerrar toda la posición de una vez tendrás que poner SELL AT MARKET

    robertogozzi and inmodu thanked this post
Viewing 5 posts - 1 through 5 (of 5 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

Error en sistema ichimoku


ProBuilder: Indicadores y Herramientas

New Reply
Author
author-avatar
inmodu @inmodu Participant
Summary

This topic contains 4 replies,
has 4 voices, and was last updated by Iván GonzálezIván González
1 year, 10 months ago.

Topic Details
Forum: ProBuilder: Indicadores y Herramientas
Language: Spanish
Started: 11/06/2024
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...