//Create and initialise the Rules public List <IRule> CreateAndInitRules(StrategyConfiguration strategyConfig) { List <IRule> createdRules = new List <IRule>(); foreach (RuleConfiguration ruleConfig in strategyConfig.Rules) { IRule rule = CreateRule(strategyConfig, ruleConfig.Name, ruleConfig); if (rule != null) { rule.Init(); if (rule.IsInitialised) { createdRules.Add(rule); Console.WriteLine("CREATED Rule: " + ruleConfig.Name); } else { Console.WriteLine("FAILED to Initialise Rule: " + ruleConfig.Name); } } else { Console.WriteLine("FAILED to create Rule: " + ruleConfig.Name); } } return(createdRules); }
public ReportManager(StrategyConfiguration strategyConfig) { StrategyConfig = strategyConfig; StrategyName = strategyConfig.Name; StateManager = new StateManager(strategyConfig.StrategyId); StateManager.StateUpdateReceived += OnStateEventUpdate; }
public StrategiesForm(StrategyConfiguration strategyConfiguration, List <CryptoCoin> knownCoins, ApplicationConfiguration applicationConfiguration) { InitializeComponent(); this.strategyConfiguration = strategyConfiguration; this.applicationConfiguration = applicationConfiguration; this.knownCoins = knownCoins; }
public TradeManager(StrategyConfiguration strategyConfig, StateManager stateManager) { StateManager = stateManager; ExchangeName = StrategyConfig.Exchange; if (String.IsNullOrEmpty(ExchangeName)) { IsInitialised = false; } }
private IRule CreateRule(StrategyConfiguration strategyConfig, string ruleName, RuleConfiguration ruleConfig) { if (RuleConfiguration.RuleNames.ContainsKey(ruleName)) { if (RuleConfiguration.RuleNames.TryGetValue(ruleName, out Type ruleType)) { return((IRule)Activator.CreateInstance(ruleType, new Object[] { strategyConfig, ruleConfig })); } return(null); } return(null); }
protected bool IsActive = true; //Default state is active public IRule(StrategyConfiguration strategyConfig, RuleConfiguration ruleConfig) { this.StrategyConfig = strategyConfig; this.RuleConfig = ruleConfig; if (!StrategyConfig.Config.TryGetValue(StrategyConfiguration.STRATEGYID, out StrategyId)) { IsInitialised = false; } if (!StrategyConfig.Config.TryGetValue(StrategyConfiguration.EXCHANGE, out ExchangeName)) { IsInitialised = false; } }
private bool IsActive = true; //Default state is active public IRule(StrategyConfiguration strategyConfig, RuleConfiguration ruleConfig) { this.StrategyConfig = strategyConfig; this.RuleConfig = ruleConfig; StrategyId = StrategyConfig.StrategyId; if (String.IsNullOrEmpty(StrategyId)) { IsInitialised = false; } ExchangeName = StrategyConfig.Exchange; if (String.IsNullOrEmpty(ExchangeName)) { IsInitialised = false; } BrokerId = StrategyConfig.BrokerId; if (String.IsNullOrEmpty(BrokerId)) { IsInitialised = false; } //Initialise TradeUtils for broker specific config TradeUtils = new TradeUtils(new BrokerConfiguration(BrokerId), ruleConfig); //Initialise a TradesPublisher TradePublisher = new TradePublisher(Publisher, TradeUtils, GetServiceName()); //Add Rule configuration to Firebase StateManager = new StateManager(StrategyId); if (StateManager == null) { IsInitialised = false; } StateManager.SetInitialStateAsync(RuleConfig.Params); //Manage State updates if subscribed to by the derived rule StateManager.StateUpdateReceived += OnStateEventUpdate; StateManager.SetActivationRulesAsync(GetServiceName(), RuleConfig.ActivateRules); StateManager.SetDeactivationRulesAsync(GetServiceName(), RuleConfig.DeactivateRules); //If this rule has activation rules default state IsActive = false if (RuleConfig.ActivateRules != null) { IsActive = false; } StateManager.UpdateRuleStatusAsync(GetServiceName(), RuleConfiguration.ISACTIVE, IsActive); }
//Create and initialise the Rules public List <IRule> CreateAndInitRules(StrategyConfiguration botConfig) { List <IRule> createdRules = new List <IRule>(); foreach (RuleConfiguration ruleConfig in botConfig.Rules) { IRule rule = CreateRule(ruleConfig.Name, botConfig.Config); if (rule != null) { rule.Init(); createdRules.Add(rule); } else { Console.Write("FAILED to create Rule: " + ruleConfig.Name); } } return(createdRules); }
private bool IsActive = true; //Default state is active public IRule(StrategyConfiguration strategyConfig, RuleConfiguration ruleConfig) { this.StrategyConfig = strategyConfig; this.RuleConfig = ruleConfig; StrategyId = StrategyConfig.StrategyId; if (String.IsNullOrEmpty(StrategyId)) { IsInitialised = false; } ExchangeName = StrategyConfig.Exchange; if (String.IsNullOrEmpty(ExchangeName)) { IsInitialised = false; } //Add Rule configuration to Firebase StateManager = new StateManager(StrategyId); if (StateManager == null) { IsInitialised = false; } StateManager.SetInitialState(RuleConfig.Params); //Manage State updates if subscribed to by the derived rule StateManager.StateUpdateReceived += OnStateEventUpdate; StateManager.SetActivationRules(GetServiceName(), RuleConfig.ActivateRules); StateManager.SetDeactivationRules(GetServiceName(), RuleConfig.DeactivateRules); //If this rule has activation rules default state IsActive = false if (RuleConfig.ActivateRules != null) { IsActive = false; } StateManager.UpdateRuleStatus(GetServiceName(), RuleConfiguration.ISACTIVE, IsActive); }
public CaptureSpike(StrategyConfiguration StrategyConfig, RuleConfiguration ruleConfig) : base(StrategyConfig, ruleConfig) { }
public Template(StrategyConfiguration StrategyConfig, RuleConfiguration ruleConfig) : base(StrategyConfig, ruleConfig) { }
/// <summary> /// Construct a concrete Strategy /// </summary> /// <param name="exchange">concrete dependency injected Exchange</param> public Strategy(StrategyConfiguration strategyConfiguration, Exchange exchange) { StrategyConfiguration = strategyConfiguration; Exchange = exchange; }
public OnOpenForTrading(StrategyConfiguration strategyConfig, RuleConfiguration ruleConfig) : base(strategyConfig, ruleConfig) { }
public OnCloseForTrading(StrategyConfiguration StrategyConfig, RuleConfiguration ruleConfig) : base(StrategyConfig, ruleConfig) { }
/// <summary> /// Construct a concrete Farming Strategy /// </summary> /// <param name="exchange">concrete dependency injected Exchange</param> public Farming(StrategyConfiguration strategyConfiguration, Exchange exchange) : base(strategyConfiguration, exchange) { }
public StateManager(StrategyConfiguration strategyConfig) { StrategyConfig = strategyConfig; State = new Dictionary <string, object>(); }
public OnReduceRiskTime(StrategyConfiguration strategyConfig, RuleConfiguration ruleConfig) : base(strategyConfig, ruleConfig) { }
public OnOpenPlaceSellLimit(StrategyConfiguration StrategyConfig, RuleConfiguration ruleConfig) : base(StrategyConfig, ruleConfig) { }
public ReportManager(StrategyConfiguration strategyConfig) { StrategyConfig = strategyConfig; StrategyName = strategyConfig.Name; }
public OnTerminateTime(StrategyConfiguration strategyConfig, RuleConfiguration ruleConfig) : base(strategyConfig, ruleConfig) { }