Indicador Pine Script
Indicador Pine Script
Hola, buenas, quiero ver si me pueden ayudar con un indicador que estoy haciendo en Pine Script, estoy usando una EMA de 34 periodos y el precio actual, lo que hago es graficar cuando tienen un cruce alcista y bajista entre ellos, por otro lado, tengo una tabla con las temporalidades de 5 min, 15 min, 30 min, 1 h, 4 h, D, S y M y en otra columna llamada condición binaria asigno un 1 o un 0 dependiendo del ultimo cruce de cada temporalidad ya sea alcista o bajista y al final dependiendo de los 0 y 1 convierto el binario a decimal. En lo que requiero ayuda es en que como obtener unicamente el ultimo cruce de cada temporalidad automaticamente para que se vaya colocando y actualizando en mi tabla, espero puedan ayudarme, llevo aquí unos cuantos días leyendo documentación pero no encuentro una forma adecuada
Re: Indicador Pine Script
Hola RicoSuave, bienvenido al Foro
¿Puedes compartir el código para poder echarle un vistazo y hacer algunas pruebas?
Saludos,
X-Trader
¿Puedes compartir el código para poder echarle un vistazo y hacer algunas pruebas?
Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Re: Indicador Pine Script
Claro, lo tengo dividido en dos indicadores distintos,X-Trader escribió: 16 Jun 2022 17:28 Hola RicoSuave, bienvenido al Foro
¿Puedes compartir el código para poder echarle un vistazo y hacer algunas pruebas?
Código: Seleccionar todo
//@version=4
study(title="EMA 34 Dif con Precio", shorttitle="EMA 34 y Precio ", overlay=true)
//DECLARACION DE VARIABLES DE CRUCE
crucepositivo = 0
crucenegativo = 0
//VARIABLES DE P Y EMA 34
int precio = input(title="EMA 10", type = input.integer, defval=6)
int periodo_34 = input(title="EMA 34", type = input.integer, defval=34)
p = ema(close,precio)
e34 = ema(close,periodo_34)
//FLECHAS ALCISTAS Y BAJISTAS
bajistas = crossunder(p, e34)
alcistas = crossover(p, e34)
plotshape(bajistas, title="Bajista", location=location.abovebar, color=color.red, transp=0, style=shape.triangledown, text="0", size = size.small)
plotshape(alcistas, title="Alcista", location=location.belowbar, color=color.green, transp=0, style=shape.triangleup, text="1", size = size.small)
//PLOTS QUE IMPRIMEN EL PRECIO LA EMA DE 34 TEMPORALIDADES
plot(p, color=color.red, linewidth = 3)
plot(e34, color=color.orange, linewidth = 3)
//IF QUE DA VALOR A CRUCEPOSITIVO
if ( (p[2] <= e34[2]) and (p[1] > e34[1]) )
crucepositivo := 1
else
crucepositivo := 0
//IF QUE DA VALOR A CRUCENEGATIVO
if ( (p[2] >=e34[2]) and (p[1] <e34[1]) )
crucenegativo := 1
else
crucenegativo := 0
// IF QUE PERMITE MOSTRAR LA FLECHA ARRIBA
arrowup = if (crucepositivo)
true
else
false
//bgcolor(color = cross(p, e34) ? color.green : na, transp =70)
//PLOT QUE IMPRITE LA FLECHA ARRIBA
//plotshape(series=arrowup, style=shape.triangleup, location = location.belowbar,color = color.green, size = size.small)
bgcolor(color = crossover(p, e34) ? color.green : na, transp =70)
// IF QUE PERMITE MOSTRAR LA FLECHA ABAJO
arrowdown = if (crucenegativo)
true
else
false
//bgcolor(color = cross(p, e34) ? color.red : na, transp =70)
//PLOT QUE IMPRITE LA FLECHA ABAJO
//plotshape(series=arrowdown, style=shape.triangledown, location = location.abovebar, color = color.red, transp = 5, size = size.small)
bgcolor(color = crossunder(p, e34) ? color.red : na, transp =70)
Código: Seleccionar todo
//@version=4
study("Tabla Condiciones binarias", shorttitle = " TCB", overlay = true)
//variables
crucepositivo = 0
crucenegativo = 0
//inputs que muestran las condiciones binarias
c0 = input(inline = "Condicion", type= input.integer, defval = 0, title = " 5m: ")
c1 = input(inline = "Condicion", type= input.integer, defval = 0, title = " 15m: ")
c2 = input(inline = "Condicion", type= input.integer, defval = 0, title = " 30m: ")
c3 = input(inline = "Condicion", type= input.integer, defval = 0, title = " 1h: ")
c4 = input(inline = "Condicion", type= input.integer, defval = 0, title = " 4h: ")
c5 = input(inline = "Condicion", type= input.integer, defval = 0, title = " D: ")
c6 = input(inline = "Condicion", type= input.integer, defval = 0, title = " S: ")
c7 = input(inline = "Condicion", type= input.integer, defval = 0, title = " M: ")
//tabla de 2 x 10
var table info = table.new(position.top_right, 2,10, border_width = 1)
//Función de conversión a decimal
binario(c0,c1,c2,c3,c4,c5,c6,c7) =>
spot = c0 * pow(2,0) + c1 * pow(2,1) + c2 * pow(2,2) + c3 * pow(2,3) + c4 * pow(2,4) + c5 * pow(2,5) + c6 * pow(2,6) + c7 * pow(2,7)
tostring(spot)
//variable que guarda el resultado de la funcion y manda los datos que ingrese el usuario
cd = binario( (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7) )
//condición para color verde alcitas color rojo bajistas
ca0 = (c0) > 0
ca1 = (c1) > 0
ca2 = (c2) > 0
ca3 = (c3) > 0
ca4 = (c4) > 0
ca5 = (c5) > 0
ca6 = (c6) > 0
ca7 = (c7) > 0
if barstate.islast
//titulos columnas
table.cell(info, 0 ,0 , "Temporalidades", bgcolor= color.new(color.orange, 70), text_color = color.white )
table.cell(info, 1 ,0 , "Condición Binaria", bgcolor= color.new(color.orange, 70), text_color = color.white )
//Columna 1-filas
table.cell(info, 0 ,1 , "5m", bgcolor= color.new(color.orange, 70), text_color = color.white )
table.cell(info, 0 ,2 , "15m", bgcolor= color.new(color.orange, 70), text_color = color.white )
table.cell(info, 0 ,3 , "30m", bgcolor= color.new(color.orange, 70), text_color = color.white )
table.cell(info, 0 ,4 , "1h", bgcolor= color.new(color.orange, 70), text_color = color.white )
table.cell(info, 0 ,5 , "4h", bgcolor= color.new(color.orange, 70), text_color = color.white )
table.cell(info, 0 ,6 , "D", bgcolor= color.new(color.orange, 70), text_color = color.white )
table.cell(info, 0 ,7 , "S", bgcolor= color.new(color.orange, 70), text_color = color.white )
table.cell(info, 0 ,8 , "M", bgcolor= color.new(color.orange, 70), text_color = color.white )
table.cell(info, 0 ,9 , "Decimal", bgcolor= color.new(color.black, 70), text_color = color.white )
//Columna 2-filas
table.cell(info, 1 ,1 , tostring(c0), bgcolor= ca0 ? color.new(color.green, 70) : color.new(color.red, 70), text_color = color.white )
table.cell(info, 1 ,2 , tostring(c1), bgcolor= ca1 ? color.new(color.green, 70) : color.new(color.red, 70), text_color = color.white )
table.cell(info, 1 ,3 , tostring(c2), bgcolor= ca2 ? color.new(color.green, 70) : color.new(color.red, 70), text_color = color.white )
table.cell(info, 1 ,4 , tostring(c3), bgcolor= ca3 ? color.new(color.green, 70) : color.new(color.red, 70), text_color = color.white )
table.cell(info, 1 ,5 , tostring(c4), bgcolor= ca4 ? color.new(color.green, 70) : color.new(color.red, 70), text_color = color.white )
table.cell(info, 1 ,6 , tostring(c5), bgcolor= ca5 ? color.new(color.green, 70) : color.new(color.red, 70), text_color = color.white )
table.cell(info, 1 ,7 , tostring(c6), bgcolor= ca6 ? color.new(color.green, 70) : color.new(color.red, 70), text_color = color.white )
table.cell(info, 1 ,8 , tostring(c7), bgcolor= ca7 ? color.new(color.green, 70) : color.new(color.red, 70), text_color = color.white )
table.cell(info, 1 ,9 , cd , bgcolor= color.new(color.black, 70), text_color = color.white )
Re: Indicador Pine Script
Hola RicoSuave, revisando el código y la idea que planteas y, si no me equivoco, creo que el problema viene de que lo separas en dos indicadores. Recuerda que en Pine Script no se puede referenciar a otros indicadores. Por lo tanto, la solución grosso modo sería más o menos la siguiente (ojo, siempre todo desde un mismo indicador): por un lado, debes recorrer los diferentes timeframes en busca de cruces, y después, una vez almacenadas las condiciones, generar la tabla.
De todos modos este indicador que he encontrado en TradingView creo que te va a sacar de dudas:
https://www.tradingview.com/script/POZ0 ... -Strategy/
Revisa el código, verás que la idea es similar a lo que quieres hacer (aquí compara precio con media, en tu caso sería reemplazar comparaciones por cruces en el apartado llamado // Moving Average Vs Price Strategy).
Saludos,
X-Trader
De todos modos este indicador que he encontrado en TradingView creo que te va a sacar de dudas:
https://www.tradingview.com/script/POZ0 ... -Strategy/
Revisa el código, verás que la idea es similar a lo que quieres hacer (aquí compara precio con media, en tu caso sería reemplazar comparaciones por cruces en el apartado llamado // Moving Average Vs Price Strategy).
Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Re: Indicador Pine Script
Muy bien, lo revisaré, me parece una muy buena opción, creo que es la clave !! muchas gracias!X-Trader escribió: 17 Jun 2022 12:41 Hola RicoSuave, revisando el código y la idea que planteas y, si no me equivoco, creo que el problema viene de que lo separas en dos indicadores. Recuerda que en Pine Script no se puede referenciar a otros indicadores. Por lo tanto, la solución grosso modo sería más o menos la siguiente (ojo, siempre todo desde un mismo indicador): por un lado, debes recorrer los diferentes timeframes en busca de cruces, y después, una vez almacenadas las condiciones, generar la tabla.
De todos modos este indicador que he encontrado en TradingView creo que te va a sacar de dudas:
https://www.tradingview.com/script/POZ0 ... -Strategy/
Revisa el código, verás que la idea es similar a lo que quieres hacer (aquí compara precio con media, en tu caso sería reemplazar comparaciones por cruces en el apartado llamado // Moving Average Vs Price Strategy).
Re: Indicador Pine Script
TradingView tiene su propio lenguaje de scripts, Pine Script, y un editor de scripts incorporado. El editor de scripts permite al usuario personalizar la visualización de los indicadores técnicos, la apariencia de las ventanas de negociación y otras características
Si te ha gustado este hilo del Foro, ¡compártelo en redes!