Crear un Bot de Bitcoin Trading en 10 minutos

Bombas, vertederos y liquidación. Bienvenido a Bitcoin. newest , hottest cosa que todos los inversores están negociando . La posibilidad de que se beneficie de ese candelero de $1,000 que salió de la nada es muy atractiva. Sin embargo, no es fácil predecir estas fluctuaciones , y perderse en el mercado es algo demasiado familiar para muchos de nosotros. Por estas razones, hoy les mostraré cómo programar un bot de Bitcoin en menos de 10 minutos . Prepárense para cortar la emoción y traer los algoritmos. Opere bajo su propio riesgo. Antes de cualquier programación, primero debemos encontrar una estrategia viable para usarla para jugar en el mercado y modelar el bot después. Para este artículo, he optado por utilizar una simple estrategia de comercio basada en el volumen La estrategia es simple: cuando el volumen alcanza su punto máximo, hay más interés en el mercado, y esto significa que la tendencia con el pico de volumen probablemente continuará en el futuro En la imagen de abajo, se marcan tres picos de volumen distintos. Las flechas representan que incluso si el pico en volumen es seguido por un volcado, normalmente se elevará por encima del valor de mercado actual en un futuro cercano, ya que la tendencia sigue siendo ascendente

Ahora que tenemos una estrategia básica en mente para este bot, ¡podemos empezar a programar! Tal vez el lenguaje más básico para escribir nuestro bot será PineScript , el lenguaje de TradingView para escribir indicadores y scripts. Para empezar a programar, navegue hasta el editor de PineScript en su cuenta de TradingView (que se muestra a continuación), ahora abra

New> Blank strategy script.
estrategia (“Mi Estrategia”, overlay=true)
longCondition = crossover(sma(close, 14), sma(close, 28))
if (condición larga)
strategy.entry (“My Long Entry Id”, strategy.long)
shortCondición = cruzada(sma(close, 14), sma(close, 28))
if (condición corta)
strategy.entry(“My Short Entry Id”, strategy.short)

Para limpiarlo un poco, voy a borrar todas las líneas excepto las dos primeras. Ahora puede empezar a programar. En primer lugar, debemos derivar un método algorítmico para encontrar un ” pico ” en el volumen de Bitcoin basado en los volúmenes de los candeleros circundantes. Para extraer valores de volumen, inserte estas líneas en su editor .

volumeOne = volumen[1].
volumeTwo = volumen[2]
volumenTres = volumen[3]
lastVolume = volumen[0]
averageVolume = (volumeOne+volumeTwo+volumeThree)/3

Esencialmente, por cada vela en nuestro gráfico, estas líneas tirarán de los 3 volúmenes de los 3 candeleros anteriores y luego calcularán su promedio . Estos valores serán necesarios para nuestro próximo paso. Para determinar si el volumen ha llegado a su punto máximo en un candelero dado, usaré un método simple para determinar si el volumen de la barra actual es 5 veces mayor que el del promedio de las 3 barras anteriores . Nota: en un bot más avanzado, se puede calcular la desviación estándar o IQR de los datos para determinar picos. Este cálculo será ingresado como dos valores booleanos como se muestra a continuación, ya sea true to long, true to short, or false to not long, false to not short.

longCondition = lastVolume> averageVolume * 5and close[0]> open[0].
shortCondition = lastVolume> averageVolume * 5and close[0] < open[0]

Habiendo escrito nuestras condiciones largas y cortas, las órdenes de compra y venta pueden finalmente ser añadidas a nuestro script . Esto se puede hacer como se muestra a continuación. Nota: las órdenes a precio limitado se están utilizando porque la mayoría de las bolsas cobran comisiones muy elevadas a los usuarios, y nuestro bot pretende evitarlas, ya que opera con una alta frecuencia.

strategy.order("long", true, limit = close - 1, when = longCondition)
strategy.order("short", false, limit = close + 1, when = shortCondition)

Finalmente, nuestro bot de Bitcoin ha sido terminado, y es técnicamente funcional tal como está. Sin embargo, hay una cosa más que debemos añadir: órdenes de stop-loss y take-profit. Las órdenes Stop-loss evitan que las malas operaciones pierdan también mucho dinero y las órdenes take-profit nos permiten salir sin beneficio antes de que el precio pueda tener un impacto .para implementar esto, añadiremos dos valores que el usuario puede introducir: cambio porcentual para causar un stop-loss, y cambio porcentual para causar un take-profit . Las órdenes se escribirán como se muestra a continuación, y en la siguiente imagen, las dos variables introducidas por el usuario se programan en la parte superior.

strategy.exit("exit", "long", profit = abs(close*profit - close), loss = abs(close*stopLoss - close))
strategy.exit("exit", "short", profit = abs(close*profit - close), loss = abs(close*stopLoss - close))

Y con eso, has terminado de programar tu bitcoin trading bot! Así es como debería verse su script ahora:

/@version=4
estrategia ("Volume Momentum")
stopLoss = entrada(title="Stop loss", defval=0.9)
profit = entrada(title="Profit gain", defval=1.2)
volumeOne = volumen[3]
volumeTwo = volumen[1]
volumenTres = volumen[2]
volumeFour = volumen[4]
volumeFive = volumen[5]
lastVolume = volumen[0]
averageVolume = (volumeOne+volumeTwo+volumeThree)/3plot(lastVolume/10000, color=#00ffaa)plot(averageVolume/10000, color = #00000000)
longCondition = lastVolume> averageVolume * 5andclose[0]> open[0]
shortCondition = lastVolume> averageVolume * 5andclose[0] < open[0]
strategy.order("long", true, limit = close - 1, when = longCondition)
strategy.exit("exit", "long", profit = abs(close*profit - close), loss = abs(close*stopLoss - close))
strategy.order("short", false, limit = close + 1, when = shortCondition)
strategy.exit("exit", "short", profit = abs(close*profit - close), loss = abs(close*stopLoss - close))

Y aquí está el informe más reciente de TradingView sobre el rendimiento del bot (tomado del gráfico de 1 minuto): En una cuenta con $100, operando de a 10 dólares a la vez, el bot se benefició de cerca del 10% en una semana! En el futuro, podemos añadir filtros para hacer que el bot sea más exigente en sus operaciones y por lo tanto más preciso. Felicidades!