public static zChartInterval FromChartInterval(ChartInterval chartInterval) { string sInterval = chartInterval.ToString(); zChartInterval interval = (zChartInterval)Enum.Parse(typeof(zChartInterval), sInterval, true); return(interval); }
public static ChartInterval ToChartInterval(zChartInterval chartInterval) { string sInterval = chartInterval.ToString(); ChartInterval interval = (ChartInterval)Enum.Parse(typeof(ChartInterval), sInterval, true); return(interval); }
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(); }
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); }
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; }