返回列表 上一主題 發帖

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

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

TOP

回復 55# devidlin
To devidlin:量態的計算方式,在[DDE報價]表格..就可看出。
[圖表區]可按[右鍵]從[來源資料]就可看出端倪。
我是新手..是從版上高手文章檔案併湊而成~~
這是我知的範圍答覆你,也請版上高手能幫你解答...謝謝!!
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 4# c_c_lai
請教 c_c_lai大大
若我要每五分鐘紀錄期貨的委買口數 委賣口數 委買筆數 委賣筆數 委買均口 委賣均口等即時資料,我要如何修改裡面的變數?

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 發表於 2012-9-29 21:04


請問老師
關於下列這段語法的意思是

turnKey = turnKey + 1
    Sheets("Sheet4").[A3] = "( " & turnKey & " 秒 )"
    If Time >= timeCalc + #12:01:00 AM# Then
        If (Cv > 0) Then Call RTimer(Time)
        timeCalc = TimeSerial(Hour(Time), Minute(Time), 0)   ' 重新設定下一分鐘比對的時間
        If timerEnabled Then Call timerStart
    Else
        Application.OnTime (Now + TimeValue("00:00:01")), "ThisWorkbook.inProcess"
    End If



感謝老師指導 謝謝老師 感謝
學習 學習 一直學習

TOP

c_c_lai 發表於 2013-4-19 14:19



    請問這是程式的那一個部分?
我在一分K的開盤價、成交價、最高價、最低價、成交量的程式是沒問題;

我想把它改成5分K的開盤價、成交價、最高價、最低價、成交量,

可是把它改成了N次,奮戰多時, 總是不成功............

可以協助一下嗎? 已經奮戰多時,皆以失敗告終......................

TOP

回復 66# winwin

1分K量價紀錄-OK-O -R1.zip (49.98 KB)

1分K量價紀錄-OK-O -R1.zip (49.98 KB)

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

本帖最後由 winwin 於 2017-12-8 14:33 編輯

回復 68# c_c_lai


    感謝鼎力相助, 踓然程式還有一點小問題,但是已經可以讓我把問題 把它處理好,真的幫我解決了大麻煩;真是感謝高手相助!

本著回饋的精祌, 我會把檔案放上來。 我的解決方法法就是為5分K多設一個資料源, 這樣我就可以同時看5分及1分K的量。
1-5分K量價紀錄-OK-O -R4.zip (51.34 KB)
可是我發現一個問題, 就是盤中的高低點位有時與券商的看盤軟體實際上的相差有點大, 不知道可有先進已有解決方案?
還有, 13:45 這一盤的收盤資料一直空白,不會完成。不知問題出在那?

第二個問題, 我想要增加一個或多個其他欄位;(如圖)對EXCEL VBA 實在是不懂; 可以再幫忙一次忙,寫一個例子,真的是非常感謝,謝謝!

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

        靜思自在 : 天上最美是星星,人生最美是溫情。
返回列表 上一主題