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,199 @@
using Managing.Application.Abstractions;
using Managing.Domain.MoneyManagements;
using Microsoft.Extensions.Logging;
using static Managing.Common.Enums;
namespace Managing.Application.Shared;
public class SettingsService : ISettingsService
{
private readonly IMoneyManagementService _moneyManagementService;
private readonly IScenarioService _scenarioService;
private readonly IBacktester _backtester;
private readonly ILogger<SettingsService> _logger;
public SettingsService(IMoneyManagementService moneyManagementService,
IScenarioService scenarioService,
IBacktester backtester,
ILogger<SettingsService> logger)
{
_moneyManagementService = moneyManagementService;
_scenarioService = scenarioService;
_backtester = backtester;
_logger = logger;
}
public async Task<bool> ResetSettings()
{
if (!_backtester.DeleteBacktests())
{
throw new Exception("Cannot delete all backtests");
}
if (!_scenarioService.DeleteScenarios())
{
throw new Exception("Cannot delete scenarios");
}
if (!_scenarioService.DeleteStrategies())
{
throw new Exception("Cannot delete all strategies");
}
if (!_moneyManagementService.DeleteMoneyManagements())
{
throw new Exception("Cannot delete all money management settings");
}
if (!SetupSettings())
{
throw new Exception("Cannot setup settings");
}
return await Task.FromResult(true);
}
public bool SetupSettings()
{
try
{
SetupMoneyManagementsSeed(Timeframe.FiveMinutes);
SetupMoneyManagementsSeed(Timeframe.FifteenMinutes);
SetupMoneyManagementsSeed(Timeframe.OneHour);
SetupMoneyManagementsSeed(Timeframe.OneDay);
SetupScenariosSeed(Timeframe.FifteenMinutes);
}
catch (Exception ex)
{
_logger.LogError(ex.Message);
return false;
}
return true;
}
private async void SetupMoneyManagementsSeed(Timeframe timeframe)
{
var moneyManagement = new MoneyManagement()
{
Timeframe = timeframe,
BalanceAtRisk = 0.05m,
Leverage = 1,
StopLoss = 0.021m,
TakeProfit = 0.042m,
Name = $"{timeframe} Money Management"
};
await _moneyManagementService.CreateOrUpdateMoneyManagement(moneyManagement);
}
private void SetupScenariosSeed(Timeframe timeframe)
{
SetupMacd(timeframe);
SetupRsiDiv(timeframe);
SetupRsiDivConfirm(timeframe);
SetupSuperTrend(timeframe);
SetupChandelierExit(timeframe);
SetupStochRsiTrend(timeframe);
SetupStochSTCTrend(timeframe);
SetupEmaTrend(timeframe);
SetupEmaCross(timeframe);
}
private void SetupStochSTCTrend(Timeframe timeframe)
{
var name = "STCTrend";
var strategy = _scenarioService.CreateStrategy(StrategyType.Stc,
timeframe,
name,
fastPeriods: 23,
slowPeriods: 50,
cyclePeriods: 10);
_scenarioService.CreateScenario(name, new List<string> { strategy.Name });
}
private void SetupMacd(Timeframe timeframe)
{
var name = "MacdCross";
var strategy = _scenarioService.CreateStrategy(StrategyType.MacdCross,
timeframe,
name,
fastPeriods: 12,
slowPeriods: 26,
signalPeriods: 9);
_scenarioService.CreateScenario(name, new List<string> { strategy.Name });
}
private void SetupRsiDiv(Timeframe timeframe)
{
var name = "RsiDiv6";
var strategy = _scenarioService.CreateStrategy(StrategyType.RsiDivergence,
timeframe,
name,
period: 6);
_scenarioService.CreateScenario(name, new List<string> { strategy.Name });
}
private void SetupRsiDivConfirm(Timeframe timeframe)
{
var name = "RsiDivConfirm6";
var strategy = _scenarioService.CreateStrategy(StrategyType.RsiDivergenceConfirm,
timeframe,
name,
period: 6);
_scenarioService.CreateScenario(name, new List<string> { strategy.Name });
}
private void SetupSuperTrend(Timeframe timeframe)
{
var name = "SuperTrend";
var strategy = _scenarioService.CreateStrategy(StrategyType.SuperTrend,
timeframe,
name,
period: 10,
multiplier: 3);
_scenarioService.CreateScenario(name, new List<string> { strategy.Name });
}
private void SetupChandelierExit(Timeframe timeframe)
{
var name = "ChandelierExit";
var strategy = _scenarioService.CreateStrategy(StrategyType.ChandelierExit,
timeframe,
name,
period: 22,
multiplier: 3);
_scenarioService.CreateScenario(name, new List<string> { strategy.Name });
}
private void SetupStochRsiTrend(Timeframe timeframe)
{
var name = "StochRsiTrend";
var strategy = _scenarioService.CreateStrategy(StrategyType.StochRsiTrend,
timeframe,
name,
period: 14,
stochPeriods: 14,
signalPeriods: 3,
smoothPeriods: 1);
_scenarioService.CreateScenario(name, new List<string> { strategy.Name });
}
private void SetupEmaTrend(Timeframe timeframe)
{
var name = "Ema200Trend";
var strategy = _scenarioService.CreateStrategy(StrategyType.EmaTrend,
timeframe,
name,
period: 200);
_scenarioService.CreateScenario(name, new List<string> { strategy.Name });
}
private void SetupEmaCross(Timeframe timeframe)
{
var name = "Ema200Cross";
var strategy = _scenarioService.CreateStrategy(StrategyType.EmaCross,
timeframe,
name,
period: 200);
_scenarioService.CreateScenario(name, new List<string> { strategy.Name });
}
}