Error en sistema ichimoku

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #240038 quote
    inmodu
    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
    robertogozzi
    Moderator
    Master

    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
    fifi743
    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
    inmodu
    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ález
    Moderator
    Master

    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.

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ález
1 year, 3 months ago.

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