The second post of the SteemJ Tutorial series will explain the market_history_api functionalities of the Steem-API and explain how to use them with SteemJ.
Source of used Icons: Iconfinder.com
Steem API / SteemJ Tutorial #2 - The market_history_api
Hello Steemians!
for those of you who already use SteemJ, it is not a big surprise that there is quite a huge lack of documentation. At the beginning I thought that this is not a big deal if I keep using the original fields and methods as provided by Steem itself, but it also turned out that the original code has not that much comments and the Steem Dev Documentation is also not providing detailed information.
To make your life easier, to solve the lack of SteemJs documentation and to motivate myself for writing all this stuff, I've decided to create a Steem Tutorial series where I explain a specific part of the Steem API and show how to use/call those things with SteemJ.
The previous part covered the follow_api - So lets continue with another API, the market_history_api.
Market History API
The market_history_api covers all api calls related to the internal Steem market.
Market-History-API TOC
- getTicker
- getVolume
- getOrderBook
- getTradeHistory
- getRecentTrades
- getMarketHistory
- getMarketHistoryBuckets
getTicker
Use this method to receive statistic values of the internal SBD:STEEM market for the last 24 hours.
As this method does not require parameters, the call is quite simply.
MarketTicker marketTicker = steemJ.getTicker();
The call above returns a MarketTicker
object providing information about the:
- Latest price
- Highest price
- Lowest price
- Steem volume,
- SBD volume,
- Change in percent
For the last 24 hours.
Back to Market-History-API TOC | Back to TOC
getVolume
Use this method to get the SBD and Steem volume that has been traded in the past 24 hours at the internal SBD:STEEM market
MarketVolume marketVolume = steemJ.getVolume();
As shown above the method has no parameter too and also the returned volumes are equal to the one returned by the getTicker method. The only difference is that the getTicker method returns price information in addition.
Back to Market-History-API TOC | Back to TOC
getOrderBook
Use this method to receive the current order book of the internal SBD:STEEM market.
The method has one parameter (the limit
) which is used to define the maximum number of asks and bids that should be returned. Please notice that the maximum number of asks/bids is 500
- If you define a limit greater this value an Exception will be thrown.
OrderBook orderBook = steemJ.getOrderBook((short) 50);
The call above will return the next 50
active asks and bids.
Back to Market-History-API TOC | Back to TOC
getTradeHistory
Use this method to get the trade history of the internal SBD:STEEM market between the defined start
and end
time.
The method requires three parameters in total: The start
date, the end
date and the maximum number of trades to be returned. Please notice that the maximum number of entries is limitted to 1000
entries. If more values requested an exception will be thrown.
List<MarketTrade> marketTrades = steemJ.getTradeHistory(new TimePointSec("2016-08-08T12:24:17"), new TimePointSec(System.currentTimeMillis()), (short) 10);
The call above will return the 10
latest trades fulfilled between the 2016-08-08T12:24:17
and now
.
Back to Market-History-API TOC | Back to TOC
getRecentTrades
Use this method to request the most recent trades for the internal SBD:STEEM market. The number of results is limited by the limit
parameter. Please notice that the maximum number of recent trades is 500
- If a limit greater than this value is used, an Exception will be thrown.
List<MarketTrade> marketTrades = steemJ.getRecentTrades((short) 10);
The call above will return the latest '10' fulfilled transactions.
Back to Market-History-API TOC | Back to TOC
getMarketHistory
Use this method to receive the market history for the internal SBD:STEEM market.
List<Bucket> marketHistory = MarketHistoryApi.getMarketHistory(3600, new TimePointSec("2017-08-08T12:24:17"), new TimePointSec(System.currentTimeMillis()));
The method above will request the market history between the 2017-08-08T12:24:17
and now
while the result is splitted into buckets. Each bucket represents a timespan of 3600
.
Please notice that the node needs to support the requested bucket timespan. It is possible to request the available timespans using the getMarketHistoryBuckets method.
Each bucket entry provides detailed information about the market situation for the timespan tracked by this bucket. A bucket consists of the:
- Bucket size,
- Bucket id,
- SBD close value,
- STEEM close value,
- SBD open value,
- STEEM open value,
- SBD volume,
- STEEM volume,
- SBD high,
- STEEM high,
- SBD low,
- STEEM low
While those values are associated with the timespan tracked by the bucket.
Back to Market-History-API TOC | Back to TOC
getMarketHistoryBuckets
Use this method to receive the bucket seconds being tracked by the node.
List<Integer> marketHistoryBuckets = steemJ.getMarketHistoryBuckets();
The result of this method is a list of available timespans tracked by the node. An example response could be {15,60,300,3600,86400}
which means the node tracks buckets for a 15, 60, 300, 3600 and 86400 second timespan.
Back to Market-History-API TOC | Back to TOC
General information
What is SteemJ?
SteemJ is a project that allows you to communicate with a Steem node using Java. So far, the project supports most of the API calls and is also able to broadcast most of the common operation types. Further information can be found on GitHub.
How to add it to your project?
SteemJ binaries are pushed into the maven central repository and can be integrated with a bunch of build management tools like Maven. The Wiki provides a lot of examples for the most common build tools. If you do not use a build management tool you can download the binaries as described here.
Contribute
The project became quite big and there is still a lot to do. If you want to support the project simply clone the git repository and submit a pull request. I would really appreciate it =).
git clone https://github.com/marvin-we/steem-java-api-wrapper.git
Get in touch!
Most of my projects are pretty time consuming and I always try to provide some useful stuff to the community. What keeps me going for that is your feedback and your support. For that reason I would love to get some Feedback from you <3. Just contact me here on Steemit or ping me on GitHub.
Follow me | Follow @dez1337 |
---|---|
Thanks for reading and best regards,
@dez1337
I've been fiddling with SteemJ for the past week. Can't seem to get it working well with Android Studio. Compilation of Mixion went from 1 minute to 10+ minutes with a 'dexfilewriter' error..
Hay @edgar-trem ,
there is a discussion about SteemJ + Android at GitHub - I would really appritiate if you could add the problems you were facing into that thread. My target is to fix all those issues in Android Studio for the next version.
Thanks and best regards!
steemj, please just look at https://steemit.com/curation/@worldfinances/something-for-steem-developers-how-to-properly-count-post-curation-where-bots-are-included , and I hope that something can be done in this direction. Thank you