Articles

Rakenna kryptovaluuttaa kauppaava botti R

Photo by Branko Stancevic on Unsplash

** huomaa, että tässä opetusohjelmassa käytetty API ei ole enää käytössä. Tätä kirjoitusta olisi luettava havainnollistamaan tätä asiaa.

kauppiaan mieli on minkä tahansa kaupankäyntistrategian tai-suunnitelman heikko lenkki. Tehokas kaupankäynnin toteutus tarvitsee ihmisen tuotantopanoksia, jotka kulkevat vastakkaiseen suuntaan meidän vaistot. Meidän pitäisi ostaa, kun matelijaaivomme haluavat myydä. Myydään, kun sisu haluaa ostaa lisää.

on vielä vaikeampaa käydä kauppaa cryptocurrencies kanssa kriittinen perustuslaki. Nuoret ja kehittyvät markkinat ovat tulvillaan ”pumppuryhmiä”, jotka edistävät voimakasta FOMO (pelko missing out), jotka ajavat hinnat pilviin ennen kehon paiskomista takaisin maan pinnalle. Monet aloittelevat sijoittajat myös kauppaa näillä markkinoilla, sijoittajat, jotka mahdollisesti koskaan tullut kaupan NYSE. Jokaisella kaupalla on tekijä ja ottaja, ja ovelien kryptosijoittajien on helppo hyödyntää tilaa tulvivia noviiseja.

jotta voisin irrottaa tunteeni kryptokaupasta ja hyödyntää 24/7 auki olevia markkinoita, päätin rakentaa yksinkertaisen kaupankäyntibotin, joka noudattaisi yksinkertaista strategiaa ja toteuttaisi kauppoja nukkuessani.

monet ”bottikauppiaat”, kuten heitä kutsutaan, käyttävät Python-ohjelmointikieltä näiden kauppojen toteuttamiseen. Jos olisit google, ”crypto trading bot,” löydät linkkejä Python koodi eri Github arkistot.

olen datatieteilijä, ja R on tärkein työkaluni. Etsin kunnon opetusohjelma R-kielen avulla rakentaa kaupankäynnin botti, mutta löytänyt mitään. Olin asetettu rakentaa oma paketti käyttöliittymä GDAX API kun löysin paketin rgdax, joka on R kääre GDAX API. Seuraavassa on opas kokoamalla yhteen kaupankäynnin botti, jonka avulla voit rakentaa omia strategioita.

pähkinänkuoressa, tulemme kauppaa Ethereum — USD pari GDAX exchange kautta API kautta rgdax kääre. Pidän kaupankäynnin tätä paria, koska Ethereum (ETH) on tyypillisesti nouseva asenne, joka mahdollistaa tämän strategian loistaa.

Huom: Tämä on superyksinkertaisesti tehty start, jolla tienaa härkämarkkinoilla vain muutaman taalan. Kaikessa tarkoituksessa, käyttää tätä base rakentaa oman start.

ostamme, kun Yhdistelmä Relative Strength Index (RSI) – indikaattoreita viittaa hetkellisesti ylimyytyyn markkinaan olettaen, että bulls nostaa jälleen hintoja ja voimme kerätä voittoja.

oston jälkeen botti syöttää kolme limit sell-tilausta: yksi 1 prosentin voitolla, toinen 4 prosentin voitolla ja viimeinen 7 prosentin voitolla. Näin voimme nopeasti vapauttaa varoja tulla toiseen kauppaan 1st kaksi tilauksia, ja 7% tilaus vahvistaa yleistä kannattavuutta.

ohjelmisto

käytämme rstudiota ja Windows task scheduleria R-koodin suorittamiseen säännöllisesti (10 minuutin välein). Tarvitset GDAX-tilin tilausten lähettämiseen ja Gmail-tilin kauppa-ilmoitusten vastaanottamiseen.

our Process

osa 1: soita kirjastoihin ja rakenna funktioita

aloitamme kutsumalla useita kirjastoja:

paketti rgdax tarjoaa käyttöliittymän GDAX API, mailr käytetään lähettämään meille sähköpostipäivityksiä Gmail-tilin, stringi auttaa jäsentämään numeroita JSON ja TTR avulla voimme suorittaa teknisiä indikaattorilaskelmia.

funktio: curr_bal_usd & curr_bal_eth

käytät API-osiossa gdaxista luotua api-avainta, salaista ja salauslausetta. Nämä funktiot tiedustelevat GDAX-tililtäsi viimeisintä saldoa, jota käytämme toistuvasti kaupassamme:

div>

funktio: RSI

käytämme RSI: tä eli Relative Strength Indexiä tämän strategian keskeisinä indikaattoreina. Curr_rsi14_api vetää viimeisimmän 14 jakson RSI: n arvon käyttäen 15 minuutin kynttilöitä. RSI14_api_less_one ja niin edelleen vedä RSI: ssä edeltäviltä kausilta:

Function: bid & ask

Next, we will need the current bid and ask prices for our strategy:

Function: usd_hold, eth_hold ja cancel_orders

jotta voimme tehdä rajatilauksia iteratiivisesti, meidän täytyy pystyä vetämään jo tehtyjen tilausten nykyinen tila ja pystyä peruuttamaan tilaukset, jotka ovat siirtyneet liian alas tilauskannasta täytettäväksi. Rgdax-paketin ”holds” – funktiota käytetään tähän ensin mainitulle ja ”cancel_order” jälkimmäiselle:

funktio: buy_exe

Tämä on big-daddy-funktio, joka toteuttaa rajamääräyksemme. On olemassa useita vaiheita, että tämä toiminto toimii läpi.

1. Order_size funktio laskee kuinka paljon eth voimme ostaa, koska haluamme ostaa mahdollisimman paljon joka kerta, vähemmän 0,005 eth huomioon pyöristysvirheet

2. Meidän vaikka toiminto paikkaa raja tilauksia, kun meillä on vielä nolla ETH.

3. Tilaus lisätään tarjouksen () hintaan, järjestelmä nukkuu 17 sekuntia, jotta tilaus voidaan täyttää, ja sitten tarkistaa, onko tilaus täytetty. Jos se ei ollut sitten prosessi toistaa.

Part 2: Store Variables

Next, we need to store some our our RSI indicator variabilities as objects so the trading loop run faster and so that we don ’ t exceed the rate limit of the API:

osa 3: kaupankäyntisilmukka suorittaa

tähän asti olemme vain valmistelleet toimintojamme ja muuttujiamme kaupankäyntisilmukan toteuttamiseksi. Seuraava on sanallinen kävely läpi varsinaisen kaupankäyntisilmukan:

Jos tilimme tämänhetkinen saldo dollareina on suurempi kuin 20 dollaria, aloitamme silmukan. Seuraava, Jos nykyinen RSI on suurempi tai yhtä suuri kuin 30 ja RSI edellisellä kaudella oli pienempi tai yhtä suuri kuin 30 ja RSI edellisellä 3 ajanjaksolla oli alle 30 ainakin kerran, niin ostamme niin paljon ETH kuin voimme nykyisen USD saldo.

seuraavaksi Tallennamme tämän ostohinnan CSV-tiedostoon.

tämän jälkeen lähetämme itsellemme sähköpostin, jossa ilmoitamme ostotoimesta.

silmukka tulostaa ”osta”, jotta voimme seurata sitä lokitiedostossamme.

tämän jälkeen järjestelmä nukkuu 3 sekuntia.

nyt annetaan 3 porrastettua limit sell orders to take profits.

ensimmäinen limiittimyyntitilauksemme vie voiton 1%: n voitolla, seuraava ottaa voiton 4%: n voitolla ja viimeinen ottaa voiton 7%: n voitolla:

that ’s it, that’ s the whole script.

osa 4: Windows Task Schedulerin käyttäminen skriptin automatisointiin

tämän botin koko tarkoitus on poistaa inhimillinen virhe kaupasta ja antaa meille mahdollisuus tehdä kauppoja ilman, että meidän tarvitsee olla läsnä näytöllä. Käytämme Windows Task Scheduler tämän saavuttamiseksi.

Schedule script with RStudio addin

käytä näppärää Rstudio-add in-skriptiä, jotta voit helposti ajoittaa skriptin:

muokkaa ajoitettua tehtävää Tehtävien ajoituksen avulla

siirry rstudion lisäosan luomaan tehtävään ja säädä liipaisin ampumaan haluamaasi aikaväliin. Minun tapauksessani valitsen 10 minuutin välein loputtomasti.

pidä silmällä tehtävääsi lokitiedostolla

joka kerta, kun komentosarjasi suoritetaan, se tekee merkinnän tekstilokitiedostoon, jonka avulla voit selvittää komentosarjasi virheet:

näet, miten ”aloita lokimerkintä” ja ”lopeta lokimerkintä” – tulostustoiminto on kätevä merkintöjen erottamiseen.

tee siitä omasi

voit muokata tätä komentosarjaa niin yksinkertaiseksi tai monimutkaiseksi kuin haluat. Parannan käsikirjoitusta lisäämällä hermoverkkoja TensorFlow ’ n keras-moduulista Rstudiolle. Nämä neuroverkot lisäävät eksponentiaalisesti monimutkaisemman elementin komentosarjaan, mutta ovat uskomattoman tehokkaita löytämään piilotettuja kuvioita datasta.

lisäksi TTR-paketti tarjoaa meille suuren määrän taloudellisia toimintoja ja teknisiä mittareita, joiden avulla malliasi voidaan parantaa.

kun kaikki tämä on sanottu, älä pelaa enemmän rahaa, että sinulla on varaa menettää. Markkinat eivät ole peli ja voit ja menetät paitasi.