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)
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.
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=↓")
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
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