using CryptoExchange.Net.Objects;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace CryptoExchange.Net.SharedApis
{
///
/// Operation for placing multiple futures order on an exchange in single call.
///
public interface IPlaceMultipleFuturesOrders : ISharedApiCapability
{
///
/// How the trading fee is deducted
///
SharedFeeDeductionType FuturesFeeDeductionType { get; }
///
/// How the asset is determined in which the trading fee is paid
///
SharedFeeAssetType FuturesFeeAssetType { get; }
///
/// Supported order types for futures orders
///
SharedOrderType[] FuturesSupportedOrderTypes { get; }
///
/// Supported time in force types for placing futures orders
///
SharedTimeInForce[] FuturesSupportedTimeInForce { get; }
///
/// Supported quantity types for placing futures orders
///
SharedQuantitySupport FuturesSupportedOrderQuantity { get; }
///
/// Max number of orders per request
///
public int? MaxFuturesOrdersPerRequest { get; }
///
/// Whether orders for different symbols are allowed in a single place order request
///
public bool PlaceMultipleFuturesOrdersAllowsMultipleSymbols { get; }
///
/// Generate a new random client order id in a format that is accepted by the exchange.
///
///
string GenerateClientOrderId();
///
/// Futures place order request options.
/// Use and to check for required and optional parameters for the request.
/// Exchange specific parameters can be added to the request via the `ExchangeParameters` property of the request object.
///
PlaceMultipleFuturesOrdersOptions PlaceMultipleFuturesOrdersOptions { get; }
///
/// Place multiple new futures orders, see for request options and exchange specific required/optional parameters.
///
/// Request info
/// Cancellation token
Task[]>> PlaceMultipleFuturesOrdersAsync(
PlaceMultipleFuturesOrdersRequest request,
CancellationToken ct = default);
}
///
/// Operation for placing multiple futures orders on an exchange via the REST API.
///
public interface IPlaceMultipleFuturesOrdersRest : IPlaceMultipleFuturesOrders, ISharedRest
{
///
new Task[]>> PlaceMultipleFuturesOrdersAsync(PlaceMultipleFuturesOrdersRequest request, CancellationToken ct = default);
}
///
/// Operation for placing multiple futures orders on an exchange via the WebSocket API.
///
public interface IPlaceMultipleFuturesOrdersSocket : IPlaceMultipleFuturesOrders, ISharedSocket
{
///
new Task[]>> PlaceMultipleFuturesOrdersAsync(PlaceMultipleFuturesOrdersRequest request, CancellationToken ct = default);
}
}