Articles

Vytvořit Cryptocurrency Trading Bot s R

Foto Branko Stancevic na Unsplash

** Všimněte si, že rozhraní API používané v tomto návodu je již v provozu. Tento článek by měl být čten pro ilustrativní účely s ohledem na to.

mysl obchodníka je slabým článkem v jakékoli obchodní strategii nebo plánu. Efektivní provádění obchodování vyžaduje lidské vstupy, které běží opačným směrem než naše instinkty. Měli bychom koupit, když náš mozek plazů chce prodat. Měli bychom prodávat, když naše vnitřnosti chtějí, abychom si koupili více.

je ještě obtížnější obchodovat s kryptoměnami s kritickou ústavou. Mladé a rozvíjející se trhy jsou zaplaveny s „čerpadlo skupin“, které podporují intenzivní FOMO (strach z chybějící out), která tlačí ceny sky-high, než tělo-sešup zpátky na zem. Mnoho začínajících investorů také obchoduje na těchto trzích, investoři, kteří možná nikdy nevstoupili do obchodu na NYSE. Na každém obchodu, je tvůrce a příjemce, a chytrý crypto investoři zjišťují, že je snadné využít nováčci zaplavení prostor.

s cílem oddělit své emoce od crypto obchodování a využít trhy otevřené 24/7, jsem se rozhodl postavit jednoduchý obchodování bot, který bude následovat jednoduchou strategii a provádět obchody, jak jsem spala.

Mnoho „bot obchodníci“, jak se nazývají, používat programovací jazyk Python k provedení těchto obchodů. Pokud byste byli na Googlu, „crypto trading bot“, najdete odkazy na kód Pythonu v různých repozitářích Github.

jsem datový vědec A R je můj hlavní nástroj. Hledal jsem slušný tutoriál o používání jazyka R k vytvoření obchodního robota, ale nenašel jsem nic. Když jsem našel balíček rgdax, který je R wrapper pro GDAX API, byl jsem nastaven na vytvoření vlastního balíčku pro rozhraní s GDAX API. Následuje návod, jak sestavit obchodní bot, který můžete použít k vytvoření vlastních strategií.

Stručně řečeno, budeme obchodovat s párem Ethereum-USD na burze GDAX prostřednictvím jejich API prostřednictvím obalu rgdax. Rád obchoduji s tímto párem, protože Ethereum (ETH) je obvykle v býčím postoji, což umožňuje této strategii zářit.

Poznámka: Jedná se o super-zjednodušující strat, který na býčím trhu vydělá jen pár babek. Pro všechny záměry a účely, použijte to jako základ pro budování vlastní strat.

budeme nakupovat, když kombinace ukazatelů Relative Strength Index (RSI) ukazuje na dočasně přeprodaný trh s předpokladem, že býci opět zvýší ceny a můžeme získat zisky.

jakmile si koupíme, bot zadá tři limitní prodejní objednávky: jeden s 1% ziskem, druhý se 4% ziskem a poslední se 7% ziskem. To nám umožňuje rychle uvolnit finanční prostředky pro vstup do dalšího obchodu s 1. dvěma objednávkami a 7% objednávka posiluje naši celkovou ziskovost.

Software

budeme používat RStudio a Plánovač úloh systému Windows k pravidelnému provádění našeho R kódu (každých 10 minut). K odesílání objednávek budete potřebovat účet GDAX a účet Gmail pro přijímání obchodních oznámení.

Náš Proces

Část 1: Volání Knihoven a Budovat Funkce

začneme tím, že volá několik knihoven:

Balíček rgdax poskytuje rozhraní k GDAX api, mailR se používá, aby nám poslat e-mail aktualizace s Gmail účet, stringi nám pomáhá analyzovat čísla z JSON a TTR nám umožňuje provádět technické výpočty indikátor.

Funkce: curr_bal_usd & curr_bal_eth

Budete používat svůj api klíč, tajemství a heslo, které jsou generovány z GDAX v API části. Tyto funkce dotaz GDAX účet pro nejnovější bilance které budeme používat opakovaně v naše obchodování:

Funkce: RSI

Budeme používat RSI nebo Relativní Pevnost Index jako naše hlavní ukazatele pro tuto strategii. Curr_rsi14_api táhne v hodnotě Poslední 14 období RSI, pomocí 15 minut svíčky. RSI14_api_less_one a tak dále vytáhněte RSI za období před:

Function: bid & ask

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

Function: usd_hold, eth_hold a cancel_orders

aby pro nás limitní příkazy v iterační módní musíme být schopni vytáhnout v aktuálním stavu naší objednávky již umístěny, a být schopni zrušit objednávky, které se přestěhovali příliš daleko dolů, aby knihy, které mají být vyplněny. Budeme používat „drží“ funkce rgdax balíček, aby to pro bývalý, a „cancel_order“ pro druhé:

Funkce: buy_exe

Toto je funkce big-daddy, která skutečně provádí naše limitní příkazy. Tato funkce funguje několika kroky.

1. Order_size funkce vypočítá, kolik eth můžeme koupit, protože chceme koupit co nejvíce pokaždé, méně 0.005 eth k účtu za chyby zaokrouhlování

2. Naše funkce WHILE umisťuje limitní příkazy, zatímco stále máme nulovou ETH.

3. Objednávka je přidána za cenu bid (), systém spí 17 sekund, aby umožnil vyplnění objednávky, a poté zkontroluje, zda byla objednávka vyplněna. Pokud tomu tak nebylo, proces se opakuje.

Část 2: Uložení Proměnné

Next, musíme uložit některé naše naše RSI indikátor proměnné jako objekty, takže obchodní smyčka běží rychleji a tak, že nemáme překročit rychlost limit API:

3. Část: Obchodování Provede Smyčky

až do teď, právě jsme připravovali náš funkcí a proměnných za účelem provedení obchodu smyčky. Následuje slovní procházka skutečnou obchodní smyčkou:

Pokud je aktuální zůstatek našeho účtu v USD větší než 20 USD, zahájíme smyčku. Dále, pokud je aktuální RSI větší nebo rovna 30 a RSI v předchozím období byla menší nebo rovna 30 a RSI v předchozích 3 obdobích byla alespoň jednou menší než 30, pak kupujeme tolik ETH, kolik můžeme s aktuálním zůstatkem USD.

dále uložíme tuto kupní cenu do souboru CSV.

poté si pošleme e-mail, který nás upozorní na akci koupit.

smyčka pak vytiskne „koupit“, abychom to mohli sledovat v našem souboru protokolu.

systém pak spí po dobu 3 sekund.

Nyní, jsme se vstoupit 3 stupňová limit prodejní příkazy k vybírání zisků.

Naše první limit sell příkaz má zisk na 1% zisk, další trvá zisku na 4% zisk, a poslední bere zisk na 7% zisk:

to je ono, to je celý scénář.

Část 4: Pomocí Windows Plánovač Úloh pro Automatizaci Skript

účelem tohoto bota je, aby se lidská chyba z obchodu, a umožní nám vstoupit do obchodů, aniž by museli být přítomni na obrazovce. K tomu použijeme Plánovač úloh systému Windows.

Plán skript s Rstudio addin

Použijte šikovný Rstudio přidat do snadno naplánovat skript:

Upravit naplánované úlohy pomocí Plánovače Úloh

Přejděte na úkol vytvořen Rstudio přidat a nastavit spoušť na oheň na interval, který chcete. V mém případě volím každých 10 minut na dobu neurčitou.

Mějte pozor na svůj úkol s log souboru

Pokaždé, když se skript spustí se záznam do textového souboru protokolu, který umožňuje, aby řešení potíží chyby ve skriptu:

můžete vidět, jak „ZAČÍT ZÁZNAM“ a „UKONČIT ZÁZNAM“ funkce tisku přijde vhod naše samostatné položky.

Udělej si svůj vlastní

tento skript můžete upravit tak, aby byl tak jednoduchý nebo složitý, jak chcete. Pracuji na vylepšení tohoto skriptu přidáním neuronových sítí z modulu keras od Tensorflow pro Rstudio. Tyto neuronové sítě přidávají do skriptu exponenciálně složitější prvek, ale jsou neuvěřitelně silné pro nalezení skrytých vzorců v datech.

kromě toho nám balíček TTR poskytuje velké množství finančních funkcí a technických ukazatelů, které lze použít ke zlepšení vašeho modelu.

s tím vším bylo řečeno, Nehrajte si s více penězi, které si můžete dovolit ztratit. Trhy nejsou hra a můžete a ztratíte košili.