DeviaVir/zenbot

«for å følge stien, se til mesteren, følg mesteren, gå med mesteren, se gjennom mesteren, bli mesteren.»- Zen Ordtak

Nytt! Chat med Andre zenbot-brukere

Zenbot har En Discord-chat igjen! Du kan komme inn gjennom denne invitasjonslinken.

Beskrivelse

Zenbot Er en kommandolinje kryptovaluta trading bot bruker Node.Js Og MongoDB. Det har:

  • Helautomatisk teknisk analyse-basert trading tilnærming
  • Full støtte FOR GDAX Og Poloniex, arbeid på videre utveksling støtte pågår.Simulator For Backtesting strategier mot historiske data
  • «Papir» trading modus, opererer på en simulert balanse mens du ser på live markedet
  • Konfigurerbare selge stopper, kjøpe stopper, og (etterfølgende) profit stopper
  • Fleksibel prøveperiode og handel frekvens – gjennomsnitt 1-2 handler/dag med 1h periode, 10/dag med 15m periode

ansvarsfraskrivelse

  • zenbot er ikke en sikker-brann profitt maskin. Bruk det PÅ EGEN RISIKO.
  • Crypto-valuta er fortsatt et eksperiment, og Derfor Er Det Også Zenbot. Betydning, begge kan mislykkes når som helst.
  • Kjører en bot, og handel generelt krever nøye studie av risiko og parametere involvert.ofte vil standard handelsparametrene underprestere mot en buy-hold-strategi, så kjør noen simuleringer og finn de optimale parametrene for ditt valgte bytte/par før du går «all-in».

Hurtigstart

1. Krav: Linux ELLER OSX eller Docker, Node.Js Og MongoDB.

Kjør i konsollen,

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

Eller, uten git,

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

Opprett konfigurasjonsfilen din ved å kopiere conf-sample.js til conf.js:

cp conf-sample.js conf.js
  • vis og rediger conf.js.
  • det er mulig å bruke zenbot i» papirhandel » – modus uten å gjøre noen endringer.
  • Du må legge til exchange API-nøklene dine for å aktivere ekte handel.API-nøkler trenger ikke innskudd / uttak tillatelser.

hvis Du bruker Docker, hopp til delen «Docker» nedenfor.

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

Docker

for å kjøre Zenbot Under Docker, installer Docker, Docker Compose, Docker Machine (om nødvendig) kan du følge instruksjonene på https://docs.docker.com/compose/install/

etter installasjon (trinn 2 ovenfor),

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

vocab: selectors

en «selector» Er En kort identifikator Som Forteller Zenbot hvilken utveksling og valuta pair Å Handle På. Bruk skjemaet {exchange_slug}.{asset}-{currency}. En komplett liste over velgere Dine zenbot installere støtter kan bli funnet med:

3. (valgfritt) Kjør simuleringer for den valgte velgeren

for å fylle ut data (forutsatt at den valgte utvekslingen støtter det), bruk:

zenbot backfill <selector> --days <days>

etter at du har fylt ut igjen, kan du kjøre en simulering:

zenbot sim <selector> 

For en liste over alternativer for sim kommando, bruk:

zenbot sim --help

for flere alternativer relatert til strategien, bruk:

zenbot list-strategies
  • som standard starter sim-kortet med 1000 enheter valuta. Overstyr med --currency_capital og --asset_capital.
  • Åpne sim_result.html i nettleseren din for å se en lysestake graf med handler.

Skjermbilde og eksempel resultat

Zenbot utganger EN HTML-graf av hver simulering resultat. I skjermbildet nedenfor representerer de rosa pilene botkjøpet (pil opp) og salg (pil ned) da DET itererte de historiske dataene TIL GDAX-utvekslingens BTC / USD-produkt.

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 startet med $1000 USD og endte med $2,954. 50 etter 90 dager, noe som gjorde 195% ROI! Til tross for en buy / hold-strategi returnerer en respektabel 83.44%, Zenbot har betydelig potensial for å slå kjøp / holdere.

4. Kjør zenbot

følgende kommando vil starte boten, og hvis du ikke har rørt c.default_selector i conf.js, vil handle standard BTC / USD-paret PÅ GDAX.

zenbot trade 

bruk--paper flagget for å bare utføre simulerte handler mens du ser på markedet.

slik kjører du en annen velger (eksempel: Eth-BTC På Poloniex):

./zenbot trade poloniex.eth-btc

for en fullstendig liste over alternativer fortrade kommando, bruk:

og også:

Leser konsollutgangen

fra venstre til høyre:

  • Tidsstempel i lokal tid (grå, blå når viser «live» statistikk)
  • Aktiva pris i valuta (gul)
  • prosent endring av pris siden siste periode (rød/grønn)
  • Volum i aktiva siden siste periode (grå)
  • rsi ANSI graf (rød/grønn)
  • trend_ema_rate (rød/rød) Gjeldende signal eller handling, inkludertbuysellbuyingsellingboughtsold og last_trade_worth (prosent siste kjøp/selg)
  • kontosaldo (eiendel)
  • kontosaldo (valuta)
  • Resultatprosent (kan tilbakestilles med --reset_profit)
  • Gevinst eller tap vs. kjøp/hold strategi

om standardstrategien

  • standardstrategien kalles trend_ema og ligger på ./extensions/trend_ema.
  • bruker en 1t periode, men du kan overstyre dette ved å legge til f. eks.--period=15m tilsim ellertrade kommandoer.
  • Beregner 34-periode EMA av dagens pris, og beregner prosentendringen FRA den siste periodens EMA for å fåtrend_ema_rate
  • Vurderertrend_ema_rate >= 0 en oppadgående trend ogtrend_ema_rate < 0 en nedadgående trend
  • filtrerer ut lave verdier (whipsaws) vedneutral_rate, som når satt tilauto, bruker standardavviket tiltrend_ema_rate som et variabelt støyfilter.
  • Kjøper i begynnelsen av oppadgående trend, selger i begynnelsen av nedadgående trend
  • Hvis oversold_rsi er satt, prøver å kjøpe NÅR RSI dips under denne verdien, og deretter begynner å gjenopprette (en motpart til --profit_stop_enable_pct, som selger når en prosent av overskuddet er nådd, og deretter dips)
  • boten vil alltid prøv å unngå handelsavgifter, Ved Å Bruke post-only ordrer og dermed være en marked «maker» i stedet for en «taker». Noen utvekslinger vil imidlertid ikke tilby maker rabatter.

alternativ tweaking tips

  • Handelsfrekvens justeres med en kombinasjon av --period og --trend_ema. Hvis du for eksempel vil ha hyppigere handel, kan du prøve --period=15m eller --trend_ema=25 eller begge deler. Hvis du får for mange ping-pong handler eller tap fra avgifter, prøv å øke period eller trend_ema.
  • Noen ganger er det fristende å fortelle bot handel veldig ofte. Prøv å motstå denne trangen, og gå for kvalitet over kvantitet, siden hver handel kommer med en anstendig mengde glidning og whipsaw-risiko.
  • i et oksemarked kan --sell_rate=-0.01og--max_sell_duration=8 gi prisen en sjanse til å gjenopprette før du selger. Hvis det er et plutselig dykk i pris, antas det at det vil gjenopprette og selge er forsinket. Kompensere for risikoen ved å bruke --sell_stop_pct=5.
  • i et bullmarked med vanlige prisdykk og inngang, vil--oversold_rsi=25 prøve å kjøpe når prisen dykker.
  • i et marked med forutsigbare kursstøt og korreksjoner,--profit_stop_enable_pct=10 vil prøve å selge når siste kjøp treffer 10% fortjeneste og deretter faller til 9%.
  • fra v4. 0. 2 er--neutral_rate=auto slått på som standard, noe som i simuleringer viste seg å være effektivt for å forhindre svake (whipsaw) signaler. Men noen ganger--neutral_rate=0 fungerer bedre for lav volatilitet, for eksempel BTC-USD ved 1h.

Manuelle handelsverktøy

Zenbots ordreutførelsesmotor kan også brukes til manuelle handler. Fordelene inkluderer:Kan automatisk bestemme ordrestørrelse fra kontosaldo

  • Justerer ordre hver 30s (hvis nødvendig) for å sikre rask utførelse
  • hvis en ordre er delvis fylt, forsøker å re-order med gjenværende størrelse
  • kommandoen for å kjøpe er:

    zenbot buy <selector> 

    for eksempel å bruke din gjenværende usd-saldo i gdax for å kjøpe bitcoin:

    zenbot buy gdax.BTC-USD

    eller å selge 10% av btc,

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

    oppdateringslogg

    • v4.0.3 (Siste)
      • fix for docker mongo vert feil
      • link for ny Splid chat!fix polo crash på getOrder merkelig resultat
      • fix oversold_rsi trigger mens i preroll
      • fix polo » ikke nok…»feil
      • fancy farger for prisrapport
      • vis produkt-id i rapporten
      • fix poloniex tilbakefylling grupper for stor, mongo timeouts
      • fix cursorTo() krasj på noen node installerer
      • memDump for feilsøking for feil
      • fix kolonneavstand på fremdriftsrapport
    • v4. 0.2
      • mindre overhaling til trend_ema strat-lagt whipsaw filtrering via std. avvik (--neutral_rate=auto)
      • trim preroll av sim resultat graf
    • v4.0.1
      • Lagt Til .dockerignore (takk @sulphur)
      • fix krasjer på mongo timeout under tilbakefylling
      • fix hull i poloniex tilbakefylling
      • standard tilbakefylling dager 90 -> 14

    TODO

    • gjennomgang PR For Bitfinex
    • mer utveksling støtte
    • web ui med grafer og logger
    • «reaper» for å automatisk trimme handler samling til en bestemt dag lengde
    • «lite mode» for trader, et alternativ til å kjøre uten mongodb

    donere

    ps, noen har bedt om hvordan å donere til zenbot utvikling. Jeg aksepterer donasjoner På Min Bitcoin adresse Her:

    carlos8fs BTC

    187rmNSkSvehgcKpBunre6a5wA5hQQop6W

    Takk!

    Lisens: MIT

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

    Tillatelse gis herved, gratis, til enhver person som får en kopi av denne programvaren og tilhørende dokumentasjonsfiler («Programvaren»), til å håndtere Programvaren uten begrensning, inkludert uten begrensning rettighetene til å bruke, kopiere, endre, slå sammen, publisere, distribuere, viderelisensiere Og / eller selge kopier Av Programvaren, og til å tillate personer Som Programvaren er levert til å gjøre det, underlagt følgende betingelser:

    opphavsrettsmerknaden ovenfor og denne tillatelsesmerknaden skal inkluderes i alle kopier eller vesentlige deler av Programvaren.

    PROGRAMVAREN LEVERES «SOM DEN ER», UTEN GARANTI AV NOE SLAG, UTTRYKKELIG ORIMPLIED,INKLUDERT MEN IKKE BEGRENSET TIL GARANTIER OM SALGBARHET, EGNETHET for ET BESTEMT FORMÅL og IKKE-KRENKELSE. UNDER INGEN OMSTENDIGHETER SKAL OPPHAVSPERSONENE ELLER RETTIGHETSHAVERNE VÆRE ANSVARLIG FOR KRAV, SKADER ELLER ANNEN PÅLIDELIG, ENTEN I EN HANDLING AV KONTRAKT, TORT ELLER PÅ ANNEN MÅTE,SOM OPPSTÅR FRA, UT AV ELLER I FORBINDELSE MED PROGRAMVAREN ELLER BRUKEN ELLER ANDRE FORHOLD I PROGRAMVAREN.

    Legg igjen en kommentar

    Din e-postadresse vil ikke bli publisert.