2017-07-29 73 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 
    */ 
}