/*public ZCurrencyPair(string symbol, CryptoExch exchange) * { * ExchangeSymbol = symbol; * Exchange = exchange; * var lr = GetLeftRight(symbol, exchange); * Left = lr[0]; * Right = lr[1]; * }*/ // Given a currency-pair symbol and an exchange // Return the ZCurrencyPair for that symbol/exchange combo public static ZCurrencyPair FromSymbol(string symbol, CryptoExch exchange) { ZCurrencyPair zcp; if (exchange == CryptoExch.KRAKEN) { zcp = ParseKrakenSymbol(symbol); } else if (exchange == CryptoExch.BITFLYER) { zcp = ParseBitFlyerSymbol(symbol); } else { var lr = GetLeftRight(symbol, exchange); if (lr == null) { return(null); } else { zcp = new ZCurrencyPair(); zcp.Symbol = lr[0] + "_" + lr[1]; zcp.Left = lr[0]; zcp.Right = lr[1]; zcp.ExchangeSpecificSymbol = symbol; zcp.ExchangeSpecificLeft = zcp.Left; zcp.ExchangeSpecificRight = zcp.Right; } } //if (zcp != null) dout("ZCurrencyPair::FromSymbol=> {0}", zcp.ToString()); return(zcp); }
public static OrderTimeInForce TimeInForce(string s, CryptoExch exch) { if (exch == CryptoExch.GDAX) { return(s == "GTC" ? OrderTimeInForce.GTC : OrderTimeInForce.Day); } else if (exch == CryptoExch.BINANCE) { return(s == "gtc" ? OrderTimeInForce.GTC : OrderTimeInForce.Day); } else { throw new ArgumentException(string.Format("Crypto::Translate::TimeInForce=> exchange {0} not supported", exch)); } }
public static OrderSide Side(string s, CryptoExch exch) { if (exch == CryptoExch.GDAX) { return(s == "buy" ? OrderSide.Buy : OrderSide.Sell); } else if (exch == CryptoExch.BINANCE) { return(s == "BUY" ? OrderSide.Buy : OrderSide.Sell); } else if (exch == CryptoExch.BITTREX) { return(s == "BUY" ? OrderSide.Buy : OrderSide.Sell); } else { throw new ArgumentException(string.Format("Crypto::Translate::Side=> exchange {0} not supported", exch)); } }
public static OrderStatus Status(string s, CryptoExch exch) { if (exch == CryptoExch.KRAKEN) { return(m_statusKraken[s]); } else if (exch == CryptoExch.GDAX) { return(m_statusGDAX[s]); } else if (exch == CryptoExch.BINANCE) { return(m_statusBinance[s]); } else { return(OrderStatus.Unknown); } }
public TickersUpdateArgs(CryptoExch exch, Dictionary <string, ZTicker> tickers) { m_exch = exch; m_tickers = tickers; }
public TradeUpdateArgs(CryptoExch exch, ZTrade trade) { m_exch = exch; m_trade = trade; }
public ZCandlestickMap(CryptoExch exch, string symbol, string interval) { m_exch = exch; m_symbol = symbol; m_interval = interval; }
public OrdersUpdateArgs(CryptoExch exch, ZOrderMap orders) { m_exch = exch; m_orders = orders; }
// Given a symbol (ex: "BCCUSDT") and a CryptoExch exchange enum // Return a string[2] where string[0]=LeftCurrency and string[1]=RightCurrency private static string[] GetLeftRight(string symbol, CryptoExch exchange) { string[] result = new string[2]; int i, l; switch (exchange) { case CryptoExch.BINANCE: case CryptoExch.BITFINEX: //case CryptoExch.BITMEX: case CryptoExch.BITSTAMP: case CryptoExch.HITBTC: case CryptoExch.GEMINI: case CryptoExch.ITBIT: l = symbol.Length; if (symbol.ToUpper().EndsWith("USDT")) { result[1] = "USDT"; result[0] = symbol.Substring(0, l - 4).ToUpper(); } else { result[1] = symbol.Substring(l - 3).ToUpper(); result[0] = symbol.Substring(0, l - 3).ToUpper(); } break; /*case CryptoExch.BITHUMB: * i = symbol.IndexOf("/"); * result[0] = symbol.Substring(0, i).ToUpper(); * result[1] = symbol.Substring(i + 1).ToUpper(); * break;*/ case CryptoExch.BITTREX: i = symbol.IndexOf("-"); result[1] = symbol.Substring(0, i).ToUpper(); result[0] = symbol.Substring(i + 1).ToUpper(); break; /*case CryptoExch.BITSQUARE: * i = symbol.IndexOf("_"); * result[0] = symbol.Substring(0, i).ToUpper(); * result[1] = symbol.Substring(i + 1).ToUpper(); * break;*/ case CryptoExch.GDAX: i = symbol.IndexOf("-"); result[0] = symbol.Substring(0, i).ToUpper(); result[1] = symbol.Substring(i + 1).ToUpper(); break; case CryptoExch.POLONIEX: i = symbol.IndexOf("_"); result[1] = symbol.Substring(0, i).ToUpper(); result[0] = symbol.Substring(i + 1).ToUpper(); break; /*case CryptoExch.KRAKEN: * string universalSymbol = ParseKrakenSymbol(symbol, out var left, out var right); * break;*/ default: ErrorMessage("No valid translation for '{0}' on exchange {1}", symbol, exchange.ToString()); break; } return(result); }