返回列表 上一主題 發帖

如何將台指期的每一分鐘資料都紀錄在sheet 1裡..請教版上高手前輩~~

回復 23# cfuxiong
上層 GBKEE 版大提示的明細範例,
是否已解決了你的問題?

TOP

本帖最後由 c_c_lai 於 2012-12-15 08:20 編輯
有時會發生一種情形, 就是DDE都有顯示連結成功. 但是真的到盤中時, 卻沒跳動. 解決方式確實是重開 ...
bobo177 發表於 2012-12-14 22:39

還是老話一句:
1.  如果券商的軟體掛了重新開啟, EXCEL 亦要一併先予關閉後再開 (重新連結DDE)。
     程序是:1. 券商的軟體、以及已開啟的 EXCEL 兩者均要先行關閉;
                     2. 先開啟券商軟體、之後再開啟  EXCEL。
2.  如果券商的軟體開啟正常, EXCEL 都有顯示DDE連結成功,而正常開啟後,
     如果有去瀏覽程式碼不小心異動了程式、或者是之後又另外開啟另一支有 VBA
    執行的 EXCEL (此過程先前已開啟的 EXCEL  依然還在執行中),極有可能它會影響
    到之前已開啟的 EXCEL 而造成不意中斷。此時先前已開啟的 EXCEL 亦要一併先予
    關閉後再重開 (重新連結DDE), 當然之後第二支另外開啟的 EXCEL 要先關閉。
3. 如都不是,那就要評估你的 EXCEL 程式碼了。

TOP

回復 47# cfuxiong
增加 "摩台指"!
ibtsDDE 201301.rar (285.16 KB)

TOP

回復 49# cfuxiong
你的摩台指 DDE 匯入來源並非有連結券商,
請再檢查一下你的 Excel!

TOP

回復  c_c_lai


    請問c大,態量.xls檔案內的  圖表區程式碼要如何寫出來?謝謝。
devidlin 發表於 2013-1-19 20:30

態量.xls 在哪裡?請上傳檔案看看!

TOP

回復 58# devidlin
如果你是在問如何製作圖表,可請參考:
K 線股票圖如何能與主力、散戶、及成交量線共存?
或本論壇內其他相關之討論,你都可以從中獲取不錯的實務題材的。

TOP

回復 60# devidlin
你可以將你目前運用的 Excel 檔案上傳,抽時間我幫你看看該如何修正,
每個人都各自有他們運作的模式與喜好、以及獨到見解、策略應用,
切不要完全套用他人的內容全數抄襲,如此使用起來也完全沒有
個人的風格了、亦無個人之成就感。

TOP

回復  c_c_lai
請教 c_c_lai大大
若我要每五分鐘紀錄期貨的委買口數 委賣口數 委買筆數 委賣筆數 委買均 ...
n8975067 發表於 2013-4-19 11:23
  1. If (Minute(Time) * 60 + Second(Time)) Mod 300 = 0 Then          '  每隔5分鐘執行一次 (5 x 60)
  2.     '  ------ Your statement -------
  3. End If
複製代碼

TOP

本帖最後由 c_c_lai 於 2017-12-8 07:17 編輯

回復 67# winwin
請將你程式內之 RTimer(tm As Date) 模組替換成下列之更新模組,
再試試看。
  1. Public Sub RTimer(tm As Date)
  2.     Dim TimeRange As Range, Rng As Range
  3.     Dim pos As Integer
  4.    
  5.     On Error Resume Next
  6.     If (TimeValue(Now) > TimeValue("13:45:00")) Then Exit Sub
  7.    
  8.     If (TimeValue(Now) >= TimeValue("08:45:00")) Then         ' 開盤、收盤時段設定
  9.         ' 盤中處理,將資料匯入寫入工作表單內儲存。
  10.         With Sheets("Sheet1")
  11.             If Not IsError(.[B2]) Then
  12.                 .[C1] = "成交價"
  13.                 .[D1] = "最高價"
  14.                 .[E1] = "最低價"
  15.                 .[F1] = "成交量"
  16.                
  17.                 Set TimeRange = .[A:A].Find(TimeSerial(Hour(tm), Minute(tm), 0))  ' 檢查 "A" 欄位對應之時間資料
  18.                 Set Rng = TimeRange.Offset(, 1).Resize(1, 4)
  19.                
  20.                 Rng(1) = Cv                                             ' 成交價
  21.                 Rng(2) = Hv                                             ' 最高價
  22.                 Rng(3) = Lv                                             ' 最低價
  23.                 Rng(4) = Sheets("Sheet4").[H2] - Sheets("Sheet4").[I2]  ' 成交量
  24.                 Sheets("Sheet4").[I2] = Sheets("Sheet4").[H2]           ' 重新設定前成交量
  25.             End If
  26.         End With
  27.          
  28.         '  加入五分鐘之判斷
  29.         If (Minute(tm) * 60 + Second(tm)) Mod 300 = 0 Then                              '  每隔5分鐘執行一次 (5 x 60)
  30.             With Sheets("5K")
  31.                 If Not IsError(.[B2]) Then
  32.                     .[C1] = "成交價"
  33.                     .[D1] = "最高價"
  34.                     .[E1] = "最低價"
  35.                     .[F1] = "成交量"
  36.                     
  37.                     Set TimeRange = .[A:A].Find(TimeSerial(Hour(tm), Minute(tm), 0))  ' 檢查 "A" 欄位對應之時間資料
  38.                     Set Rng = TimeRange.Offset(, 1).Resize(1, 4)
  39.                     
  40.                     Rng(1) = Cv                                             ' 成交價
  41.                     Rng(2) = Hv                                             ' 最高價
  42.                     Rng(3) = Lv                                             ' 最低價
  43.                     Rng(4) = Sheets("Sheet4").[H2] - Sheets("Sheet4").[I2]  ' 成交量
  44.                     Sheets("Sheet4").[I2] = Sheets("Sheet4").[H2]           ' 重新設定前成交量
  45.                 End If
  46.             End With
  47.         End If
  48.     End If
  49. End Sub
複製代碼

TOP

回復 69# winwin
試試看
  1. Public Sub RTimer(tm As Date)
  2.     Dim TimeRange As Range, Rng As Range
  3.     Dim pos As Integer
  4.    
  5.     On Error Resume Next
  6.     '  If (TimeValue(Now) > TimeValue("13:45:00")) Then Exit Sub
  7.     '  13:45 這一盤的收盤資料一直空白
  8.     If (TimeValue(Now) > TimeValue("13:46:00")) Then Exit Sub
  9.    
  10.     If (TimeValue(Now) >= TimeValue("08:45:00")) Then         ' 開盤、收盤時段設定
  11.         ' 盤中處理,將資料匯入寫入工作表單內儲存。
  12.         With Sheets("1K")
  13.             If Not IsError(.[B2]) Then
  14.                 .[C1] = "成交價"
  15.                 .[D1] = "最高價"
  16.                 .[E1] = "最低價"
  17.                 .[F1] = "成交量"
  18.                
  19.                 Set TimeRange = .[A:A].Find(TimeSerial(Hour(tm), Minute(tm), 0))  ' 檢查 "A" 欄位對應之時間資料
  20.                 Set Rng = TimeRange.Offset(, 2).Resize(1, 4)
  21.                
  22.                 Rng(1) = Cv                                             ' 成交價
  23.                 Rng(2) = Hv                                             ' 最高價
  24.                 Rng(3) = Lv                                             ' 最低價
  25.                 Rng(4) = Sheets("Sheet1").[H2] - Sheets("Sheet1").[I2]  ' 成交量
  26.                 Sheets("Sheet1").[I2] = Sheets("Sheet1").[H2]           ' 重新設定前成交量
  27.             End If
  28.         End With
  29.          
  30.         '  加入五分鐘之判斷
  31.         If (Minute(tm) * 60 + Second(tm)) Mod 300 = 0 Then                              '  每隔5分鐘執行一次 (5 x 60)
  32.             With Sheets("5K")
  33.                 If Not IsError(.[B2]) Then
  34.                     .[C1] = "成交價"
  35.                     .[D1] = "最高價"
  36.                     .[E1] = "最低價"
  37.                     .[F1] = "成交量"
  38.                     
  39.                     Set TimeRange = .[A:A].Find(TimeSerial(Hour(tm), Minute(tm), 0))  ' 檢查 "A" 欄位對應之時間資料
  40.                     Set Rng = TimeRange.Offset(, 2).Resize(2, 4)
  41.                     
  42.                     '  增加 "漲跌" 欄位之同步寫入
  43.                     Rng(0) = Sheets("Sheet5").[C2]                          ' 漲跌
  44.                     Rng(1) = Cv                                             ' 成交價
  45.                     Rng(2) = Hv                                             ' 最高價
  46.                     Rng(3) = Lv                                             ' 最低價
  47.                     Rng(4) = Sheets("Sheet5").[H2] - Sheets("Sheet5").[I2]  ' 5分成交量
  48.                     Sheets("Sheet5").[I2] = Sheets("Sheet5").[H2]           ' 重新設定前成交量
  49.                 End If
  50.             End With
  51.         End If
  52.     End If
  53. End Sub
複製代碼

TOP

        靜思自在 : 脾氣嘴巴不好,心地再好也不能算是好人。
返回列表 上一主題