Introducción
Sin las herramientas comerciales adecuadas, no es posible realizar un análisis técnico eficaz. Una estrategia comercial sólida le ayudará a evitar errores comunes, mejorar su gestión de riesgos y mejorar su capacidad para identificar y aprovechar oportunidades.
Para muchos, TradingView es la mejor plataforma de gráficos. La poderosa aplicación web HTML5 ofrece muchas herramientas de análisis técnico y es utilizada por millones de usuarios para rastrear los movimientos en los mercados de acciones, Forex y criptomonedas.
TradingView tiene muchas características poderosas: nos permite rastrear activos en múltiples plataformas comerciales y compartir ideas comerciales en las redes sociales. En este artículo, hablaremos sobre sus opciones de personalización. Usaremos PineScript, el lenguaje de programación propio de TradingView, que nos da control sobre los diseños de nuestros gráficos.
¡Vamos a empezar!
¿Qué es la escritura de pino?
Pine Script es un lenguaje de programación utilizado para personalizar los gráficos de TradingView. La plataforma ya ofrece muchas funciones para esto, pero Pine Script ofrece algunas opciones adicionales. Ya sea que quieras cambiar los colores de las velas o probar una nueva estrategia, el Editor Pine te permite personalizar tus gráficos en tiempo real de la forma que prefieras.
El código tiene documentación muy sólida, así que asegúrese de consultar el manual del usuario para obtener más información. Nuestro objetivo en este tutorial es analizar algunos de los conceptos básicos y presentar indicadores que son útiles para el comercio de criptomonedas.
Configuración
Es muy sencillo empezar a utilizar Pine Script. Todo el código se ejecuta en los servidores de TradingView, por lo que podemos acceder al editor y desarrollar nuestros scripts desde un navegador, sin necesidad de descargas ni configuración adicionales.
En este tutorial, usaremos el par de divisas Bitcoin/Binance USD (BTCBUSD). Si aún no tienes una cuenta, crea una gratis (también existe una opción de suscripción Pro, pero no es necesaria para este tutorial).
Vaya a este enlace y verá un gráfico como este:

El tuyo probablemente estará más actualizado.
Aquí usaremos el modo de gráfico con todas las funciones: haga clic en el botón para acceder a él. En este modo tenemos una vista más detallada, herramientas de dibujo y opciones para trazar líneas de tendencia, entre otras funciones.

El gráfico completo. Puede ajustar el período de tiempo haciendo clic en las opciones que se encuentran encima de las pestañas resaltadas en la imagen.
No discutiremos cómo utilizar las diversas herramientas disponibles, pero si utiliza el análisis técnico, le recomendamos que se familiarice con ellas. En la esquina inferior izquierda (que se muestra en la imagen), verá algunas pestañas diferentes: haga clic en Pine Editor.
Editor de pino

Este editor es donde ocurre la magia. Introduzcamos las instrucciones. Haga clic en Agregar al gráfico para mostrar las anotaciones anteriores. Tenga en cuenta que las cosas pueden complicarse si incluimos varias anotaciones a la vez, por lo que las eliminaremos para los siguientes ejemplos (haga clic derecho en el gráfico > Eliminar indicadores).
Como podemos ver, ya tenemos algunas líneas de código. Hagamos clic en Agregar al gráfico y veamos qué sucede.

Se agregará un segundo gráfico debajo del original. El nuevo gráfico ahora muestra los mismos datos. Pase el cursor sobre My Script y haga clic en la cruz para eliminarlo. Ahora, profundicemos en el código.
estudiar("Mi guión")Esta primera línea simplemente configura nuestras anotaciones. Sólo necesitamos definir un nombre para el indicador ("Mi Script" en este caso), pero también hay algunos parámetros opcionales que podemos agregar. Uno de ellos es la superposición, que indica a TradingView que inserte el indicador en el gráfico existente (en lugar de utilizar un segmento nuevo). Como podemos ver en el primer ejemplo, el valor predeterminado es falso. El parámetro overlay = true agrega el indicador al gráfico existente, pero no lo usaremos ahora.
trama (cerrar)Esta línea es una instrucción para trazar el precio de cierre de Bitcoin. El parámetro de trazado simplemente nos proporciona un gráfico de líneas, pero también es posible mostrar velas y barras, como veremos en breve.
Ahora, intentemos lo siguiente:
//@versión=4 estudio("Mi guión", superposición=verdadero) trazado(abierto, color=color.púrpura)Después de agregar este parámetro, veremos un segundo gráfico (que se parece al original, pero desplazado hacia la derecha). Todo lo que hicimos fue trazar el precio de apertura. Dado que la apertura del día actual es el cierre del día anterior, tiene sentido que tengan un formato idéntico.
¡DE ACUERDO! Eliminemos las notas actuales (recuerde, lo hacemos haciendo clic derecho y seleccionando Eliminar indicadores). Pase el cursor sobre Bitcoin/BUSD y haga clic en Ocultar para borrar también el gráfico actual.
Muchos traders prefieren los gráficos de velas porque nos brindan más información que un gráfico simple como el que acabamos de crear. Los agregaremos a continuación.
//@versión=4 estudio("Mi script", overlay=true) plotcandle(abrir, alto, bajo, cerrar)Es un buen comienzo, es una buena idea agregar algunos colores. Generalmente, utilizamos velas rojas cuando el precio de apertura es superior al precio de cierre del período determinado y velas verdes si el precio de cierre es superior al precio de apertura. Agreguemos una línea debajo de la función plotcandle():
//@versión=4 estudio("Mi script", overlay=true) colores = abrir >= cerrar? color.red : color.green plotcandle(abierto, alto, bajo, cerrado)Esta función analiza cada vela y comprueba si el valor de apertura es mayor o igual al valor de cierre. Si es así, significa que los precios han caído durante el período, por lo que la vela se volverá roja. De lo contrario, será verde. Modifique la función plotcandle() para establecer este esquema de color en:
//@versión=4 estudio("Mi script", overlay=true) colores = abrir >= cerrar? color.red: color.green plotcandle(abierto, alto, bajo, cerrado, color=colores)Elimine los indicadores actuales si aún no lo ha hecho y agregue este al gráfico. Ahora deberíamos tener algo similar a un gráfico de velas normal.

¡Excelente!
Trazado de medias móviles (MM)
Repasamos algunos de los conceptos básicos. Tracemos nuestro primer indicador personalizado: la media móvil exponencial o EMA. Esta es una herramienta valiosa ya que nos permite filtrar cualquier ruido del mercado y suavizar la acción del precio.
La EMA se diferencia ligeramente de la media móvil simple (SMA) en que pone más énfasis en los datos más recientes. Tiende a ser más reactivo a movimientos repentinos y suele utilizarse para estrategias a corto plazo (como el day trading, por ejemplo).
Media móvil simple (SMA)
Tracemos también la media móvil simple (SMA), para poder comparar las dos más adelante. Agregue esta línea a su secuencia de comandos:
trama(sma(cerrar, 10))Este valor representa el promedio de los últimos diez días. Ajuste el número entre paréntesis para ver cómo cambia la curva al considerar diferentes períodos.

MMS, basado en los últimos diez días.
Media móvil exponencial (EMA)
La EMA es un poco más complicada, pero no te preocupes. Veamos primero la fórmula:
EMA = (Cierre - EMA del día anterior) * Multiplicado - EMA del día anterior¿Que significa eso? Para cada día, calculamos una nueva media móvil basada en la media del día anterior. El multiplicador considera el “peso” del período más reciente y lo calcula mediante la fórmula:
Multiplicador = 2 / (Período EMA + 1)Al igual que con las medias móviles simples, debemos especificar la duración de la EMA. Sintácticamente, la función para trazar la EMA es similar a la del MMS. Tracéelo junto al MMS para que pueda comparar los dos:
//@versión=4 estudio("Mi guión", overlay=true) plot(sma(close, 10)) plot(ema(close,10))
Podemos notar una ligera diferencia entre los dos tipos de medias móviles.
➠ ¿Estás pensando en invertir en criptomonedas? ¡Compre Bitcoin en Binance!
Guiones incorporados
Hasta ahora, hemos escrito nuestro código manualmente para que puedas hacerte una idea. Pero usemos algo que pueda ahorrarnos tiempo, especialmente si estamos escribiendo scripts más complejos y no queremos hacerlos desde cero.
En la parte superior derecha de tu editor, haz clic en Nuevo. Verás un menú desplegable con todo tipo de indicadores técnicos. Haga clic en Media móvil exponencial para ver el código fuente de un indicador EMA.

Agregue esto al cuadro.
Este es diferente al nuestro: aquí vemos funciones input(). Son buenos en términos de usabilidad, porque podemos hacer clic en esta casilla…

...y cambiar fácilmente algunos de los valores en una nueva ventana haciendo clic en Configuración.

Agregaremos algunas funciones input() en nuestro próximo script para demostrar esto.
Trazar el indicador del índice de fuerza relativa (RSI)
El índice de fuerza relativa (RSI) es otro indicador de análisis técnico esencial. Se le conoce como indicador de impulso, es decir, mide el ritmo de compra y venta de activos. La puntuación RSI se presenta en una escala de 0 a 100 e intenta informar a los inversores si los activos están sobrecomprados o sobrevendidos. Normalmente, un activo se considera sobrevendido si tiene una puntuación menor o igual a 30 y sobrecomprado con una puntuación mayor o igual a 70.
Puede ir a Nuevo > Estrategia RSI y comprobarlo usted mismo. Generalmente, el RSI se mide en períodos de 14 horas o 14 días, pero puedes ajustar esta configuración para adaptarla a tu propia estrategia.
Agregue esto al cuadro. Ahora verá algunas flechas (definidas por la función estrategia.entry() en el código). RsiLE indica una posible oportunidad de posición larga para el activo, que puede estar sobrevendido. RsiSE destaca los posibles puntos de posiciones cortas en el activo, cuando está sobrecomprado. Tenga en cuenta que, como ocurre con todos los indicadores, no necesariamente debe confiar en ellos como evidencia infalible de que los precios subirán o bajarán.
Prueba retrospectiva
Hay una manera de probar indicadores personalizados. Si bien el historial de un activo no es garantía de resultados futuros, realizar una prueba retrospectiva de nuestros scripts puede darnos una idea de su efectividad para capturar señales.
A continuación, usaremos un ejemplo de script simple. Creemos una estrategia que entre en una posición larga cuando el precio de BTC caiga por debajo de $11,000 y salga de la posición cuando el precio supere los $11,300. Entonces podemos ver cuán rentable habría sido históricamente esta estrategia.
//@versión=4 estrategia("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) precio = cerrar if (precio <= enter) strategy.entry("BuyTheDip", estrategia.long , comentario="BuyTheDip") if (precio >= salida) estrategia.close_all(comment="SellTheNews")Aquí definimos la entrada y la salida como variables; ambas son entradas, lo que significa que puede cambiarlas en el gráfico más adelante. También configuramos la variable de precio, precio, que considera el cierre de cada período. Luego tenemos el uso de la lógica en forma de funciones if. Si la parte entre corchetes es verdadera, se ejecutará el bloque debajo. De lo contrario, el bloqueo será ignorado.
Por lo tanto, si el precio es menor o igual a la entrada deseada, la primera expresión se evaluará como verdadera y abriremos una posición larga. Tan pronto como el precio sea igual o mayor que la salida deseada, se activará el segundo bloque, cerrando todas las posiciones abiertas.
Usaremos el gráfico con flechas que muestran por dónde entramos/salimos; Por lo tanto, especificamos cómo etiquetar estos puntos con el parámetro comentario, comentario (en este ejemplo, “BuyTheDip” y “SellTheNews”). Copie el código y agréguelo al gráfico.

Ahora podemos ver los indicadores en el gráfico. Es posible que tengas que alejarte.
TradingView aplica automáticamente sus reglas a datos más antiguos. También notarás que cambia del Editor Pine a la pestaña Probador de estrategias. Esto le permite tener una visión general de sus posibles ganancias, una lista de operaciones y cada uno de sus rendimientos individuales.

Posiciones de entrada y salida.
Asociando la información
Es hora de escribir nuestro propio guión utilizando algunos de los conceptos que hemos visto hasta ahora. Combinemos EMA y RSI y usemos sus valores para colorear los gráficos de velas, generando información que podamos visualizar fácilmente.
Esto no debe interpretarse como un estímulo a la inversión o un asesoramiento financiero; no existe una forma objetivamente correcta de utilizar este indicador. Como todos los demás, conviene utilizarlo con otras herramientas para desarrollar su propia estrategia.
Ahora trabajemos en nuestro nuevo script. Elimine todos sus indicadores del gráfico y oculte el gráfico Bitcoin/BUSD para que podamos trabajar en un lienzo limpio.
Empecemos por definir nuestro estudio. Siéntete libre de ponerle el nombre que quieras, pero recuerda configurar el parámetro overlay=true.
estudio (título = "Binance Academy Script", superposición = verdadero)Recuerda nuestra fórmula EMA de antes. Debemos proporcionar al multiplicador el periodo de la EMA. Usemos una entrada que requiera un número entero (por lo que no hay decimales). También definiremos un valor mínimo (minval) y un valor predeterminado (defval).
estudio(título="Binance Academy Script", superposición=true) emaLength = input(título="Longitud EMA", tipo=input.integer, defval=25, minval=0)Usando esta nueva variable, podemos calcular el valor de EMA para cada vela en nuestro gráfico:
estudio(título="Binance Academy Script", superposición=true) emaLength = input(título="Longitud EMA", tipo=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength)Excelente. Ahora el RSI. Definiremos un período de manera similar:
estudio(título="Binance Academy Script", superposición=true) emaLength = input(title="Longitud EMA", tipo=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = entrada (título="Longitud RSI", tipo=entrada.integer, defval=25, minval=0)Y luego podemos calcularlo:
estudio(título="Binance Academy Script", superposición=true) emaLength = input(title="Longitud EMA", tipo=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = entrada (título="Longitud RSI", tipo=input.integer, defval=25, minval=0) rsiVal = rsi(cerrar, rsiLength)En esta etapa, armaremos la lógica que colorea los gráficos de velas según los valores de EMA y RSI. Consideremos una situación en la que (a) el precio de cierre de la vela supera la EMA y (b) el RSI es superior a 50.
¿Por qué? Bueno, puede decidir utilizar estos indicadores juntos para obtener señales largas o cortas para el comercio de Bitcoin. Por ejemplo, se podría pensar que cumplir ambas condiciones significa que es un buen momento para entrar en una posición larga. O, por el contrario, puedes utilizarlo para informarte sobre cuándo la posición no debe ser corta, incluso si otros indicadores indican lo contrario.
Entonces nuestra siguiente línea se verá así:
estudio(título="Binance Academy Script", superposición=true) emaLength = input(title="Longitud EMA", tipo=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = entrada (título="Longitud RSI", tipo=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colores = cerrar > emaVal y rsiVal > 50? color.verde : color.rojoUsando un lenguaje simple, el código simplemente dice que si el valor de la EMA supera el precio de cierre y la puntuación del RSI es superior a 50, el color de la vela será verde. De lo contrario, será rojo.
A continuación, tracemos la EMA:
estudio(título="Binance Academy Script", superposición=true) emaLength = input(title="Longitud EMA", tipo=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = entrada (título="Longitud RSI", tipo=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colores = cerrar > emaVal y rsiVal > 50? color.verde: color.rojo trazado(emaVal, "EMA")Por último, traza las velas, asegurándote de incluir el parámetro de color, color:
estudio(título="Binance Academy Script", superposición=true) emaLength = input(title="Longitud EMA", tipo=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = entrada (título="Longitud RSI", tipo=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colores = cerrar > emaVal y rsiVal > 50? color.verde: color.rojo plot(emaVal, "EMA") plotcandle(abierto, alto, bajo, cerrado, color=colores)¡Y ese es el guión! Agréguelo al gráfico para verlo funcionando.

Gráfico BTC/BUSD con el indicador EMA/RSI.
Consideraciones finales
En este artículo, analizamos algunos ejemplos básicos de lo que puede hacer con el Editor Pine de TradingView. Ahora debería poder personalizar los gráficos de precios para obtener información adicional utilizando sus propios indicadores.
Aquí solo hemos cubierto algunos indicadores, pero la idea es la misma para los más complejos: puede seleccionar scripts integrados en Nuevo o escribirlos usted mismo.
¿No inspirado? Los siguientes artículos pueden proporcionar algunas ideas para su próximo proyecto:
Una breve guía sobre el indicador SAR parabólico
Guía de retroceso de Fibonacci
Indicadores adelantados y rezagados
Cómo funciona el indicador MACD
