Add funding rate watcher (#2)

* Add FundingRate interfaces and worker

* Add build on PR

* Remove zip

* Specify the solution path

* Add build for worker too

* Set up StatisticService.cs for funding rate

* Add Fundingrate alerts

* Send alert when big funding rate change + add SlashCommands.cs for fundingrate

* Remove fixtures

* Refact names

* Renames
This commit is contained in:
Oda
2024-07-19 08:31:09 +07:00
committed by GitHub
parent 545c9d8e4a
commit 029ba5f40e
41 changed files with 914 additions and 304 deletions

View File

@@ -44,7 +44,8 @@ public class MessengerService : IMessengerService
await _discordService.SendPosition(position);
}
public async Task SendSignal(string message, Enums.TradingExchanges exchange, Enums.Ticker ticker, Enums.TradeDirection direction, Enums.Timeframe timeframe)
public async Task SendSignal(string message, Enums.TradingExchanges exchange, Enums.Ticker ticker,
Enums.TradeDirection direction, Enums.Timeframe timeframe)
{
await _discordService.SendSignal(message, exchange, ticker, direction, timeframe);
}
@@ -63,4 +64,19 @@ public class MessengerService : IMessengerService
{
await _discordService.SendBadTraders(traders);
}
}
public async Task SendDowngradedFundingRate(FundingRate oldRate)
{
await _discordService.SendDowngradedFundingRate(oldRate);
}
public async Task SendNewTopFundingRate(FundingRate newRate)
{
await _discordService.SendNewTopFundingRate(newRate);
}
public async Task SendFundingRateUpdate(FundingRate oldRate, FundingRate newRate)
{
await _discordService.SendFundingRateUpdate(oldRate, newRate);
}
}

View File

@@ -3,10 +3,10 @@ using Managing.Application.Abstractions.Repositories;
using Managing.Application.Abstractions.Services;
using Managing.Domain.Accounts;
using Managing.Domain.Scenarios;
using Managing.Domain.Shared.Helpers;
using Managing.Domain.Statistics;
using Managing.Domain.Strategies;
using Managing.Domain.Trades;
using Managing.Domain.Shared.Helpers;
using Microsoft.Extensions.Logging;
using static Managing.Common.Enums;
@@ -260,6 +260,11 @@ public class TradingService : ITradingService
return watchAccount;
}
public void UpdateDeltaNeutralOpportunities()
{
var fundingRates = _exchangeService.GetFundingRates();
}
private async Task ManageTrader(TraderFollowup a, List<Ticker> tickers)
{
var shortAddress = a.Account.Address.Substring(0, 6);