» Para seguir el camino, mire al maestro, siga al maestro, camine con el maestro, vea a través del maestro, conviértase en el maestro.»– Proverbio Zen
- ¡Nuevo! Chatea con otros usuarios de Zenbot
- Descripción
- Descargo de responsabilidad
- inicio Rápido
- 1. Requisitos: Linux, OSX o Docker, Nodo.js y MongoDB.
- Docker
- Vocab: selectores
- 3. (opcional) Ejecute simulaciones para su selector elegido
- Captura de pantalla y resultado de ejemplo
- 4. Ejecute zenbot
- la Lectura de la salida de la consola
- Acerca de la estrategia predeterminada
- Opción de ajustar consejos
- Herramientas de comercio manual
- Registro de actualización
- TODO
- Donar
- carlos8f del BTC
- Licencia: MIT
¡Nuevo! Chatea con otros usuarios de Zenbot
¡Zenbot tiene un chat de discordia de nuevo! Puedes entrar a través de este enlace de invitación.
Descripción
Zenbot es un bot de comercio de criptomonedas de línea de comandos que utiliza Node.js y MongoDB. Cuenta con:
- Enfoque comercial basado en análisis técnico totalmente automatizado
- Soporte completo para GDAX y Poloniex, se está trabajando en el soporte de intercambio adicional.
- Arquitectura de complementos para implementar soporte de intercambio o escribir nuevas estrategias
- Simulador para probar estrategias contra datos históricos
- Modo de negociación»en papel», opera en un saldo simulado mientras observa el mercado en vivo
- Paradas de venta, paradas de compra y paradas de ganancias (finales) configurables
- Período de muestreo flexible y frecuencia de negociación: promedios de 1-2 operaciones/día con período de 1 hora, 10/día con período de 15 m
Descargo de responsabilidad
- Zenbot NO es una máquina de ganancias segura. Úselo BAJO SU PROPIO RIESGO.
- La criptomoneda sigue siendo un experimento, y por lo tanto también lo es Zenbot. Es decir, ambos pueden fallar en cualquier momento.
- Ejecutar un bot y operar en general requiere un estudio cuidadoso de los riesgos y parámetros involucrados.
- A menudo, los parámetros comerciales predeterminados tendrán un rendimiento inferior al de una estrategia de compra-retención, así que ejecute algunas simulaciones y encuentre los parámetros óptimos para su intercambio/par elegido antes de ir «all-in».
inicio Rápido
1. Requisitos: Linux, OSX o Docker, Nodo.js y MongoDB.
Ejecutar en la consola,
git clone https://github.com/carlos8f/zenbot.git
O, sin git,
wget https://github.com/carlos8f/zenbot/archive/master.tar.gztar -xf zenbot-master.tar.gzmv zenbot-master zenbot
Crear el archivo de configuración mediante la copia de conf-sample.js
a conf.js
:
cp conf-sample.js conf.js
- Ver y editar
conf.js
. - Es posible usar zenbot en el modo» paper trading » sin hacer ningún cambio.
- Sin embargo, debe agregar sus claves de API de exchange para habilitar el comercio real.
- Las claves API NO necesitan permisos de depósito/retiro.
Si usa Docker, vaya a la sección «Docker» a continuación.
Instalar dependencias:
cd zenbotnpm install# optional, installs the `zenbot.sh` binary in /usr/local/bin:npm link
Docker
Para ejecutar Zenbot en Docker, install Docker, Docker Compose, Docker Machine (si es necesario), Puede seguir las instrucciones en https://docs.docker.com/compose/install/
Después de la instalación (paso 2 anterior),
cd zenbotdocker-compose builddocker-compose up (-d if you don't want to see the log)
Vocab: selectores
Un «selector» es un identificador corto que le dice a Zenbot en qué intercambio y par de divisas actuar. Utilice el formulario {exchange_slug}.{asset}-{currency}
. Puede encontrar una lista completa de selectores compatibles con la instalación de Zenbot con:
3. (opcional) Ejecute simulaciones para su selector elegido
Para rellenar datos (siempre que su intercambio elegido lo admita), use:
zenbot backfill <selector> --days <days>
Después de rellenar, puede ejecutar una simulación:
zenbot sim <selector>
Para obtener una lista de opciones para el , use:
zenbot sim --help
Para opciones adicionales relacionadas con la estrategia, use:
zenbot list-strategies
- Por defecto, la sim comenzará con 1000 unidades de moneda. Anular con
--currency_capital
y--asset_capital
. - Abra
sim_result.html
en su navegador para ver un gráfico de velas con operaciones.
Captura de pantalla y resultado de ejemplo
Zenbot muestra un gráfico HTML de cada resultado de simulación. En la imagen siguiente, las flechas rosadas representan la compra de bots (flecha arriba) y la venta (flecha abajo), ya que iteraron los datos históricos del producto BTC/USD de GDAX exchange.
end balance 2954.50 (195.45%)buy hold 1834.44 (83.44%)vs. buy hold 61.06%110 trades over 91 days (avg 1.21 trades/day)
Zenbot comenzó con 1 1,000 USD y terminó con 2 2,954.50 después de 90 días, ¡logrando un ROI del 195%! A pesar de una estrategia de compra/retención que devuelve un respetable 83.44%, Zenbot tiene un potencial considerable para vencer a los compradores / titulares.
4. Ejecute zenbot
El siguiente comando lanzará el bot, y si no ha tocado c.default_selector
en conf.js
, intercambiará el par BTC/USD predeterminado en GDAX.
zenbot trade
Utilice el indicador --paper
para realizar operaciones simuladas mientras observa el mercado.
Aquí le mostramos cómo ejecutar un selector diferente (ejemplo: ETH-BTC en Poloniex):
./zenbot trade poloniex.eth-btc
Para obtener una lista completa de opciones para el comando trade
, use:
y también:
la Lectura de la salida de la consola
De izquierda a derecha:
- Marca de tiempo en hora local (gris, azul cuando se muestran estadísticas «en vivo»)
- Precio del activo en moneda (amarillo)
- Cambio porcentual del precio desde el último período (rojo/verde)
- Volumen en el activo desde el último período (gris)
- Gráfico ANSI RSI (rojo/verde)
-
trend_ema_rate
(rojo/verde verde, explicado a continuación) - Señal o acción actual, que incluye
buy
sell
buying
selling
bought
sold
ylast_trade_worth
(porcentaje cambio en la dirección de la tendencia desde la última compra/venta) - Saldo de la cuenta (activo)
- Saldo de la cuenta (moneda)
- Porcentaje de ganancias o pérdidas (se puede restablecer con
--reset_profit
) - Ganancia o pérdida vs.estrategia de compra/retención
Acerca de la estrategia predeterminada
- La estrategia predeterminada se llama
trend_ema
y reside en./extensions/trend_ema
. - El valor predeterminado es usar un período de 1h, pero puede anular esto agregando, por ejemplo,
--period=15m
a los comandossim
otrade
. - Calcula el EMA de 34 períodos del precio actual y calcula el cambio porcentual del EMA del último período para obtener el
trend_ema_rate
- Considera
trend_ema_rate >= 0
una tendencia al alza ytrend_ema_rate < 0
una tendencia a la baja - Filtra valores bajos (motosierras) mediante
neutral_rate
, que cuando se establece enauto
, utiliza la desviación estándar deltrend_ema_rate
como filtro de ruido variable. - Compra al principio de la tendencia ascendente, vende al principio de la tendencia descendente
- Si
oversold_rsi
se establece, intenta comprar cuando el RSI cae por debajo de ese valor, y luego comienza a recuperarse (una contraparte de--profit_stop_enable_pct
, que vende cuando se alcanza un porcentaje de ganancia, y luego cae) - El bot siempre trate de evitar las tarifas comerciales, utilizando órdenes solo posteriores y, por lo tanto, siendo un «creador» de mercado en lugar de un «tomador». Sin embargo, algunos intercambios no ofrecerán descuentos para fabricantes.
Opción de ajustar consejos
- el Comercio se ajusta la frecuencia de con una combinación de
--period
y--trend_ema
. Por ejemplo, si quieres más frecuentes de comercio, trate de--period=15m
o--trend_ema=25
o ambos. Si obtienes demasiadas operaciones de ping-pong o pérdidas por las tarifas, intenta aumentarperiod
otrend_ema
. - A veces es tentador decirle al comercio de bots muy a menudo. Trate de resistir este impulso y opte por la calidad sobre la cantidad, ya que cada operación viene con una cantidad decente de riesgo de deslizamiento y sierra de látigo.
- En un mercado alcista,
--sell_rate=-0.01
y--max_sell_duration=8
pueden dar al precio la oportunidad de recuperarse antes de vender. Si hay una caída repentina en el precio, se supone que se recuperará y la venta se retrasará. Compense el riesgo utilizando--sell_stop_pct=5
. - En un mercado alcista con inmersiones y recuperaciones de precios regulares,
--oversold_rsi=25
intentará comprar cuando el precio se sumerja. - En un mercado con aumentos y correcciones de precios predecibles,
--profit_stop_enable_pct=10
intentará vender cuando la última compra alcance el 10% de ganancia y luego caiga al 9%. - a partir de la versión 4.0.2,
--neutral_rate=auto
está activado de forma predeterminada, lo que demostró en simulaciones ser efectivo para prevenir señales débiles (whipsaw). Sin embargo, a veces--neutral_rate=0
funciona mejor para baja volatilidad, como BTC-USD a 1h.
Herramientas de comercio manual
El motor de ejecución de órdenes de Zenbot también se puede usar para operaciones manuales. Los beneficios incluyen:
- Evita las tarifas de las órdenes de mercado mediante el uso de una orden de límite a corto plazo
- Puede determinar automáticamente el tamaño de la orden a partir del saldo de la cuenta
- Ajusta la orden cada 30 segundos (si es necesario) para garantizar una ejecución rápida
- Si una orden se llena parcialmente, intenta volver a ordenar con el tamaño restante
El comando para comprar es:
zenbot buy <selector>
Por ejemplo, para usar su saldo de USD restante en GDAX para comprar Bitcoin:
zenbot buy gdax.BTC-USD
O para vender el 10% de su BTC,
zenbot sell gdax.BTC-USD --pct=10
Registro de actualización
- v4.0.3 (Último)
- arreglo para error de host mongo de docker
- enlace para nuevo chat de Discordia!
- arreglar el bloqueo de polo en el resultado extraño de getOrder
- arreglar el disparador de oversold_rsi mientras se está en preroll
- arreglar polo «no es suficiente…»errores
- colores elegantes para el informe de precios
- mostrar el id del producto en el informe
- corregir los lotes de relleno de poloniex demasiado grandes, los tiempos de espera de mongo
- corregir el bloqueo de cursorTo() en algunas instalaciones de nodos
- memDump para la depuración de errores de pedido
- corregir el espaciado de columnas en el informe de progreso
- v4.0.2
- revisión menor a trend_ema strat-se agregó filtrado de sierra giratoria a través de std. desviación (
--neutral_rate=auto
) - recortar el preroll del gráfico de resultados de sim
- revisión menor a trend_ema strat-se agregó filtrado de sierra giratoria a través de std. desviación (
- v4.0.1
- Añadido.dockerignore (gracias @sulphur)
- arreglar el bloqueo en el tiempo de espera de mongo durante el relleno
- arreglar los huecos en el relleno de poloniex
- días de relleno predeterminados 90 -> 14
TODO
- revisión de relaciones públicas para Bitfinex
- más soporte de intercambio
- interfaz de usuario web con gráficos y registros
- «reaper» para recortar automáticamente la colección de operaciones a una duración determinada
- «modo lite» para trader, una opción para ejecutarse sin MongoDB
Donar
P.D., algunos han preguntado cómo donar a Zenbot development. Acepto donaciones en mi dirección Bitcoin a continuación:
carlos8f del BTC
187rmNSkSvehgcKpBunre6a5wA5hQQop6W
Gracias!
Licencia: MIT
- Copyright (C) 2017 Carlos Rodriguez
- Copyright (C) 2017 Terra Eclipse, Inc. (http://www.terraeclipse.com/)
Por la presente se concede permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el «Software»), para tratar el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación, fusión, publicación, distribución, sublicencia y / o copias vendidas del Software, y para permitir que las personas a las que se suministra el Software lo hagan, condiciones siguientes:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA «TAL CUAL», SIN GARANTÍA DE NINGÚN TIPO, NI SE APLICA EXPRESAMENTE, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO, LOS AUTORES O TITULARES DE DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO TIPO, QUE SURJA DE,O ESTÉ RELACIONADA CON EL SOFTWARE O EL USO U OTRAS TRANSACCIONES EN EL SOFTWARE.