Ejemplo n.º 1
0
 public MacdStrategy(IOptions <MacdStrategyOptions> options, IIndicatorFactory indicatorFactory)
 {
     _options            = options.Value;
     _shortEmaIndicator  = indicatorFactory.GetEmaIndicator(_options.ShortWeight);
     _longEmaIndicator   = indicatorFactory.GetEmaIndicator(_options.LongWeight);
     _signalEmaIndicator = indicatorFactory.GetEmaIndicator(_options.Signal);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Creates a new instance of <see cref="IndicatorsService"/>
 /// </summary>
 /// <param name="indicatorFactory"></param>
 /// <param name="priceService"></param>
 /// <param name="companyService"></param>
 /// <param name="cache"></param>
 public IndicatorsService(IIndicatorFactory indicatorFactory, IPriceService priceService,
                          ICompanyService companyService, ICache cache)
 {
     _indicatorFactory = indicatorFactory;
     _priceService     = priceService;
     _companyService   = companyService;
     _cache            = cache;
 }
        public IchimokuCloudBtcStrategy(IOptions <MacdStrategyOptions> options, IIndicatorFactory indicatorFactory)
        {
            _ichimokuCloudIndicator = indicatorFactory.GetIchimokuCloud();
            _rsiIndicator           = indicatorFactory.GetRsiIndicator(7);

            _shortEmaIndicator = indicatorFactory.GetEmaIndicator(options.Value.ShortWeight);
            _longEmaIndicator  = indicatorFactory.GetEmaIndicator(options.Value.LongWeight);

            _last5Macd = new FixedSizedQueue <decimal>(5);
        }
Ejemplo n.º 4
0
        public MacdIchimokuStrategy(IOptions <MacdStrategyOptions> options,
                                    IIndicatorFactory indicatorFactory)
        {
            _shortEmaIndicator = indicatorFactory.GetEmaIndicator(options.Value.ShortWeight);
            _longEmaIndicator  = indicatorFactory.GetEmaIndicator(options.Value.LongWeight);

            _ema200Indicator = indicatorFactory.GetEmaIndicator(200);

            _ichimokuCloudIndicator = indicatorFactory.GetIchimokuCloud();

            _last10Ema200ClosePriceRate = new FixedSizedQueue <decimal>(10);
        }
Ejemplo n.º 5
0
        public CustomBtcStrategy(IOptions <MacdStrategyOptions> options, IIndicatorFactory indicatorFactory, IExchangeProvider exchangeProvider)
        {
            _exchangeProvider   = exchangeProvider;
            _options            = options.Value;
            _shortEmaIndicator  = indicatorFactory.GetEmaIndicator(_options.ShortWeight);
            _longEmaIndicator   = indicatorFactory.GetEmaIndicator(_options.LongWeight);
            _signalEmaIndicator = indicatorFactory.GetEmaIndicator(_options.Signal);

            _ichimokuCloudIndicator = indicatorFactory.GetIchimokuCloud();

            _volumenQueue = new FixedSizedQueue <decimal>(100);
        }
Ejemplo n.º 6
0
        public EthMacdStrategy(IOptions <MacdStrategyOptions> options, IIndicatorFactory indicatorFactory, IExchangeProvider exchangeProvider)
        {
            _exchangeProvider   = exchangeProvider;
            _options            = options.Value;
            _shortEmaIndicator  = indicatorFactory.GetEmaIndicator(_options.ShortWeight);
            _longEmaIndicator   = indicatorFactory.GetEmaIndicator(_options.LongWeight);
            _signalEmaIndicator = indicatorFactory.GetEmaIndicator(_options.Signal);

            _macdStatistcsQueue      = new FixedSizedQueue <MacdStatistic>(6);
            _macdTempStatisticsQueue = new FixedSizedQueue <MacdStatistic>(200);
            _volumenQueue            = new FixedSizedQueue <decimal>(100);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Get List of Default Indicators
        /// </summary>
        public List <IIndicator> GetDefaultIndicators()
        {
            List <IIndicator> result = new List <IIndicator>();

            foreach (Type indicatorType in IndicatorHelper.IndicatorTypes)
            {
                IIndicatorFactory  factory    = _factories[indicatorType];
                IList <IIndicator> indicators = factory.Create();
                result.AddRange(indicators);
            }

            return(result);
        }
Ejemplo n.º 8
0
        private List <IIndicator> BuildFromJson(string indicatorsJson)
        {
            JArray jArray = JsonConvert.DeserializeObject <JArray>(indicatorsJson);

            List <IIndicator> result = new List <IIndicator>();

            foreach (JObject jObject in jArray)
            {
                JToken typeToken = jObject["type"];
                if (typeToken == null)
                {
                    const string errorMessage = "Property 'type' is required for each indicator";
                    Logger.LogErrorAndThrow(errorMessage);
                }
                string typeValue = typeToken.Value <string>();

                Type indicatorType = IndicatorHelper.IndicatorTypes.Single(m => m.Name.ToLower().Equals(typeValue.ToLower()));
                if (indicatorType == null)
                {
                    string errorMessage = string.Format(ErrorMessages.InvalidIndicator, typeValue);
                    Logger.Error(errorMessage);
                    throw new Exception(errorMessage);
                }

                IIndicatorFactory           factory    = _factories[indicatorType];
                Dictionary <string, string> properties = new Dictionary <string, string>();
                foreach (JProperty prop in jObject.Properties())
                {
                    string propName = prop.Name.UppercaseFirstLetter();
                    properties.Add(propName, prop.Value.Value <string>());
                }

                result.AddRange(factory.Create(properties));
            }

            return(result);
        }
 /// <summary>
 /// Add an indicator factory.
 /// </summary>
 /// <param name="ind">The factory to add.</param>
 public void AddIndicatorFactory(IIndicatorFactory ind)
 {
     _factoryMap[ind.Name] = ind;
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Add an indicator factory.
 /// </summary>
 /// <param name="ind">The factory to add.</param>
 public void AddIndicatorFactory(IIndicatorFactory ind)
 {
     _factoryMap[ind.Name] = ind;
 }
Ejemplo n.º 11
0
 public RsiStrategy(IIndicatorFactory indicatorFactory)
 {
     _rsiIndicator = indicatorFactory.GetRsiIndicator(14);
 }
Ejemplo n.º 12
0
 private void RegisterFactory(IIndicatorFactory factory)
 {
     _factories.Add(factory.IndicatorType, factory);
 }
Ejemplo n.º 13
0
 public MfiStrategy(IIndicatorFactory indicatorFactory, IOptions <MfiStrategyOptions> options)
 {
     _mfiIndicator = indicatorFactory.GetMfiIndicator(options.Value.MfiWeight);
 }
Ejemplo n.º 14
0
 public CustomStrategy(IIndicatorFactory indicatorFactory, IOptions <EmaStrategyOptions> emaOptions, IUserBalanceService userBalanceService)
 {
     _userBalanceService = userBalanceService;
     _shortEmaIndicator  = indicatorFactory.GetEmaIndicator(emaOptions.Value.ShortWeight);
     _longEmaIndicator   = indicatorFactory.GetEmaIndicator(emaOptions.Value.LongWeight);
 }
Ejemplo n.º 15
0
 public EmaStrategy(IIndicatorFactory emaIndicatorFactory, IOptions <EmaStrategyOptions> emaOptions)
 {
     _shortEmaIndicator = emaIndicatorFactory.GetEmaIndicator(emaOptions.Value.ShortWeight);
     _longEmaIndicator  = emaIndicatorFactory.GetEmaIndicator(emaOptions.Value.LongWeight);
 }