Beispiel #1
0
        public static decimal BarSMA(BarList bl, BarInterval bi, int barsback)
        {
            if (!bl.Has(barsback))
            {
                return(bl.Get(bl.Last).Close);
            }
            decimal sum = 0;

            for (int i = 0; i < barsback; i++)
            {
                try
                {
                    sum += bl.Get(bl.Last - i, bi).Close;
                }
                catch (ArgumentOutOfRangeException)
                {
                    // ArgumentOutOfRange is thrown when:
                    // (bars requested) > (bars you have)
                    // TO FIX:
                    // make sure you call bl.Has(NumOfBarsYouNeed)
                    // before you call bl.Get(BarNumIDontYetHave)
                }
            }
            return(sum / barsback);
        }
Beispiel #2
0
        public void Chart_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Delta == 0)
            {
                return;
            }
            BarInterval old = bl.Int;

            BarInterval [] v     = (BarInterval [])Enum.GetValues(typeof(BarInterval));
            int            biord = 0;

            for (int i = 0; i < v.Length; i++)
            {
                if (old == v[i])
                {
                    biord = i;
                }
            }

            if (e.Delta > 0)
            {
                bl.Int = (biord + 1 < v.Length) ? v[biord + 1] : v[0];
            }
            else
            {
                bl.Int = (biord - 1 < 0) ? v[v.Length - 1] : v[biord - 1];
            }
            if ((bl.Int != old) && bl.Has(1))
            {
                NewBarList(this.bl);
            }
        }
Beispiel #3
0
 public Bollinger(decimal sds, BarInterval bi, int lookback)
 {
     this.sds      = sds;
     this.bi       = bi;
     this.lookback = lookback;
     isbarcons     = true;
 }
Beispiel #4
0
 public BarList this[BarInterval interval]
 {
     get
     {
         return(this[(int)interval]);
     }
 }
Beispiel #5
0
        public override void Reset()
        {
            // enable prompting of system parameters to user,
            // so they do not have to recompile to change things
            ParamPrompt.Popup(this, true, _black);

            Int32 numOfInterval = 1;

            BarInterval[] intervaltypes  = new BarInterval[numOfInterval];
            Int32[]       intervalValues = new Int32[numOfInterval];
            for (Int32 i = 0; i < numOfInterval; i++)
            {
                intervaltypes[i]  = BarType;
                intervalValues[i] = NumItemPerBar;
            }

            _blt = new BarListTracker(intervalValues, intervaltypes);

            _blt.GotNewBar += new SymBarIntervalDelegate(blt_GotNewBar);

            GenericParamUpdateHelper.updateParam(this, GenericParameter, false);

            Hashtable TD_combinationInputParamTmp = new Hashtable();

            TD_combinationInputParamTmp["lookbackperiod"]     = _barsback;
            TD_combinationInputParamTmp["minmumsignallength"] = _barsback;
            _TD_combinationFromATSGlobalIndicator             = new ATSGlobalIndicatorPersonal.TD_combination();
            _TD_combinationFromATSGlobalIndicator.Param       = TD_combinationInputParamTmp;
            _TD_combinationFromATSGlobalIndicator.Initializatin();
            _isShutDown = false;
            TotalProfit = 0m;
            _pt.Clear();
        }
Beispiel #6
0
        /// <summary>
        /// Example: to get 15 minute bars,
        ///    interval = ChartInterval.Minute
        ///    period = 15
        /// </summary>
        /// <param name="market"></param>
        /// <param name="interval"></param>
        /// <param name="period"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate">Leave endDate = null for realtime (endDate = current date)</param>
        static public EZChartDataSeries MakeChartData(EZInstrument instrument, ezBarInterval barInterval, DateTime startDate, DateTime?endDate = null)
        {
            Market market = APIMain.MarketFromInstrument(instrument);

            // Load the data for the selected market.
            BarInterval     interval     = new BarInterval(APIConvert.ToChartInterval(barInterval.Interval), barInterval.Period);
            ChartDataSeries ctsChartData = new ChartDataSeries(market, interval, SessionTimeRange.Empty);

            var session = new ezSessionTimeRange();
            EZChartDataSeries chartData = new EZChartDataSeries(market.Description, barInterval, session);

            var chartThread = new ChartDataThread(ctsChartData, chartData, startDate, endDate);
            var thread      = new Thread(new ThreadStart(chartThread.Run));

            thread.Name = market.Description + ":" + barInterval;
            thread.Start();

            return(chartData);
            //dataPoints = new List<ezBarDataPoint>();

            /*foreach (HistoricalQuote hq in historical)
             * {
             *  ezBarDataPoint dp = new ezBarDataPoint(hq.Open, hq.High, hq.Low, hq.Close, 0, hq.Volume);
             *  dataPoints.Add(dp);
             * }*/
        }
Beispiel #7
0
 /// <summary>
 /// gets a specific bar in specified interval
 /// </summary>
 /// <param name="barnumber"></param>
 /// <param name="interval"></param>
 /// <param name="size"></param>
 /// <returns></returns>
 public Bar this[int barnumber, BarInterval interval, int size] {
     get { var idx = Gettypesizeidx(interval, size); if (idx < 0)
           {
               return(new BarImpl());
           }
           return(_intdata[idx].GetBar(barnumber, Symbol)); }
 }
Beispiel #8
0
        public void Chart_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Delta == 0)
            {
                return;
            }
            BarInterval old = bl.DefaultInterval;

            BarInterval [] v     = bl.Intervals;
            int            biord = 0;

            for (int i = 0; i < v.Length; i++)
            {
                if (old == v[i])
                {
                    biord = i;
                }
            }

            if (e.Delta > 0)
            {
                bl.DefaultInterval = (biord + 1 < v.Length) ? v[biord + 1] : v[0];
            }
            else
            {
                bl.DefaultInterval = (biord - 1 < 0) ? v[v.Length - 1] : v[biord - 1];
            }
            if ((bl.DefaultInterval != old) && bl.Has(1, bl.DefaultInterval))
            {
                Bars = this.bl;
            }
        }
        public void LoadHistoricalChartData(object chartIdentifier, DateTime startDate, DateTime endDate)
        {
            ChartIdentifier = chartIdentifier;
            StartDate       = startDate;
            EndDate         = endDate;

            Market market = chartIdentifier as Market;

            ezDateRange dateRangeRequested = new ezDateRange();
            ezDateRange dateRangeProcessed = new ezDateRange();

            // Start with an empty set of TradeBars.
            chartData.TradeBars.Clear();

            // Load the data for the selected market.
            BarInterval     interval     = new BarInterval(APIConvert.ToChartInterval(BarInterval.Interval), BarInterval.Period);
            ChartDataSeries ctsChartData = new ChartDataSeries(market, interval, SessionTimeRange.Empty);

            var session = new ezSessionTimeRange();

            /*EZChartDataSeries myChartData = new EZChartDataSeries(market.Description, BarInterval, session);
             * myChartData.DataLoadComplete += myChartData_DataLoadComplete;
             * myChartData.DataSeriesUpdated += myChartData_DataSeriesUpdated;*/

            var chartThread = new ChartDataThread(ctsChartData, chartData, startDate, endDate);

            var thread = new Thread(new ThreadStart(chartThread.Run));

            thread.Name = market.Description + ":" + BarInterval;
            thread.Start();


            //if (DataLoadComplete != null) DataLoadComplete(this, new ezDataLoadCompleteEventArgs(zDataLoadStatus.Success, dateRangeRequested, dateRangeProcessed));
        }
Beispiel #10
0
        public override string ToString()
        {
            var r            = string.Empty;
            var niceinterval = BarInterval.ToString();

            if (isCustomInterval)
            {
                niceinterval += "_" + CustomInterval.ToString("F0");
            }
            if (isExplictBarsBack)
            {
                if (isExplicitEnd)
                {
                    r = symbol + " " + niceinterval + " " + EndDate + " -> " + BarsBackExplicit;
                }
                else
                {
                    r = symbol + " " + niceinterval + "  -> " + BarsBackExplicit;
                }
            }
            else
            {
                r = symbol + " " + Interval + " " + StartDateTime + "->" + EndDateTime;
            }
            if (isIdValid)
            {
                r += " " + ID;
            }
            return(r);
        }
Beispiel #11
0
        public static int BarsBackFromDate(BarInterval interval, DateTime startdate, DateTime enddate)
        {
            double start2endseconds = enddate.Subtract(startdate).TotalSeconds;
            int    bars             = (int)((double)start2endseconds / (int)interval);

            return(bars);
        }
Beispiel #12
0
        /// <summary>
        /// converts integer array of intervals to BarIntervals... supplying custom interval for any unrecognized interval types.
        /// </summary>
        /// <param name="intervals"></param>
        /// <returns></returns>
        public static BarInterval[] Int2BarInterval(int[] intervals)
        {
            List <BarInterval> o = new List <BarInterval>(); foreach (int i in intervals)

            {
                try { BarInterval bi = (BarInterval)i; o.Add(bi); } catch (Exception) { o.Add(BarInterval.CustomTime); }
            }
            return(o.ToArray());
        }
Beispiel #13
0
        public override void Reset()
        {
            // enable prompting of system parameters to user,
            // so they do not have to recompile to change things
            ParamPrompt.Popup(this, true, _black);

            Int32 numOfInterval = 1;

            BarInterval[] intervaltypes  = new BarInterval[numOfInterval];
            Int32[]       intervalValues = new Int32[numOfInterval];
            for (Int32 i = 0; i < numOfInterval; i++)
            {
                intervaltypes[i]  = BarType;
                intervalValues[i] = NumItemPerBar;
            }

            _blt = new BarListTracker(intervalValues, intervaltypes);

            _blt.GotNewBar += new SymBarIntervalDelegate(blt_GotNewBar);

            #region <在策略中实现从外部文件读取参数>
            //传递优化参数或系统参数
            GenericParamUpdateHelper.updateParam(this, GenericParameter, false);
            if (File.Exists(SMAExternalParam))
            {
                DataTable    paramTableInput = null;
                StreamReader sr = new StreamReader(SMAExternalParam, Encoding.GetEncoding("GB18030"));
                paramTableInput = CsvParser.Parse(sr, true);
                sr.Close();
                foreach (DataRow dr in paramTableInput.Rows)
                {
                    if (paramTableInput.Columns.Contains("key") && paramTableInput.Columns.Contains("value"))
                    {
                        string tmpKey   = dr["key"].ToString();
                        string tmpValue = dr["value"].ToString();
                        if (tmpKey == "genericparam")
                        {
                            GenericParameter = tmpValue;
                        }
                        //传递外部参数
                        GenericParamUpdateHelper.updateParam(this, GenericParameter, false);
                    }
                }
            }
            #endregion

            Hashtable SMAInputParamTmp = new Hashtable();
            SMAInputParamTmp["lookbackperiod"]     = _barsback;
            SMAInputParamTmp["minmumsignallength"] = 1;
            _SMAFromATSGlobalIndicator             = new ATSGlobalIndicatorPersonal.SMA();
            _SMAFromATSGlobalIndicator.Param       = SMAInputParamTmp;
            _SMAFromATSGlobalIndicator.Initializatin();
            _isShutDown = false;
            TotalProfit = 0m;
            _pt.Clear();
        }
Beispiel #14
0
        public int IntervalCount(BarInterval interval)
        {
            var idx = Gettypesizeidx(interval, (int)interval);

            if (idx < 0)
            {
                return(-1);
            }
            return(_intdata[idx].Count());
        }
Beispiel #15
0
        /// <summary>
        /// returns true if barslist has at least minimum # of bars for specified interval
        /// </summary>
        /// <param name="minBars"></param>
        /// <param name="interval"></param>
        /// <returns></returns>
        public bool Has(int minBars, BarInterval interval, int size)
        {
            var idx = Gettypesizeidx(interval, size);

            if (idx < 0)
            {
                return(false);
            }
            return(_intdata[idx].Count() >= minBars);
        }
Beispiel #16
0
        /// <summary>
        /// gets count for given bar interval
        /// </summary>
        /// <param name="interval"></param>
        /// <returns></returns>
        public int IntervalCount(BarInterval interval, int size)
        {
            var idx = Gettypesizeidx(interval, size);

            // interval not in this tracker
            if (idx < 0)
            {
                return(-1);
            }
            return(_intdata[idx].Count());
        }
        public override void Reset()     //对于新的一天来计算的时候要进行重置
        {
            // enable prompting of system parameters to user,
            // so they do not have to recompile to change things
            ParamPrompt.Popup(this, true, _black);

            Int32 numOfInterval = 1;

            BarInterval[] intervaltypes  = new BarInterval[numOfInterval];
            Int32[]       intervalValues = new Int32[numOfInterval];
            for (Int32 i = 0; i < numOfInterval; i++)
            {
                intervaltypes[i]  = BarType;
                intervalValues[i] = NumItemPerBar;
            }

            _blt = new BarListTracker(intervalValues, intervaltypes);

            _blt.GotNewBar += new SymBarIntervalDelegate(blt_GotNewBar);

            GenericParamUpdateHelper.updateParam(this, GenericParameter, false);

            Hashtable ShortSMAInputParamTmp = new Hashtable();   //对于SMA indicator进行更新,用今天重新计算的SMA,而不用昨天
            Hashtable LongSMAInputParamTmp  = new Hashtable();

            ShortSMAInputParamTmp["lookbackperiod"]     = _shortbarsback;
            LongSMAInputParamTmp["lookbackperiod"]      = _shortbarsback + _incrementbarsback;
            ShortSMAInputParamTmp["minmumsignallength"] = _shortbarsback;
            LongSMAInputParamTmp["minmumsignallength"]  = _shortbarsback + _incrementbarsback;
            _ShortSMAFromATSGlobalIndicator             = new ATSGlobalIndicatorPersonal.SMA();
            _LongSMAFromATSGlobalIndicator        = new ATSGlobalIndicatorPersonal.SMA();
            _ShortSMAFromATSGlobalIndicator.Param = ShortSMAInputParamTmp;
            _LongSMAFromATSGlobalIndicator.Param  = LongSMAInputParamTmp;
            _ShortSMAFromATSGlobalIndicator.Initializatin();
            _LongSMAFromATSGlobalIndicator.Initializatin();
            // reset the parameters of ATR
            Hashtable ATRInputParamTmp = new Hashtable();

            ATRInputParamTmp["lookbackperiod"]     = _shortbarsback;
            ATRInputParamTmp["minmumsignallength"] = 14;
            _ATRFromATSGlobalIndicator             = new ATSGlobalIndicatorPersonal.ATR();
            _ATRFromATSGlobalIndicator.Param       = ATRInputParamTmp;
            _ATRFromATSGlobalIndicator.Initializatin();
            //---------------------------------------------------------
            _isShutDown = false;
            TotalProfit = 0m;
            _pt.Clear();
            if (_shortbarsback != 34 || _incrementbarsback != 84)
            {
                Console.WriteLine("yo hey");
            }
        }
Beispiel #18
0
 /// <summary>
 /// Adds the tick to the barlist, creates other bars if needed.
 /// </summary>
 /// <param name="t">The tick to add.</param>
 public bool newTick(Tick t)
 {
     if ((t.sym != Symbol) && (Symbol == ""))
     {
         this.sym = t.sym; // if we have no symbol, take ticks symbol
     }
     else if ((t.sym != Symbol) && (Symbol != ""))
     {
         return(NewBar); //don't process ticks for other stocks
     }
     if (!t.isTrade)
     {
         return(NewBar);            // don't process quotes
     }
     // if we have no bars, add bar with a tick
     if (Count == 0)
     {
         minlist.Add(new Bar(BarInterval.Minute));
         fivelist.Add(new Bar(BarInterval.FiveMin));
         fifteenlist.Add(new Bar(BarInterval.FifteenMin));
         hourlist.Add(new Bar(BarInterval.Hour));
         daylist.Add(new Bar(BarInterval.Day));
         minlist[minlist.Count - 1].newTick(t);
         fivelist[fivelist.Count - 1].newTick(t);
         fifteenlist[fifteenlist.Count - 1].newTick(t);
         hourlist[hourlist.Count - 1].newTick(t);
         daylist[daylist.Count - 1].newTick(t);
     }
     else
     {
         // if we have at least a bar, get most current bar
         BarInterval saveint = Int;
         foreach (BarInterval inv in Enum.GetValues(typeof(BarInterval)))
         {
             Int = inv;
             Bar cbar = RecentBar;
             // if tick fits in current bar, then we're done for this interval
             if (cbar.newTick(t))
             {
                 continue;
             }
             else
             {
                 DefaultBar.Add(new Bar(Int)); // otherwise we need another bar in this interval
                 DefaultBar[DefaultBar.Count - 1].newTick(t);
             }
         }
         Int = saveint;
     }
     return(NewBar);
 }
Beispiel #19
0
        public void AddInterval(int interval, BarInterval barIntervalType)
        {
            // set default interval to first one
            if (_intdata.Count == 0)
            {
                _defaultint     = (int)barIntervalType;
                _defaultcustint = interval;
                _curintervalidx = 0;
            }

            //Check if we are adding a known interval size, twice
            if (_intdata.Count(x => x.IntSize == interval) > 0)
            {
                return;
            }

            //Item to add
            IntervalData newstream;

            // save index to this size for the interval
            switch (barIntervalType)
            {
            case BarInterval.CustomTicks:
                newstream = new TickIntervalData(interval);
                break;

            case BarInterval.CustomTime:
                newstream = new TimeIntervalData(interval);
                break;

            default:
                newstream = new TimeIntervalData(interval);
                break;
            }

            //Add new item
            _intdata.Add(newstream);

            // subscribe to bar events
            newstream.NewBar += BarListImpl_NewBar;

            // index the pair
            _typesize2Idx.addindex((int)barIntervalType + interval.ToString(), _intdata.Count - 1);

            // add known interval
            if (!_custintervals.Contains(interval))
            {
                _custintervals.Add(interval);
            }
        }
Beispiel #20
0
        /// <summary>
        /// find the bar # that matches a given time
        /// </summary>
        /// <param name="bl"></param>
        /// <param name="time"></param>
        /// <param name="bint"></param>
        /// <returns></returns>
        public static int GetNearestIntraBar(BarList bl, int time, BarInterval bint)
        {
            long             barid = TimeIntervalData.getbarid(time, bl.RecentBar.Bardate, (int)bint);
            BarListImpl      bli   = (BarListImpl)bl;
            TimeIntervalData tid   = (TimeIntervalData)bli._intdata[bli._intdataidx[(int)bint]];

            for (int i = 0; i < tid.Count(); i++)
            {
                if (tid.ids[i] == barid)
                {
                    return(i);
                }
            }
            return(-1);
        }
        /// <summary>
        /// Initialize "_blt", the bar list tracker
        /// </summary>
        void Initialize_blt()
        {
            Int32 numOfInterval = 1;

            BarInterval[] intervaltypes  = new BarInterval[numOfInterval];
            Int32[]       intervalValues = new Int32[numOfInterval];
            for (Int32 i = 0; i < numOfInterval; i++)
            {
                intervaltypes[i]  = BarType;
                intervalValues[i] = NumItemPerBar;
            }
            _blt = new BarListTracker(intervalValues, intervaltypes);
            // Delegate handler when we got new bar
            _blt.GotNewBar += new SymBarIntervalDelegate(blt_GotNewBar);
        }
Beispiel #22
0
        /// <summary>
        /// Gets the specified bar number, with the specified bar interval.
        /// </summary>
        /// <param name="i">The barnumber.</param>
        /// <param name="barinterval">The barinterval.</param>
        /// <returns></returns>
        public Bar Get(int i, BarInterval barinterval)
        {
            List <Bar> bars = new List <Bar>();

            switch (barinterval)
            {
            case BarInterval.FiveMin: bars = fivelist; break;

            case BarInterval.Minute: bars = minlist; break;

            case BarInterval.FifteenMin: bars = fifteenlist; break;

            case BarInterval.Hour: bars = hourlist; break;

            case BarInterval.Day: bars = daylist; break;
            }
            return(bars[i]);
        }
Beispiel #23
0
        public Image DrawBarList(BarListImpl bl, BarInterval bi,Color up, Color down)
        {
            bl.DefaultInterval = bi;
            Bitmap sl = new Bitmap(w, h);
            Graphics g = Graphics.FromImage(sl);
            high = Calc.HH(bl);
            low = Calc.LL(bl);
            decimal range = high - low;
            int pixperdollar = range != 0 ? (int)(h / range) : 0;
            int pixperbar = bl.Count != 0 ? (int)(w / (decimal)bl.Count) : 0;
            for (int i = 0; i< bl.Count; i++)
            {
                Bar b = bl[i,bi];
                Pen p = new Pen(b.Close>=b.Open ? up : down);
                g.DrawLine(p, i * pixperbar, h-(int)((b.Low - low) * pixperdollar), i * pixperbar, h-(int)((b.High - low) * pixperdollar));
            }
            return sl;

        }
Beispiel #24
0
        public Image DrawBarList(BarListImpl bl, BarInterval bi, Color up, Color down)
        {
            bl.DefaultInterval = bi;
            Bitmap   sl = new Bitmap(w, h);
            Graphics g  = Graphics.FromImage(sl);

            high = Calc.HH(bl);
            low  = Calc.LL(bl);
            decimal range        = high - low;
            int     pixperdollar = range != 0 ? (int)(h / range) : 0;
            int     pixperbar    = bl.Count != 0 ? (int)(w / (decimal)bl.Count) : 0;

            for (int i = 0; i < bl.Count; i++)
            {
                Bar b = bl[i, bi];
                Pen p = new Pen(b.Close >= b.Open ? up : down);
                g.DrawLine(p, i * pixperbar, h - (int)((b.Low - low) * pixperdollar), i * pixperbar, h - (int)((b.High - low) * pixperdollar));
            }
            return(sl);
        }
Beispiel #25
0
 /// <summary>
 /// creates a barlist with array of custom intervals
 /// </summary>
 /// <param name="symbol"></param>
 /// <param name="intervals"></param>
 public BarListImpl(string symbol, int[] intervals, BarInterval[] types)
 {            // set symbol
     _sym = symbol;
     // set intervals requested
     _availint = intervals;
     // size length of interval data to # of requested intervals
     _intdata = new IntervalData[intervals.Length];
     // create interval data object for each interval
     for (int i = 0; i < intervals.Length; i++)
     {
         try
         {
             // save index to this data for the interval
             _intdataidx.Add(intervals[i], i);
         }
         // if key was already present, already had this interval
         catch (Exception) { continue; }
         // set default interval to first one
         if (i == 0)
             _defaultint = intervals[0];
         // create data object appropriate for type of interval
         switch (types[i])
         {
             case BarInterval.CustomTicks:
                 _intdata[i] = new TickIntervalData(intervals[i]);
                 break;
             case BarInterval.CustomVol:
                 _intdata[i] = new VolIntervalData(intervals[i]);
                 break;
             default:
                 _intdata[i] = new TimeIntervalData(intervals[i]);
                 break;
         }
     
         // subscribe to bar events
         _intdata[i].NewBar += new SymBarIntervalDelegate(BarListImpl_NewBar);
     }
 }
Beispiel #26
0
 public static int GetNearestIntraBar(BarList bl, int time, BarInterval bint, DebugDelegate debug)
 {
     try
     {
         long             barid = TimeIntervalData.getbarid(time, bl.RecentBar.Bardate, (int)bint);
         BarListImpl      bli   = (BarListImpl)bl;
         TimeIntervalData tid   = (TimeIntervalData)bli._intdata[bli._intdataidx[(int)bint]];
         for (int i = 0; i < tid.Count(); i++)
         {
             if (tid.ids[i] == barid)
             {
                 return(i);
             }
         }
     }
     catch (Exception ex)
     {
         if (debug != null)
         {
             debug("error getting nearest bar from: " + bl.Symbol + " at: " + time + " for: " + bint + " error: " + ex.Message + ex.StackTrace);
         }
     }
     return(-1);
 }
Beispiel #27
0
        public bool SetDefaultInterval(BarInterval type, int size)
        {
            bool found = false;

            for (int i = 0; i < _intervaltypes.Length; i++)
            {
                var it = (BarInterval)_intervaltypes[i];
                for (int x = 0; x < _custintervals.Count; x++)
                {
                    var ints = _custintervals[x];
                    if ((it == type) && (size == ints))
                    {
                        _curintervalidx = x;
                        return(true);
                    }
                }
            }

            //interval size is unkown thus add it
            AddInterval(size, type);

            //Return false
            return(found);
        }
Beispiel #28
0
 /// <summary>
 /// creates a barlist with requested interval.  symbol will be defined by first tick received
 /// </summary>
 /// <param name="interval"></param>
 public BarListImpl(BarInterval interval)
     : this(string.Empty, new BarInterval[] { interval })
 {
 }
Beispiel #29
0
 /// <summary>
 /// creates a barlist with custom interval and a custom type (tick/vol)
 /// </summary>
 /// <param name="symbol"></param>
 /// <param name="interval"></param>
 /// <param name="type"></param>
 public BarListImpl(string symbol, int interval, BarInterval type)
     : this(symbol, new int[] { interval }, new BarInterval[] { type })
 {
 }
Beispiel #30
0
 public static int BarsBackFromDate(BarInterval interval, int startdate, int enddate) { return BarsBackFromDate(interval, Util.ToDateTime(startdate, 0), Util.ToDateTime(enddate,Util.ToTLTime())); }
Beispiel #31
0
 public static int BarsBackFromDate(BarInterval interval, int startdate, int enddate)
 {
     return(BarsBackFromDate(interval, Util.ToDateTime(startdate, 0), Util.ToDateTime(enddate, Util.ToTLTime())));
 }
Beispiel #32
0
 public static DateTime DateFromBarsBack(int barsback, BarInterval intv, DateTime enddate)
 {
     return(DateFromBarsBack(barsback, (int)intv, enddate));
 }
Beispiel #33
0
 /// <summary>
 /// bar request for symbol and interval from previous date through present time
 /// </summary>
 /// <param name="symbol"></param>
 /// <param name="interval"></param>
 /// <param name="startdate"></param>
 /// <returns></returns>
 public static string BuildBarRequest(string symbol, BarInterval interval, int startdate)
 {
     return(BuildBarRequest(new BarRequest(symbol, (int)interval, startdate, 0, Util.ToTLDate(), Util.ToTLTime(), string.Empty)));
 }
Beispiel #34
0
 /// <summary>
 /// find the bar # that matches a given time
 /// </summary>
 /// <param name="bl"></param>
 /// <param name="time"></param>
 /// <param name="bint"></param>
 /// <returns></returns>
 public static int GetNearestIntraBar(BarList bl, int time, BarInterval bint) { return GetNearestIntraBar(bl, time, bint, null); }
Beispiel #35
0
 public int GetBarNumber(BarList bl, BarInterval bint)
 {
     return BarListImpl.GetNearestIntraBar(bl, Time, bint);
 }
Beispiel #36
0
 public int[] Date(BarInterval interval)
 {
     return _intdata[_intdataidx[(int)interval]].date().ToArray();
 }
Beispiel #37
0
 public BarImpl(BarInterval tu) 
 {
     units = (int)tu;
 }
Beispiel #38
0
 public Image DrawBarListBlack(BarListImpl bl, BarInterval bi) { return DrawBarList(bl, bi, Color.Black,Color.Black); }
Beispiel #39
0
 public decimal[] High(BarInterval interval)
 {
     return _intdata[_intdataidx[(int)interval]].high().ToArray();
 }
Beispiel #40
0
 public static int GetNearestIntraBar(BarList bl, int time, BarInterval bint,DebugDelegate debug)
 {
     try
     {
         long barid = TimeIntervalData.getbarid(time, bl.RecentBar.Bardate, (int)bint);
         BarListImpl bli = (BarListImpl)bl;
         TimeIntervalData tid = (TimeIntervalData)bli._intdata[bli._intdataidx[(int)bint]];
         for (int i = 0; i < tid.Count(); i++)
             if (tid.ids[i] == barid)
                 return i;
     }
     catch (Exception ex)
     {
         if (debug != null)
             debug("error getting nearest bar from: " + bl.Symbol + " at: " + time + " for: " + bint + " error: " + ex.Message + ex.StackTrace);
     }
     return -1;
 }
Beispiel #41
0
 public decimal[] Close(BarInterval interval)
 {
     return _intdata[_intdataidx[(int)interval]].close().ToArray();
 }
Beispiel #42
0
 public static int BarsBackFromDate(BarInterval interval, DateTime startdate, DateTime enddate)
 {
     double start2endseconds = enddate.Subtract(startdate).TotalSeconds;
     int bars = (int)((double)start2endseconds / (int)interval);
     return bars;
 }
Beispiel #43
0
 /// <summary>
 /// gets count of bars in specified interval
 /// </summary>
 /// <param name="interval"></param>
 /// <returns></returns>
 public int CountInterval(BarInterval interval)
 {
     return _intdata[_intdataidx[(int)interval]].Count();
 }
Beispiel #44
0
 public static DateTime DateFromBarsBack(int barsback, BarInterval intv, DateTime enddate) { return DateFromBarsBack(barsback, (int)intv, enddate); }
Beispiel #45
0
 /// <summary>
 /// returns true if barslist has at least minimum # of bars for specified interval
 /// </summary>
 /// <param name="minBars"></param>
 /// <param name="interval"></param>
 /// <returns></returns>
 public bool Has(int minBars, BarInterval interval)
 {
     return minBars<=CountInterval(interval);
 }
Beispiel #46
0
 /// <summary>
 /// gets most recent bar from specified interval
 /// </summary>
 /// <param name="interval"></param>
 /// <returns></returns>
 public Bar RecentBarInterval(BarInterval interval)
 {
     return this[LastInterval(interval), interval];
 }
Beispiel #47
0
 /// <summary>
 /// gets a specific bar in specified interval
 /// </summary>
 /// <param name="barnumber"></param>
 /// <param name="interval"></param>
 /// <returns></returns>
 public Bar this[int barnumber, BarInterval interval]
 {
     get { return _intdata[_intdataidx[(int)interval]].GetBar(barnumber,Symbol); }
 }
Beispiel #48
0
 /// <summary>
 /// converts array of BarIntervals to integer intervals.
 /// </summary>
 /// <param name="ints"></param>
 /// <returns></returns>
 public static int[] BarInterval2Int(BarInterval[] ints)
 {
     List<int> o = new List<int>(); foreach (BarInterval bi in ints) o.Add((int)bi); return o.ToArray();
 }
Beispiel #49
0
 public Bollinger(decimal sds, BarInterval bi, int lookback)
 { this.sds = sds;
 this.bi = bi;
 this.lookback = lookback;
 isbarcons = true;
 }
Beispiel #50
0
 /// <summary>
 /// creates a barlist with requested interval and defined symbol
 /// </summary>
 /// <param name="interval"></param>
 /// <param name="symbol"></param>
 public BarListImpl(BarInterval interval, string symbol)
     : this(symbol, new BarInterval[] { interval })
 {
 }
Beispiel #51
0
 public static DateTime DateFromBarsBack(int barsback, BarInterval intv)
 {
     return(DateFromBarsBack(barsback, intv, DateTime.Now));
 }
Beispiel #52
0
 /// <summary>
 /// create barlist from a tik file using given intervals/types
 /// </summary>
 /// <param name="filename"></param>
 /// <param name="uselast"></param>
 /// <param name="usebid"></param>
 /// <param name="intervals"></param>
 /// <param name="types"></param>
 /// <returns></returns>
 public static BarList FromTIK(string filename, bool uselast, bool usebid, int[] intervals, BarInterval[] types)
 {
     _uselast = uselast;
     _usebid = usebid;
     SecurityImpl s = SecurityImpl.FromTIK(filename);
     s.HistSource.gotTick += new TickDelegate(HistSource_gotTick);
     _fromepf = new BarListImpl(s.Symbol,intervals,types);
     while (s.HistSource.NextTick()) ;
     return _fromepf;
 }
Beispiel #53
0
 public static int BarsBackFromDate(BarInterval interval, int startdate)
 {
     return(BarsBackFromDate(interval, startdate, Util.ToTLDate()));
 }
Beispiel #54
0
 /// <summary>
 /// find the bar # that matches a given time
 /// </summary>
 /// <param name="bl"></param>
 /// <param name="time"></param>
 /// <param name="bint"></param>
 /// <returns></returns>
 public static int GetNearestIntraBar(BarList bl, int time, BarInterval bint)
 {
     long barid = TimeIntervalData.getbarid(time, bl.RecentBar.Bardate, (int)bint);
     BarListImpl bli = (BarListImpl)bl;
     TimeIntervalData tid = (TimeIntervalData)bli._intdata[bli._intdataidx[(int)bint]];
     for (int i = 0; i < tid.Count(); i++)
         if (tid.ids[i] == barid)
             return i;
     return -1;
 }
Beispiel #55
0
 /// <summary>
 /// creates barlist with specified symbol and requested intervals
 /// </summary>
 /// <param name="symbol"></param>
 /// <param name="intervals"></param>
 public BarListImpl(string symbol, BarInterval[] intervals)
     : this(symbol,BarInterval2Int(intervals), intervals)
 {
 }
Beispiel #56
0
 public static int BarsBackFromDate(BarInterval interval, int startdate) { return BarsBackFromDate(interval, startdate, Util.ToTLDate()); }
Beispiel #57
0
 public Image DrawBarList(BarListImpl bl, BarInterval bi) { return DrawBarList(bl, bi, Color.Green, Color.Red); }
Beispiel #58
0
 public decimal[] Low(BarInterval interval)
 {
     return _intdata[_intdataidx[(int)interval]].low().ToArray();
 }
Beispiel #59
0
 /// <summary>
 /// gets the last bar in specified interval
 /// </summary>
 /// <param name="interval"></param>
 /// <returns></returns>
 public int LastInterval(BarInterval interval)
 {
     return _intdata[_intdataidx[(int)interval]].Last();
 }
Beispiel #60
0
 public decimal[] Open(BarInterval interval)
 {
     return _intdata[_intdataidx[(int)interval]].open().ToArray();
 }