Exemplo n.º 1
0
 public WaveRange(List <Rate> range, double pointSize, BarsPeriodType period)
     : base()
 {
     this.Period    = period;
     this.PointSize = pointSize;
     this.Range     = range;
     Count          = range.Count;
     if (Count == 0)
     {
         return;
     }
     StartDate = range[0].StartDate;
     EndDate   = range.Last().StartDate;
     if (EndDate < StartDate)
     {
         throw new InvalidOperationException("StartDate;{0} must be less then EndDate:{1}".Formater(StartDate, EndDate));
     }
     Max           = range.Max(r => r.PriceAvg);
     Min           = range.Min(r => r.PriceAvg);
     Distance      = range.Distances(r => r.PriceAvg).TakeLast(1).Select(t => t.Item2).DefaultIfEmpty().Single() / pointSize;
     DistanceCma   = range.Distances(r => r.PriceCMALast).TakeLast(1).Select(t => t.Item2).DefaultIfEmpty().Single() / pointSize;
     TotalSeconds  = range.Duration(r => r.StartDate).TotalSeconds;
     TotalMinutes  = TotalSeconds / 60;
     PipsPerMinute = Distance / TotalMinutes;
     CalcTrendLine(range, pointSize, period);
     _stDevForhsd = StDevForHsd(range) / pointSize;
     //this.Fatness = AlgLib.correlation.pearsoncorrelation(priceAvgs, lastCmas).Abs();
 }
Exemplo n.º 2
0
        public static FuzzyInstrument GetFuzzyInstrument(this Indicator indicator, BarsPeriodType periodType, int value, string tradingHours)
        {
            if (indicator == null)
            {
                throw new ArgumentNullException("no indicator for fuzzy insturment (?)");
            }

            FuzzyInstrument myFuzzyInstrument = new FuzzyInstrument
            {
                Period = new BarsPeriod {
                    BarsPeriodType = periodType, Value = value
                },
                TradingHours = tradingHours
            };

            try
            {
                myFuzzyInstrument.InstrumentName = indicator.Instrument.FullName;
            }
            catch
            {
                myFuzzyInstrument.InstrumentName = DefaultInstrumentName;
#if DEBUG
                NinjaScript.Log(string.Format("{0} Had to use default data series when adding {1} ({2})", indicator.Name,
                                              myFuzzyInstrument.InstrumentName, myFuzzyInstrument.Period), LogLevel.Error);
#endif
            }
            return(myFuzzyInstrument);
        }
Exemplo n.º 3
0
        internal void AddDataSeriesFuzzy(Indicator indicator, BarsPeriodType periodType, int value, string tradingHours)
        {
            FuzzyInstrument fuzzy = indicator.GetFuzzyInstrument(periodType, value, tradingHours);

            base.AddDataSeries(fuzzy.InstrumentName, fuzzy.Period, fuzzy.TradingHours);

            indicator.CopyTo(indicator);
        }
Exemplo n.º 4
0
        void CalcTrendLine(List <Rate> range, double pointSize, BarsPeriodType period)
        {
            if (range.Count == 0)
            {
                return;
            }
            var minutes = (range.Last().StartDate - range[0].StartDate).Duration().TotalMinutes;
            Func <TimeSpan, IEnumerable <double> > groupped = ts => range.GroupedDistinct(rate => rate.StartDate.AddMilliseconds(-rate.StartDate.Millisecond), g => g.Average(rate => rate.PriceAvg));
            var doubles = period == BarsPeriodType.t1 ? groupped(1.FromSeconds()).ToArray() : range.Select(r => r.PriceAvg).ToArray();

            if (doubles.Length < 2 && range.Count > 1)
            {
                doubles = groupped(1.FromSeconds()).ToArray();
            }
            var coeffs = doubles.Linear();

            this.Slope                = coeffs.LineSlope();
            this.Angle                = Slope.Angle(period == BarsPeriodType.t1 ? 1.0 / 60 : (int)period, pointSize);
            this.StDev                = doubles.StDevByRegressoin(coeffs) / pointSize;
            this.InterseptStart       = coeffs.RegressionValue(0);
            this.InterseptEnd         = coeffs.RegressionValue(doubles.Length - 1);
            this.DistanceByRegression = DistanceByHeightAndAngle(InterseptStart.Abs(InterseptEnd), Angle).Abs() / pointSize;
        }
Exemplo n.º 5
0
 public static string ToLocalizedObject(BarsPeriodType value, CultureInfo cultureInfo = null)
 {
     return((string)null);
 }
Exemplo n.º 6
0
 public Indicators.DivergenceInputSeriesNT8 DivergenceInputSeriesNT8(ISeries <double> input, int pricePeriod, int stoffset0, int swingoffset, int sigoffset, bool hl_mode, bool displaymsg, bool barSig_mode, int bbefore0, int bafter0, bool displayswings0, int dotsize, BarsPeriodType priceDataType0, Brush uparrowcolor, Brush dnarrowcolor, Brush swinghighcolor, Brush swinglowcolor)
 {
     return(indicator.DivergenceInputSeriesNT8(input, pricePeriod, stoffset0, swingoffset, sigoffset, hl_mode, displaymsg, barSig_mode, bbefore0, bafter0, displayswings0, dotsize, priceDataType0, uparrowcolor, dnarrowcolor, swinghighcolor, swinglowcolor));
 }
Exemplo n.º 7
0
 public DivergenceInputSeriesNT8 DivergenceInputSeriesNT8(ISeries <double> input, int pricePeriod, int stoffset0, int swingoffset, int sigoffset, bool hl_mode, bool displaymsg, bool barSig_mode, int bbefore0, int bafter0, bool displayswings0, int dotsize, BarsPeriodType priceDataType0, Brush uparrowcolor, Brush dnarrowcolor, Brush swinghighcolor, Brush swinglowcolor)
 {
     if (cacheDivergenceInputSeriesNT8 != null)
     {
         for (int idx = 0; idx < cacheDivergenceInputSeriesNT8.Length; idx++)
         {
             if (cacheDivergenceInputSeriesNT8[idx] != null && cacheDivergenceInputSeriesNT8[idx].PricePeriod == pricePeriod && cacheDivergenceInputSeriesNT8[idx].Stoffset0 == stoffset0 && cacheDivergenceInputSeriesNT8[idx].Swingoffset == swingoffset && cacheDivergenceInputSeriesNT8[idx].Sigoffset == sigoffset && cacheDivergenceInputSeriesNT8[idx].Hl_mode == hl_mode && cacheDivergenceInputSeriesNT8[idx].Displaymsg == displaymsg && cacheDivergenceInputSeriesNT8[idx].BarSig_mode == barSig_mode && cacheDivergenceInputSeriesNT8[idx].Bbefore0 == bbefore0 && cacheDivergenceInputSeriesNT8[idx].Bafter0 == bafter0 && cacheDivergenceInputSeriesNT8[idx].Displayswings0 == displayswings0 && cacheDivergenceInputSeriesNT8[idx].Dotsize == dotsize && cacheDivergenceInputSeriesNT8[idx].PriceDataType0 == priceDataType0 && cacheDivergenceInputSeriesNT8[idx].Uparrowcolor == uparrowcolor && cacheDivergenceInputSeriesNT8[idx].Dnarrowcolor == dnarrowcolor && cacheDivergenceInputSeriesNT8[idx].Swinghighcolor == swinghighcolor && cacheDivergenceInputSeriesNT8[idx].Swinglowcolor == swinglowcolor && cacheDivergenceInputSeriesNT8[idx].EqualsInput(input))
             {
                 return(cacheDivergenceInputSeriesNT8[idx]);
             }
         }
     }
     return(CacheIndicator <DivergenceInputSeriesNT8>(new DivergenceInputSeriesNT8()
     {
         PricePeriod = pricePeriod, Stoffset0 = stoffset0, Swingoffset = swingoffset, Sigoffset = sigoffset, Hl_mode = hl_mode, Displaymsg = displaymsg, BarSig_mode = barSig_mode, Bbefore0 = bbefore0, Bafter0 = bafter0, Displayswings0 = displayswings0, Dotsize = dotsize, PriceDataType0 = priceDataType0, Uparrowcolor = uparrowcolor, Dnarrowcolor = dnarrowcolor, Swinghighcolor = swinghighcolor, Swinglowcolor = swinglowcolor
     }, input, ref cacheDivergenceInputSeriesNT8));
 }
Exemplo n.º 8
0
 public Indicators.Spread Spread(ISeries <double> input, double qty1, double qty2, bool useMultiplier, string symbol2, BarsPeriodType barsPeriodTypeProp, int barsPeriodValueProp)
 {
     return(indicator.Spread(input, qty1, qty2, useMultiplier, symbol2, barsPeriodTypeProp, barsPeriodValueProp));
 }
Exemplo n.º 9
0
 public Spread Spread(ISeries <double> input, double qty1, double qty2, bool useMultiplier, string symbol2, BarsPeriodType barsPeriodTypeProp, int barsPeriodValueProp)
 {
     if (cacheSpread != null)
     {
         for (int idx = 0; idx < cacheSpread.Length; idx++)
         {
             if (cacheSpread[idx] != null && cacheSpread[idx].Qty1 == qty1 && cacheSpread[idx].Qty2 == qty2 && cacheSpread[idx].UseMultiplier == useMultiplier && cacheSpread[idx].Symbol2 == symbol2 && cacheSpread[idx].BarsPeriodTypeProp == barsPeriodTypeProp && cacheSpread[idx].BarsPeriodValueProp == barsPeriodValueProp && cacheSpread[idx].EqualsInput(input))
             {
                 return(cacheSpread[idx]);
             }
         }
     }
     return(CacheIndicator <Spread>(new Spread()
     {
         Qty1 = qty1, Qty2 = qty2, UseMultiplier = useMultiplier, Symbol2 = symbol2, BarsPeriodTypeProp = barsPeriodTypeProp, BarsPeriodValueProp = barsPeriodValueProp
     }, input, ref cacheSpread));
 }
Exemplo n.º 10
0
 public Spread Spread(double qty1, double qty2, bool useMultiplier, string symbol2, BarsPeriodType barsPeriodTypeProp, int barsPeriodValueProp)
 {
     return(Spread(Input, qty1, qty2, useMultiplier, symbol2, barsPeriodTypeProp, barsPeriodValueProp));
 }