DeviaVir/zenbot

“Para seguir o caminho, olhar para o mestre, siga o mestre, andar com o mestre, veja através do mestre, torne-se o mestre.”- Zen Proverb

New! Chat with other Zenbot users

Zenbot has a Discord chat again! Você pode entrar através deste link de convite.

Descrição

Zenbot é um robot de negociação criptocurrency de linha de comandos que utiliza o nó.js e MongoDB. Apresenta:apoio total ao GDAX e à Poloniex, está em curso o trabalho de apoio adicional ao intercâmbio.

  • arquitetura de Plugin para implementar o suporte do exchange, ou escrever novas estratégias
  • Simulador para Backtesting estratégias de combate histórico de dados
  • “Papel” modo de negociação, opera em uma simulação de equilíbrio, enquanto observa o mercado
  • Configurável deixa de vender, comprar pára, e (à direita) lucro pára
  • Flexível período de amostragem e comércio de frequência, médias 1-2 negociações/dia, com período de 1h, 10/dia, com 15m período
  • aviso de Isenção

    • Zenbot NÃO é uma certeza fogo máquina de lucro. Usa-o por tua conta e risco.a Crypto-currency ainda é uma experiência, e por isso Zenbot também é. Ou seja, ambos podem falhar a qualquer momento.executar um bot, e a negociação em geral requer um estudo cuidadoso dos riscos e parâmetros envolvidos.
    • muitas vezes os parâmetros de comércio padrão irá falhar em relação a uma estratégia de buy-hold, então execute algumas simulações e encontre os parâmetros ideais para a sua troca/par escolhido antes de ir “all-in”.

    arranque rápido

    1. Requisitos: Linux ou OSX ou Docker, nó.js e MongoDB.

    Executar no seu console,

    git clone https://github.com/carlos8f/zenbot.git

    Ou, sem git,

    wget https://github.com/carlos8f/zenbot/archive/master.tar.gztar -xf zenbot-master.tar.gzmv zenbot-master zenbot

    Criar o seu ficheiro de configuração de cópia de conf-sample.jsconf.js:

    cp conf-sample.js conf.js
    • Ver e editar conf.js.é possível utilizar o zenbot no modo “comércio de papel” sem fazer quaisquer alterações.
    • você deve adicionar suas chaves de API de troca para permitir a negociação real no entanto.as chaves da API não precisam de permissões de depósito/levantamento.

    Se usar o acoplador, salte para a secção “acoplador” abaixo.

    Instalar as dependências:

    cd zenbotnpm install# optional, installs the `zenbot.sh` binary in /usr/local/bin:npm link

    a janela de Encaixe

    Para executar Zenbot sob a janela de Encaixe, instale a janela de Encaixe, Encaixe Compor, a janela de Encaixe da Máquina (se necessário), Você pode seguir as instruções em: https://docs.docker.com/compose/install/

    Após a instalação (passo 2 acima),

    cd zenbotdocker-compose builddocker-compose up (-d if you don't want to see the log)

    Vocab: selectores

    Um “seletor” é um identificador curto que diz Zenbot que o exchange e o par de moedas para agir. Use o formulário {exchange_slug}.{asset}-{currency}. Uma lista completa dos selectores que a sua instalação de zenbot Suporta pode ser encontrada com:

    3. (opcional) Executar simulações para o seu escolhido selector

    Para aterramento de dados (desde que escolhido o exchange oferece suporte a ele), use:

    zenbot backfill <selector> --days <days>

    Depois de preenchidos, você pode executar uma simulação:

    zenbot sim <selector> 

    Para uma lista de opções para o sim comando, use:

    zenbot sim --help

    Para obter mais opções relacionadas com a estratégia, use:

    zenbot list-strategies
    • Por padrão, o sim vai começar com 1000 unidades de moeda. Substituir com --currency_capital e --asset_capital.
    • abrirsim_result.html no seu navegador para ver um grafo de castiçal com transacções.

    Screenshot and example result

    Zenbot outputs an HTML graph of each simulation result. Na imagem abaixo, as setas cor-de-rosa representam o bot comprando (seta para cima) e vendendo (seta para baixo) como iterou os dados históricos do produto BTC/USD do 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 começou com $1,000 USD e terminou com r $2,954.50 depois de 90 dias, fazendo 195% de ROI! Apesar de uma estratégia de compra / venda a devolver um respeitável 83.44%, Zenbot tem um potencial considerável para vencer os compradores/detentores.

    4. Execute zenbot

    o seguinte comando irá lançar o bot, e se você não tiver tocado em c.default_selector em conf.js, irá trocar o par BTC/USD por omissão no GDAX.

    zenbot trade 

    Use the--paper flag to only perform simulated trades while watching the market.

    veja como executar uma diferente seletor (exemplo: ETH-BTC em Poloniex):

    ./zenbot trade poloniex.eth-btc

    Para uma lista completa das opções para o trade comando, use:

    e também:

    lendo a saída da consola

    da esquerda para a direita:

    • Carimbo de data / hora no horário local (cinza, azul, quando mostrando “ao vivo” stats)
    • preço de Ativos em moeda (amarelo)
    • Porcentagem de alteração de preço desde o último período (vermelho/verde)
    • Volume de ativos desde o último período (cinza)
    • RSI ANSI gráfico (vermelho/verde)
    • trend_ema_rate (vermelho/verde, explicado abaixo)
    • sinal de Corrente ou de ação, incluindo buysellbuyingsellingboughtsold e last_trade_worth (por cento mudança na direção da tendência desde a última compra/venda)
    • Conta de balanço (activo)
    • balanço da Conta (divisa)
    • Lucro ou perda por cento (pode ser redefinida com --reset_profit)
    • Ganho ou perda vs. comprar/manter estratégia

    Sobre a estratégia padrão

    • A estratégia padrão é chamado de trend_ema e reside em: ./extensions/trend_ema.
    • padrão usando um período de 1h, mas você pode substituir isso com a adição de eg --period=15msim ou trade comandos.
    • Calcula a 34-período de EMA do preço atual, e calcula a porcentagem de alteração do último período do EMA para obter o trend_ema_rate
    • Considera trend_ema_rate >= 0 uma tendência para cima e trend_ema_rate < 0 uma tendência de queda
    • Filtros de baixos valores (whipsaws) por neutral_rate, que quando definida como auto, usa o desvio padrão de trend_ema_rate como uma variável de filtro de ruído.
    • Compra no início de mais tendência, vende no início da tendência de queda
    • Se oversold_rsi é definido, tenta comprar quando o RSI ficar abaixo desse valor e, em seguida, começa a se recuperar (um equivalente ao --profit_stop_enable_pct, que vende quando um por cento do lucro é alcançado, e, em seguida, desce)
    • O bot vai tentar sempre evitar o comércio de taxas, usando post-somente as ordens e, portanto, de ser um mercado “criador” em vez de um “tomador”. Algumas bolsas, no entanto, não oferecem descontos para fabricantes.

    Opção de ajustes dicas

    • Comércio frequência é ajustada com uma combinação de --period e --trend_ema. Por exemplo, se você quiser negociação mais frequente, tente --period=15m ou --trend_ema=25 ou ambos. Se você receber muitas transações de ping-pong ou perdas de taxas, tente aumentar period outrend_ema.por vezes, é tentador dizer ao comércio de bot com muita frequência. Tente resistir a este impulso, e vá para a qualidade sobre a quantidade, uma vez que cada comércio vem com uma quantidade decente de deslizamento e risco de serra rotativa.num mercado de Touros ,a--sell_rate=-0.01e a--max_sell_duration=8pode dar ao preço uma oportunidade de recuperação antes da venda. Se houver uma queda repentina no preço, presume-se que vai recuperar e vender está atrasado. Compensar o risco utilizando --sell_stop_pct=5.num mercado de touros com variações e recuperações regulares de preços, a--oversold_rsi=25tentará comprar quando o preço mergulhar.
    • em um mercado com aumentos e correções de preços previsíveis, --profit_stop_enable_pct=10 tentará vender quando a última compra atinge 10% de lucro e, em seguida, cai para 9%.
    • as of v4. 0. 2, --neutral_rate=auto is on by default, which proved in simulations to be effective at preventing weak (whipsaw) signals. No entanto, às vezes --neutral_rate=0 funciona melhor para a baixa volatilidade, como o BTC-USD à 1h.

    Ferramentas Manuais de comércio

    motor de execução de ordens de Zenbot também pode ser usado para o comércio manual. Os benefícios incluem::

    • Evita mercado-taxas de ordem utilizando um curto-prazo limite de fim
    • Pode determinar automaticamente o tamanho do saldo da conta
    • Ajusta a ordem de cada 30s (se necessário) para garantir a execução rápida
    • Se uma ordem é parcialmente preenchido, as tentativas de re-encomenda com tamanho restante

    O comando para comprar é:

    zenbot buy <selector> 

    Por exemplo, para utilizar seu saldo de USD saldo em GDAX para comprar Bitcoin:

    zenbot buy gdax.BTC-USD

    Ou vender 10% de seu BTC,

    zenbot sell gdax.BTC-USD --pct=10

    Log de Atualização

    • v4.0.3 (última)
      • corrigir o erro da máquina do acoplador mongo
      • ligação para uma nova Conversa de discórdia!fix polo crash on getOrder weird result
      • fix oversold_rsi trigger while in preroll

    • fix polo “Not enough…”errors

    • fancy colors for price report
    • display product id in report
    • fix poloniex backfill batches too big, mongo timeouts
    • fix cursorTo() crash on some node installs
    • memDump for debugging orders
    • fix column spacing on progress report
    • v4.0.2
      • Minor overall to trend_ema strat – added whipsaw filtering via std. o desvio (--neutral_rate=auto
      • guarnição preroll ” sim resultado gráfico
    • v4.0.1
      • Adicionado .dockerignore (obrigado @enxofre)
      • corrigir falhas no mongo tempo limite de aterramento
      • corrigir lacunas na poloniex de aterramento
      • padrão de aterramento dias 90 -> 14

    TAREFAS

    • revisão PR para Bitfinex
    • mais suporte do exchange
    • INTERFACE de usuário da web com os gráficos e registros
    • “reaper” para cortar automaticamente negociações coleção para um determinado comprimento do dia
    • “modo lite” para o comerciante, é uma opção para executar sem MongoDB

    Doar

    P. S., alguns têm perguntado como doar para Zenbot desenvolvimento. Aceito doações em meu Bitcoin Aqui o endereço:

    carlos8f do BTC

    187rmNSkSvehgcKpBunre6a5wA5hQQop6W

    Obrigado!

    Licença: MIT

    • Copyright (C), 2017 Carlos Rodriguez
    • Copyright (C), 2017 Terra Eclipse, Inc. (http://www.terraeclipse.com/

    a Permissão é concedida, a título gratuito, para qualquer pessoa que obtenha uma copyof deste software e arquivos de documentação associados (o “Software”), para dealin o Software sem restrição, incluindo, sem limitação, a rightsto usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou sellcopies do Software, e para permitir que as pessoas a quem o Software é furnishedto fazê-lo, sujeita às seguintes condições:

    o aviso de copyright acima e este Aviso de permissão serão incluídos em todas as cópias ou partes substanciais do Software.

    O SOFTWARE é fornecido “COMO ESTÁ”, sem garantia de qualquer tipo, Expresso ou aplicado,incluindo, mas não limitado às garantias de comercialização, adequação a um propósito específico e não infração. EM CASO ALGUM OS AUTORES OU TITULARES DE DIREITOS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANO OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE,FORA OU EM CONEXÃO COM O SOFTWARE OU A UTILIZAÇÃO OU OUTRAS TRANSAÇÕES NO SOFTWARE.

    Deixe uma resposta

    O seu endereço de email não será publicado.