C# 如何将MS图表X轴更改为日期时间

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

我有一个图表,显示了最新的1000支蜡烛(Binance API限制)。我使用以下方法获取图表数据:

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";