Files
managing-apps/src/Managing.Infrastructure.Exchanges/Exchanges/BaseProcessor.cs

53 lines
2.7 KiB
C#

using Managing.Domain.Accounts;
using Managing.Domain.Candles;
using Managing.Domain.Statistics;
using Managing.Domain.Trades;
using Managing.Infrastructure.Exchanges.Abstractions;
using static Managing.Common.Enums;
namespace Managing.Infrastructure.Exchanges.Exchanges
{
public abstract class BaseProcessor : IExchangeProcessor
{
public abstract void LoadClient(Account account);
public abstract Task<bool> CancelOrder(Account account, Ticker ticker);
public abstract TradingExchanges Exchange();
public abstract Task<decimal> GetBalance(Account account, bool isForPaperTrading = false);
public abstract Task<Candle> GetCandle(Account account, Ticker ticker, DateTime date);
public abstract Task<List<Candle>> GetCandles(Account account, Ticker ticker, DateTime startDate, Timeframe interval);
public abstract Task<decimal> GetFee(Account account, bool isForPaperTrading = false);
public abstract Task<decimal> GetPrice(Account account, Ticker ticker, DateTime date);
public abstract Task<decimal> GetCurrentPrice(Account account, Ticker ticker);
public abstract Task<decimal> GetQuantityInPosition(Account account, Ticker ticker);
public abstract Task<Trade> GetTrade(Account account, string order, Ticker ticker);
public abstract Task<List<Trade>> GetTrades(Account account, Ticker ticker);
public abstract decimal GetVolume(Account account, Ticker ticker);
public abstract Task<Trade> OpenTrade(
Account account,
Ticker ticker,
TradeDirection direction,
decimal price,
decimal quantity,
decimal? leverage = null,
TradeType tradeType = TradeType.Limit,
bool reduceOnly = false,
bool isForPaperTrading = false,
DateTime? currentDate = null,
bool ioc = true,
decimal? stopLossPrice = null,
decimal? takeProfitPrice = null);
public abstract Orderbook GetOrderbook(Account account, Ticker ticker);
public abstract Task<List<Balance>> GetBalances(Account account, bool isForPaperTrading = false);
public abstract Task<List<Trade>> GetOrders(Account account, Ticker ticker);
public abstract Task<Trade> GetTrade(string reference, string orderId, Ticker ticker);
public abstract Task<List<FundingRate>> GetFundingRates();
public abstract Task<IEnumerable<Position>> GetPositions(Account account);
public abstract Task<List<Position>> GetPositionHistory(
Account account,
Ticker ticker,
DateTime? fromDate = null,
DateTime? toDate = null);
}
}