Cómo crear indicadores de TA en TradingView

Introducción
Sin las herramientas comerciales adecuadas, no puede realizar un análisis técnico eficaz. Una estrategia comercial sólida lo ayudará a evitar errores comunes, mejorar su gestión de riesgos y aumentar su capacidad para identificar y aprovechar oportunidades.
Para muchos, TradingView es la plataforma de gráficos preferida. Al ofrecer un centro de herramientas de análisis técnico, millones de personas utilizan la poderosa aplicación web HTML5 para rastrear los movimientos en los mercados de valores tradicionales, de divisas y de criptomonedas.
TradingView tiene muchas características poderosas: nos permite rastrear activos en numerosas plataformas comerciales y publicar ideas comerciales dentro de su red social. En este artículo, nos centraremos en su personalización. Utilizaremos Pine Script , el lenguaje de programación propio de TradingView, que nos otorga un control granular sobre los diseños de nuestros gráficos.
¡Empecemos!
¿Qué es Pine Script?
Pine Script es un lenguaje de programación que se puede utilizar para modificar sus gráficos de TradingView. La plataforma ya te equipa con muchas funciones para hacerlo, pero Pine Script te permite dar un paso más. Ya sea que desee cambiar los colores de sus velas o probar una nueva estrategia, Pine Editor le permitirá personalizar sus gráficos en tiempo real como mejor le parezca.
El código en sí está excelentemente documentado, así que asegúrese de consultar el manual del usuario para obtener más información. Nuestro objetivo en este tutorial es discutir algunos de los conceptos básicos e introducir indicadores que pueden resultar útiles para el comercio de criptomonedas.
Configurar
Es increíblemente sencillo comenzar con Pine Script. Cualquier código que escribimos se ejecuta en los servidores de TradingViews, por lo que podemos acceder al editor y desarrollar nuestros scripts desde un navegador sin necesidad de ninguna descarga o configuración adicional.
En este tutorial, vamos a trazar el par de divisas Bitcoin / Binance USD ( BTCBUSD ). Si aún no tiene una, continúe y cree una cuenta gratuita (también hay una suscripción profesional disponible, pero no es necesaria para esta guía).
Siga este enlace y verá una tabla similar a la siguiente:
El tuyo probablemente estará más actualizado.
Aquí, queremos obtener el gráfico con todas las funciones, haga clic en el botón para acceder a él. Eso nos brinda una vista mucho más detallada, herramientas de dibujo y opciones para trazar líneas de tendencia, entre otras cosas.
El gráfico con todas las funciones. Puede ajustar el período de tiempo haciendo clic en las vistas sobre las pestañas resaltadas.
No discutiremos cómo utilizar las diversas herramientas disponibles, pero si se toma en serio el análisis técnico, le recomendamos que se familiarice con ellas. En la parte inferior izquierda (delineada en la imagen), verá algunas pestañas diferentes, haga clic en Pine Editor .
El editor de pino
Este editor es donde ocurre la magia. Bueno, dígale lo que queremos hacer, luego haga clic en Agregar al gráfico para ver nuestras anotaciones aparecer arriba. Tenga en cuenta que las cosas pueden complicarse si incluimos varias anotaciones a la vez, así que elimínelas entre ejemplos ( haga clic con el botón derecho en el gráfico Eliminar indicadores ).
Puede ver que ya tenemos un par de líneas de código allí. Hagamos clic en Agregar al gráfico para ver qué sucede.
Se agrega un segundo gráfico debajo del original. El nuevo gráfico representa los mismos datos. Coloca el cursor sobre My Script y haz clic en la cruz para eliminarlo. Ahora, profundicemos en el código.
estudiar (mi guion)
Esta primera línea solo está configurando nuestra anotación. Solo requiere el nombre que desea llamar al indicador (My Script, en este caso), pero también hay algunos parámetros opcionales que podemos agregar. Uno de ellos es la superposición , que le dice a TradingView que coloque el indicador en el gráfico existente (en lugar de en un segmento nuevo). Como puede ver en nuestro primer ejemplo, el valor predeterminado es falso . Aunque no lo veremos en acción ahora, overlay = true agrega el indicador al gráfico existente.
trama (cerrar)
Esta línea es la instrucción para trazar el precio de cierre de Bitcoin. plot simplemente nos da un gráfico de líneas, pero también podemos mostrar velas y barras, como veremos en breve.
Ahora, intentemos lo siguiente:
// @ version = 4study (My Script, overlay = true) plot (abierto, color = color.purple)
Una vez que agregue esto, debería ver un segundo gráfico (que se parece al original desplazado hacia la derecha). En su lugar, todo lo que hemos hecho es graficar el precio de apertura , y dado que los días de apertura actuales son el cierre de los días anteriores, tiene sentido que tengan una forma idéntica.
¡Okey! Vamos a deshacernos de las anotaciones actuales (recuerde, lo hacemos haciendo clic derecho y presionando Eliminar indicadores ). Desplácese sobre Bitcoin / BUSD y haga clic en el botón Ocultar para borrar también el gráfico actual.
Muchos traders prefieren los gráficos de velas, ya que nos brindan más información que una simple gráfica como la que acabamos de hacer. Vamos a agregarlos a continuación.
// @ version = 4study (My Script, overlay = true) plotcandle (abierto, alto, bajo, cerrado)
Es un buen comienzo, pero la falta de colores lo vuelve un poco soso. Idealmente, deberíamos tener velas rojas cuando la apertura es mayor que el cierre para el período de tiempo dado, y verdes si el cierre excede la apertura. Bueno, agregue una línea sobre la función plotcandle () :
// @ version = 4study (My Script, overlay = true) colors = open = close? color.red: color.greenplotcandle (abierto, alto, bajo, cerrado)
Esto mira cada vela y verifica si la apertura es mayor o igual al cierre. Si es así, significa que los precios han bajado durante el período, por lo que coloreará la vela de rojo. De lo contrario, lo coloreará de verde. Modifique la funciónplotcandle () para pasar este esquema de color en:
// @ version = 4study (My Script, overlay = true) colors = open = close? color.red: color.greenplotcandle (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 parecido a un gráfico de velas regular.
¡Hermosa!
Trazado de medias móviles (MA)
Hemos aprendido algunos de los conceptos básicos. Pasemos a 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.
EMA se diferencia ligeramente de la media móvil simple (SMA) en que pone más peso en los datos más recientes. Tiende a ser más reactivo a movimientos repentinos y a menudo se usa para jugadas a corto plazo (en operaciones diarias, por ejemplo).
La media móvil simple (SMA)
También podríamos trazar el SMA, solo para poder comparar los dos después. Agregue esta línea a su secuencia de comandos:
trama (sma (cerca, 10))
Esto traza el promedio de los diez días anteriores. Modifique el número entre paréntesis para ver cómo cambia la curva cuando se tienen en cuenta diferentes longitudes.
La SMA, basada en los diez días anteriores.
La media móvil exponencial (EMA)
La EMA será un poco más complicada de entender, pero no se preocupe. Primero analicemos la fórmula:
EMA = (Cierre - EMA de días anteriores) * Multiplicador - EMA de días anteriores
Entonces, ¿qué nos dice esto? Bueno, para cada día, calculamos una nueva media móvil basada en la del día anterior. El multiplicador es lo que pesa el período más reciente y se calcula con la siguiente fórmula:
Multiplicador = 2 / (Duración de EMA + 1)
Al igual que con las medias móviles simples, debemos especificar cuánto tiempo será la EMA. Sintácticamente, la función para trazar EMA es similar a la de SMA. Plácelo junto con el SMA para que pueda comparar los dos:
// @ version = 4study (My Script, overlay = true) plot (sma (close, 10)) plot (ema (close, 10))
Puede ver una ligera diferencia en los dos tipos de MA.
Secuencias de comandos integradas
Hasta ahora, hemos escrito nuestro código manualmente para que pueda familiarizarse con él. Pero introduzcamos algo que puede ahorrarnos tiempo, especialmente si estamos escribiendo scripts más complejos y no queremos hacerlo desde cero.
En la parte superior derecha de su editor, haga clic en Nuevo . Obtendrá un menú desplegable con todo tipo de indicadores técnicos diferentes. Haga clic en Moving Average Exponential para ver el código fuente de un indicador EMA.
Continúe y agregue esto al gráfico.
Este es diferente al nuestro, notará las funciones input () . Estos son buenos desde una perspectiva de usabilidad, ya que puede hacer clic en este cuadro
... y cambie fácilmente algunos de los valores en una ventana emergente haciendo clic en la rueda de Configuración .
Bueno, agregue un par de funciones input () en nuestro próximo script para demostrar esto.
Trazado del indicador del índice de fuerza relativa (RSI)
El índice de fuerza relativa (RSI) es otro indicador esencial en el análisis técnico. Se conoce como indicador de impulso , lo que significa que mide la tasa a la que se compran y venden los activos. Presentada en una escala de 0 a 100, una puntuación RSI intenta informar a los inversores si los activos están sobrecomprados o sobrevendidos. Por lo general, un activo puede considerarse sobrevendido si tiene una puntuación menor o igual a 30, y podría estar sobrecomprado con una puntuación mayor o igual a 70.
Si se dirige a Nueva estrategia RSI , puede comprobarlo por sí mismo. El RSI generalmente se mide en períodos de 14 (es decir, 14 horas o 14 días), pero puede modificar esa configuración para adaptarla a su propia estrategia.
Agregue esto a la tabla. Debería ver algunas flechas mostradas ahora (definidas por la función estrategia.entry () en el código). RsiLE indica una oportunidad potencial de prolongar el activo, ya que puede estar sobrevendido. RsiSE destaca los posibles puntos en los que colocar el activo en corto cuando está sobrecomprado. Tenga en cuenta que, al igual que con todos los indicadores, no debe confiar necesariamente en ellos como evidencia infalible de que los precios disminuirán / aumentarán.
Backtesting
Existe una forma de que podamos probar nuestros indicadores personalizados. Aunque el rendimiento pasado no es garantía de resultados futuros, la prueba retrospectiva de nuestros scripts puede darnos una idea de cuán efectivos son para captar señales.
Bueno, dé un ejemplo de un script simple a continuación. Vamos a crear una estrategia sencilla que entra en una posición larga cuando el precio de BTC cae por debajo de $ 11,000 y sale de la posición cuando el precio supera los $ 11,300. Entonces podemos ver cuán rentable habría sido históricamente esta estrategia.
// @ version = 4strategy (ToDaMoon, overlay = true) enter = input (11000) exit = input (11300) price = closeif (price = enter) strategy.entry (BuyTheDip, strategy.long, comment = BuyTheDip) if (price = salir) estrategia.close_all (comentario = SellTheNews)
Aquí hemos definido entrada y salida como variables, ambas son entradas, lo que significa que podemos cambiarlas en el gráfico más adelante. También configuramos la variable de precio , que toma el cierre de cada período. Entonces, tenemos algo de lógica en forma de declaraciones if . Si la parte entre paréntesis es verdadera, se ejecutará el bloque con sangría debajo. De lo contrario, se omitirá.
Entonces, si el precio es menor o igual a nuestra entrada deseada, la primera expresión se evalúa como verdadera y abre una posición larga. Una vez que el precio iguale o supere la salida deseada, se activará el segundo bloque, cerrando todas las posiciones abiertas.
Bueno, anote el gráfico con flechas que muestren dónde hemos entrado / salido, por lo que hemos especificado qué etiquetar estos puntos con el parámetro de comentario (en este ejemplo, BuyTheDip y SellTheNews). Copie el código y agréguelo al gráfico.
Ahora puede ver los indicadores en el gráfico. Es posible que deba alejar la imagen.
TradingView aplica automáticamente sus reglas a los datos más antiguos. También notará que cambia del Editor Pine a la pestaña Probador de estrategias . Esto le permite ver una descripción general de sus ganancias potenciales, una lista de operaciones y cada una de sus actuaciones individuales.
Posiciones en las que hemos entrado y salido.
Atarlo juntos
Es hora de escribir nuestro propio guión utilizando algunos de los conceptos que hemos visto hasta ahora. Combinaremos EMA y RSI y usaremos sus valores para colorear velas, proporcionando información que podemos visualizar fácilmente.
Esto no debe interpretarse como asesoramiento financiero; no hay una forma objetivamente correcta de utilizar este indicador. Al igual que con todos los demás, debe utilizarse con otras herramientas para desarrollar su propia estrategia.
Ahora trabajemos en nuestro nuevo script. Elimine todos sus indicadores del gráfico y oculte también el gráfico Bitcoin / BUSD, para que tengamos un lienzo limpio en el que trabajar.
Comencemos por definir nuestro estudio. Siéntase libre de nombrarlo como quiera, solo asegúrese de establecer overlay = true .
estudio (título = Script de Binance Academy, superposición = verdadero)
Recuerde nuestra fórmula EMA de antes. Necesitamos proporcionar al multiplicador la longitud de la EMA. Hagámoslo una entrada que requiera un número entero (por lo tanto, sin decimales). Bueno, también establezca un mínimo que puede ser ( minval ) y un valor predeterminado ( defval ).
estudio (título = Binance Academy Script, overlay = true) emaLength = input (title = EMA Length, type = input.integer, defval = 25, minval = 0)
Usando esta nueva variable, podemos calcular el valor EMA para cada vela en nuestro gráfico:
estudio (título = Binance Academy Script, overlay = true) emaLength = input (title = EMA Length, type = input.integer, defval = 25, minval = 0) emaVal = ema (close, emaLength)
Genial. Sobre el RSI. Bueno, dale una longitud de manera similar:
estudio (título = Binance Academy Script, overlay = true) emaLength = input (title = EMA Length, type = input.integer, defval = 25, minval = 0) emaVal = ema (close, emaLength) rsiLength = input (title = RSI Longitud, tipo = input.integer, defval = 25, minval = 0)
Y ahora, podemos calcularlo:
estudio (título = Binance Academy Script, overlay = true) emaLength = input (title = EMA Length, type = input.integer, defval = 25, minval = 0) emaVal = ema (close, emaLength) rsiLength = input (title = RSI Longitud, tipo = input.integer, defval = 25, minval = 0) rsiVal = rsi (close, rsiLength)
En esta etapa, vamos a armar la lógica que colorea las velas dependiendo de los valores de EMA y RSI. Tomemos una situación en la que (a) el precio de cierre de la vela excede la EMA y (b) donde el RSI está por encima de 50.
¿Por qué? Bueno, puede decidir que estos indicadores se pueden usar en conjunto para decirle cuándo usar Bitcoin en largo o en corto. Por ejemplo, podría pensar que satisfacer ambas condiciones significa que es un buen momento para entrar en una posición larga. O a la inversa, puede usarlo para informarle cuándo no es demasiado corto, incluso si otros indicadores dicen lo contrario.
Entonces, nuestra próxima línea se verá así:
estudio (título = Binance Academy Script, overlay = true) emaLength = input (title = EMA Length, type = input.integer, defval = 25, minval = 0) emaVal = ema (close, emaLength) rsiLength = input (title = RSI Length, type = input.integer, defval = 25, minval = 0) rsiVal = rsi (close, rsiLength) colors = close emaVal and rsiVal 50? color.green: color.red
Si traducimos esto a un lenguaje sencillo, simplemente dijéramos que si el valor de la EMA excede el precio de cierre y el puntaje del RSI excede 50, colorea la vela de verde. De lo contrario, colorea bien el rojo.
A continuación, grafique la EMA:
estudio (título = Binance Academy Script, overlay = true) emaLength = input (title = EMA Length, type = input.integer, defval = 25, minval = 0) emaVal = ema (close, emaLength) rsiLength = input (title = RSI Length, type = input.integer, defval = 25, minval = 0) rsiVal = rsi (close, rsiLength) colors = close emaVal and rsiVal 50? color.green: color.redplot (emaVal, EMA)
Por último, trace las velas, asegurándose de incluir el parámetro de color :
estudio (título = Binance Academy Script, overlay = true) emaLength = input (title = EMA Length, type = input.integer, defval = 25, minval = 0) emaVal = ema (close, emaLength) rsiLength = input (title = RSI Length, type = input.integer, defval = 25, minval = 0) rsiVal = rsi (close, rsiLength) colors = close emaVal and rsiVal 50? color.green: color.redplot (emaVal, EMA) plotcandle (abierto, alto, bajo, cerrado, color = colores)
¡Y ese es el guión! Agréguelo al gráfico para verlo en acción.
Un gráfico BTC / BUSD con el indicador EMA / RSI.
Pensamientos finales
En este artículo, analizamos algunos ejemplos básicos de lo que puede hacer con TradingViews Pine Editor. A estas alturas, debería estar seguro de poder realizar anotaciones sencillas en los gráficos de precios para obtener información adicional a partir de sus propios indicadores.
Aquí solo nos hemos interesado en un par de indicadores, pero es fácil hacer girar los más complejos, ya sea seleccionando los scripts incorporados de New o escribiéndolos usted mismo.
¿Falta inspiración? Los siguientes artículos pueden proporcionarle algunas ideas para su próximo proyecto:
- Una breve guía del indicador SAR parabólico
- Una guía para dominar el retroceso de Fibonacci
- Explicación de los indicadores adelantados y rezagados
- Explicación del indicador MACD
RESPONDER UN COMENTARIO