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

@@ -1,6 +1,7 @@
using Managing.Common;
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;
@@ -26,5 +27,6 @@ namespace Managing.Infrastructure.Exchanges.Exchanges
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();
}
}

View File

@@ -6,6 +6,7 @@ using Managing.Common;
using Managing.Core;
using Managing.Domain.Accounts;
using Managing.Domain.Candles;
using Managing.Domain.Statistics;
using Managing.Domain.Trades;
using Managing.Infrastructure.Exchanges.Helpers;
using Microsoft.Extensions.Logging;
@@ -98,6 +99,11 @@ public class BinanceProcessor : BaseProcessor
throw new NotImplementedException();
}
public override Task<List<FundingRate>> GetFundingRates()
{
throw new NotImplementedException();
}
public override async Task<List<Trade>> GetTrades(Account account, Ticker ticker)
{
var binanceOrder =

View File

@@ -3,6 +3,7 @@ using Managing.Common;
using Managing.Domain.Accounts;
using Managing.Domain.Candles;
using Managing.Domain.Evm;
using Managing.Domain.Statistics;
using Managing.Domain.Trades;
using Microsoft.Extensions.Logging;
using static Managing.Common.Enums;
@@ -96,6 +97,11 @@ public class EvmProcessor : BaseProcessor
return await _evmManager.GetTrade(reference, Constants.Chains.Arbitrum, ticker);
}
public override async Task<List<FundingRate>> GetFundingRates()
{
return await _evmManager.GetFundingRates();
}
public override decimal GetVolume(Account account, Ticker ticker)
{
var volume = _evmManager.GetVolume(SubgraphProvider.ChainlinkPrice, ticker);

View File

@@ -4,6 +4,7 @@ using FTX.Net.Objects;
using Managing.Common;
using Managing.Domain.Accounts;
using Managing.Domain.Candles;
using Managing.Domain.Statistics;
using Managing.Domain.Trades;
using Managing.Infrastructure.Exchanges.Helpers;
using Microsoft.Extensions.Logging;
@@ -194,4 +195,9 @@ public class FtxProcessor : BaseProcessor
{
throw new NotImplementedException();
}
public override Task<List<FundingRate>> GetFundingRates()
{
throw new NotImplementedException();
}
}

View File

@@ -5,6 +5,7 @@ using Kraken.Net.Objects.Options;
using Managing.Common;
using Managing.Domain.Accounts;
using Managing.Domain.Candles;
using Managing.Domain.Statistics;
using Managing.Domain.Trades;
using Managing.Infrastructure.Exchanges.Helpers;
using Microsoft.Extensions.Logging;
@@ -92,6 +93,11 @@ public class KrakenProcessor : BaseProcessor
throw new NotImplementedException();
}
public override Task<List<FundingRate>> GetFundingRates()
{
throw new NotImplementedException();
}
public override async Task<List<Trade>> GetTrades(Account account, Ticker ticker)
{
LoadClient(account);