Example #1
0
        private void BuildMeta(IMetaMapping mapping, IEnumerable <IBarDatum> barData)
        {
            ValueDatum ave = Bar.Sma(mapping, barData);

            string propertyBase = mapping.Property;

            properties.Where(p => p.Name == propertyBase)
            .First()
            .SetValue(Datum, ave.Value);

            properties.Where(p => p.Name == $"D{propertyBase}")
            .First()
            .SetValue(Datum, ave.Slope);

            properties.Where(p => p.Name == $"D2{propertyBase}")
            .First()
            .SetValue(Datum, ave.DSlope);
        }
Example #2
0
        public static ValueDatum Sma(this IBar bar, IMetaMapping mapping, IEnumerable <IBarDatum> data)
        {
            int period = mapping.Value.Value;

            double ave = double.MinValue;

            double slope = double.MinValue;

            double dSlope = double.MinValue;

            var previousBars = ToSet(data, period - 1);

            if (period - previousBars.Count <= 1)
            {
                ave = (previousBars.Sum(b => b.Close) + bar.Close) / (double)period;

                IBarDatum previousBar = previousBars[0];

                int minutes = (bar.Time - previousBar.Time).Minutes;

                double prevAve = (double)Properties.Where(p => p.Name == mapping.Property)
                                 .First()
                                 .GetValue(previousBar, null);

                prevAve = prevAve == double.MinValue ? 0 : prevAve;

                slope = (ave - prevAve) / (double)minutes;

                double prevSlope = (double)Properties.Where(p => p.Name == $"D{mapping.Property}")
                                   .First()
                                   .GetValue(previousBar, null);

                prevSlope = prevSlope == double.MinValue ? 0 : prevSlope;

                dSlope = (slope - prevSlope) / (double)minutes;
            }

            ValueDatum newDatum = new ValueDatum(mapping.Property, ave, slope, dSlope);

            return(newDatum);
        }
Example #3
0
        private bool TheseMetaMappingsMatch(IMetaMapping real, IMetaMapping mock)
        {
            bool bMatch = true;

            foreach (var prop in MetaProperties)
            {
                object oReal = prop.GetValue(real, null);

                object oMeta = prop.GetValue(mock, null);

                if (oReal == null && oMeta != null || oReal != null && oMeta == null)
                {
                    Debugger.Break();
                }

                bMatch = ObjectEvaluator.IsEqual(prop, prop.GetValue(real, null), prop.GetValue(mock, null));

                Debug.WriteLine($"Mappings: Property:{prop.Name}, Result: {bMatch}");
            }

            return(bMatch);
        }