Crypto-exchange API development (Apps, bots, etc...)

Pagina: 1
Acties:

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:03

Rannasha

Does not compute.

Topicstarter
Alle serieuze crypto-currency-exchanges bieden de mogelijkheid om de exchange programmatisch te benaderen met behulp van een API. Dit biedt een boel extra mogelijkheden die je niet hebt als je enkel de website gebruikt om te handelen. Denk hierbij aan:
  • Een koers-ticker zodat je op je blog naast posts over hoe fantastisch Bitcoin is direct de grafiek van de laatste flashcrash kunt laten zien.
  • Een smartphone-app, zodat je ook on-the-road je gepatenteerde "buy high, sell low" strategie kunt uitvoeren.
  • Een handels-bot, die 's nachts wanneer je slaapt je hele balans weghandelt.
  • En nog veel meer...

Hoe werken de APIs?
Hoewel iedere exchange zijn eigen implementatie gebruikt, zijn de basisconcepten over het algemeen vrijwel gelijk. De API-functies zijn op te delen in publieke functies en private functies. De publieke functies zijn direct toegankelijk en bevatten algemene informatie zoals de laatste trades, het orderboek, enz... Publieke functies worden meestal aangeroepen met een HTTP-GET methode, waarna het resultaat in de vorm van een JSON string teruggegeven wordt.

Private functies zijn functies die specifiek voor een bepaald account iets doen. Denk aan het opvragen van openstaande orders, het plaatsen van een nieuwe order of het over laten boeken van een deel van het saldo. Ter beveiliging heb je voor deze functies een account-specifiek API-keypair nodig, bestaande uit een API-key en een bijbehorende API-secret.

Voor een private functie construeer je een HTTP-POST opdracht, met daarin de parameters van je verzoek, de API-key en vaak een nonce (een nummer dat bij iedere volgende aanroep groter moet zijn dan alle eerdere waardes). Vervolgens signeer je deze opdracht middels een cryptografische hash-functie met je API-secret en plak je de signature bij het verzoek.

Iedere exchange gebruikt een andere manier om het POST verzoek op te stellen en ook het signeren van het bericht gebeurt anders, maar dit algemene idee wordt vrijwel overal toegepast.

Waar kan ik documentatie vinden?
Documentatie van de APIs is te vinden op de websites van de exchanges, vaak hebben ze hier een speciale pagina voor, maar anders staat het wellicht in de FAQ of bij de support-afdeling. Vaak wordt er ook verwezen naar voorbeeld-implementaties in een of meerdere talen, zodat je direct aan de slag kunt.

Kraken: https://www.kraken.com/help/api
Bitstamp: https://www.bitstamp.net/api/
BTC-e: https://btc-e.com/api/documentation
Cryptsy: https://www.cryptsy.com/pages/api

Andere dingen om rekening mee te houden
Veel exchanges hebben een limiet op de frequentie waarmee je verzoeken op de API af mag sturen. Zorg dat je hier rekening mee houdt, want anders kun je een IP-ban aan de broek krijgen en als je een vast IP hebt, kan het dan lastig zijn om de exchange weer te benaderen.

De meeste exchanges bieden de mogelijkheid om per API-key aan te geven welke functies wel en niet beschikbaar zijn. Zorg dat je de API-key beperkt tot de functies die je voor jouw software nodig hebt. Daarnaast zijn er soms mogelijkheden tot een IP-adres-filter of een verloopdatum van de key.

De handels-functies van de API hebben vaak niet dezelfde "weet je het zeker?" beveiliging die de website wel heeft. Zorg dus dat je je code goed test voordat je orders aanmaakt, wijzigt of annuleert.

Doel van dit topic
Het doel van dit topic is algemene discussie over de ontwikkeling van software voor crypto-exchanges, vraag-en-antwoord en het uitwisselen van ideeen.

|| Vierkant voor Wiskunde ||


  • Lapoor
  • Registratie: September 2007
  • Laatst online: 19-06 14:47
iemand hier ervaring met de bitstamp api? ik probeer een een buy order te zetten van 0.1 btc alleen wordt deze elke keer afgekeurd met de melding Minimum order size is $1, als ik 1 of hoger invul als amount dan werkt het wel

Ik maak gebruik van het xchange java project en gebruik deze voorbeeld code
https://github.com/timmol...de/BitstampTradeDemo.java

waarbij ik de volgende code gebruik
LimitOrder limitOrder = new LimitOrder((OrderType.BID), new BigDecimal(".01"), "BTC", "USD", "", null, MoneyUtils.parse("USD 6.1"));
String limitOrderReturnValue = tradeService.placeLimitOrder(limitOrder);
System.out.println("Limit Order return value: " + limitOrderReturnValue);

De system.out print vervolgens Minimum order size is $1

als ik new BigDecimal("1") doe als amount dan staat er netjes een order in het bitstamp book van 1 btc voor 6.1 dollar

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:03

Rannasha

Does not compute.

Topicstarter
Lapoor schreef op donderdag 20 februari 2014 @ 17:12:

waarbij ik de volgende code gebruik
LimitOrder limitOrder = new LimitOrder((OrderType.BID), new BigDecimal(".01"), "BTC", "USD", "", null, MoneyUtils.parse("USD 6.1"));
String limitOrderReturnValue = tradeService.placeLimitOrder(limitOrder);
System.out.println("Limit Order return value: " + limitOrderReturnValue);

De system.out print vervolgens Minimum order size is $1

als ik new BigDecimal("1") doe als amount dan staat er netjes een order in het bitstamp book van 1 btc voor 6.1 dollar
code:
1
 LimitOrder limitOrder = new LimitOrder((OrderType.BID), new BigDecimal(".01"), "BTC", "USD", "", null, MoneyUtils.parse("USD 6.1"));


Ik vermoed zeer sterk dat in deze regel de waarde 6.1 de prijs per Bitcoin voorstelt. Kortom, met deze regel probeer je dus een order te plaatsen voor 0.1 BTC voor 6.1 USD per BTC, dus de totale waarde van de order is $0.61, wat minder is dan $1, wat Bitstamp als minimum eist.

|| Vierkant voor Wiskunde ||


  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 02-10 14:49
TVP'tje!

  • pposthoorn
  • Registratie: Januari 2005
  • Laatst online: 12-09 14:04

pposthoorn

Constructeur

d:)b

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 23:14

orf

Ik heb in december een botje in PHP gebouwd voor Kraken die niets anders doet dan buy en sell orders aanmaken. Als er een buy order is aangemaakt, maakt de bot een sell order met een opgegeven marge (in %) aan als de order vervult is. Na een sell order weer een buy order, enz. Je kunt onbeperkt setjes opgeven.

Ik gebruik 'm niet of nauwelijks meer. Toen de koers niet heel hard omhoog of omlaag ging was de bot handig om met lage marges te handelen. Mijn volume ging daardoor sterk omhoog waardoor de fees ook laag worden.

Je hebt hiervoor de Kraken PHP API client nodig. Zie https://github.com/paywar...r/php/KrakenAPIClient.php

Dit zijn de scripts die ik heb geschreven.

KrakenTrader.php
KrakenTradeSet.php
KrakenApiCache.php

Let op, de fee is hardcoded. Ik had geen zin om dat dynamisch te maken.

Gebruik:
PHP:
1
2
3
4
5
6
<?php
$trader = new KrakenTrader($key, $secret);
$trader->addSet(423, 2.5, 0.1, KrakenTrader::BUY, true);
$trader->addSet(421, 2.5, 0.1, KrakenTrader::BUY, true);
$trader->addSet(420, 2.5, 0.1, KrakenTrader::BUY, true);
$trader->start();


argumenten:
- Bij welke koers kopen (of verkopen)
- Na hoeveel marge (in %) wil je de BTC weer verkopen (of juist kopen)
- Kopen of verkopen
- Order direct inschieten of pas als de huidige koers gelijk of onder je koop-koers zit (of andersom bij verkoop)

De bot plaatst je order, houdt de koers in de gaten en maakt automatisch een verkooporder aan na de kooporder. Dit blijft zicht herhalen zolang de bot draait. Je kunt zoveel sets aanmaken als je wilt. In een logfile wordt bijgehouden wat er gebeurt en je ziet je profit (per trade en totaal) daarin terug.

Ik geef hier nadrukkelijk geen support of garanties op. Gebruik op eigen risico.

Acties:
  • 0 Henk 'm!

  • pposthoorn
  • Registratie: Januari 2005
  • Laatst online: 12-09 14:04

pposthoorn

Constructeur

Kan je daar geen Stop Loss, Take Profit order voor gebruiken?

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 23:14

orf

Volgens mij kun je met geavanceerde orders een tegenorder aanmaken. Deze bot kan blijven handelen. In een nacht kan dat makkelijk oplopen tot tientallen orders.

Acties:
  • 0 Henk 'm!

Verwijderd

Stout, maar hierbij doe ik net hetzelfde :)

Acties:
  • 0 Henk 'm!

  • BasPH
  • Registratie: November 2009
  • Laatst online: 14-09 10:10
Dit is het antwoord van Bitonic wanneer je de huidige prijs opvraagt (https://bitonic.nl/json/?...convert&check=btc&btc=1):
{
"check": "btc",
"balance": 663.06393814362,
"methods": [
"ideal",
"mistercash"
],
"method": "ideal",
"fixed": false,
"euros": 432.82,
"btc": "1",
"euros_formatted": "432,82",
"btc_formatted": "1,00000000",
"show_tip": false,
"show_discount": false,
"ext_data": false,
"discount_message": "Uw actie-korting"
}
Iemand een idee waar "ext_data" voor staat? Als ik ext_data=true meestuur krijg ik true terug, maar de rest van het antwoord blijft hetzelfde.

Acties:
  • 0 Henk 'm!

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:03

Rannasha

Does not compute.

Topicstarter
Stuur 'komkommer' hier op Tweakers anders een PM, hij werkt bij Bitonic.

|| Vierkant voor Wiskunde ||


Acties:
  • 0 Henk 'm!

  • pposthoorn
  • Registratie: Januari 2005
  • Laatst online: 12-09 14:04

pposthoorn

Constructeur

BasPH schreef op woensdag 26 februari 2014 @ 19:08:
Dit is het antwoord van Bitonic wanneer je de huidige prijs opvraagt (https://bitonic.nl/json/?...convert&check=btc&btc=1):


[...]


Iemand een idee waar "ext_data" voor staat? Als ik ext_data=true meestuur krijg ik true terug, maar de rest van het antwoord blijft hetzelfde.
Het kan ook eenvoudiger:
komkommer schreef op zaterdag 08 februari 2014 @ 11:58:
[...]

kopen:
1 bitcoin: https://bitonic.nl/api/buy?btc=1
100 euro: https://bitonic.nl/api/buy?eur=100

verkopen:
1 bitcoin: https://bitonic.nl/api/sell?btc=1
100 euro: https://bitonic.nl/api/sell?eur=100

Gemiddelde prijs tussen koop en verkoop + 24hour sliding volume zoals ook op bitcoinaverage wordt getoond: https://bitonic.nl/api/price

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 02-10 14:49
Awesome! Kraken heeft OHLC data aan z'n API toegevoegd zie ik!: https://www.kraken.com/help/api#get-ohlc-data

Verwijderd

Avalaxy schreef op donderdag 27 februari 2014 @ 01:46:
Awesome! Kraken heeft OHLC data aan z'n API toegevoegd zie ik!: https://www.kraken.com/help/api#get-ohlc-data
Je hebt het zo te zien al ingebouwd in de Kraken app: https://twitter.com/avalaxy/status/438888369083273216

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 02-10 14:49
Yup, gelijk maar gebruik gemaakt van de gelegenheid.

  • pposthoorn
  • Registratie: Januari 2005
  • Laatst online: 12-09 14:04

pposthoorn

Constructeur

Rannasha gebruikt Marvin eigenlijk Limit of Market orders?

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:03

Rannasha

Does not compute.

Topicstarter
pposthoorn schreef op donderdag 27 februari 2014 @ 19:49:
Rannasha gebruikt Marvin eigenlijk Limit of Market orders?
Market orders.

Limit orders maken alles een stuk ingewikkelder, want dan moet je na het plaatsen van de order controleren of deze daadwerkelijk is uitgevoerd. Als dat niet zo is omdat de prijs de verkeerde kant is gegaan moet je bedenken of je alsnog de arbitrage wil uitvoeren, met minder winst of mogelijk zelfs verlies, of dat je de trade op de andere exchange terug wil draaien met een omgekeerde order, enz...

Market is gewoon makkelijker :P

|| Vierkant voor Wiskunde ||


Acties:
  • 0 Henk 'm!

  • BasPH
  • Registratie: November 2009
  • Laatst online: 14-09 10:10
Mijn eerste geautomatiseerde aankoop van BTC op Kraken is inmiddels gelukt. Ik gebruik Java met XChange, een library die de meeste bekende exchanges ondersteunt.

Bij het testen probeerde ik steeds 0.001 BTC te kopen, maar blijkbaar is dat te weinig. Ook 0.005 BTC ging niet en pas bij 0.01 BTC kreeg ik een positief antwoord. Ik kan raar genoeg niets vinden over minimum bedragen in de Kraken FAQ. Zodra ik elke exchange heb getest ga ik wel wat grotere bedragen gebruiken :+ .

Acties:
  • 0 Henk 'm!

  • pposthoorn
  • Registratie: Januari 2005
  • Laatst online: 12-09 14:04

pposthoorn

Constructeur

Rannasha schreef op donderdag 27 februari 2014 @ 21:19:
[...]


Market orders.

Limit orders maken alles een stuk ingewikkelder, want dan moet je na het plaatsen van de order controleren of deze daadwerkelijk is uitgevoerd. Als dat niet zo is omdat de prijs de verkeerde kant is gegaan moet je bedenken of je alsnog de arbitrage wil uitvoeren, met minder winst of mogelijk zelfs verlies, of dat je de trade op de andere exchange terug wil draaien met een omgekeerde order, enz...

Market is gewoon makkelijker :P
Thanks. Precies mijn redenatie. Het is met market orders natuurlijk wel zo dat je dan te laat kan zijn en je een trade maakt met verlies. Maar dat is denk ik minder erg dan een limit die niet gevuld wordt of maar op 1 exchange met alle gevolgen van dien.

Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 00:01
BasPH schreef op vrijdag 28 februari 2014 @ 09:52:
Mijn eerste geautomatiseerde aankoop van BTC op Kraken is inmiddels gelukt. Ik gebruik Java met XChange, een library die de meeste bekende exchanges ondersteunt.

Bij het testen probeerde ik steeds 0.001 BTC te kopen, maar blijkbaar is dat te weinig. Ook 0.005 BTC ging niet en pas bij 0.01 BTC kreeg ik een positief antwoord. Ik kan raar genoeg niets vinden over minimum bedragen in de Kraken FAQ. Zodra ik elke exchange heb getest ga ik wel wat grotere bedragen gebruiken :+ .
Die heb ik eens aan support gevraagd:
The minimum volume is the lowest (displayable) amount for everything
involved. For XBTUSD, XBT has a 5 digit displayable precision and USD
has 2 digit displayable precision. The volume for XBTUSD allows 8
digits of precision. Volumes are in terms of the first currency in the
currency pair and price/cost are in terms of the second currency in the
currency pair. So the lowest volume would be a lot size of 0.00001
(XBT) or anything where cost is $0.01. Volumes lower than that are
generally due to partial fills cutting into part of the volume.
Daarnaast: via de API heb je een vlag: viqc. Daarmee geef je het volume in de quote valuta aan en kun je in geval van BTC/USD dus tot 0.01 USD gaan, ipv 0.01 BTC.

Acties:
  • 0 Henk 'm!

  • pposthoorn
  • Registratie: Januari 2005
  • Laatst online: 12-09 14:04

pposthoorn

Constructeur

Weet iemand hier hoe je met XChange (java) de eur_usd rate kan opvragen van Bitstamp? getTicker met EUR en USD werkt niet :9

Acties:
  • 0 Henk 'm!

  • BasPH
  • Registratie: November 2009
  • Laatst online: 14-09 10:10
pposthoorn schreef op zaterdag 01 maart 2014 @ 22:03:
Weet iemand hier hoe je met XChange (java) de eur_usd rate kan opvragen van Bitstamp? getTicker met EUR en USD werkt niet :9
Ik heb mij net aangemeld op Bitstamp en moet nog uitvinden hoe je toegang krijgt tot de API. Onder Account -> Beveiliging -> API zie ik 1 key, maar heb je niet een API key én een secret key nodig?

Over de conversion rate: Rannasha in "Cryptocurrency - handel en koers". Denk dat je zelf iets moet schrijven om dat te verwerken want ik kan in XChange niets vinden wat deze json afhandelt.

[ Voor 9% gewijzigd door BasPH op 02-03-2014 09:12 ]


Acties:
  • 0 Henk 'm!

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:03

Rannasha

Does not compute.

Topicstarter
BasPH schreef op zondag 02 maart 2014 @ 09:09:
[...]


Ik heb mij net aangemeld op Bitstamp en moet nog uitvinden hoe je toegang krijgt tot de API. Onder Account -> Beveiliging -> API zie ik 1 key, maar heb je niet een API key én een secret key nodig?
De API secret wordt alleen de eerste keer dat je de pagina bekijkt weergegeven. Daarna is deze altijd verborgen. Als je de secret dus niet meer ziet, moet je een nieuwe key aanmaken (en activeren) en niet vergeten de secret ergens op te slaan voordat je de pagina verlaat.
Over de conversion rate: Rannasha in "Cryptocurrency - handel en koers". Denk dat je zelf iets moet schrijven om dat te verwerken want ik kan in XChange niets vinden wat deze json afhandelt.
Voor zover ik kan zien zit er geen functie in XChange voor de EUR/USD ticker. Maar goed, het is een heel simpele API call, dus dat hoort niet zo'n probleem te zijn om die handmatig af te handelen.

|| Vierkant voor Wiskunde ||


Acties:
  • 0 Henk 'm!

  • pposthoorn
  • Registratie: Januari 2005
  • Laatst online: 12-09 14:04

pposthoorn

Constructeur

Rannasha schreef op zondag 02 maart 2014 @ 09:59:
[...]


De API secret wordt alleen de eerste keer dat je de pagina bekijkt weergegeven. Daarna is deze altijd verborgen. Als je de secret dus niet meer ziet, moet je een nieuwe key aanmaken (en activeren) en niet vergeten de secret ergens op te slaan voordat je de pagina verlaat.


[...]

Voor zover ik kan zien zit er geen functie in XChange voor de EUR/USD ticker. Maar goed, het is een heel simpele API call, dus dat hoort niet zo'n probleem te zijn om die handmatig af te handelen.
Oké dan ligt het niet aan mij :)
Ik twijfel nog of ik überhaupt de EUR/USD ticket ga gebruiken. Dit is wel makkelijk maar niet juist. Omdat ik handmatig fiat naar bitstamp stuur weet ik wat de koers is waarop ik bepaalde dollars gekocht heb. Ik kan ook deze waarde handmatig invoeren. Dat zou een betere weergave van mijn rendement geven dan elk moment maar de huidige koers te pakken terwijl de Dollars misschien wel al dagen op bitstamp staan.
Het is dan wel elke dag weer een extra handeling...

Edit: Denk dat ik er uit ben, ik ga handmatig de EUR/USD koers invoeren die ik gekregen heb bij m'n laatste deposit. Op dit moment is dat 1,363 terwijl de koers nu op 1,3749 staat, dat is al bijna 0.9% verschil. Als ik daar mee zou rekenen komt m'n rendement 0.9% hoger uit dan het werkelijk is.

[ Voor 11% gewijzigd door pposthoorn op 02-03-2014 23:56 ]


Acties:
  • 0 Henk 'm!

  • ice-T106
  • Registratie: Oktober 2001
  • Laatst online: 22:35
Ben ook aan het kijken om wat geautomatiseerde arbitrage te doen. Nu lijkt op Kraken de "winst" steeds hoger als ik naar USD/BTC kijk ipv EUR/BTC. Is dit ook jullie ervaring? En hoe gaan jullie hier mee om?

11.635 Wp Solar edge. 7kW Lucht-water, 5kW Daikin Lucht-Lucht, lucht WTW, VW Passat GTE, Home Assistant


Acties:
  • 0 Henk 'm!

  • BasPH
  • Registratie: November 2009
  • Laatst online: 14-09 10:10
pposthoorn schreef op zondag 02 maart 2014 @ 16:54:
[...]

Edit: Denk dat ik er uit ben, ik ga handmatig de EUR/USD koers invoeren die ik gekregen heb bij m'n laatste deposit. Op dit moment is dat 1,363 terwijl de koers nu op 1,3749 staat, dat is al bijna 0.9% verschil. Als ik daar mee zou rekenen komt m'n rendement 0.9% hoger uit dan het werkelijk is.
Ik denk dat dit inderdaad de beste oplossing is. Als je een tweede storting zou maken zou ik het gewogen gemiddelde van de twee nemen. En als je dan een withdrawal doet afwachten tot de wisselkoers USD -> EUR gunstig staat :)

Acties:
  • 0 Henk 'm!

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:03

Rannasha

Does not compute.

Topicstarter
ice-T106 schreef op maandag 03 maart 2014 @ 07:45:
Ben ook aan het kijken om wat geautomatiseerde arbitrage te doen. Nu lijkt op Kraken de "winst" steeds hoger als ik naar USD/BTC kijk ipv EUR/BTC. Is dit ook jullie ervaring? En hoe gaan jullie hier mee om?
Er is vrijwel nul aan orderboek-volume in USD/BTC en dat gaat alleen maar lager worden nu Kraken voorlopig geen USD deposits meer accepteert en alle USD-funds probeert weg te krijgen. Ik negeer USD/BTC daarom.

Overigens: Tot 7 maart kun je je Kraken USD saldo om laten zetten naar EUR voor een koers die 2% boven de algemene EUR/USD koers ligt. Mogelijk is hier een beetje te verdienen, maar ik weet niet hoe lang het duurt voor die conversie uitgevoerd wordt.

|| Vierkant voor Wiskunde ||


Acties:
  • 0 Henk 'm!

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:03

Rannasha

Does not compute.

Topicstarter
Bitstamp heeft vandaag z'n websocket API online gezet: https://www.bitstamp.net/websocket/

Er was eerder al een mogelijkheid om een websocket af te luisteren, want de homepage van Bitstamp maakt hier gebruik van voor het dynamisch updaten. Dit was echter niet gedocumenteerd en geen officiele feature. Nu is die er dus wel.

|| Vierkant voor Wiskunde ||


Acties:
  • 0 Henk 'm!

  • pposthoorn
  • Registratie: Januari 2005
  • Laatst online: 12-09 14:04

pposthoorn

Constructeur

Weet iemand hoe ik er voor zorg dat ik niet al die TRACE en DEBUG log meldingen in m'n console krijg bij XChange? (java)

Acties:
  • 0 Henk 'm!

  • BasPH
  • Registratie: November 2009
  • Laatst online: 14-09 10:10
pposthoorn schreef op maandag 03 maart 2014 @ 22:44:
Weet iemand hoe ik er voor zorg dat ik niet al die TRACE en DEBUG log meldingen in m'n console krijg bij XChange? (java)
In logback.xml (src/main/resources) staan onderin waarschijnlijk twee loggers:
code:
1
2
3
<!-- Define logging for organization applications only -->
<logger name="com.xeiam.xchange" level="DEBUG" />
<logger name="si.mazi.rescu" level="TRACE" />


Die kan je commenten/verwijderen/level op OFF zetten.

Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 00:01
Misschien is OFF niet handig, dan zie je niks meer. Als je ze verwijderd, dan zal het terugvallen op de parent logger, die op WARN staat. Dat, of ze op INFO zetten, dan weet je iig nog wat er gebeurd.

Even inlezen over logback configuratie.

Acties:
  • 0 Henk 'm!

  • pposthoorn
  • Registratie: Januari 2005
  • Laatst online: 12-09 14:04

pposthoorn

Constructeur

BasPH schreef op maandag 03 maart 2014 @ 23:26:
[...]


In logback.xml (src/main/resources) staan onderin waarschijnlijk twee loggers:
code:
1
2
3
<!-- Define logging for organization applications only -->
<logger name="com.xeiam.xchange" level="DEBUG" />
<logger name="si.mazi.rescu" level="TRACE" />


Die kan je commenten/verwijderen/level op OFF zetten.
Ik had al zitten googlen maar ik kan mijn logback.xml bestand niet vinden :S Ik heb de meest recente versie hier gedownload: http://xeiam.com/xchange_changelog.jsp
En in Eclipse alle JARs gereferenced via Java Build Path, Libraries, Add External JARs.
Ik heb in src/myPackage alleen de .java files staan die ik gemaakt heb en verder onder Referenced Libraries een hele berg JARs waaronder die van logback.

PS: M'n Java skills zijn nogal weggezakt :9

[ Voor 3% gewijzigd door pposthoorn op 04-03-2014 00:35 ]


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Handiger is ook misschien om de Maven plugin voor Eclipse te installeren, dan regelt die alle dependencies. Dan hoef je niet zelf alle JARs bij elkaar te zoeken.

Acties:
  • 0 Henk 'm!

  • BasPH
  • Registratie: November 2009
  • Laatst online: 14-09 10:10
Ik wil wat uitproberen met sentiment. Alle bitcoin transacties worden toch in de blockchain opgeslagen, en dan zou ik de complete transactie-historie daar uit kunnen halen? Voor zover ik weet geldt dat niet voor de exchanges, alleen transacties tussen verschillende exchanges worden in de blockchain opgeslagen. Klopt dit wat ik zeg, en kan ik de historie binnen exchanges ook ergens opvragen?

Acties:
  • 0 Henk 'm!

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:03

Rannasha

Does not compute.

Topicstarter
BasPH schreef op dinsdag 04 maart 2014 @ 15:19:
Ik wil wat uitproberen met sentiment. Alle bitcoin transacties worden toch in de blockchain opgeslagen, en dan zou ik de complete transactie-historie daar uit kunnen halen? Voor zover ik weet geldt dat niet voor de exchanges, alleen transacties tussen verschillende exchanges worden in de blockchain opgeslagen. Klopt dit wat ik zeg, en kan ik de historie binnen exchanges ook ergens opvragen?
Transacties binnen exchanges blijven binnen exchanges. Zodra je Bitcoins (of welke andere valuta) op een exchange stort, wordt je saldo slechts bepaald door een getalletje in een database en komen de daadwerkelijke coins op een grote stapel terecht. Bij het handelen veranderen enkel de getalletjes in de database en pas als je een withdrawal doet, komen er weer echte coins uit, die van de grote stapel af komen.

Tenzij de exchange z'n database volledig toegankelijk maakt voor externe partijen (wat niemand doet natuurlijk), is het niet mogelijk om een spoor van Bitcoins te volgens dat door een exchange heen gaat.

Dat maakt sites als exchanges erg geschikt voor het witwassen van coins. Stel je hebt 100 gestolen coins (of coins waar je om andere redenen niet wil dat ze traceerbaar zijn). Je stort de 100 coins op een exchange. Een dag later maak je een tweede deposit-adres aan in je exchange-account en stort je een paar (laten we 3 zeggen) van je eigen coins. Een paar dagen later withdraw je 39 coins naar een nieuw adres. Een paar uur later withdraw je 22 coins naar een ander nieuw adres en een dag later doe je de resterende 42 naar een derde adres.

De aantallen en tijdsintervallen kun je zelf kiezen, maar op deze manier gaan de 100 coins de exchange in en vallen de withdrawals niet op tussen alle reguliere withdrawals, zolang er maar wisselende tijdsintervallen tussen zitten en de coins in delen worden opgenomen, het liefst zo dat de som van de delen ongelijk is aan het totaal aantal wit te wassen coins (vandaar de extra storting van 3 coins).

|| Vierkant voor Wiskunde ||


Acties:
  • 0 Henk 'm!

  • pposthoorn
  • Registratie: Januari 2005
  • Laatst online: 12-09 14:04

pposthoorn

Constructeur

Nou het mag niet zo zijn geloof ik :'(

Ik probeer met XChange m'n balance van Kraken op te halen met:

Java:
1
AccountInfo accountInfo = krakenExchange.getPollingAccountService().getAccountInfo();


En dan krijg ik de volgende error: "Currency code must not be null"

StackTrace:
Java:
1
2
3
4
5
6
7
8
9
10
java.lang.NullPointerException: Currency code must not be null
    at org.joda.money.MoneyUtils.checkNotNull(MoneyUtils.java:33)
    at org.joda.money.CurrencyUnit.of(CurrencyUnit.java:257)
    at com.xeiam.xchange.dto.trade.Wallet.createInstance(Wallet.java:61)
    at com.xeiam.xchange.kraken.KrakenAdapters.adaptBalance(KrakenAdapters.java:111)
    at com.xeiam.xchange.kraken.service.polling.KrakenPollingAccountService.getAccountInfo(KrakenPollingAccountService.java:64)
    at arbitragePackage.PPKraken.getBalance(PPKraken.java:155)
    at arbitragePackage.PPKraken.updateBalance(PPKraken.java:137)
    at arbitragePackage.MainWindow.setupExchanges(MainWindow.java:58)
    at arbitragePackage.MainWindow.main(MainWindow.java:43)


Alle hulp is welkom.

Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 00:01
Zet eens een exception breakpoint in de debugger en kijk dan wat er precies null is. Het lijkt op een bug in de code, want de account info van Kraken heeft altijd currencies, tenzij je hele balans misschien leeg is?

Een ander ding wat ik me kan bedenken is dat de vertaling van Kraken symbolen naar XChange symbolen misschien niet goed gaat.

Acties:
  • 0 Henk 'm!

  • BasPH
  • Registratie: November 2009
  • Laatst online: 14-09 10:10
Volgens mij is dat laatste inderdaad het geval, heb daar een tijdje terug iets over gelezen in de buglist van XChange. Volgens mij is het in de 2.0.0-SNAPSHOT versie opgelost.

Gevonden: https://github.com/timmolter/XChange/issues/215. Waarschijnlijk even zoeken hoe je zelf een currency toe kan voegen?

[ Voor 33% gewijzigd door BasPH op 04-03-2014 23:40 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Hoe kan ik het beste de prijzen vergelijken tussen bitstamp en de andere exchanges in euro?

Bij Mt. Gox werden de boeken automatisch bij elkaar geschoven over de verschillende fiats heen.
Dit is volgens mij niet zo bij bitstamp.

Ik kan wel de prijs /= eur_usd.buy doen maar volgens mij zijn de euros die je gestort hebt al omgezet naar usd.
Hoe gaan jullie hier mee om? Of traden jullie hierdoor alleen maar in usd?

Acties:
  • 0 Henk 'm!

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:03

Rannasha

Does not compute.

Topicstarter
Verwijderd schreef op maandag 17 maart 2014 @ 14:52:
Hoe kan ik het beste de prijzen vergelijken tussen bitstamp en de andere exchanges in euro?

Bij Mt. Gox werden de boeken automatisch bij elkaar geschoven over de verschillende fiats heen.
Dit is volgens mij niet zo bij bitstamp.

Ik kan wel de prijs /= eur_usd.buy doen maar volgens mij zijn de euros die je gestort hebt al omgezet naar usd.
Hoe gaan jullie hier mee om? Of traden jullie hierdoor alleen maar in usd?
Het hangt een beetje van je doel af. Als het enkel gaat om prijzen vergelijken, dan kun je (eur_usd.buy + eur_usd.sell) / 2 gebruiken.

Zelf gebruik ik eur_usd.sell, want dat is de koers waarvoor mijn euro's zijn omgerekend. Omgekeerd, als ik op Bitstamp wil verkopen, gebruik ik de eur_usd.buy koers, want in het geval dat ik mijn euro's weg ga halen, is dat de koers die ik krijg.

|| Vierkant voor Wiskunde ||


Acties:
  • 0 Henk 'm!

Verwijderd

Rannasha schreef op maandag 17 maart 2014 @ 17:02:
[...]

Zelf gebruik ik eur_usd.sell, want dat is de koers waarvoor mijn euro's zijn omgerekend.
Dat was ten tijden van je storting en geld niet perse op dit moment, toch?

Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 02-10 14:49
Iemand bezig met tradewave.net? :) Ik ben bezig geweest met een EMA bot. Maakt in een half jaar tijd 670% winst, maar dat komt helaas vooral door de decemberbubbel. In januari maakt ie dan weer 20% verlies :(

Acties:
  • 0 Henk 'm!

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:03

Rannasha

Does not compute.

Topicstarter
Verwijderd schreef op maandag 17 maart 2014 @ 19:26:
[...]


Dat was ten tijden van je storting en geld niet perse op dit moment, toch?
Ja, dat klopt. In principe zou ik de koers ten tijde van de storting aan moeten houden, maar gezien de meeste stortingen binnen 1-2 dagen weg zijn, maar er toch soms een storting bij komt terwijl er nog wat staat, is het een stuk makkelijker om gewoon de live eur_usd koers te gebruiken. Die update ik 4 keer per dag automagisch en heb er verder geen omkijken naar.

De minimale winst die ik van mijn bot eis is hoog genoeg om kleine fluctuaties in de eur_usd koers op te vangen.

|| Vierkant voor Wiskunde ||


Acties:
  • 0 Henk 'm!

  • remcoboy1479
  • Registratie: Augustus 2010
  • Laatst online: 23:59
Is de Kraken API aangepast o.i.d.?
Ophalen van prijzen gaat opeens fout..

Acties:
  • 0 Henk 'm!

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:03

Rannasha

Does not compute.

Topicstarter
remcoboy1479 schreef op vrijdag 28 maart 2014 @ 09:04:
Is de Kraken API aangepast o.i.d.?
Ophalen van prijzen gaat opeens fout..
Marvin lijkt nergens last van te hebben, die heeft gisteren nog prima gehandelt. Momenteel is het geld op, dus kan ik helaas niet zien of het handelen goed werkt, maar de status die hij weergeeft lijkt te kloppen met actuele koersen.

FYI: Ik gebruik enkel de TradeVolume, Depth (orderboek) en AddOrder API-calls.

|| Vierkant voor Wiskunde ||


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 02-10 14:49
Mijn kraken-app gebruikt zo'n beetje alles wat er is en doet het nog gewoon.

Acties:
  • 0 Henk 'm!

  • remcoboy1479
  • Registratie: Augustus 2010
  • Laatst online: 23:59
Fout leek uit het niets te komen maar had toch een dieperliggende oorzaak denk ik ;)
Anyway, oudere versie teruggezet en werkt weer goed.

Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 02-10 14:49
Heeft iemand hier ervaring met de Coinbase library voor .NET? Ik ben op zoek naar feedback op deze library (verbeterpunten, dingen aan de code die beter kunnen, etc.).
Pagina: 1