# Olisiko kiinnostusta MtGoxin kurssidata-aikasarjoille?

**URL:** https://forum.bittiraha.fi/t/olisiko-kiinnostusta-mtgoxin-kurssidata-aikasarjoille/923
**Category:** Bitcoin-projektit
**Created:** [Kesäkuu 7, 2013, 11.58pm UTC](https://forum.bittiraha.fi/t/olisiko-kiinnostusta-mtgoxin-kurssidata-aikasarjoille/923 "2013-06-07T23:58:09Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Kurdeli](https://forum.bittiraha.fi/letter_avatar_proxy/v4/letter/k/41988e/32.png) [@Kurdeli](https://forum.bittiraha.fi/u/Kurdeli)
#### Post date: [Kesäkuu 7, 2013, 11.58pm UTC](https://forum.bittiraha.fi/t/olisiko-kiinnostusta-mtgoxin-kurssidata-aikasarjoille/923/1 "2013-06-07T23:58:09Z")

</div>

Väsäilen tällä hetkellä itselleni J:llä toteutettua MtGoxin BTC/USD -kurssidatan historiallista tietokantaa. Tarkoituksena on tallentaa ensin tietokantaan (toteutettu J:n mapped file-tekniikalla, nopea) kurssidatat minuuttitasolla viimeisen vuoden ajalta ja mahdollisesti päivitellä myöhemmällä datalla. Tallennettavia kenttiä olisivat Bitcoinchartsin tyylisesti:

- date (vvvvkkpp)
- time (hhmmss, oikeastaan tässä sekunnit turhia)
- open (\*100000, tallennus integerinä)
- high (sama^)
- low (sama^)
- close (sama^)
- volume USD (\*100, int)
- volume BTC (\*100, int)
- weighed price (\*100, int)

Ideana on siis muuntaa kaikki kentät kokonaisluku-tyyppisiksi kertomalla desimaalit pois ja saada näin aikaan säästöä levytilassa ja hakuajoissa. Haku J:n komentotulkista käsin toimii jo nyt, jatkossa on tarkoitus koodailla käyrien piirtelyä ja teknisiä analysaattoreita, joita voisi vapaasti yhdistellä tiettyyn aikasarjakuvaan. Itselläni on tarkoitus käyttää tätä treidausstrategioiden suunnitteluun mutta tietokanta taipuu varmaan moneen muuhunkin käyttöön, jossa on jokin mtgox-kurssidatakytkös. Kenties laitan työni tulokset jakeluun Open Source-periaatteella, en ole vielä asiaa päättänyt. J602:n voi ladata ja asentaa veloituksetta [www.jsoftware.com](http://www.jsoftware.com):sta. J-ohjelmat ovat muuten siirrettäviä win/mac/linux -ympäristöissä, mutta tuo mapped files database taisi pelittää pelkästään windowsissa. On muuten nopea, J:stä löytyy demo, jossa tuolla on toteutettu miljoonan tietueen “ajoneuvotietokanta”, josta haut ovat sekunnin kymmenyksien luokkaa.

Olen työtön ohjelmoija ja kiinnostunut keskustelemaan, jos jollakulla on tarjota tämänsuuntaisia hommia. Koodailen pääasiassa APL:n eri murteilla ja J:llä.

---

<div class="post-metadata">

### Author: ![Kurdeli](https://forum.bittiraha.fi/letter_avatar_proxy/v4/letter/k/41988e/32.png) [@Kurdeli](https://forum.bittiraha.fi/u/Kurdeli)
#### Post date: [Kesäkuu 8, 2013, 10.53am UTC](https://forum.bittiraha.fi/t/olisiko-kiinnostusta-mtgoxin-kurssidata-aikasarjoille/923/2 "2013-06-08T10:53:25Z")

</div>

## Tuossa on hieman otetta sessiolokista, meneillään raakadatan siivoilu, 0-rivien ja peräkkäisten duplikaattirivien typistäminen. Tietueita kaikkiaan 364593 riviä. Aikaa tuohon boolean-vektorilla ohjattuun typistykeen meni silmänräpäys, ehkä 0.1 sekuntia. Hyvältä vaikuttaa ainakin vasteaikojen suhteen.

[font=courier] bb=: goxDuplRows ‘’  
#bb  
364630

+/bb  
37  
bb#i.#bb  
94776 96270 97182 102760 104328 115889 117996 119966 121545 124209 130789 134263 137082 140282 142007 151156 152807 153749 161229 162801 227276 231349 232417 234608 242525 244247 245381 248041 249373 250610 253126 260018 260948 262072 263430 264751 282923  
(i. #VR) raportoi 124209+ i.5  
┌────────┬───────┬──────────┬──────────┬──────────┬──────────┬────────┬────────┬────────┐  
│Date │Time │Open │High │Low │Close │Volume │VolUSD │Wgtprice│  
├────────┼───────┼──────────┼──────────┼──────────┼──────────┼────────┼────────┼────────┤  
│20120914│1000000│ 1.13990│ 1.13990│ 1.13990│ 1.13990│ 20.21│ 230.42│ 11.40 │  
│20120914│1000000│ 1.13990│ 1.13990│ 1.13990│ 1.13990│ 20.21│ 230.42│ 11.40 │  
│20120914│1000100│ 1.13990│ 1.13900│ 1.13210│ 1.13210│ 26.00│ 294.42│ 11.32 │  
│20120914│1000200│ 1.13210│ 1.13990│ 1.13900│ 1.13900│ 20.18│ 230.00│ 11.40 │  
│20120914│1000400│ 1.13900│ 1.13990│ 1.13990│ 1.13990│ 9.29│ 105.88│ 11.40 │  
└────────┴───────┴──────────┴──────────┴──────────┴──────────┴────────┴────────┴────────┘  
goxDropWhere bb  
Typistettiin 37 tietuetta.  
ROWS  
364593  
VR  
┌─────┬─────┬─────┬─────┬────┬──────┬────┬───────┬───────┐  
│gdate│gtime│gopen│ghigh│glow│gclose│gvol│gvolusd│gwprice│  
└─────┴─────┴─────┴─────┴────┴──────┴────┴───────┴───────┘  
unmapall\_jmf\_ ‘’  
0 0 0 0 0 0 0 0 0[/font]

---

<div class="post-metadata">

### Author: ![Kurdeli](https://forum.bittiraha.fi/letter_avatar_proxy/v4/letter/k/41988e/32.png) [@Kurdeli](https://forum.bittiraha.fi/u/Kurdeli)
#### Post date: [Kesäkuu 10, 2013, 2.31pm UTC](https://forum.bittiraha.fi/t/olisiko-kiinnostusta-mtgoxin-kurssidata-aikasarjoille/923/3 "2013-06-10T14:31:46Z")

</div>

Nyt mulla on valmiina funktiot tietyltä aikajanalta poimitun kurssi/volyymidatan plottaukseen. Jotain teknisiä analysaattoreita voisi vielä koodailla ja ajaa tuohon päälle, pitäisi vaan keksiä mitkä analysaattorit purisivat Goxin tapaiseen markkinaan parhaiten.

Sitten vielä keksitään toimiva trading-strategia. Simuloidaan ja kenties laitetaan tuotantoon siellä missä p\*\*ka osuu tuulettimeen. Ja rikastutaan…

* * *

 ![](https://forum.bittiraha.fi/uploads/default/original/1X/f3d5d8c3dffd8dbf7cb9d89fe18f871da9c2d568.png)

---

<div class="post-metadata">

### Author: ![aan](https://forum.bittiraha.fi/letter_avatar_proxy/v4/letter/a/e19adc/32.png) [@aan](https://forum.bittiraha.fi/u/aan)
#### Post date: [Kesäkuu 10, 2013, 3.49pm UTC](https://forum.bittiraha.fi/t/olisiko-kiinnostusta-mtgoxin-kurssidata-aikasarjoille/923/4 "2013-06-10T15:49:08Z")

</div>

[quote=“Kurdeli, post:3, topic:923”]Nyt mulla on valmiina funktiot tietyltä aikajanalta poimitun kurssi/volyymidatan plottaukseen. Jotain teknisiä analysaattoreita voisi vielä koodailla ja ajaa tuohon päälle, pitäisi vaan keksiä mitkä analysaattorit purisivat Goxin tapaiseen markkinaan parhaiten.

Sitten vielä keksitään toimiva trading-strategia. Simuloidaan ja kenties laitetaan tuotantoon siellä missä p\*\*ka osuu tuulettimeen. Ja rikastutaan…[/quote]

Osaatko sattumoisin sanoa paljonko MtGoxin bid-ask spread on keskimäärin? Tämä vaikuttaa strategian toimivuuteen olennaisesti, vaikka kysessä olisi SP500:n kaltainen erittäin likvidi markkina. Toki MtGoxissa on suurempi volatiliteetti.

---

<div class="post-metadata">

### Author: ![Kurdeli](https://forum.bittiraha.fi/letter_avatar_proxy/v4/letter/k/41988e/32.png) [@Kurdeli](https://forum.bittiraha.fi/u/Kurdeli)
#### Post date: [Kesäkuu 10, 2013, 4.44pm UTC](https://forum.bittiraha.fi/t/olisiko-kiinnostusta-mtgoxin-kurssidata-aikasarjoille/923/5 "2013-06-10T16:44:20Z")

</div>

Spreadi on itse asiassa nähtävissä joidenkin päivien kurssikäyrissä, perstuntumani on että se olisi voimakkaasti kytköksissä mtGoxin perimiin palvelumaksuihin, olikohan 0.55% sekä myydessä että ostettaessa. Jollain argoritmilla sen voisi varmaan laskea tuosta raakadatasta, jotain tyyliin “suodatetaan 2 tyypillisintä arvokeskittymää aikajanalla t ja lasketaan näiden erotus”. Vaatinee “flat trading rangen” tai lievää trendausta.

* * *

 ![](https://forum.bittiraha.fi/uploads/default/original/1X/731680fdcbd5f6383eb9ad3aed0ff5d55d6775ef.png)

---

<div class="post-metadata">

### Author: ![Kurdeli](https://forum.bittiraha.fi/letter_avatar_proxy/v4/letter/k/41988e/32.png) [@Kurdeli](https://forum.bittiraha.fi/u/Kurdeli)
#### Post date: [Kesäkuu 10, 2013, 4.57pm UTC](https://forum.bittiraha.fi/t/olisiko-kiinnostusta-mtgoxin-kurssidata-aikasarjoille/923/6 "2013-06-10T16:57:55Z")

</div>

Niin, siis noi x-akselin arvot on suoria indeksejä tietovektoreihin, pitäisi saada jotain pvm/hh:mm -selitteitä aikaiseksi jahka ehdin.  
Ehkä voisi olla hyvä idea laskea joku kausitasoitettu sarja tuohon rinnalle, vaikka 30 havainnon liukuva keskiarvo tms.

Noi 6_366_24\*60 -alkioiset tietokannat vievät levytilaa hieman yli 14MB per integer-kenttä. Allokoin 6 vuoden tarpeisiin, joten kasvuvaraa on vielä.

[font=courier]  
goxPlotRangeVol 20130516 20130516.1225  
#gclose NB. tietojen lkm tietokannassa  
364683[/font]

---

<div class="post-metadata">

### Author: ![Kurdeli](https://forum.bittiraha.fi/letter_avatar_proxy/v4/letter/k/41988e/32.png) [@Kurdeli](https://forum.bittiraha.fi/u/Kurdeli)
#### Post date: [Kesäkuu 11, 2013, 10.48pm UTC](https://forum.bittiraha.fi/t/olisiko-kiinnostusta-mtgoxin-kurssidata-aikasarjoille/923/7 "2013-06-11T22:48:18Z")

</div>

Tuommoisen aika-navigaattorin sain tehdyksi. Sillä voi askeltaa tiettyä aikajanaa halutunkokoisia askeleita eteen ja taaksepäin ja lisäksi noihin aikakenttiin voi syöttää aikajanan päätepisteet muodossa vvvvkkpp.hhmm. Kuvaa voi käyttää myöhemmin analyysityökalun osana, se voisi esim. automaattisesti fokusoitua kuvaajan kiintoisiin kohtiin, joissa indikaattori antaa buy/sell -signaaleja.

* * *

 ![](https://forum.bittiraha.fi/uploads/default/original/1X/0d44f19086f9b5dbb89b59199a98ae8fa02e03e7.png)

---

<div class="post-metadata">

### Author: ![Kurdeli](https://forum.bittiraha.fi/letter_avatar_proxy/v4/letter/k/41988e/32.png) [@Kurdeli](https://forum.bittiraha.fi/u/Kurdeli)
#### Post date: [Kesäkuu 16, 2013, 12.35pm UTC](https://forum.bittiraha.fi/t/olisiko-kiinnostusta-mtgoxin-kurssidata-aikasarjoille/923/8 "2013-06-16T12:35:33Z")

</div>

Koodailin ensin n arvon liukuvan keskiarvon laskevan funktion, joka päivittää samalla tuohon gema-nimeen liitetyn mapped filen:

[font=courier]NB. päivittää Ema-kentän liukuvalla keskiarvolla  
NB. goxEma jaks  
goxEma=: 3 : 0  
5 goxEma y  
:  
k=.x  
jak=. y  
p=.\<.jak%2  
gema=:ROWS$0  
for\_i. i.(#ghigh)-jak-1 do.  
ii=.i+i.jak NB. indeksit  
a=.\<.(+/ii{ghigh)%jak  
gema=:a (i+p)}gema  
end.  
p  
) [/font]

Sitten huomasin että J:ssä on valmiiksi tuollainen “osajoukko-scan”-adverbi, jota käyttämällä koodista saa tiiviimpää:

[font=courier]LKA=: 4 : ‘x%~ x+/\y’ NB. siinä koko määrittely!

koe=: ?15#100  
koe  
90 47 58 29 22 32 55 5 55 73 58 50 40 5 69  
10 LKA koe  
68.5 52.5 43.5 25.5 27 43.5 30 30 64 65.5 54 45 22.5 37  
10 LKA koe  
46.6 43.4 43.7 41.9 39.5 44.2  
[/font]

Sitten laskettuna koko aikasarjalle:

[font=courier] #gclose NB. alkioiden määrä  
364683

aa=: 10 LKA gclose  
#aa  
364674

```
0.00001*20{. aa

```

4.626555 5.141555 5.143015 5.144975 5.144977 5.146437 5.144839 5.146398 5.146401 5.146462 5.146063 5.145563 5.145563 5.145562 5.146662 5.146662 5.148221 5.148221 5.148221 5.147761  
[/font]  
Tuo LKA on laskettu käsittelemättömästä raakadatasta, pitää jakaa 100000:lla niin päästään oikeaan suuruusluokkaan.

Vaikuttaa yllättävän nopealta, liukujakson kasvatus esim. 6000 arvoon ei tunnu näkyvän suoritusajassa juuri lainkaan.
