C# 如何将MS图表X轴更改为日期时间
我有一个图表,显示了最新的1000支蜡烛(Binance API限制)。我使用以下方法获取图表数据:C# 如何将MS图表X轴更改为日期时间,c#,datetime,charts,binance,C#,Datetime,Charts,Binance,我有一个图表,显示了最新的1000支蜡烛(Binance API限制)。我使用以下方法获取图表数据: BinanceClient client = new BinanceClient(); var candles = client.Spot.Market.GetKlines(symbol: "BTCUSDT", interval: (Binance.Net.Enums.KlineInterval)inter, startTime: start, endTime
BinanceClient client = new BinanceClient();
var candles = client.Spot.Market.GetKlines(symbol: "BTCUSDT", interval: (Binance.Net.Enums.KlineInterval)inter, startTime: start, endTime: end, limit: 1000).Data.ToList();
这是数据源
然后,我使用以下方法构建图表:
for (int i = 0; i < candles.Count; i++)
{
// adding date and high
chart1.Series["Price15"].Points.AddXY(candles[i].OpenTime, candles[i].High);
// adding low
chart1.Series["Price15"].Points[i].YValues[1] = (double)candles[i].Low;
//adding open
chart1.Series["Price15"].Points[i].YValues[2] = (double)candles[i].Open;
// adding close
chart1.Series["Price15"].Points[i].YValues[3] = (double)candles[i].Close;
}
我的问题是如何像TradingView一样格式化X轴(例如)?现在它可以自动计算日期范围。i、 e.如果我想从这个日期开始15分钟烛光数据,它将从2021-05-18开始到2021-05-28,但它不会显示小时数和x值
背景:我正在努力创造一个交易环境
chart1.Series[0].XValueType = ChartValueType.DateTime;
chart1.ChartAreas[0].AxisX.IntervalType = (DateTimeIntervalType)DateRangeType.DayOfMonth;
chart1.ChartAreas[0].AxisX.LabelStyle.Format = "mm-hh-dd";
通过首先将XValueType
设置为Time
或DateTime
不完美,但在放大时可以提供更多细节。对于x轴,您只能更改。您可能需要更改第一个。是的,我已经尝试过了,但它只是将其更改为每小时一次(更准确)。我想我将尝试添加另一个x轴
private void chart1_GetToolTipText(object sender, ToolTipEventArgs e)
{
System.Windows.Forms.DataVisualization.Charting.HitTestResult htr = chart1.HitTest(e.X, e.Y);
if (htr.ChartElementType != ChartElementType.PlottingArea && htr.ChartElementType != ChartElementType.DataPoint && htr.ChartElementType != ChartElementType.Gridlines&& htr.ChartElementType!= ChartElementType.Axis)
return;
ChartArea ca = chart1.ChartAreas[0];
double yCoord = ca.AxisY2.PixelPositionToValue(e.Y);
string s = e.X.ToString("s");
double xCord = ca.AxisX.PixelPositionToValue(e.X);
e.Text = "\nY = " + Math.Round(yCoord, 2).ToString();
e.Text = "\nX = " + xCord.ToString();
}
chart1.Series[0].XValueType = ChartValueType.DateTime;
chart1.ChartAreas[0].AxisX.IntervalType = (DateTimeIntervalType)DateRangeType.DayOfMonth;
chart1.ChartAreas[0].AxisX.LabelStyle.Format = "mm-hh-dd";