Umelá inteligencia - obchodovanie na burze s kryptomenami 1. diel

01.01 | 23:07 | Žumpa | bedňa

Dnes začneme zarábať love na burzách s kryptomenami. Teda nebude to ešte dnes, ale ten deň sa blíži.

V predchádzajúcich dieloch ste videli

Umelá inteligencia - nám predpovie budúcnosť
Umelá inteligencia sa učí počítať
Umelá inteligencia - prvý praktický príklad v rozpoznávaní obrazu
Data augmentation
Vytvorenie datasetu
Prvé kroky k programovaniu
Umelá inteligencia v rozpoznávaní obrazu
Umelá inteligencia nás všetkých zabije

Úvod

Najskôr si stiahneme históriu nejakých párov kryptomien aby sme mohli naučiť AI ako sa správala mena v čase. Spôsobov ako si také dáta stiahnuť, je viacero. Veľké množstvo búrz vyžaduje registráciu, ale poznám jednu burzu, kde to ide aj bez registrácie a to Binance. Aby ste si všetko nemuseli riešiť sami, tak som vytvoril projekt CryptoCoin_stock_trading.

Obsah

Projekt si naklonujeme príkazom:
git clone https://github.com/bedna-KU/CryptoCoin_stock_trading.git
Vojdeme do neho:
cd CryptoCoin_stock_trading
Nainštalujeme si Python3 vývojársku knižnicu:
sudo apt install python3-dev
Nainštalujeme si závislosti:
python3 -m pip install -r requirements.txt
Ak si chceme vypísať všetky páry čo podporuje Binance, napíšeme príkaz?
python3 binance/get_all_pairs.py
Pre zobrazenie dvojíc len pre Bitcoin, napíšeme príkaz?
python3 binance/get_all_pairs.py btc
To nám vráti 305 záznamov, ak by sme chceli ten zoznam zúžiť na meny, ktoré majú v názve BTC a USD, tak použijeme príkaz:
python3 binance/get_all_pairs.py btc usd
To nám už vráti kratší zoznam z ktorého sa dá rozumne vybrať.
BTCUSDT
BTCTUSD
TUSDBTC
BTCUSDC
BTCUSDS
BTCBUSD
BTCUPUSDT
BTCDOWNUSDT
SUSDBTC
To by na ukážku stačilo, mi si vyberieme DOGE :) Hlavne je COOL a už sa o nej zmienil aj Musk ako som písal v predminulom blogu. Dosť (občasne) kopíruje Bitcoin a môžeme si potom skúšať naučiť AI na Bitcoine a výsledky budeme predpovedať pre Dogecoin.
Video
Stiahneme si preto pár DOGE/USDT. USDT je digitálna obdoba Amerického doláru a stále sa na tej hodnote pohybuje v rozmedzí +-1%. Na stiahnutie dát slúži skript binance/save_historical_data.py. Pre vypísanie nápovedy zadáme:
python3 binance/save_historical_data.py -h
usage: save_historical_data.py [-h] -x SYMBOL -s START [-e END] -i
                               {1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w}

optional arguments:
  -h, --help            show this help message and exit
  -x SYMBOL, --symbol SYMBOL
                        symbol for download
  -s START, --start START
                        start date for download
  -e END, --end END     end date fo download
  -i {1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w}, --interval {1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w}
                        interval
Z nápovedy vidíme že je potrebná zadať symbol v našom prípade DOGEUSDT štartovací dátum napríklad 1. Dec 2019 a interval napríklad jednu minútu 1m. Konkrétne použijeme píkaz:
python3 binance/save_historical_data.py --symbol DOGEUSDT --start "1. Dec 2019" --interval 1m
Počkáme pár minút a máme u seba stiahnutú históriu od 1 decembra 2019 po aktuálny čas. To máme cez 500K údajov a to pre je pre AI viac ako dostatočný počet údajov. Toto je taký prvý rozdiel oproti návodom čo nájdete na internete.

Teraz sa pozrieme na dáta čo sme si stiahli. Na to slúži skript python3 csv_columns.py pre nápovedu napíšeme:
python3 csv_columns.py -h
usage: csv_columns.py [-h] -a {show,save,graph} -c COLUMNS

optional arguments:
  -h, --help            show this help message and exit
  -a {show,save,graph}, --action {show,save,graph}
                        select action
  -c COLUMNS, --columns COLUMNS
                        select columns
Keď sa pozrieme priamo na dáta čo sme si stiahli, zistíme, že majú dvanásť stĺpcov:
cat file.csv | head
1575158400000,0.00229200,0.00229200,0.00229200,0.00229200,25805.00000000,1575158459999,59.14506000,1,0.00000000,0.00000000,0
1575158460000,0.00229200,0.00229200,0.00229200,0.00229200,0.00000000,1575158519999,0.00000000,0,0.00000000,0.00000000,0
1575158520000,0.00229200,0.00229200,0.00229200,0.00229200,0.00000000,1575158579999,0.00000000,0,0.00000000,0.00000000,0
1575158580000,0.00229200,0.00229200,0.00229200,0.00229200,0.00000000,1575158639999,0.00000000,0,0.00000000,0.00000000,0
1575158640000,0.00229200,0.00229200,0.00229200,0.00229200,0.00000000,1575158699999,0.00000000,0,0.00000000,0.00000000,0
1575158700000,0.00230410,0.00230410,0.00230410,0.00230410,48022.00000000,1575158759999,110.64749020,1,48022.00000000,110.64749020,0
1575158760000,0.00229000,0.00229000,0.00229000,0.00229000,48119.00000000,1575158819999,110.19251000,2,8332.00000000,19.08028000,0
1575158820000,0.00229000,0.00229000,0.00229000,0.00229000,0.00000000,1575158879999,0.00000000,0,0.00000000,0.00000000,0
1575158880000,0.00229000,0.00229000,0.00229000,0.00229000,0.00000000,1575158939999,0.00000000,0,0.00000000,0.00000000,0
1575158940000,0.00229000,0.00229000,0.00229000,0.00229000,0.00000000,1575158999999,0.00000000,0,0.00000000,0.00000000,0
Keby sme potrebovali zo súboru vytiahnuť len nejaké stĺpce na to práve slúži vyššie spomínaný skript. Popis stĺpcov čo sme si stiahli sa nazýva OHLCV čo vám samozrejme povie aj váš obľúbený internetový vyhľadávač.

Prvý stĺpec je unixtime, druhý je otvárací kurz (O), tretí je maximálny kurz (H), štvrtý je najnižší kurz (L), piaty je uzatvárací kurz (C) a šiesty objem obchodov (V), na ostatné kľudne zabudnite.

Na zobrazenie grafu s dátami slúži prepínač --graph. Môžeme si to skúsiť s prepínačmi na zobrazenie prvého a piateho stĺpca, čiže času a uzatváracieho kurzu:
python3 csv_columns.py --action graph --columns "0 4"

Pre zobrazenie dát len z prvého a piateho stĺpca, použijeme príkaz:
python3 csv_columns.py --action show --columns "0 4"
Vybrané stĺpce si uložíme, prepínačom save. Napríklad chceme uložiť prvý, druhý, tretí, štvrtý, piaty a šiesty stĺpec použijeme príkaz:
python3 csv_columns.py --action save --columns "0 1 2 3 4 5"
Vyfiltrovaný CSV súbor s dátami nájdeme v súbore file_new.csv.

Záver

Dnes už vieme ako si pripraviť dataseset s dátami na naučenie AI. V ďalšom diele, mno uvidíme čo sa stane, minimálne sa určite zas niečo naučíme, alebo si niečo zas odskúšame. Všetko najlepšie v novom roku 2021 :-)

Prílohy

    • RE: Umelá inteligencia - obchodovanie na burze s kryptomenami 1. diel 02.01 | 04:21
      Avatar honolulu   Návštevník
      histṕriu

      c

      Ja že históriu,

      Ale nevadí, som zvedavý akú to bude mať hodnotu v tom budúcom svete.

      Le bo ten to svet ako ho poznáme už končí.

      • RE: Umelá inteligencia - obchodovanie na burze s kryptomenami 1. diel 02.01 | 14:09
        Avatar bedňa LegacyIce-antiX  Administrátor

        Opravené.

        V budúcom svete bez nealka?

        Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • RE: Umelá inteligencia - obchodovanie na burze s kryptomenami 1. diel 02.01 | 15:40
      Avatar bedňa LegacyIce-antiX  Administrátor

      Fixol som zobrazovanie grafu a trochu upravil zápisok.

      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • RE: Umelá inteligencia - obchodovanie na burze s kryptomenami 1. diel 09.01 | 18:26
      Avatar 3xc   Návštevník

      Vcelku náučné, fajne napísané, teším sa na pokračovanie

      • RE: Umelá inteligencia - obchodovanie na burze s kryptomenami 1. diel 09.01 | 19:30
        Avatar bedňa LegacyIce-antiX  Administrátor

        Napísal som už aj sieť a učenie. K tomu teraz prasím predikciu kurzu, nebude to žiadna krása, ale je to pre prvý test.

        Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org