docker files fixes from liaqat

This commit is contained in:
alirehmani
2024-05-03 16:39:25 +05:00
commit 464a8730e8
587 changed files with 44288 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
using Managing.Domain.Accounts;
using Managing.Domain.Users;
namespace Managing.Application.Abstractions.Services;
public interface IAccountService
{
Task<Account> CreateAccount(User user, Account account);
bool DeleteAccount(User user, string name);
IEnumerable<Account> GetAccountsByUser(User user, bool hideSecrets = true);
IEnumerable<Account> GetAccounts(bool hideSecrets, bool getBalance);
Task<Account> GetAccount(string name, bool hideSecrets, bool getBalance);
Task<Account> GetAccountByUser(User user, string name, bool hideSecrets, bool getBalance);
Task<Account> GetAccountByKey(string key, bool hideSecrets, bool getBalance);
IEnumerable<Account> GetAccountsBalancesByUser(User user, bool hideSecrets = true);
}

View File

@@ -0,0 +1,20 @@
using Managing.Domain.Accounts;
using Managing.Domain.Backtests;
using Managing.Domain.Candles;
using Managing.Domain.MoneyManagements;
using Managing.Domain.Scenarios;
using static Managing.Common.Enums;
namespace Managing.Application.Abstractions
{
public interface IBacktester
{
Backtest RunScalpingBotBacktest(Account account, MoneyManagement moneyManagement, Ticker ticker, Scenario scenario, Timeframe timeframe, double days, decimal balance, bool isForWatchingOnly = false, bool save = false);
Backtest RunFlippingBotBacktest(Account account, MoneyManagement moneyManagement, Ticker ticker, Scenario scenario, Timeframe timeframe, double days, decimal balance, bool isForWatchingOnly = false, bool save = false);
IEnumerable<Backtest> GetBacktests();
bool DeleteBacktest(string id);
bool DeleteBacktests();
Backtest RunScalpingBotBacktest(Account account, MoneyManagement moneyManagement, Scenario scenario, Timeframe timeframe, List<Candle> candles, decimal balance);
Backtest RunFlippingBotBacktest(Account account, MoneyManagement moneyManagement, Scenario scenario, Timeframe timeframe, List<Candle> candles, decimal balance);
}
}

View File

@@ -0,0 +1,19 @@
using Managing.Domain.Statistics;
using Managing.Domain.Trades;
using static Managing.Common.Enums;
namespace Managing.Application.Abstractions.Services;
public interface IDiscordService
{
Task SendSignal(string message, TradingExchanges exchange, Ticker ticker, TradeDirection direction, Timeframe timeframe);
Task SendPosition(Position position);
Task SendClosingPosition(Position position);
Task SendMessage(string v);
Task SendTradeMessage(string message, bool isBadBehavior = false);
Task SendIncreasePosition(string address, Trade trade, string copyAccountName, Trade? oldTrade = null);
Task SendClosedPosition(string address, Trade oldTrade);
Task SendDecreasePosition(string address, Trade newTrade, decimal decreaseAmount);
Task SendBestTraders(List<Trader> traders);
Task SendBadTraders(List<Trader> traders);
}

View File

@@ -0,0 +1,45 @@
using Managing.Domain.Trades;
using Managing.Domain.Candles;
using static Managing.Common.Enums;
using Managing.Domain.Accounts;
namespace Managing.Application.Abstractions.Services;
public interface IExchangeService
{
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);
Task<decimal> GetBalance(Account account, bool isForPaperTrading = false);
Task<List<Balance>> GetBalances(Account account, bool isForPaperTrading = false);
decimal GetPrice(Account account, Ticker ticker, DateTime date);
Task<Trade> GetTrade(Account account, string order, Ticker ticker);
Task<List<Candle>> GetCandles(Account account, Ticker ticker, DateTime startDate, Timeframe interval);
Task<Trade> OpenStopLoss(Account account, Ticker ticker, TradeDirection originalDirection, decimal stopLossPrice,
decimal quantity, bool isForPaperTrading = false, DateTime? currentDate = null);
Task<List<Ticker>> GetTickers(Account account, Timeframe timeframe);
Task<Trade> OpenTakeProfit(Account account, Ticker ticker, TradeDirection originalDirection, decimal takeProfitPrice,
decimal quantity, bool isForPaperTrading = false, DateTime? currentDate = null);
Task<Trade> ClosePosition(Account account, Position position, decimal lastPrice, bool isForPaperTrading = false);
decimal GetVolume(Account account, Ticker ticker);
Task<List<Trade>> GetTrades(Account account, Ticker ticker);
Task<bool> CancelOrder(Account account, Ticker ticker);
decimal GetFee(Account account, bool isForPaperTrading = false);
Candle GetCandle(Account account, Ticker ticker, DateTime date);
Task<decimal> GetQuantityInPosition(Account account, Ticker ticker);
Task<List<Candle>> GetCandlesInflux(TradingExchanges exchange, Ticker ticker, DateTime startDate, Timeframe timeframe);
decimal GetBestPrice(Account account, Ticker ticker, decimal lastPrice, decimal quantity, TradeDirection direction);
Orderbook GetOrderbook(Account account, Ticker ticker);
Trade BuildEmptyTrade(Ticker ticker, decimal price, decimal quantity, TradeDirection direction, decimal? leverage, TradeType tradeType, DateTime dateTime, TradeStatus tradeStatus = TradeStatus.PendingOpen);
Task<List<Trade>> GetOpenOrders(Account account, Ticker ticker);
Task<Trade> GetTrade(string reference, string orderId, Ticker ticker);
}

View File

@@ -0,0 +1,10 @@
using Managing.Common;
using Managing.Domain.Candles;
namespace Managing.Application.Abstractions.Services;
public interface IExchangeStream
{
Task StartBinanceWorker(Enums.Ticker ticker, Func<Candle, Task> action);
Task StopBinanceWorker();
}

View File

@@ -0,0 +1,19 @@
using Managing.Domain.Statistics;
using Managing.Domain.Trades;
using static Managing.Common.Enums;
namespace Managing.Application.Abstractions.Services;
public interface IMessengerService
{
Task SendSignal(string message, TradingExchanges exchange, Ticker ticker, TradeDirection direction, Timeframe timeframe);
Task SendPosition(Position position);
Task SendClosingPosition(Position position);
Task SendMessage(string v);
Task SendTradeMessage(string message, bool isBadBehavior = false);
Task SendIncreasePosition(string address, Trade trade, string copyAccountName, Trade? oldTrade = null);
Task SendClosedPosition(string address, Trade oldTrade);
Task SendDecreasePosition(string address, Trade newTrade, decimal decreaseAmount);
Task SendBestTraders(List<Trader> traders);
Task SendBadTraders(List<Trader> filteredTrader);
}

View File

@@ -0,0 +1,7 @@
namespace Managing.Application.Abstractions.Services;
public interface IStreamService
{
Task SubscribeCandle();
Task UnSubscribeCandle();
}

View File

@@ -0,0 +1,8 @@
using Managing.Common;
namespace Managing.Application.Abstractions.Services;
public interface ITickerService
{
Task<List<Enums.Ticker>> GetAvailableTicker();
}

View File

@@ -0,0 +1,11 @@
using Managing.Domain.Statistics;
using Managing.Domain.Trades;
namespace Managing.Application.Abstractions.Services;
public interface ITradaoService
{
Task<List<Trader>> GetBadTrader();
Task<List<Trader>> GetBestTrader();
Task<List<Trade>> GetTrades(string address);
}

View File

@@ -0,0 +1,35 @@
using Managing.Common;
using Managing.Domain.Accounts;
using Managing.Domain.Scenarios;
using Managing.Domain.Statistics;
using Managing.Domain.Strategies;
using Managing.Domain.Trades;
using static Managing.Common.Enums;
namespace Managing.Application.Abstractions.Services;
public interface ITradingService
{
Scenario GetScenarioByName(string scenario);
void InsertSignal(Signal signal);
void InsertPosition(Position position);
void UpdatePosition(Position position);
Strategy GetStrategyByName(string strategy);
void InsertScenario(Scenario scenario);
void InsertStrategy(Strategy strategy);
IEnumerable<Scenario> GetScenarios();
IEnumerable<Strategy> GetStrategies();
void DeleteScenario(string name);
void DeleteStrategy(string name);
void DeleteScenarios();
void DeleteStrategies();
Position GetPositionByIdentifier(string identifier);
IEnumerable<Position> GetPositions(PositionInitiator positionInitiator);
IEnumerable<Position> GetPositions();
IEnumerable<Position> GetPositionsByStatus(Enums.PositionStatus positionStatus);
Task<Position> ManagePosition(Account account, Position position);
void UpdateFee(TradingExchanges evm);
decimal GetFee(Account account, bool isForPaperTrading = false);
Task WatchTrader();
IEnumerable<Trader> GetTradersWatch();
}

View File

@@ -0,0 +1,9 @@
using Managing.Domain.Users;
namespace Managing.Application.Abstractions.Services;
public interface IUserService
{
Task<User> Authenticate(string name, string address, string message, string signature);
Task<User> GetUserByAddressAsync(string address);
}