Introducción

No se puede realizar un análisis técnico eficaz sin las herramientas comerciales adecuadas. Una estrategia comercial poderosa puede ayudar a evitar errores comunes, mejorar la gestión de riesgos y mejorar la capacidad de identificar y explotar oportunidades.

Para muchos, TradingView es la plataforma de gráficos a la que acudir. Esta potente aplicación web HTML5 proporciona un centro de herramientas de análisis técnico que ayuda a millones de usuarios a realizar un seguimiento de los movimientos de Forex, criptomonedas y mercados de valores tradicionales.

TradingView tiene muchas funciones potentes: permite a los usuarios realizar un seguimiento de los activos en múltiples plataformas comerciales y publicar sus opiniones comerciales en sus sitios de redes sociales. Este artículo se centrará en sus capacidades de personalización. Usaremos Pine Script, el lenguaje de programación patentado de TradingView, que nos permite tener un control más granular sobre el diseño del gráfico.

¡Empecemos!


¿Qué es la escritura de pino?

Pine Script es un lenguaje de programación que se puede utilizar para modificar gráficos de TradingView. La plataforma TradingView ya ofrece muchas funciones similares, pero Pine Script va aún más allá. Ya sea que desee cambiar el color del gráfico de velas o probar una nueva estrategia, Pine Editor le permite personalizar los gráficos en tiempo real según sus necesidades.

El código en sí está bien documentado, así que asegúrese de consultar el manual del usuario para obtener más detalles. Este artículo tiene como objetivo analizar algunos conceptos básicos e introducir indicadores que pueden resultar útiles en el comercio de criptomonedas.


crear

Pine Script es simple y fácil de usar. Cualquier código que escribimos se ejecuta en los servidores de TradingView, por lo que podemos acceder al editor a través de un navegador y desarrollar nuestros scripts sin necesidad de descargas ni configuraciones adicionales.

En este tutorial, trazaremos el par de divisas Bitcoin/Binance USD (BTCBUSD). Si aún no tienes una cuenta de Binance, crea una cuenta gratuita (también es posible una cuenta Pro, pero no es necesaria para esta guía).

Abra el enlace y verá un gráfico similar al siguiente:


Tradingview上的BTCBUSD图表

Los datos de su gráfico pueden actualizarse.


Ahora queremos obtener un gráfico con funciones ricas, haga clic en el botón para ingresar. Luego podremos ver vistas más detalladas, herramientas de dibujo, opciones para dibujar líneas de tendencia y otras características.


BTCBUSD在tradingview上的全功能图表

Gráficos totalmente funcionales. Puede ajustar el horario haciendo clic en Ver encima de la pestaña resaltada.


No discutiremos cómo utilizar las diversas herramientas disponibles, pero si realmente desea realizar un análisis técnico, le recomendamos encarecidamente que se familiarice con ellas primero. En la parte inferior izquierda (como se muestra en la imagen) verá algunas pestañas diferentes; haga clic en Pine Editor.


El editor de pino


screenshot截屏


Este editor es asombroso. Le diremos lo que queremos hacer y luego haremos clic en Agregar al gráfico y veremos que la anotación que agregamos aparece en el gráfico. Tenga en cuenta que si agregamos varias anotaciones al mismo tiempo, se mezclarán, por lo que las eliminaremos en el ejemplo (haga clic derecho en el gráfico > Eliminar indicador).

Como puede ver, ya tenemos algunas líneas de código. Hagamos clic en Agregar al gráfico y veamos qué sucede.


将第一个脚本添加到tradingview图表中


Agregue un segundo gráfico debajo del gráfico original. El nuevo gráfico muestra exactamente los mismos datos. Coloque el mouse sobre mi secuencia de comandos y haga clic en × para eliminar. Ahora, exploremos el código.

investigación("miscript")

La primera línea simplemente configura nuestra anotación. Todo lo que necesitas es el nombre del indicador que deseas llamar (en este caso "Mi Script"), pero también podemos agregar algunos parámetros opcionales. Uno de ellos es la anulación, este parámetro le indica a TradingView que coloque el indicador en el gráfico existente (en lugar de en un gráfico nuevo). Como puede ver en el primer ejemplo que enumeramos, el valor predeterminado es falso. Aunque todavía no puedes ver cómo funciona, overlay=true agregará el indicador al gráfico existente.

Dibujar un gráfico (Cerrar)

Esta línea es la instrucción para trazar el precio de cierre de Bitcoin. Los gráficos solo nos brindan un gráfico de líneas, pero también podemos presentar gráficos de velas y gráficos de 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)

Una vez agregado, debería ver un segundo gráfico (parecerá que el gráfico original se ha movido hacia la derecha). Lo que hacemos es trazar los precios de apertura, y dado que el precio de apertura del día es el precio de cierre del día anterior, tiene sentido que estos gráficos se muevan exactamente igual.

¡está bien! Eliminemos la anotación actual (recuerde, esto se hace haciendo clic derecho y haciendo clic en Eliminar indicador). Coloque el mouse sobre Bitcoin/BUSD y haga clic en el botón Ocultar para eliminar el gráfico actual.

Muchos traders prefieren utilizar gráficos de líneas K, que pueden proporcionarnos más información que el simple gráfico que acabamos de crear. A continuación agreguemos el gráfico que dibujamos.

//@versión=4 estudio("Mi script", overlay=true) plotcandle(abrir, alto, bajo, cerrar)

Empezó bien, pero los colores monótonos lo hacían parecer un poco soso. Idealmente, el gráfico de la línea K debería ser rojo cuando el precio de apertura es inferior al precio de cierre y verde si el precio de cierre es superior al precio de apertura. Agregamos una línea encima de la función plotcandle():

//@versión=4 estudio("Mi guión", superposición=verdadero) colores = abrir >= cerrar?color.red: color.verde plotcandle(abrir, alto, bajo, cerrar)

Esto requiere mirar cada gráfico de líneas K para verificar si el precio de apertura es mayor o igual al precio de cierre. Si este es el caso, significa que el precio cayó durante este tiempo y el gráfico de velas se volverá rojo. De lo contrario se pondrá verde. Modifique la función plotcandle() y agregue esta combinación de colores:

//@versión=4 estudio("Mi guión", superposición=verdadero) colores = abrir >= cerrar?color.red: color.verde plotcandle(abrir, alto, bajo, cerrar, color=colores)

Si aún no lo ha hecho, elimine la métrica existente y agréguela al gráfico. Ahora deberíamos haber dibujado un gráfico similar a un gráfico de líneas K.


Tradingview上的K线图

¡Bien hecho!


Dibujar una media móvil (MA)

Hemos completado algunas operaciones básicas. Echemos un vistazo a nuestro primer indicador personalizado: la media móvil exponencial o EMA. Esta herramienta es útil porque 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 recientes. Tiende a reaccionar más ante cambios repentinos y suele utilizarse para operaciones a corto plazo (por ejemplo, en el day trading).


Media móvil simple (SMA)

También podemos trazar la SMA para poder comparar las dos más adelante. Agregue esta línea a su secuencia de comandos.

trama(sma(cerrar, 10))

Esto traza el promedio de los diez días anteriores. Ajuste los números entre paréntesis para ver cómo cambia la curva a medida que cambia la longitud.


基于前10天的简单移动平均数

SMA se basa en los datos de los diez días anteriores.


Media móvil exponencial (EMA)

La EMA es más complicada de entender, pero no te preocupes. Analicemos primero esta fórmula:

EMA = (precio de cierre – EMA del día anterior) * múltiplo – EMA del día anterior

¿Qué indica esto? Cada día, calculamos un nuevo valor de media móvil basado en el valor del día anterior. El múltiplo está "ponderado" por el número de días recientes y se calcula mediante la siguiente fórmula:

Múltiple = 2/(longitud EMA + 1)

Al igual que con la media móvil simple, debemos asignar un valor a la longitud de la EMA. Sintácticamente, trazar la función EMA es similar a trazar la función SMA. Traza esto junto con la SMA y podrás comparar los dos.

//@versión=4 estudio("Mi guión", overlay=true) plot(sma(close, 10)) plot(ema(close, 10))


EMA和SMA在同一个tradingview图表上

Verás que estos dos tipos de MA son ligeramente diferentes.


➟ ¿Quieres comenzar tu viaje con las criptomonedas? ¡Bienvenido a comprar Bitcoin en Binance!


Guión incorporado

Hasta ahora, hemos escrito nuestro código manualmente para que puedas tener una idea intuitiva del mismo. Ahora presentaremos algunas funciones que pueden ahorrar tiempo, especialmente si queremos escribir scripts más complejos pero no queremos empezar desde cero.

En la esquina superior derecha del editor, haga clic en Nuevo. Obtendrá un menú desplegable que muestra una variedad de indicadores técnicos diferentes. Haga clic en el índice de media móvil para ver el código fuente del indicador EMA.



Pine script中的移动平均指数

Haga clic y agréguelo al gráfico.


Este índice es diferente al nuestro, notarás la función input(). Estos son geniales desde una perspectiva de usabilidad porque puedes hacer clic en este cuadro...


在tradingview界面上修改图表


...y haga clic en el ícono de ajustes de configuración para cambiar fácilmente algunos valores en la ventana emergente.


改变EMA的输入内容


Agregaremos algunas funciones input() al siguiente script para demostrar esto.


Trazar el indicador del índice de fuerza relativa (RSI)

El índice de fuerza relativa (RSI) es otro indicador importante en el análisis técnico. Conocido como indicador de impulso, mide el precio al que se compra y vende un activo. En una escala de 0 a 100, la puntuación RSI intenta indicar a los inversores si un activo está sobrecomprado o sobrevendido. Por lo general, si un activo tiene una puntuación de 30 o menos, se puede considerar sobrevendido, mientras que una puntuación de 70 o más puede considerarse sobrecompra.

Vaya a Nuevo>Estrategia RSI para verlo usted mismo. El RSI generalmente se mide en un período de 14 (es decir, 14 horas o 14 días), pero usted es libre de ajustar esta configuración para adaptarla a su estrategia.

Agregue RSI al gráfico. Debería ver varias flechas ahora mostradas (definidas por la función estrategia.entry() en este código). RsiLE representa una oportunidad potencial para ampliar un activo, ya que puede estar sobrevendido. RsiSE destaca posibles puntos de venta en corto cuando un activo está sobrecomprado. Tenga en cuenta que, como ocurre con todos los indicadores, no necesariamente es necesario tomarlos como evidencia concluyente de que los precios van a disminuir o aumentar.


Prueba retrospectiva

Existe una forma de probar nuestros propios indicadores personalizados. Si bien el rendimiento pasado no es garantía de resultados futuros, realizar una prueba retrospectiva de nuestro script puede darnos una idea de su eficacia para captar señales.

A continuación le daremos un ejemplo de script simple. Planificamos una estrategia simple y clara para entrar en una posición larga cuando el precio de Bitcoin baje a $11,000 y salir de la posición larga cuando el precio supere los $11,300. Entonces podemos ver cuán rentable ha sido históricamente esta estrategia.

//@versión=4 estrategia("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) precio = cerrar if (precio <= enter) estrategia.entry("BuyTheDip",strategy.long ,comment="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 podemos realizar cambios en ambas más adelante en el gráfico. También configuramos una variable de precio para tomar el precio de cierre de cada período. Entonces, tenemos cierta lógica que sigue el patrón de declaración if. Si la parte entre paréntesis es verdadera, se ejecutará el bloque sangrado debajo. De lo contrario, se omitirá.

Por lo tanto, si el precio es menor o igual a nuestro precio de entrada deseado y la primera expresión se evalúa como verdadera, abriremos una posición larga. Una vez que el precio iguale o supere el precio de salida requerido, se activará un segundo bloque que cerrará todas las posiciones abiertas.

Anotamos el gráfico con flechas que muestran dónde entramos/salimos, por lo que usamos parámetros de evaluación para especificar qué marca esos puntos (en este caso, "BuyTheDip" y "SellTheNews"). Copie el código y agréguelo al gráfico.


指标在tradingview图表中处于活跃状态

Ahora puedes ver estos indicadores en el gráfico. Es posible que se requiera amplificación.


TradingView aplica automáticamente sus reglas a datos más antiguos. También notará que TradingView cambia del Editor Pine a la pestaña Probador de estrategias. Esto le permite ver una descripción general de las ganancias potenciales, una lista de operaciones y el rendimiento de cada indicador.


交易观点策略测试器

Posiciones en las que hemos entrado y salido.


Conjunto

Ahora podemos escribir nuestro propio script usando algunos de los conceptos que hemos visto hasta ahora. Combinaremos EMA y RSI y usaremos sus valores para afectar el color del gráfico de líneas K para que podamos entenderlo fácilmente.

Pero esto no constituye asesoramiento financiero y no existe una forma objetivamente correcta de utilizar estos indicadores. Como todas las demás herramientas, conviene combinarla con otras herramientas para desarrollar su propia estrategia de inversión.

Ahora exploremos el nuevo guión. Elimine todos los indicadores del gráfico y oculte el gráfico Bitcoin/BUSD para que tengamos un entorno operativo limpio.

Veamos primero la definición. Nómbralo como quieras, solo asegúrate de configurar overlay=true.

estudio (título = "Binance Academy Script", superposición = verdadero)

Recuerde nuestra fórmula EMA anterior. Necesitamos usar la longitud de EMA para calcular el múltiplo. Convirtamos esto en una entrada que requiere un número entero de dígitos, por lo que no hay decimales. También estableceremos el valor mínimo (minval) y el 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)


Con base en esta nueva variable, podemos calcular el valor de la EMA para cada vela en el 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)


muy bien. A continuación veamos el RSI. Le asignaremos un valor de longitud de forma similar:

estudio(título="Binance Academy Script", overlay=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)

Ahora podemos calcular:

estudio(título="Binance Academy Script", overlay=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, armemos la lógica que determina los colores de las velas en función de los valores de EMA y RSI. Supongamos que (a) la vela cierra por encima de la EMA y (b) el RSI está por encima de 50.

¿Por qué deberíamos asumir esto? Porque podría decidir utilizar una combinación de estos indicadores para saber cuándo ir en largo o en corto en Bitcoin. Por ejemplo, se podría pensar que cumplir estas dos condiciones significa que ahora es un buen momento para ir en largo. O, por el contrario, puede utilizarlo para recordar cuándo no quedarse corto, incluso si otros indicadores indican lo contrario.

Por lo tanto, nuestra siguiente línea de código se verá así:

estudio(título="Binance Academy Script", overlay=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

Si traducimos esta frase al inglés sencillo, en realidad estamos diciendo que si el valor de la EMA excede el precio de cierre y la puntuación del RSI excede 50, el gráfico de velas se volverá verde. De lo contrario se pondrá rojo.

A continuación, trace el gráfico de EMA:

estudio(título="Binance Academy Script", overlay=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.red plot(emaVal, "EMA")

Finalmente, dibuje el gráfico de la línea K, asegúrese de incluir los parámetros de color:

estudio(título="Binance Academy Script", overlay=true) emaLength = input(title="Longitud EMA", tipo=input.integer,defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = entrada (title="Longitud RSI", tipo=input.integer,defval=25, minval=0) rsiVal = rsi(close, rsiLength) colores = cerrar > emaVal y rsiVal > 50?color.green: color.red plot(emaVal , "EMA") plotcandle(abierto, alto, bajo, cerrado, color=colores)

Entonces, ¡el guión está escrito! Agréguelo al gráfico y vea cómo funciona.


Tradingview脚本在运行

Un gráfico de Bitcoin/BUSD con indicadores EMA/RSI.


Resumir

En este artículo, le demostramos la funcionalidad del Editor Pine en TradingView a través de algunos ejemplos básicos. Ahora debería sentirse seguro al realizar anotaciones sencillas en los gráficos de precios para obtener más información a partir de sus propios indicadores.

Solo hemos cubierto algunos de estos indicadores en este artículo, pero no es difícil crear indicadores más complejos: puede optar por crear un nuevo script integrado o escribir el suyo propio.

¿Aún te falta inspiración? Los siguientes artículos pueden proporcionar algunas ideas para su próximo proyecto:

  • Una breve guía sobre el indicador parabólico

  • "Guía de estudio del retroceso de Fibonacci"

  • "Explicación detallada de los indicadores adelantados y retrasados"

  • Explicación detallada del indicador de media móvil exponencial (MACD)