【问题标题】:C# Candlestick plot graph issue. No candle body visible. Candles plot like linesC#烛台图问题。看不到烛身。蜡烛图像线条
【发布时间】:2019-08-05 12:34:18
【问题描述】:

我正在尝试绘制一些从 Excel 文件中获取并保存到烛台图表中的数组的示例数据。我正在尝试的数据(如果有帮助)是一个外汇对(欧元/英镑比率),在外汇中,对在小数点后 4 位引用。

问题是蜡烛的主体在图表上不可见,正如我在下图中所预期的那样(图像只是一个随机示例)。 example candlestick chart

我的蜡烛图像线条一样,几乎没有任何可见的实体。

my plotted candlestick chart

Y 轴的最小值和最大值默认设置为 0 和 1,所以逻辑上我假设间隔是问题所在。(我的示例数据大约是 0.8500 分钟和 0.9500 最大值)所以很自然地为了看到蜡烛体我试图减少最小和最大间隔以查看任何蜡烛实体,但这只会导致我的图表绘制空白,那里什么也没有。 blank candle chart

只是为了测试周围的东西,我正在绘制 15 个点。

绘制这 15 个点

              if (i < 15)
               {
                    chart1.Series["Series1"].Points.AddXY(i, 0, 0, Open[i], Close[i]);

                }

绘图函数有 5 个参数,arg1 日期,arg2 蜡烛最低价,arg3 蜡烛最高价,arg4 蜡烛开盘价,arg5 蜡烛收盘价。

如果我有两根蜡烛,收盘价分别为 0.8532 和 0.8539,开盘价分别为 0.8530 和 0.8537,我应该会看到这样的蜡烛实体 Expcted candle body

我唯一尝试使用的是 Y 最小值和最大值但没有解决方案,以及 Y 轴 scaleview 属性再次没有解决方案。

我能想到的最后一件事是让图表考虑到小数点后 4 位作为绘制数据的主要值(我不知道如何理解这一点),具有重要意义从右到左如果这是有道理的。

有什么我想念的吗?

我该怎么做才能正确看到蜡烛的主体?

以及为什么当我减少 Y 轴值间隔时,我的图表会变成空白。

提前致谢,任何建议都会有所帮助。

【问题讨论】:

  • 您是否尝试设置低值和高值?他们是 0 身体应该从哪里来?顺便说一句,这些打开/关闭值非常接近,因此没有太大区别。多玩一些你的价值观!
  • 是的,我尝试设置低值 0.7500 和高值 0.9500,这使我的图表变为空白。最初,它们默认设置为 0 和 1,并像线条一样绘制。在外汇交易中,小数点后 4 位对烛体有很大的影响,0.0009 的差异就像 0-10 比例中的 9。我希望这是有道理的。
  • 在外汇交易中,小数点后 4 位对烛体有很大影响, 嗯?你的 y 值从 0 到 1,所以,不,0.0001 没有明显的区别!您至少应该为高低使用一个合理的值,而不是 0,否则响度将始终如此关闭。你可以在打开和关闭时使用相同的,也许..:AddXY(i, Open[i], Close[i], Open[i], Close[i])

标签: c# plot graph


【解决方案1】:

这一切都取决于您数据中的数字。

自动轴缩放将允许显示所有值。

high/low 为 0/0 或 0/1 时,需要显示的范围为 0 到 0.8539 或 0 到 1。

但主体只从 0.8530 变为 0.8532。

所以主体是轴范围的 2/1000。要让它显示,您需要一个相当大的图表高度。

确保在您的数据中设置合适的值,并通过设置最小值/最大值来帮助图表......:

var ca = chart1.ChartAreas[0];
ca.AxisY.Minimum = 0.8500;
ca.AxisY.Maximum = 0.8570;

chart1.Series["Series1"].Points.Clear();
chart1.Series["Series1"].Points.AddXY(2, 0.8532, 0.8530, 0.8532, 0.8530);

结果:

【讨论】:

  • 这次它的工作方式与您呈现的方式相同。我知道轴会自动缩放,但由于我将“0”值设置为蜡烛的低值和高值(chart1.Series["Series1"].Points.AddXY(i,0,0,open,close ))它搞砸了我的规模。它会自动从 0 缩放到我的数据样本的最大值,当我手动缩放轴时,它会导致我的数据变为空白,因为它超出了范围,因为我绘制了零值(低值和高值 0)。我现在知道我错在哪里了,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多