Rakenna kryptovaluuttaa kauppaava botti R
** 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
- osa 1: soita kirjastoihin ja rakenna funktioita
- Part 2: Store Variables
- osa 3: kaupankäyntisilmukka suorittaa
- osa 4: Windows Task Schedulerin käyttäminen skriptin automatisointiin
- Schedule script with RStudio addin
- muokkaa ajoitettua tehtävää Tehtävien ajoituksen avulla
- pidä silmällä tehtävääsi lokitiedostolla
- tee siitä omasi
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.
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:
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:
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.