public void BuyLimit_ShouldUnauthorizedThrowException_IfNoApiKeyIsGiven() { var bittrex = new Bittrex(); Func <Task> action = async() => { var _ = await bittrex.BuyLimit(DefaultMarketName, 1, 1); }; action.ShouldThrow <UnauthorizedException>(); }
public void BuyLimit_ShouldNotThrowException() { var bittrex = new Bittrex(DefaultApiKey, DefaultApiSecret); Func <Task> action = async() => { var _ = await bittrex.BuyLimit(DefaultMarketName, 1, 1); }; action.ShouldNotThrow(); }
public async Task <bool> createOrder(OpenOrder orderData, System.Threading.CancellationTokenSource cancelOrderAwait) { ResponseWrapper <AcceptedOrder> response; do { switch (orderData.OrderType) { case "LIMIT_BUY": response = await account.BuyLimit(orderData.Exchange, orderData.QuantityRemaining, orderData.Limit); break; case "LIMIT_SELL": response = await account.SellLimit(orderData.Exchange, orderData.QuantityRemaining, orderData.Limit); break; default: return(false); } await Task.Delay(Constants.second); }while (!response.Success); if (cancelOrderAwait != null) { cancelOrderAwait.Cancel(); } while (!ActiveOrders.Exists(x => x.OrderUuid == response.Result.Uuid)) { await Task.Delay(5 *Constants.second); if (cancelOrderAwait != null) { cancelOrderAwait.Cancel(); } } OnHoldOrders.Remove(orderData); return(true); }
private async Task <string> ExecuteOrder(BaseTypes.Market Market, decimal Amount, decimal Rate, bool DirectionBuy, InvokePrint Print) { try { if (DirectionBuy) { var accepted = await bittrex.BuyLimit(Market.MarketName, Amount, Rate); return(accepted.Uuid); } else { var accepted = await bittrex.SellLimit(Market.MarketName, Amount, Rate); return(accepted.Uuid); } } catch (Exception ex) { System.Media.SystemSounds.Beep.Play(); Print("Ошибка BittrexApi ExecuteOrder: " + ex.Message); return(""); } }
public async Task PlaceBuyOrder() { await BittrexLink.BuyLimit(SelectedMarketPair, TradeUnits, TradePrice); }