用VBA劃出股票圖
最近開始想利用EXCEL來研究建立股票回測環境,當然第一步便是劃出股票圖,經網路不斷爬文,深知爬文之苦,故把一些心得分享在此網誌。如果你有資料長得像這樣...(從證交所抓的)
- 新增模組,然後撰寫下列程式碼
- Sub DrawkOHLC(ByVal DataRng As Range, ByVal TitleName As String, ByVal ChartName As String)
- '===建立K線圖
- Dim ChtObj As ChartObject 'Chart物件
- '會建立新的內嵌圖表Left, Top, Width, Height(相對A1儲存格)
- Set ChtObj = ActiveSheet.ChartObjects.Add(0, 0, 1200, 400) '建立圖表大小位置
- With ChtObj.Chart
- .SetSourceData Source:=DataRng '資料來源
- .ChartType = xlStockOHLC '股票圖:日期、開、高、低、收
- .Axes(xlCategory).CategoryType = xlCategoryScale '座標軸類型:文字座標軸;避免斷續日期
- .Axes(xlCategory).TickLabels.NumberFormatLocal = "m/d" 'X軸顯示為月/日
- .HasTitle = True '顯示標題
- .HasLegend = False '不顯示圖例
- .ChartTitle.Text = TitleName '標題文字
- .Parent.Name = ChartName '設定圖表物件名稱
- '===更改Y軸刻度
- .Axes(xlValue).MajorUnit = 100 '主要刻度
- .Axes(xlValue).MinorUnit = 50 '次要刻度
- .Axes(xlValue).MajorGridlines.Format.Line.DashStyle = msoLineSysDash '格線為虛線
- '更改X軸格式
- '.Axes(xlCategory).HasMajorGridlines = True '新增主要格線
- '.Axes(xlCategory).MajorGridlines.Format.Line.DashStyle = msoLineSysDash '格線為虛線
- ''==調整X軸格線的顏色
- '.Axes(xlCategory).MajorGridlines.Format.Line.ForeColor.ObjectThemeColor = msoThemeColorAccent2
- '.Axes(xlCategory).MajorGridlines.Format.Line.ForeColor.Brightness = 0.400000006
- '===設定K線顏色
- .ChartGroups(1).HasUpDownBars = True
- .ChartGroups(1).UpBars.Interior.ColorIndex = 3'上漲為紅色
- .ChartGroups(1).UpBars.Border.ColorIndex = 3
- .ChartGroups(1).DownBars.Interior.ColorIndex = 10'下跌為綠色
- .ChartGroups(1).DownBars.Border.ColorIndex = 10
- End With
- Set ChtObj = Nothing'釋放資源
- End Sub
Private Sub CommandButton1_Click()
Dim xRng As Range
Set xRng = Sheets("加權指數").Range("A2:E30") 'K線起始範圍
Call DrawkOHLC(xRng, "加權指數", "TWSE_K")
End Sub
建立一個DrawOHLC副程式輸入參數:
DataRng:資料範圍
TitleName:圖表抬頭
ChartName:內嵌圖表名稱(方便以後選取)
====================================大功告成
PS:第一次寫網誌,說明不清還請告知
下一步建立捲軸:移動檢視;建立縮放功能
程式碼下載:
VBA劃K線圖-1


沒有留言:
張貼留言