Add updates scenario and strategy
This commit is contained in:
@@ -62,6 +62,13 @@ public class ScenarioController : ControllerBase
|
|||||||
return Ok(_scenarioService.DeleteScenario(name));
|
return Ok(_scenarioService.DeleteScenario(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update scenario
|
||||||
|
[HttpPut]
|
||||||
|
public ActionResult UpdateScenario(string name, List<string> strategies, int? loopbackPeriod = null)
|
||||||
|
{
|
||||||
|
return Ok(_scenarioService.UpdateScenario(name, strategies, loopbackPeriod));
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Retrieves all strategies.
|
/// Retrieves all strategies.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -126,4 +133,32 @@ public class ScenarioController : ControllerBase
|
|||||||
{
|
{
|
||||||
return Ok(_scenarioService.DeleteStrategy(name));
|
return Ok(_scenarioService.DeleteStrategy(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update strategy
|
||||||
|
[HttpPut]
|
||||||
|
[Route("strategy")]
|
||||||
|
public ActionResult UpdateStrategy(
|
||||||
|
StrategyType strategyType,
|
||||||
|
string name,
|
||||||
|
int? period = null,
|
||||||
|
int? fastPeriods = null,
|
||||||
|
int? slowPeriods = null,
|
||||||
|
int? signalPeriods = null,
|
||||||
|
double? multiplier = null,
|
||||||
|
int? stochPeriods = null,
|
||||||
|
int? smoothPeriods = null,
|
||||||
|
int? cyclePeriods = null)
|
||||||
|
{
|
||||||
|
return Ok(_scenarioService.UpdateStrategy(
|
||||||
|
strategyType,
|
||||||
|
name,
|
||||||
|
period,
|
||||||
|
fastPeriods,
|
||||||
|
slowPeriods,
|
||||||
|
signalPeriods,
|
||||||
|
multiplier,
|
||||||
|
stochPeriods,
|
||||||
|
smoothPeriods,
|
||||||
|
cyclePeriods));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -26,4 +26,6 @@ public interface ITradingRepository
|
|||||||
Fee GetFee(TradingExchanges exchange);
|
Fee GetFee(TradingExchanges exchange);
|
||||||
void InsertFee(Fee fee);
|
void InsertFee(Fee fee);
|
||||||
void UpdateFee(Fee fee);
|
void UpdateFee(Fee fee);
|
||||||
|
void UpdateScenario(Scenario scenario);
|
||||||
|
void UpdateStrategy(Strategy strategy);
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
using Managing.Common;
|
using Managing.Domain.Accounts;
|
||||||
using Managing.Domain.Accounts;
|
|
||||||
using Managing.Domain.Scenarios;
|
using Managing.Domain.Scenarios;
|
||||||
using Managing.Domain.Statistics;
|
using Managing.Domain.Statistics;
|
||||||
using Managing.Domain.Strategies;
|
using Managing.Domain.Strategies;
|
||||||
@@ -26,11 +25,13 @@ public interface ITradingService
|
|||||||
Position GetPositionByIdentifier(string identifier);
|
Position GetPositionByIdentifier(string identifier);
|
||||||
IEnumerable<Position> GetPositions(PositionInitiator positionInitiator);
|
IEnumerable<Position> GetPositions(PositionInitiator positionInitiator);
|
||||||
IEnumerable<Position> GetPositions();
|
IEnumerable<Position> GetPositions();
|
||||||
IEnumerable<Position> GetPositionsByStatus(Enums.PositionStatus positionStatus);
|
IEnumerable<Position> GetPositionsByStatus(PositionStatus positionStatus);
|
||||||
Task<Position> ManagePosition(Account account, Position position);
|
Task<Position> ManagePosition(Account account, Position position);
|
||||||
void UpdateFee(TradingExchanges evm);
|
void UpdateFee(TradingExchanges evm);
|
||||||
decimal GetFee(Account account, bool isForPaperTrading = false);
|
decimal GetFee(Account account, bool isForPaperTrading = false);
|
||||||
Task WatchTrader();
|
Task WatchTrader();
|
||||||
IEnumerable<Trader> GetTradersWatch();
|
IEnumerable<Trader> GetTradersWatch();
|
||||||
void UpdateDeltaNeutralOpportunities();
|
void UpdateDeltaNeutralOpportunities();
|
||||||
|
void UpdateScenario(Scenario scenario);
|
||||||
|
void UpdateStrategy(Strategy strategy);
|
||||||
}
|
}
|
||||||
@@ -26,5 +26,9 @@ namespace Managing.Application.Abstractions
|
|||||||
|
|
||||||
bool DeleteStrategies();
|
bool DeleteStrategies();
|
||||||
bool DeleteScenarios();
|
bool DeleteScenarios();
|
||||||
|
bool UpdateScenario(string name, List<string> strategies, int? loopbackPeriod);
|
||||||
|
|
||||||
|
bool UpdateStrategy(StrategyType strategyType, string name, int? period, int? fastPeriods, int? slowPeriods,
|
||||||
|
int? signalPeriods, double? multiplier, int? stochPeriods, int? smoothPeriods, int? cyclePeriods);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -138,5 +138,53 @@ namespace Managing.Application.Scenarios
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool UpdateScenario(string name, List<string> strategies, int? loopbackPeriod)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var scenario = _tradingService.GetScenarioByName(name);
|
||||||
|
scenario.Strategies.Clear();
|
||||||
|
foreach (var strategy in strategies)
|
||||||
|
{
|
||||||
|
scenario.AddStrategy(_tradingService.GetStrategyByName(strategy));
|
||||||
|
}
|
||||||
|
|
||||||
|
scenario.LoopbackPeriod = loopbackPeriod ?? 1;
|
||||||
|
_tradingService.UpdateScenario(scenario);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool UpdateStrategy(StrategyType strategyType, string name, int? period, int? fastPeriods,
|
||||||
|
int? slowPeriods,
|
||||||
|
int? signalPeriods, double? multiplier, int? stochPeriods, int? smoothPeriods, int? cyclePeriods)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var strategy = _tradingService.GetStrategyByName(name);
|
||||||
|
strategy.Type = strategyType;
|
||||||
|
strategy.Period = period;
|
||||||
|
strategy.FastPeriods = fastPeriods;
|
||||||
|
strategy.SlowPeriods = slowPeriods;
|
||||||
|
strategy.SignalPeriods = signalPeriods;
|
||||||
|
strategy.Multiplier = multiplier;
|
||||||
|
strategy.StochPeriods = stochPeriods;
|
||||||
|
strategy.SmoothPeriods = smoothPeriods;
|
||||||
|
strategy.CyclePeriods = cyclePeriods;
|
||||||
|
_tradingService.UpdateStrategy(strategy);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -268,6 +268,16 @@ public class TradingService : ITradingService
|
|||||||
var fundingRates = _exchangeService.GetFundingRates();
|
var fundingRates = _exchangeService.GetFundingRates();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UpdateScenario(Scenario scenario)
|
||||||
|
{
|
||||||
|
_tradingRepository.UpdateScenario(scenario);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateStrategy(Strategy strategy)
|
||||||
|
{
|
||||||
|
_tradingRepository.UpdateStrategy(strategy);
|
||||||
|
}
|
||||||
|
|
||||||
private async Task ManageTrader(TraderFollowup a, List<Ticker> tickers)
|
private async Task ManageTrader(TraderFollowup a, List<Ticker> tickers)
|
||||||
{
|
{
|
||||||
var shortAddress = a.Account.Address.Substring(0, 6);
|
var shortAddress = a.Account.Address.Substring(0, 6);
|
||||||
|
|||||||
@@ -145,4 +145,20 @@ public class TradingRepository : ITradingRepository
|
|||||||
dto.Id = f.Id;
|
dto.Id = f.Id;
|
||||||
_feeRepository.Update(dto);
|
_feeRepository.Update(dto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UpdateScenario(Scenario scenario)
|
||||||
|
{
|
||||||
|
var s = _scenarioRepository.FindOne(s => s.Name == scenario.Name);
|
||||||
|
var dto = MongoMappers.Map(scenario);
|
||||||
|
dto.Id = s.Id;
|
||||||
|
_scenarioRepository.Update(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateStrategy(Strategy strategy)
|
||||||
|
{
|
||||||
|
var s = _strategyRepository.FindOne(s => s.Name == strategy.Name);
|
||||||
|
var dto = MongoMappers.Map(strategy);
|
||||||
|
dto.Id = s.Id;
|
||||||
|
_strategyRepository.Update(dto);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user