Skip to content

isvaldo/go-mercado-bitcoin-data-client

Repository files navigation

Windows Build Status

go-mercado-bitcoin-data-client

Api de dados do mercado bitcoin oferece uma maneira automatica de obter os dados do orderbook e negociações, esse client facilita o acesso a essas infomações atraves da api oficial Docs

Install

Para baixar as dependencias do projeto rode o seguinte comando

dep ensure

Examples

Client

Iniciando Client
package main

import (
	"fmt"
	"github.com/isvaldo/go-mercado-bitcoin-data-client"
)

func main() {
	cli := marketbit.New("https://www.mercadobitcoin.net/api")
	fmt.Println(cli)
}
Customizando http client
package main

import (
	"fmt"
	"github.com/isvaldo/go-mercado-bitcoin-data-client"
)

func main() {
	cli := marketbit.NewWithClient("https://www.mercadobitcoin.net/api",createHTTPClient(10,10))
	fmt.Println(cli)
}

func createHTTPClient(maxIdleConnections, requestTimeout int) *http.Client {
	return &http.Client{
		Transport: &http.Transport{
			MaxIdleConnsPerHost: maxIdleConnections,
		},
		Timeout: time.Duration(requestTimeout) * time.Second,
	}
}

Ticker

Retorna informações com o resumo das últimas 24 horas de negociações.

Exemplo Ticker
package main

import (
	"fmt"
	"github.com/isvaldo/go-mercado-bitcoin-data-client"
)

func main() {
	cli := marketbit.New("https://www.mercadobitcoin.net/api")
	tickerItem, err := cli.GetTicker("btc") // btc, ltc, bch
	if err != nil {
		panic(err)
	}
	fmt.Println(tickerItem.Date)
	fmt.Println(tickerItem.Vol)
	fmt.Println(tickerItem.Sell)
	fmt.Println(tickerItem.Last)
	fmt.Println(tickerItem.Buy)
	fmt.Println(tickerItem.High)
	fmt.Println(tickerItem.Low)
}
Http Response
'ticker': {
'high': 14481.47000000,
'low': 13706.00002000,
'vol': 443.73564488,
'last': 14447.01000000,
'buy': 14447.00100000,
'sell': 14447.01000000,
'date': 1502977646
}
Code Response
/tmp/___go_build_main_go #gosetup
1514840316
115.06076518
48550.00000000
48550.00000000
48400.00000000
49599.00000000
47500.00000000

OrderBook

Livro de ofertas é composto por duas listas: (1) uma lista com as ofertas de compras ordenadas pelo maior valor; (2) uma lista com as ofertas de venda ordenadas pelo menor valor. O livro mostra até 1000 ofertas de compra e até 1000 ofertas de venda.

Uma oferta é constituída por uma ou mais ordens, sendo assim, a quantidade da oferta é o resultado da soma das quantidades das ordens de mesmo preço unitário. Caso uma oferta represente mais de uma ordem, a prioridade de execução se dá com base na data de criação da ordem, da mais antiga para a mais nova.

Exemplo Orderbook
package main

import (
	"fmt"
	"github.com/isvaldo/go-mercado-bitcoin-data-client"
)

func main() {
	cli := New("https://www.mercadobitcoin.net/api")
    
    	orderItem, err := cli.GetOrderBook("btc")
    	if err != nil {
    		panic(err)
    	}
    
    	for _, askItem := range orderItem.Asks {
    		fmt.Println(askItem.Amount())
    		fmt.Println(askItem.Price())
    	}
    	for _, bidsItem := range orderItem.Bids {
    		fmt.Println(bidsItem.Amount())
    		fmt.Println(bidsItem.Price())
    	}
}

Trades

Histórico de negociações realizadas.

Exemplo Trades
package main

import (
	"fmt"
	"github.com/isvaldo/go-mercado-bitcoin-data-client"
)

func main() {
    cli := New("https://www.mercadobitcoin.net/api")

	tradesResponse, err := cli.GetLastTrades("btc")
	if err != nil {
		panic(err)
	}

	for _, tradeItens := range tradesResponse.Trades {
		fmt.Println(tradeItens.Price)
		fmt.Println(tradeItens.Amount)
		fmt.Println(tradeItens.Date)
		fmt.Println(tradeItens.Tid)
		fmt.Println(tradeItens.Type)
	}
}

Trades Range

Histórico de negociações realizadas, entre um intervalo de tempo

Exemplo Trades Range
package main

import (
	"fmt"
	"github.com/isvaldo/go-mercado-bitcoin-data-client"
)

func main() {
   cli := New("https://www.mercadobitcoin.net/api")
   
   	tradesResponse, err := cli.GetTradesRange("btc", "2017/12/30", "2017/12/31")
   	if err != nil {
   		panic(err)
   	}
   	for _, tradeItens := range tradesResponse.Trades {
   		fmt.Println(tradeItens.Price)
   		fmt.Println(tradeItens.Amount)
   		fmt.Println(tradeItens.Date)
   		fmt.Println(tradeItens.Tid)
   		fmt.Println(tradeItens.Type)
   	}
}

Day Summary

Retorna resumo diário de negociações realizadas.

Exemplo Summary
package main

import (
	"fmt"
	"github.com/isvaldo/go-mercado-bitcoin-data-client"
)

func main() {
   
	cli := New("https://www.mercadobitcoin.net/api")

	summary, err := cli.GetSummaryAt("btc", "2017-12-30")
	if err != nil {
		panic(err)
	}

	fmt.Println(summary.Opening)
	fmt.Println(summary.Closing)
}

Donate

Bitcoin

Doge: DCgf2nJwhhkkDXKHPhbJb7URtRLRXHaw6T