返回列表 上一主題 發帖

[發問] 如何在股價圖下方應用 VBA 增列一拉霸?

[發問] 如何在股價圖下方應用 VBA 增列一拉霸?

請教諸位先進,如何能在股價圖下方 (如附圖) 應用 VBA 語法來增列一拉霸 (ScrollBar)?
,先前 GBKEE 版大有個範本給我,但是拿來應用在此處卻不成功,
光是  .ScrollBar1.Min = 1  的宣告就無疾而終,更何況接下去了,
要怪只能怪自個兒功力不行!  附上檔案,謝謝諸位先進指導!

股票圖表與拉霸.rar (150.33 KB)

回復 1# c_c_lai
參考教學

    http://davidpu.pixnet.net/blog/post/25682509-%E8%A3%BD%E4%BD%9C%E5%8F%AF%E6%8D%B2%E5%8B%95%E5%92%8C%E7%B8%AE%E6%94%BE%E7%9A%84-excel-%E8%82%A1%E7%A5%A8%E5%9C%96-(%E4%BA%8C)---

TOP

回復 2# f3202
謝謝您!
因為我的每張圖表都是動態產生的,所以我才想在每個圖表下方均各自動態配置一組拉霸,而非靜態(預先就已經產生)的,
不過您提共的網站內容非常的棒,謝謝您的分享!

TOP

本帖最後由 alexliou 於 2012-5-14 14:31 編輯

回復 3# c_c_lai
製作 Scrolling Chart時
重點是把ScrollBar的Value 和圖表的資料來源的位置連在一起

當ScrollBar 的Change事件發生時
圖表就必須將資料來源重設一次

附件中檔案有一個利用長短均線值來決定買賣訊號的K線圖,
其中有兩個重點:
1. 因為資料量很多, 都放在一張圖裡會顯得很擁擠, 所以一張圖裡限定只放150根K棒
    K線圖下設計了一個捲軸, 讓使用者可以捲動捲軸來檢視不同時期的資料
2. 當有買賣訊號出現時, K棒上會出現"買進"或"賣出"的標籤
    但當捲軸移動時,這些標籤也要跟著移動

均線策略測試環境1.zip (155.06 KB)

Alex

TOP

另一種版本
圖停留在WorkSheet中
差別在Scroll Event Handler 中加入某些環境變數的設定

均線策略測試環境2.zip (170.24 KB)

Alex

TOP

回復 4# alexliou
Alex 兄,
許久沒聯絡了,謝謝您的分享,受益良多,
裡頭�埵酗ˋ貜熙B裡方法,蠻值得探討的,
這也是我近月來開始接觸 Excel 及 VBA 很棒的臨床實驗,
在此言謝了!
(請教您'長均線'是回溯多久,您是怎麼處裡數據的?)

TOP

回復 5# alexliou
我把 DataLabel 小改了一下,效果還不錯,請參考:
  1.             If .DataLabel.Text = "多單平倉" Or .DataLabel.Text = "賣出空單" Then
  2.                 .DataLabel.Text = .DataLabel.Text & Chr(10) & Format(Cells(i, 5).Value, "###0")      ' ********* 小改了一下 **********
  3.                 ActiveChart.SeriesCollection(4).Points(i - StartKBarRow + 1).MarkerStyle = xlMarkerStyleStar   
  4.                 ActiveChart.SeriesCollection(4).Points(i - StartKBarRow + 1).MarkerSize = 10
  5.                 .DataLabel.position = XlDataLabelPosition.xlLabelPositionBelow
  6.             ElseIf .DataLabel.Text = "空單平倉" Or .DataLabel.Text = "買進多單" Then
  7.                 .DataLabel.Text = .DataLabel.Text & Chr(10) & Format(Cells(i, 5).Value, "###0")      ' ********* 小改了一下 **********
  8.                 ActiveChart.SeriesCollection(4).Points(i - StartKBarRow + 1).MarkerStyle = xlMarkerStyleTriangle
  9.                 ActiveChart.SeriesCollection(4).Points(i - StartKBarRow + 1).MarkerSize = 8
  10.                 .DataLabel.position = XlDataLabelPosition.xlLabelPositionAbove
  11.             End If
複製代碼

TOP

本帖最後由 alexliou 於 2012-5-14 20:59 編輯

回復 6# c_c_lai
上傳的程式是整個均線策略回測器Project的一部份
它的功能僅處理繪製K線圖

股價的基本資料放在Access 資料庫裡    (也是靠VBA從網路上擷取而來)
可以根據某個UserForm 或 某些Cell的內容決定要Load
哪一個商品  哪一段期間的資料進來
這可以用一個Sub來處理

長短期均線是根據基本資料來計算
要用多少天的移動平均 也可以根據某個UserForm 或 某些Cell的內容來決定
這個例子用的是四日和五十日(隨便設的)
移動平均的計算可以用另一個Sub來處理

買賣訊號根據移動平均線的狀況來決定
例如當短期均線上穿長期均線則產生"買進"訊號
反之則"賣出"
這可以用另一個Sub來處理
....
....
....
Alex

TOP

回復 8# alexliou
以往在職場時常使用 PostgreSQL以及MS SQL,說真格的我還沒用過Acess,有空時我會來試試它,
目前我是將資料直接存放在Excel表單內做測試。藉由練習以了解 VBA 及 Excel 的資料處理與應用。
謝謝您的幫助,今後如有不解之處還需再來打擾您了!

TOP

回復 8# alexliou
請問由 VBA 產生的 ScrollBar 的 Event Handler 如何命名? 例如:Private Sub ScrollBar1_Change()  ~  End Sub
但是加入 ScrollBar1_Change() 後並未起任何作用? 應該要使用 Private Sub ScrollBar???_Change()?
附上測試檔案,謝謝指教!

請教拉霸事件產生器.rar (10.03 KB)

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題