es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo arreglar el código de Pine para que no genere señales de trading.

Estoy programando una estrategia basada en el canal de Donchian en Pine Script para TradingView, todos los canales se están trazando en el gráfico según el código, pero no puedo generar señales de compra, venta, corto y cierre, y el código tampoco muestra ningún error. Cualquier ayuda sería genial.

//@version=5
strategy("Canal de Donchian", overlay=true)

TOPLENGTH = input.int(defval=10, title='Longitud superior', minval=5, maxval=100, step=1)
BOTTOMLENGTH = input.int(defval=10, title='Longitud inferior', minval=5, maxval=100, step=1)

midsellT = input.int(defval=10, title='Venta media T', minval=5, maxval=100, step=1)
midsellB = input.int(defval=10, title='Venta media B', minval=5, maxval=100, step=1)

midcoverT = input.int(defval=10, title='Cobertura media T', minval=5, maxval=100, step=1)
midcoverB = input.int(defval=10, title='Cobertura media B', minval=5, maxval=100, step=1)

hh = ta.highest(high, TOPLENGTH)
ll = ta.lowest(low, BOTTOMLENGTH)

hhB = ta.highest(high, midsellT)
llB = ta.lowest(low, midsellB)

hhL = ta.highest(high, midcoverT)
llL = ta.lowest(low, midcoverB)

Top = plot(hh, 'Banda superior', color = color.green)
Bottom = plot(ll, 'Banda inferior', color = color.red)

midB = (hhB + llB) / 2
midL = (hhL + llL) / 2

midPlotB = plot(midB, 'BasisB', color = color.black)
midPlotS = plot(midL, 'BasisL', color = color.blue)

buy = ta.crossover(high, hh)
sell = ta.crossunder(low, midB)
short = ta.crossunder(low, ll)
cover = ta.crossover(high, midL)

plotshape(buy, style=shape.labelup, location=location.belowbar, color=color.green, title="Compra", textcolor=color.black, text="Compra")
plotshape(short, style=shape.labeldown, location=location.abovebar, color=color.red, title="Corto", textcolor=color.blue, text="Corto")

strategy.entry('Entrada larga', strategy.long, when=buy)
strategy.close('Entrada larga', when=sell)
strategy.entry('Entrada corta', strategy.short, when=short)
strategy.close('Entrada corta', when=cover)
Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el código para el Canal Donchian está funcionando correctamente y todos los canales se están trazando en el gráfico. Sin embargo, el problema está en la generación de señales de compra, venta, corto y cierre.

    Al examinar el código, parece que las señales se generan correctamente utilizando las funciones ta.crossover y ta.crossunder. Sin embargo, las señales no se están ejecutando porque no se están pasando correctamente a las funciones strategy.entry y strategy.close.

    Para solucionar esto, asegúrese de que la condición de la señal se esté pasando al parámetro when de las funciones strategy.entry y strategy.close.

    Por ejemplo, la estrategia de “entrada larga” debe activarse cuando se cumpla la condición de “compra”, por lo que el parámetro when para la función strategy.entry debe ser when=buy.

    De manera similar, la estrategia de “entrada corta” debe activarse cuando se cumple la condición de “venta corta”, por lo que el parámetro when para la función strategy.entry debe ser when=short.

    Asegúrese de hacer lo mismo para las funciones strategy.close, pasando la condición correspondiente para la señal que debe cerrarse.

    Una vez que esto esté hecho, la estrategia debería generar las señales de compra, venta, corto y cierre como se esperaba.

    ¡Espero que esto ayude!

Comments are closed.