public static TradeConfigurationAlgo ToTradeConfigurationAlgo(this TradeConfiguration item) { if (item != null) { return(new TradeConfigurationAlgo() { MainCoin = item.MainCoin, AltCoin = item.AltCoin, Strategy = item.Strategy, Margin = item.Margin, OpenOrders = item.OpenOrders, OrderIndent = item.OrderIndent, OrderDeposit = item.OrderDeposit, FirstStep = item.FirstStep, OrderStepPlus = item.OrderStepPlus, Martingale = item.Martingale, DepositLimit = item.DepositLimit, OrderReload = item.OrderReload, Loss = item.Loss, Profit = item.Profit, IndentExtremum = item.IndentExtremum, ProtectiveSpread = item.ProtectiveSpread, Active = item.Active, ActivationTime = item.ActivationTime, DeactivationTime = item.DeactivationTime }); } return(null); }
/// <summary> /// Обновляет конфиг /// </summary> /// <param name="configuration">конфигурация</param> /// <param name="savedStrategies">зранимая стратегия из правой панели</param> /// <returns></returns> public TradeConfiguration Update(TradeConfiguration configuration, string savedStrategies) { if (string.IsNullOrWhiteSpace(configuration.AltCoin) || string.IsNullOrWhiteSpace(configuration.MainCoin)) { throw new ArgumentException("Поля AltCoin и MainCoin не должны содержать пустых значений.", "configuration"); } else { var strategyString = GetStrategyString(configuration); using (var db = new DataBaseContext()) { var config = db.TradeConfigurations.FirstOrDefault(x => x.AltCoin == configuration.AltCoin && x.MainCoin == configuration.MainCoin && x.Strategy == configuration.Strategy); if (config == null) { configuration.ActivationTime = DateTime.UtcNow.ToUnixTime(); configuration.DeactivationTime = 0; config = db.TradeConfigurations.Add(configuration).Entity; db.SaveChanges(); if (!savedStrategies.Contains(strategyString)) { DeactivationConfig(savedStrategies, config.ID); } } else { config.MainCoin = configuration.MainCoin; config.AltCoin = configuration.AltCoin; config.Strategy = configuration.Strategy; config.IntervalHttp = configuration.IntervalHttp; config.Margin = configuration.Margin; config.OpenOrders = configuration.OpenOrders; config.OrderIndent = configuration.OrderIndent; config.OrderReload = configuration.OrderReload; config.OrderDeposit = configuration.OrderDeposit; config.FirstStep = configuration.FirstStep; config.OrderStepPlus = configuration.OrderStepPlus; config.Martingale = configuration.Martingale; config.DepositLimit = configuration.DepositLimit; config.Loss = configuration.Loss; config.Profit = configuration.Profit; config.IndentExtremum = configuration.IndentExtremum; config.ProtectiveSpread = configuration.ProtectiveSpread; config.Active = configuration.Active; config.ActivationTime = DateTime.UtcNow.ToUnixTime(); config.DeactivationTime = 0; db.SaveChanges(); if (!savedStrategies.Contains(strategyString)) { DeactivationConfig(savedStrategies, config.ID); } } return(config); } } }
private void SetConfigView(TradeConfiguration config) { TradeConfigurationView.AltCoin = config.AltCoin; TradeConfigurationView.DepositLimit = config.DepositLimit; TradeConfigurationView.FirstStep = config.FirstStep; TradeConfigurationView.IntervalHttp = config.IntervalHttp; TradeConfigurationView.MainCoin = config.MainCoin; TradeConfigurationView.Margin = config.Margin; TradeConfigurationView.Martingale = config.Martingale; TradeConfigurationView.OpenOrders = config.OpenOrders; TradeConfigurationView.OrderDeposit = config.OrderDeposit; TradeConfigurationView.OrderIndent = config.OrderIndent; TradeConfigurationView.OrderStepPlus = config.OrderStepPlus; TradeConfigurationView.Profit = config.Profit; TradeConfigurationView.ProtectiveSpread = config.ProtectiveSpread; TradeConfigurationView.Strategy = config.Strategy; TradeConfigurationView.IndentExtremum = config.IndentExtremum; TradeConfigurationView.Loss = config.Loss; TradeConfigurationView.OrderReload = config.OrderReload; }
//****************************************** private BackTestConfiguration ToTestConfifuration(TradeConfiguration configuration) { return(new BackTestConfiguration() { MainCoin = configuration.MainCoin, AltCoin = configuration.AltCoin, Strategy = configuration.Strategy, Margin = configuration.Margin, OrderIndent = configuration.OrderIndent, OrderDeposit = configuration.OrderDeposit, FirstStep = configuration.FirstStep, OrderStepPlus = configuration.OrderStepPlus, Martingale = configuration.Martingale, DepositLimit = configuration.DepositLimit, OrderReload = configuration.OrderReload, Loss = configuration.Loss, Profit = configuration.Profit, IndentExtremum = configuration.IndentExtremum, ProtectiveSpread = configuration.ProtectiveSpread }); }
private string GetStrategyString(TradeConfiguration tradeConfiguration) { return($"{tradeConfiguration.MainCoin.ToUpper()}{tradeConfiguration.AltCoin.ToUpper()}{tradeConfiguration.Strategy.ToUpper()}"); }