Devivir / zenbot

„pentru a urma calea, uita-te la maestru, urmați maestru, plimbare cu maestrul, a se vedea prin maestru, să devină maestru.”- Proverb Zen

nou! Chat cu alți utilizatori Zenbot

Zenbot are din nou un chat Discord! Puteți intra prin acest link de invitație.

descriere

Zenbot este o linie de comandă Criptomonedă bot de tranzacționare folosind nod.js și MongoDB. Acesta dispune de:

  • abordare complet automatizată de tranzacționare bazată pe analiza tehnică
  • suport complet pentru GDAX și Poloniex, lucru pe suport de schimb în continuare este în curs de desfășurare.
  • arhitectura Plugin pentru punerea în aplicare a suportului de schimb, sau scrierea de noi strategii
  • Simulator pentru Strategii Backtesting împotriva datelor istorice
  • „hârtie” modul de tranzacționare, funcționează pe un echilibru simulat în timp ce uitam de piață în direct
  • vinde configurabil se oprește, cumpara se oprește, și (la final) profit se oprește
  • perioada de eșantionare flexibil și frecvența comerțului – medii 1-2 meserii/zi cu perioada 1h, 10/zi cu perioada 15m

disclaimer

  • zenbot nu este o mașină de profit sigur-foc. Utilizați-l pe propriul risc.
  • cripto-moneda este încă un experiment și, prin urmare, este și Zenbot. Adică, ambele pot eșua în orice moment.
  • rularea unui bot, iar tranzacționarea în general necesită un studiu atent al riscurilor și parametrilor implicați.
  • de multe ori parametrii de tranzacționare implicit va underperformance vs.o strategie buy-hold, astfel încât rula unele simulări și pentru a găsi parametrii optimi pentru schimbul/perechea aleasă înainte de a merge „all-in”.

pornire rapidă

1. Cerințe: Linux sau OSX sau Docker,nod. js și MongoDB.

Rulați în consola dvs.,

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

sau, fără git,

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

creați fișierul de configurare copiindconf-sample.js laconf.js:

cp conf-sample.js conf.js
  • vizualizați și editațiconf.js.
  • este posibil să utilizați zenbot în modul „tranzacționare pe hârtie” fără a face modificări.
  • trebuie să adăugați cheile API exchange pentru a permite tranzacționarea reală.
  • cheile API nu au nevoie de permisiuni de depunere / retragere.

dacă utilizați Docker, treceți la secțiunea „Docker” de mai jos.

Install dependencies:

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

Docker

pentru a rula Zenbot sub Docker, instalați Docker, Docker Compose, Docker Machine (dacă este necesar) puteți urma instrucțiunile de lahttps://docs.docker.com/compose/install/

după instalare (Pasul 2 de mai sus),

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

vocabular: selectori

un „selector” este un identificator scurt care îi spune lui Zenbot ce pereche de schimb și monedă să acționeze. Utilizați formularul {exchange_slug}.{asset}-{currency}. O listă completă a selectorilor suporturilor de instalare Zenbot poate fi găsită cu:

3. (opțional) rulați simulări pentru selectorul ales

pentru a umple datele (cu condiția ca schimbul ales să le accepte), utilizați:

zenbot backfill <selector> --days <days>

după ce ați umplut, puteți rula o simulare:

zenbot sim <selector> 

pentru o listă de opțiuni pentru sim comandă, utilizați:

zenbot sim --help

pentru opțiuni suplimentare legate de strategie, utilizați:

zenbot list-strategies
  • în mod implicit, SIM-ul va începe cu 1000 de unități de monedă. Suprascrie cu--currency_capital și--asset_capital.
  • deschideți sim_result.html în browser-ul dvs. pentru a vedea un grafic sfeșnic cu meserii.

Screenshot și exemplu rezultat

zenbot emite un grafic HTML al fiecărui rezultat de simulare. În captura de ecran de mai jos, săgețile roz reprezintă cumpărarea botului (săgeata în sus) și vânzarea (săgeata în jos), deoarece itera datele istorice ale produsului BTC/USD al 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 a început cu $1,000 USD și sa încheiat cu $2,954.50 după 90 de zile, ceea ce face 195% ROI! În ciuda unui buy / strategie hold se întoarce un respectabil 83.44%, Zenbot are un potențial considerabil de a bate cumpărarea/deținătorii.

4. Rulați zenbot

următoarea comandă va lansa botul și, dacă nu ați atinsc.default_selectorînconf.js, veți tranzacționa perechea implicită BTC/USD pe GDAX.

zenbot trade 

utilizați--paper pentru a efectua tranzacții simulate numai în timp ce urmăriți piața.

Iată cum să rulați un selector diferit (exemplu: ETH-BTC pe Poloniex):

./zenbot trade poloniex.eth-btc

pentru o listă completă de opțiuni pentrutrade comanda, utilizați:

și de asemenea:

citirea ieșirii consolei

de la stânga la dreapta:

  • Timestamp în ora locală (gri, albastru atunci când se afișează statistici „live”)
  • prețul activelor în valută (galben)
  • Schimbarea la sută a prețului de la ultima perioadă (roșu/verde)
  • volumul activelor de la ultima perioadă (gri)
  • RSI ANSI graph (roșu/verde)
  • trend_ema_rate verde, explicat mai jos)
  • semnal sau acțiune curentă, inclusiv buysellbuyingsellingboughtsold și last_trade_worth (procente schimbarea direcției tendinței de la ultima cumpărare/vânzare)
  • soldul contului (activ)
  • soldul contului (valută)
  • procent de Profit sau pierdere (poate fi resetat cu --reset_profit)
  • câștig sau pierdere vs.strategie de cumpărare/reținere

despre strategia implicită

  • strategia implicită se numește trend_ema și se află la ./extensions/trend_ema.
  • implicit pentru a utiliza o perioadă de 1h, dar puteți suprascrie acest lucru cu adăugarea de exemplu--period=15m lasim sautrade comenzi.
  • calculează EMA de 34 de perioade a prețului curent și calculează modificarea procentuală față de EMA din ultima perioadă pentru a obținetrend_ema_rate
  • considerătrend_ema_rate >= 0 o tendință ascendentă șitrend_ema_rate < 0 o tendință descendentă
  • filtrează valorile scăzute (whipsaws) prinneutral_rate, care, atunci când este setat laauto, utilizează deviația standard atrend_ema_rate ca filtru de zgomot variabil.
  • cumpără la începutul trendului ascendent, vinde la începutul trendului descendent
  • dacă oversold_rsi este setat, încearcă să cumpere atunci când RSI scade sub această valoare și apoi începe să se recupereze (o contrapartidă la --profit_stop_enable_pct, care vinde atunci când se atinge un procent din profit și apoi scade)
  • botul va încercați să evitați taxele comerciale, utilizând comenzi post-only și, astfel, fiind un „producător” de piață în loc de un „taker”. Cu toate acestea, unele schimburi nu vor oferi reduceri pentru producători.

opțiunea tweaking sfaturi

  • frecvența Comerțului este ajustată cu o combinație de--period și--trend_ema. De exemplu, dacă doriți o tranzacționare mai frecventă, încercați --period=15m sau --trend_ema=25 sau ambele. Dacă primiți prea multe tranzacții de ping-pong sau pierderi din taxe, încercați să creșteți period sau trend_ema.
  • uneori este tentant să spui foarte des comerțul cu bot. Încercați să reziste la acest îndemn, și du-te pentru calitate peste cantitate, deoarece fiecare comerț vine cu o sumă decentă de risc alunecarea și whipsaw.
  • într-o piață taur, --sell_rate=-0.01 și --max_sell_duration=8 poate da prețul o șansă de a recupera înainte de vânzare. Dacă există o scufundare bruscă în preț, se presupune că se va recupera și vinde este întârziată. Compensați riscul utilizând --sell_stop_pct=5.
  • într-o piață de tauri cu scufundări și recuperări obișnuite,--oversold_rsi=25 va încerca să cumpere atunci când prețul se scufundă.
  • într-o piață cu creșteri și corecții previzibile ale prețurilor, --profit_stop_enable_pct=10 va încerca să vândă când ultima achiziție atinge 10% profit și apoi scade la 9%.
  • începând cu v4.0.2,--neutral_rate=auto este activat în mod implicit, ceea ce s-a dovedit în simulări a fi eficient în prevenirea semnalelor slabe (whipsaw). Cu toate acestea, uneori --neutral_rate=0 funcționează mai bine pentru volatilitate scăzută, cum ar fi BTC-USD la 1h.

instrumente comerciale manuale

motorul de execuție a comenzilor Zenbot poate fi utilizat și pentru tranzacții manuale. Beneficiile includ:

  • Evită Comisioanele de comandă pe piață utilizând o comandă limită pe termen scurt
  • poate determina automat dimensiunea comenzii din soldul contului
  • ajustează comanda la fiecare 30 de ani (dacă este necesar) pentru a asigura executarea rapidă
  • dacă o comandă este parțial completată, încearcă să re-comande cu dimensiunea rămasă

comanda de cumpărare este:

zenbot buy <selector> 

de exemplu, pentru a utiliza soldul USD rămas în GDAX pentru a cumpăra Bitcoin:

zenbot buy gdax.BTC-USD

sau pentru a vinde 10% din BTC,

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

jurnal de actualizare

  • v4.0.3 (Ultimele)
    • fix pentru docker mongo host error
    • link pentru noul Discord chat!
    • Fix accident polo pe getOrder rezultat ciudat
    • fix oversold_rsi de declanșare în timp ce în preroll
    • fix polo „nu este suficient…”erori
    • culori fanteziste pentru raportul de preț
    • afișează ID-ul produsului în raport
    • fix poloniex loturi rambleu prea mare, mongo timeout
    • fix cursorTo() crash pe unele nod instalează
    • memDump pentru depanare eșecuri ordine
    • fix spațiere coloană pe raportul de progres
  • v4.0.2
    • revizie minoră la trend_ema strat – adăugat whipsaw filtrare prin std. deviere (--neutral_rate=auto)
    • trim preroll de grafic rezultat sim
  • V4.0.1
    • adăugat .dockerignore (multumesc @sulf)
    • fix crashing pe mongo timeout în timpul rambleu
    • lacune fix în Poloniex rambleu
    • implicit rambleu zile 90 -> 14

TODO

  • PR revizuire pentru Bitfinex
  • mai mult sprijin de schimb
  • web UI cu grafice și jurnale
  • „Reaper” pentru a tăia în mod automat de colectare meserii la o anumită lungime zi
  • „modul Lite” pentru comerciant, o opțiune pentru a rula fără MongoDB

dona

P. S., unii au cerut cum să doneze pentru dezvoltarea zenbot. Accept donații la adresa mea Bitcoin aici:

BTC carlos8f

187rmNSkSvehgcKpBunre6a5wA5hQQop6W

mulțumesc!

licență: MIT

  • drepturi de autor (C) 2017 Carlos Rodriguez
  • drepturi de autor (c) 2017 Terra Eclipse, Inc. (http://www.terraeclipse.com/)

Permisiunea este acordată gratuit oricărei persoane care obține o copie a acestui software și a fișierelor de documentație asociate („Software-ul”), pentru a trata Software-ul fără restricții, inclusiv, dar fără a se limita la drepturile de utilizare, copiere, modificare, îmbinare, publicare, distribuire, sublicențiere și/sau vânzare a Software-ului și pentru a permite persoanelor cărora Software-ul următoarele condiții:

notificarea privind drepturile de autor de mai sus și această notificare privind permisiunea vor fi incluse în toate copiile sau porțiuni substanțiale ale Software-ului.

SOFTWARE-ul este furnizat „CA ATARE”, fără niciun fel de garanție, expresă sau explicită, inclusiv,dar fără a se limita la garanțiile de vandabilitate, adecvare pentru un anumit scop și neîncălcare. ÎN NICIUN CAZ, AUTORII SAU DEȚINĂTORII DREPTURILOR DE AUTOR NU VOR FI RĂSPUNZĂTORI PENTRU NICIO RECLAMAȚIE, DAUNE SAU ALTĂ POSIBILITATE, FIE ÎNTR-O ACȚIUNE CONTRACTUALĂ, DELICTUALĂ SAU ALTFEL,CARE REZULTĂ DIN, DIN SAU ÎN LEGĂTURĂ CU SOFTWARE-UL SAU UTILIZAREA SAU ALTE TRANZACȚII DIN SOFTWARE.

Lasă un răspuns

Adresa ta de email nu va fi publicată.