Exemple #1
0
        //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);
        }
Exemple #2
0
 public ReportManager(StrategyConfiguration strategyConfig)
 {
     StrategyConfig = strategyConfig;
     StrategyName   = strategyConfig.Name;
     StateManager   = new StateManager(strategyConfig.StrategyId);
     StateManager.StateUpdateReceived += OnStateEventUpdate;
 }
Exemple #3
0
 public StrategiesForm(StrategyConfiguration strategyConfiguration, List <CryptoCoin> knownCoins,
                       ApplicationConfiguration applicationConfiguration)
 {
     InitializeComponent();
     this.strategyConfiguration    = strategyConfiguration;
     this.applicationConfiguration = applicationConfiguration;
     this.knownCoins = knownCoins;
 }
Exemple #4
0
        public TradeManager(StrategyConfiguration strategyConfig, StateManager stateManager)
        {
            StateManager = stateManager;

            ExchangeName = StrategyConfig.Exchange;
            if (String.IsNullOrEmpty(ExchangeName))
            {
                IsInitialised = false;
            }
        }
Exemple #5
0
 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);
 }
Exemple #6
0
        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;
            }
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        //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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
 public CaptureSpike(StrategyConfiguration StrategyConfig, RuleConfiguration ruleConfig) : base(StrategyConfig, ruleConfig)
 {
 }
Exemple #11
0
 public Template(StrategyConfiguration StrategyConfig, RuleConfiguration ruleConfig) : base(StrategyConfig, ruleConfig)
 {
 }
Exemple #12
0
 /// <summary>
 /// Construct a concrete Strategy
 /// </summary>
 /// <param name="exchange">concrete dependency injected Exchange</param>
 public Strategy(StrategyConfiguration strategyConfiguration, Exchange exchange)
 {
     StrategyConfiguration = strategyConfiguration;
     Exchange = exchange;
 }
Exemple #13
0
 public OnOpenForTrading(StrategyConfiguration strategyConfig, RuleConfiguration ruleConfig) : base(strategyConfig, ruleConfig)
 {
 }
Exemple #14
0
 public OnCloseForTrading(StrategyConfiguration StrategyConfig, RuleConfiguration ruleConfig) : base(StrategyConfig, ruleConfig)
 {
 }
Exemple #15
0
 /// <summary>
 /// Construct a concrete Farming Strategy
 /// </summary>
 /// <param name="exchange">concrete dependency injected Exchange</param>
 public Farming(StrategyConfiguration strategyConfiguration, Exchange exchange) : base(strategyConfiguration, exchange)
 {
 }
Exemple #16
0
 public StateManager(StrategyConfiguration strategyConfig)
 {
     StrategyConfig = strategyConfig;
     State          = new Dictionary <string, object>();
 }
Exemple #17
0
 public OnReduceRiskTime(StrategyConfiguration strategyConfig, RuleConfiguration ruleConfig) : base(strategyConfig, ruleConfig)
 {
 }
 public OnOpenPlaceSellLimit(StrategyConfiguration StrategyConfig, RuleConfiguration ruleConfig) : base(StrategyConfig, ruleConfig)
 {
 }
Exemple #19
0
 public ReportManager(StrategyConfiguration strategyConfig)
 {
     StrategyConfig = strategyConfig;
     StrategyName   = strategyConfig.Name;
 }
Exemple #20
0
 public OnTerminateTime(StrategyConfiguration strategyConfig, RuleConfiguration ruleConfig) : base(strategyConfig, ruleConfig)
 {
 }