コード例 #1
0
        public static BinanceNet.Objects.OrderSide ToBinanceEquivalent(this Enums.OrderSide input)
        {
            switch (input)
            {
            case Enums.OrderSide.Buy:
                return(BinanceNet.Objects.OrderSide.Buy);

            case Enums.OrderSide.Sell:
                return(BinanceNet.Objects.OrderSide.Sell);
            }

            throw new ArgumentException($"{input} is an unknown OrderSide");
        }
コード例 #2
0
        /// <inheritdoc />
        public async Task <WebCallResult <BitfinexWriteResult <BitfinexOrder> > > PlaceOrderAsync(
            string symbol,
            Enums.OrderSide side,
            Enums.OrderType type,
            decimal quantity,
            decimal price,
            int?flags             = null,
            int?leverage          = null,
            int?groupId           = null,
            int?clientOrderId     = null,
            decimal?priceTrailing = null,
            decimal?priceAuxLimit = null,
            decimal?priceOcoStop  = null,
            DateTime?cancelTime   = null,
            string?affiliateCode  = null,
            CancellationToken ct  = default)
        {
            symbol.ValidateBitfinexSymbol();

            if (side == Enums.OrderSide.Sell)
            {
                quantity = -quantity;
            }

            var parameters = new Dictionary <string, object>
            {
                { "symbol", symbol },
                { "type", JsonConvert.SerializeObject(type, new OrderTypeConverter(false)) },
                { "price", price.ToString(CultureInfo.InvariantCulture) },
                { "amount", quantity.ToString(CultureInfo.InvariantCulture) }
            };

            parameters.AddOptionalParameter("gid", groupId);
            parameters.AddOptionalParameter("cid", clientOrderId);
            parameters.AddOptionalParameter("flags", flags);
            parameters.AddOptionalParameter("lev", leverage);
            parameters.AddOptionalParameter("price_trailing", priceTrailing?.ToString(CultureInfo.InvariantCulture));
            parameters.AddOptionalParameter("price_aux_limit", priceAuxLimit?.ToString(CultureInfo.InvariantCulture));
            parameters.AddOptionalParameter("price_oco_stop", priceOcoStop?.ToString(CultureInfo.InvariantCulture));
            parameters.AddOptionalParameter("tif", cancelTime?.ToString("yyyy-MM-dd HH:mm:ss"));
            parameters.AddOptionalParameter("meta", new Dictionary <string, string?>()
            {
                { "aff_code", affiliateCode ?? _baseClient.AffiliateCode }
            });

            var result = await _baseClient.SendRequestAsync <BitfinexWriteResult <JArray> >(_baseClient.GetUrl(PlaceOrderEndpoint, "2"), HttpMethod.Post, ct, parameters, true).ConfigureAwait(false);

            if (!result)
            {
                return(result.As <BitfinexWriteResult <BitfinexOrder> >(default));