Coder Social home page Coder Social logo

skyfyl / exchangesharp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from digitalruby/exchangesharp

0.0 2.0 0.0 13.22 MB

ExchangeSharp is a C# API for working with various exchanges for stocks and cryptocurrency. Binance, Bitfinex, Bithumb, Bitstamp, Bittrex, Gemini, GDAX, Kraken and Poloniex are supported.

Home Page: http://www.digitalruby.com

License: MIT License

C# 100.00%

exchangesharp's Introduction

Overview

ExchangeSharp is a C# console app and framework for trading and communicating with various exchange API end points for cryptocurrency assets. Many exchanges are supported, along with web sockets, withdraws and more!

I do cryptocurrency consulting, please don't hesitate to contact me if you have a custom solution you would like me to implement ([email protected]).

Features

  • Many exchanges supported with public, private and web socket API
  • Easy to use and well documented code and API
  • Optional global symbol normalization, since each exchange has their own way of doing symbols
  • Runs anywhere .NET core will run (Windows 8.1 or newer, MAC, Linux, iOS, Android, Unity 2018+, etc.)

Exchanges

The following cryptocurrency exchanges are supported:
(Web socket key: T = tickers, R = trades, B = order book, O = private orders)

Exchange Name Public REST Private REST Web Socket
Abucoins x x TO
Binance x x TRB
Bitfinex x x TO
Bithumb x
Bitmex x x
Bitstamp x x
Bittrex x x T
Bleutrade x x
Cryptopia x x
Gemini x x
GDAX x x T
Hitbtc x x
Huobi x x RB
Kraken x x
Kucoin x x
Livecoin x x
Okex x x RB
Poloniex x x TB
TuxExchange x x
Yobit x x

The following cryptocurrency services are supported:

  • Cryptowatch (partial)

Notes

ExchangeSharp uses 'symbol' to refer to markets, or pairs of currencies.

Please send pull requests if you have made a change that you feel is worthwhile, want a bug fixed or want a new feature. You can also donate to get new features.

Building

Visual Studio 2017 is recommended. .NET 4.7.1+ or .NET core 2.0+ is required. If running on Windows, Windows 8.1 or newer is required. Available on Nuget: NuGet
PM> Install-Package DigitalRuby.ExchangeSharp -Version 0.5.3

Windows: Open ExchangeSharp.sln in Visual Studio and build/run  
Other Platforms: dotnet build ExchangeSharp.sln -f netcoreapp2.1
Ubuntu Release Example: dotnet build ExchangeSharp.sln -f netcoreapp2.1 -c Release -r ubuntu.16.10-x64

Simple Example

ExchangeKrakenAPI api = new ExchangeKrakenAPI();
ExchangeTicker ticker = api.GetTicker("XXBTZUSD");
Console.WriteLine("On the Kraken exchange, 1 bitcoin is worth {0} USD.", ticker.Bid);

// load API keys created from ExchangeSharpConsole.exe keys mode=create path=keys.bin keylist=public_key,private_key
api.LoadAPIKeys("keys.bin");

/// place limit order for 0.01 bitcoin at ticker.Ask USD
ExchangeOrderResult result = api.PlaceOrder(new ExchangeOrderRequest
{
    Amount = 0.01m,
    IsBuy = true,
    Price = ticker.Ask,
    Symbol = "XXBTZUSD"
});

// Kraken is a bit funny in that they don't return the order details in the initial request, so you have to follow up with an order details request
//  if you want to know more info about the order - most other exchanges don't return until they have the order details for you.
// I've also found that Kraken tends to fail if you follow up too quickly with an order details request, so sleep a bit to give them time to get
//  their house in order.
System.Threading.Thread.Sleep(500);
result = api.GetOrderDetails(result.OrderId);

Console.WriteLine("Placed an order on Kraken for 0.01 bitcoin at {0} USD. Status is {1}. Order id is {2}.", ticker.Ask, result.Result, result.OrderId);

Web Socket Example

public static void Main(string[] args)
{
    // create a web socket connection to Binance. Note you can Dispose the socket anytime to shut it down.
    // the web socket will handle disconnects and attempt to re-connect automatically.
    ExchangeBinanceAPI b = new ExchangeBinanceAPI();
    using (var socket = b.GetTickersWebSocket((tickers) =>
    {
        Console.WriteLine("{0} tickers, first: {1}", tickers.Count, tickers.First());
    }))
    {
        Console.WriteLine("Press ENTER to shutdown.");
        Console.ReadLine();
    }
}

I Can Help

I do cryptocurrency consulting, please don't hesitate to contact me if you have a custom solution you would like me to implement ([email protected]).

Donations Gratefully Accepted

If you want help with your project, have questions that need answering or this project has helped you in any way, I accept donations.

Donate with Bitcoin

Donate with Litecoin

Donate with Ethereum

Donate

Donation totals: 0.02350084 BTC, 0.25 LTC

Thanks for visiting!

Jeff Johnson
[email protected]
http://www.digitalruby.com

exchangesharp's People

Contributors

albertbori avatar atp4al avatar basman avatar bichuga avatar bobdecuir avatar bogdanbujdea avatar clarity99 avatar clausjensen avatar dimonsaz avatar espirulina avatar francis-smith avatar jazzonaut avatar jeffturpin avatar jirapong avatar jjxtra avatar lordofdoom avatar ofekw avatar peixer avatar petzep avatar piangsit avatar raouljacobs avatar revetter avatar riversx avatar rolandschaer avatar ruigaspar avatar sthewissen avatar superhappychris avatar tarasmi avatar vdboots avatar wukan1986 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.