返回列表 上一主題 發帖

[發問] 請教抓取太平洋證卷的DDE 要如何從中抓取每分鐘的最大成交價及最小成交價

回復 3# lieh_chun
上面的實例並非是樣本,它是將每一秒得 O、H、L、C 分別記錄下來,當滿足設定時間(例如一分鐘)
就將資料寫入到指定欄位儲存,如此紀錄上的每分鐘開盤價、最高價、最低價、收盤價都記錄下,
便可做一些統計分析了。

TOP

回復 2# c_c_lai

板大您好~
感謝您熱心分享,我想要的期貨每分鐘的成交價高點和低點,不知該如何去編寫??
另外請教一下,如果要記錄每分鐘期貨成交價的高低點,是不是就要改成每秒寫入還是每筆寫入ㄋ??

TOP

回復 1# lieh_chun
你要的是不是這支程式內容所描述的?
  1. Sub ExeSelf()
  2.     timerEnabled = True

  3.     Sheets("策略記錄").Cells(2, 1) = Now()
  4.    
  5.     On Error Resume Next
  6.     If (TimeValue(Now) > TimeValue("13:46:01")) Then Exit Sub
  7.    
  8.     If (TimeValue(Now) >= TimeValue("08:45:00")) Then         ' 開盤、收盤時段設定
  9.         If IsError(Sheets("策略記錄").Range("B2").Value) Then ' 假設 B2 欄位為多空力道
  10.             Cv(1) = 0
  11.             Cv(2) = 0
  12.             Cv(3) = 0
  13.         Else
  14.             Cv(1) = Sheets("策略記錄").Range("B2").Value   ' 多空力道成交價
  15.             Cv(2) = Sheets("策略記錄").Range("C2").Value   ' 反向勢力成交價
  16.             Cv(3) = Sheets("策略記錄").Range("D2").Value   ' 主力控盤成交價
  17.         End If
  18.          
  19.         If (turnKey = 0 Or Ov(1) = 0) Then ' 當 turnKey 值為0,表示其為初始值設定。
  20.             ' 為考量系統剛連上DDE,有時在第一根數值產生時Ov = Cv值可能為 0 的狀態)。
  21.             Ov(1) = Cv(1)                  ' 多空力道開盤價初始值設定
  22.             Hv(1) = Cv(1)                  ' 多空力道最高價初始值設定
  23.             Lv(1) = Cv(1)                  ' 多空力道最低價初始值設定
  24.                
  25.             Ov(2) = Cv(2)                  ' 反向勢力開盤價初始值設定
  26.             Hv(2) = Cv(2)                  ' 反向勢力最高價初始值設定
  27.             Lv(2) = Cv(2)                  ' 反向勢力最低價初始值設定
  28.                   
  29.             Ov(3) = Cv(3)                  ' 主力控盤開盤價初始值設定
  30.             Hv(3) = Cv(3)                  ' 主力控盤最高價初始值設定
  31.             Lv(3) = Cv(3)                  ' 主力控盤最低價初始值設定
  32.         End If

  33.         turnKey = turnKey + 1
  34.         Sheets("策略記錄").Cells(10, 2) = turnKey & " 秒"

  35.         If (Cv(1) > Hv(1)) Then Hv(1) = Cv(1) ' 判斷多空力道最高價
  36.         If (Cv(2) > Hv(2)) Then Hv(2) = Cv(2) ' 判斷反向勢力最高價
  37.         If (Cv(3) > Hv(3)) Then Hv(3) = Cv(3) ' 判斷主力控盤最高價
  38.          
  39.         If (Cv(1) < Lv(1)) Then Lv(1) = Cv(1) ' 判斷多空力道最低價
  40.         If (Cv(2) < Lv(2)) Then Lv(2) = Cv(2) ' 判斷反向勢力最低價
  41.         If (Cv(3) < Lv(3)) Then Lv(3) = Cv(3) ' 判斷主力控盤最低價
  42.                
  43.     End If
  44.    
  45.     If (turnKey < nums) Then
  46.         Application.OnTime (Now + TimeValue("00:00:01")), "ThisWorkbook.ExeSelf"
  47.     Else
  48.         If (Cv(1) <> 0) Then Call Timer
  49.         ' Call Timer
  50.         Call timerStart
  51.     End If
  52. End Sub
複製代碼

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題