Example #1
0
        public static zChartInterval FromChartInterval(ChartInterval chartInterval)
        {
            string         sInterval = chartInterval.ToString();
            zChartInterval interval  = (zChartInterval)Enum.Parse(typeof(zChartInterval), sInterval, true);

            return(interval);
        }
Example #2
0
        public static ChartInterval ToChartInterval(zChartInterval chartInterval)
        {
            string        sInterval = chartInterval.ToString();
            ChartInterval interval  = (ChartInterval)Enum.Parse(typeof(ChartInterval), sInterval, true);

            return(interval);
        }
Example #3
0
        private void btnChartMarket_Click(object sender, EventArgs e)
        {
            WinForms.SetWaitCursor(true);

            try
            {
                zChartInterval interval = (zChartInterval)Enum.Parse(typeof(zChartInterval), comboChartInterval.Text);

                EZInstrument instrument = APIMain.Instance.ShowInstrumentDialog();

                if (instrument == null)
                {
                    status.Text = "No instrument selected.";
                }
                else
                {
                    status.Text = "*** LOADING CHART ***";
                    RequestChartData(instrument, interval, Convert.ToInt32(numericPeriod.Value));
                }
            }
            finally
            {
                WinForms.SetWaitCursor(false);
            }
        }
        private void RequestChartData(EZInstrument instrument, zChartInterval interval, int period)
        {
            ChartDataForm chartForm;

            // Set EndDate to the current trading date.
            //DateTime dtEndDate = selectedContract.GetTradeDate(DateTime.Now);
            DateTime dtEndDate = DateTime.Now;

            DateTime dtStartDate;

            // Pick a different start date depending on if we are viewing DAYS, HOURS, MINUTES, etc...
            if (interval == zChartInterval.Week)
            {
                dtStartDate = dtEndDate.AddMonths(-16);
            }
            else if (interval == zChartInterval.Day)
            {
                dtStartDate = dtEndDate.AddMonths(-5);
            }
            else if (interval == zChartInterval.Minute)
            {
                dtStartDate = dtEndDate;
                if (period <= 15)   // 15 minute (or less) bars
                {
                    dtStartDate = dtStartDate.AddTradeHours(-4);
                }
                else                // more than 15 minute bars
                {
                    dtStartDate = dtStartDate.AddTradeDays(-2);
                }
            }
            else
            {
                // Anything we haven't covered, we'll load a couple days (not ideal - needs to be improved).
                dtStartDate = dtEndDate;
                dtStartDate = dtStartDate.AddTradeDays(-3);

                /*// This little loop here will ensure that we load the previous trade date as well as today and will account for weekends
                 * // and holidays.
                 * while ((selectedContract.GetTradeDate(dtStartDate) == dtEndDate))
                 * {
                 *  dtStartDate = dtStartDate.AddDays(-1);
                 * }*/
            }

            // Create a BarInterval object to tell the API what bar interval we want.
            // So for example, if we wanted a 15 minute bar, we would do:  New ezBarInterval(zChartDataType.Minute, 15)
            ezBarInterval ezbi = new ezBarInterval(interval, period);

            IChartDataProvider provider = new ChartDataProviderCTS(instrument.Name + " : " + ezbi, ezbi, ezSessionTimeRange.Empty);

            chartForm = new ChartDataForm(provider);
            WinForms.SetWaitCursor(true);
            //provider.LoadHistoricalChartData(APIMain.MarketFromInstrument(instrument), dtStartDate, dtEndDate);
            provider.LoadRealTimeChartData(APIMain.MarketFromInstrument(instrument), dtStartDate);

            chartForm.Show();
        }
Example #5
0
        private void RequestChartData(EZInstrument instrument, zChartInterval interval, int period)
        {
            // Set EndDate to the current trading date.
            //DateTime dtEndDate = selectedContract.GetTradeDate(DateTime.Now);
            DateTime dtEndDate = DateTime.Now;

            DateTime       dtStartDate;
            zChartInterval enBarInterval = zChartInterval.Hour;

            if (interval == zChartInterval.Day)
            {
                enBarInterval = zChartInterval.Day;

                // User select Day bars, load a few months of them.
                dtStartDate = dtEndDate.AddMonths(-3);
            }
            else
            {
                enBarInterval = interval;

                // User selected non-Day bars (Hour, Minute, etc.), load a couple of days of them.
                dtStartDate = dtEndDate;
                dtStartDate = dtStartDate.AddDays(-3);

                /*// This little loop here will ensure that we load the previous trade date as well as today and will account for weekends
                 * // and holidays.
                 * while ((selectedContract.GetTradeDate(dtStartDate) == dtEndDate))
                 * {
                 *  dtStartDate = dtStartDate.AddDays(-1);
                 * }*/
            }

            // Create a BarInterval object to tell the API what bar interval we want.
            // So for example, if we wanted a 15 minute bar, we would do:  New ezBarInterval(zChartDataType.Minute, 15)
            ezBarInterval oBarIntvl = new ezBarInterval(enBarInterval, period);

            string             chartName = instrument.Name + " : " + oBarIntvl;
            IChartDataProvider provider  = new ChartDataProviderCTS(chartName, oBarIntvl, ezSessionTimeRange.Empty);

            if (LoadingNewChart != null)
            {
                LoadingNewChart(provider);
            }
            this.SetChartDataProvider(provider);
            WinForms.SetWaitCursor(true);
            provider.LoadHistoricalChartData(APIMain.MarketFromInstrument(instrument), dtStartDate, dtEndDate);
        }
Example #6
0
        public override void UpdateProviderFromPropertyValues()
        {
            //selectedMarketData = prop["QuoteItem"];
            ezInstrumentKey instrumentKey = APIFactory.InstrumentKeyFromString(prop["InstrumentKey"]);

            // Get historical data for 1-hour "bars".
            EZInstrument   instrument = APIMain.InstrumentFromKey(instrumentKey);
            zChartInterval interval   = zChartInterval.Hour;
            int            period     = 1;

            // TODO analyze different time periods (ex: different hours of the trading session) to
            // get a better "AverageVolumePerTimePeriod" calculation.
            EZChartDataSeries historicalData = api.RequestHistoricalData(instrument, interval, period);

            if (historicalData == null)
            {
                averageVolumePerTimePeriod = prop["AverageVolumePerTimePeriod"] ?? 0;
                timePeriodLength           = prop["TimePeriodLengthMinutes"] ?? 0.0;
            }
            else
            {
                int totalVolume = 0;
                int volumeCount = 0;
                foreach (ezBarDataPoint dp in historicalData.TradeBars)
                {
                    totalVolume += dp.Volume;
                    ++volumeCount;
                }
                double averageVolumePerHour = (double)totalVolume / (double)volumeCount;

                timePeriodLength           = 5.0; // five minutes
                averageVolumePerTimePeriod = (int)Math.Round(averageVolumePerHour / 20.0);
            }

            currentInstrument = APIMain.InstrumentFromKey(instrumentKey);
            //api.SubscribeToInstrument(instrument.Key);
            api.OnInsideMarketUpdate += api_OnInsideMarketUpdate;
            api_OnInsideMarketUpdate(currentInstrument);
        }
 public ezBarInterval(zChartInterval interval, int period)
 {
     this.interval = interval;
     this.period   = period;
 }