Exemple #1
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);
        }
Exemple #2
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[_availint.Length];
            // create interval data object for each interval
            for (int i = 0; i < _availint.Length; i++)
            {
                try
                {
                    // save index to this data for the interval
                    _intdataidx.Add(_availint[i], i);
                }
                // if key was already present, already had this interval
                catch (Exception) { continue; }
                // set default interval to first one
                if (i == 0)
                {
                    _defaultint = _availint[0];
                }
                // create data object appropriate for type of interval
                switch (types[i])
                {
                case BarInterval.CustomTicks:
                    _intdata[i] = new TickIntervalData(_availint[i]);
                    break;

                case BarInterval.CustomVol:
                    _intdata[i] = new VolIntervalData(_availint[i]);
                    break;

                default:
                    _intdata[i] = new TimeIntervalData(_availint[i]);
                    break;
                }

                // subscribe to bar events
                _intdata[i].NewBar += new SymBarIntervalDelegate(BarListImpl_NewBar);
            }
        }
Exemple #3
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);
 }
Exemple #4
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[_availint.Length];
            // create interval data object for each interval
            for (int i = 0; i < _availint.Length; i++)
            {
                try
                {
                    // save index to this data for the interval
                    _intdataidx.Add(_availint[i], i);
                }
                // if key was already present, already had this interval
                catch (Exception) { continue; }
                // set default interval to first one
                if (i == 0)
                    _defaultint = _availint[0];
                // create data object appropriate for type of interval
                switch (types[i])
                {
                    case BarInterval.CustomTicks:
                        _intdata[i] = new TickIntervalData(_availint[i]);
                        break;
                    case BarInterval.CustomVol:
                        _intdata[i] = new VolIntervalData(_availint[i]);
                        break;
                    default:
                        _intdata[i] = new TimeIntervalData(_availint[i]);
                        break;
                }

                // subscribe to bar events
                _intdata[i].NewBar += new SymBarIntervalDelegate(BarListImpl_NewBar);
            }
        }
Exemple #5
0
        /// <summary>
        /// creates a barlist with array of custom intervals
        /// </summary>
        /// <param name="symbol"></param>
        /// <param name="custintervals"></param>
        public BarListImpl(string symbol, int[] custintervals, BarInterval[] types)
        {            // set symbol
            _sym = symbol;
            _custintervals = custintervals;
            // set intervals requested
            _intervaltypes = BarInterval2Int(types);
            // size length of interval data to # of requested intervals
            _intdata = new IntervalData[_intervaltypes.Length];
            // index the pairs
            typesize2idx.Clear();
            // create interval data object for each interval
            for (int i = 0; i < _intervaltypes.Length; i++)
            {
                // set default interval to first one
                if (i == 0)
                {
                    _defaultint = _intervaltypes[0];
                    _defaultcustint = _custintervals[0];
                    curintervalidx = 0;
                }

                // save index to this size for the interval
                switch (types[i])
                {
                    case BarInterval.CustomTicks:
                        _intdata[i] = new TickIntervalData(_custintervals[i]);
                        break;
                    case BarInterval.CustomVol:
                        _intdata[i] = new VolIntervalData(_custintervals[i]);
                        break;
                    case BarInterval.CustomTime:
                        _intdata[i] = new TimeIntervalData(_custintervals[i]);
                        break;
                    default:
                        _intdata[i] = new TimeIntervalData(_intervaltypes[i]);
                        break;
                }

            
                // subscribe to bar events
                _intdata[i].NewBar += new SymBarIntervalDelegate(BarListImpl_NewBar);

                // index the pair
                typesize2idx.addindex(_intervaltypes[i].ToString() + _custintervals[i].ToString(), i);
            }
        }