2017-07-29 46 views
1

我正在绘制一个随机指标,使用包含开放高低收盘数据的双数组,调整为5,10,15和30分钟的时间段。如何使用MS随机指标

chart1.DataManipulator.FinancialFormula(FinancialFormula.StochasticIndicator, 
"21,3", 
"highPriceArray:Y,lowPriceArray:Y2,closePriceArray:Y4" 
, "percentage_K_values:Y,percentage_D_values:Y"); 

上面的函数是一个我从MSDN库使用,

  • 如何将我的OHLC值的双阵列转换为时间序列格式,这样我就可以,将它们输入到这个函数,然后获得%K和%D值作为回报,然后继续绘制图表?

      openPriceArray[ii] = obj[0]; 
          highPriceArray[ii] = obj[1]; 
          lowPriceArray[ii] = obj[2]; 
          closePriceArray[ii] = obj[3]; 
    

预先感谢您。

+0

我不知道你需要任何实际*时间*值,比如'DateTime'。从我在这里找到的(https://msdn.microsoft.com/en-us/library/dd456620.aspx),他们只是使用整数天。你的数据如何按时间划分?如果它在5分钟的时间内,也许1,2,3和6是5,10,15和30分钟所需的值(只是疯狂的猜测)。 – Andrew

+0

我有时间价值,我有在那个点的股票的价值。基本上我有手工构建随机所需的所有数据。 但C#有一个随机函数,它要求我将数据作为时间序列传递。图表。系列[“open”] .Points.AddXY(DateTime.Now,lowPriceArray [i]); 我可以循环并创建一个图表与系列绘制在上面,我不知道如何整合从上面提到的随机函数的输出到这个。基本上我想将ARRAYS [日期时间,价格]转换为时间序列 –

回答

3

此示例代码与评论,应该让你去。您也可以参考MSDN Docs

enter image description here

private void Form1_Load(object sender, EventArgs e) 
{ 
    // load your data into a List<DataPoint> 
    List<DataPoint> data = GetData(); 

    /* 
    * dp.XValue - DateTime 
    * dp.YValues[0] - High 
    * dp.YValues[1] - Low 
    * dp.YValues[2] - Open 
    * dp.YValues[3] - Close 
    */ 

    foreach (DataPoint dp in data) 
     chart1.Series[0].Points.Add(dp); 

    chart1.ChartAreas[0].AxisY.Maximum = chart1.Series[0].Points.Max(p => p.YValues[0]); 
    chart1.ChartAreas[0].AxisY.Minimum = chart1.Series[0].Points.Min(p => p.YValues[1]); 

    chart1.DataManipulator.FinancialFormula(FinancialFormula.StochasticIndicator, 
    "10,10", 
    "HLOC-Price:Y,HLOC-Price:Y2,HLOC-Price:Y4", 
    "K-Indicator,D-Indicator"); 

    /* 
    * HLOC-Price - Candlestick Series[0], primary Y-axis 
    * K-Indicator - Line Series[1], secondary Y-axis 
    * D-Indicator - Line Series[2], secondary Y-axis 
    */ 
}