Post
Topic
Board Project Development
Re: Qt Bitcoin Trader [Open Source secure trading client for Mac/Windows/Linux]
by
b0du1
on 16/02/2014, 22:52:30 UTC
I want to tell everyone:

Exchanges APIs is not perfect, and many of them have not optimized methods and it cause a lot of traffic.

Reasons that exchanges takes a lot of traffic:

Bitstamp API

Last Trades: can not be limited by last date received, there is only hour and minute. So hour data downloaded every request. So if at last hour happend a lot of transactions, it will takes a lot of traffic.
Order Book: Bitstamp order book can not be limited by count. So every request download all data every time.
Bitstamp Does not allow HTTP gzip compression, so it takes more traffic than other exchanges.

BTC-e API

Last Trades: can not be limited by last date received, they added count limit, but it useles. We need last received date and get only new rows!

Bitfinex: Does not allow HTTP gzip compression, so it takes more traffic than other exchanges.

Mt.Gox

Order book: can not be limited by count. But this will be not important when I'll release websocket engine.
Mt.Gox Does not allow HTTP gzip compression, so it takes more traffic than other exchanges.

This not optimized methods not only make traffic larger, but it makes exchange works slower.
If you want your favorite exchange works faster, than send report to them for making more optimal methods.
And if I have something missed, or you will get updated info about API, please send to me, and I'll make it better!
Also please note, Order Book requests send only when Order Book tab is visible.
If you want make traffic smaller, than make HttpRequestInterval larger.

My ideal exchange API methods requirements:

Order Book: can set count for each asks and bids. So if user will chuse small count of depth, it will be not just visual limitation, but received data will be much smaller.
Last Trades: each trade in request result should have timestamp, so we remember last received timestamp and new request will use this value as parameter to prevent receiving already received data.
HTTP gzip compression support: it will cause 5 time lower traffic, and users who have slow internet will receive much faster updates.

Ok, thanks...

I will send link of this conversation to Bitstamp and ask them to do something about it...

xx