Board logo

標題: [發問] 交易進行中的1分鐘股價紀錄 [打印本頁]

作者: Scott090    時間: 2018-9-1 07:00     標題: 交易進行中的1分鐘股價紀錄

交易進行中的即時股價資料,除了用 RTD 或 DDE 自行記錄外,
是否能從那一個網站下載取得?
例如下述網站只提供 50筆 每5秒的交易進行中即時的紀錄資料
https://tw.stock.yahoo.com/q/ts?s=2330&t=50
假如能一下子取得從當天一開始 9::00AM 到 現在時刻的紀錄資料就太好了,不必事先設定那一檔及3分鐘更新累積資料

請大師們指導
謝謝
作者: GBKEE    時間: 2018-9-3 16:24

本帖最後由 GBKEE 於 2018-9-3 16:27 編輯

回復 1# Scott090
沒實際執行整天行情過,請自行測試
  1. Option Explicit
  2. Sub EX()  '檔案開啟時請指定執行此程式
  3.     If Time < #9:00:00 AM# Then
  4.         Application.OnTime #9:00:00 AM#, "Ex_yahoo"
  5.     ElseIf Time <= #2:30:00 PM# Then
  6.         Ex_yahoo
  7.     End If
  8. End Sub
  9. Sub Ex_yahoo()
  10.     Dim oXmlhttp As Object, oHtmldoc As Object, E As Object
  11.     Dim R As Integer, RR As Integer, C As Integer, xTime As Double
  12.     If Time <= #2:30:00 PM# Then Application.OnTime #12:05:00 AM#, "Ex_yahoo"   '5分鐘後再度執行
  13.     Set oXmlhttp = CreateObject("msxml2.xmlhttp")
  14.     Set oHtmldoc = CreateObject("htmlfile")
  15.     With oXmlhttp
  16.         .Open "Get", "https://tw.stock.yahoo.com/q/ts?s=2330&t=50", False
  17.         .Send
  18.         oHtmldoc.write .responseText
  19.     End With
  20.     With Sheets("工作表1")
  21.         Set E = oHtmldoc.all.tags("table")(6)
  22.         If .[a1] <> E.Rows(0).Cells(0).innertext & "-" & E.Rows(0).Cells(1).innertext Then
  23.             .Cells.Clear
  24.             .[a1] = E.Rows(0).Cells(0).innertext & "-" & E.Rows(0).Cells(1).innertext
  25.         End If
  26.         Set E = oHtmldoc.all.tags("table")(7)
  27.         If .[a2] = "" Then
  28.             For C = 0 To E.Rows(0).Cells.Length - 1
  29.                 .Cells(2, C + 1) = E.Rows(0).Cells(C).innertext
  30.             Next
  31.         End If
  32.         For R = E.Rows.Length - 1 To 1 Step -1
  33.             xTime = TimeValue(E.Rows(R).Cells(0).innertext)
  34.             If IsError(Application.Match(xTime, .[A:A], 0)) Then
  35.                 RR = Application.CountA(.[A:A]) + 1
  36.                 For C = 0 To E.Rows(R).Cells.Length - 1
  37.                 .Cells(RR, C + 1) = E.Rows(R).Cells(C).innertext
  38.                 Next
  39.             End If
  40.         Next
  41.     End With
  42.     Set oXmlhttp = Nothing
  43.     Set oHtmldoc = Nothing
  44.    
  45. End Sub
複製代碼

作者: Scott090    時間: 2018-9-5 22:05

回復 2# GBKEE


    感謝G大的指導
原程式碼只能取得一筆9:00 AM 的資料,以後就都一樣不會變化。
做了一點修飾如下,就可取得應有的資料,原因不知:
With oXmlhttp
        .Open "Get", "https://tw.stock.yahoo.com/q/ts?s=2330&t=50", False
' 增加下列語句始能更新取得應有資料
'==============================
'            .setRequestHeader "Referer", URL
'            .setRequestHeader "Cache-Control", "no-cache"
'            .setRequestHeader "Pragma", "no-cache"
'            .setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
'===============================
        .Send
        oHtmldoc.write .responseText
    End With

持續測試中。

原本施希望能從個網站直接取得當天盤中交易的即時資料(9:00 AM開始的所有資料),而不是片段的取得再來累積資料

再次的感恩
作者: Scott090    時間: 2018-9-7 06:47

回復 2# GBKEE


    "  xTime = TimeValue(E.Rows(R).Cells(0).innertext)
            If IsError(Application.Match(xTime, .[A:A], 0)) Then  "

     試驗的結果顯示時間的比對並不能完全排除資料的重複。
   還陷在五里霧中不得其解。

盼 GBKEE 大給予一臂之力,無限感恩
作者: Scott090    時間: 2018-9-7 15:48

回復 2# GBKEE


     "  xTime = TimeValue(E.Rows(R).Cells(0).innertext)
            If IsError(Application.Match(xTime, .[A:A], 0)) Then  "

          用時間概念去做比對就沒有做出正確的結果
          因此把xTime 改為 字串:
              dim xTime$
         xTime = "#" & E.Rows(R).Cells(0).innertext & "#"
            If IsError(Application.Match(xTime, .[A:A], 0)) Then  "
            
          當然也把時間字串放到儲存格內:
          RR = Application.CountA(.[A:A]) + 1
                .Cells(RR, 1) = xTime
                For C = 1 To E.Rows(R).Cells.Length - 1
                        .Cells(RR, C + 1) = E.Rows(R).Cells(C).innertext
                Next

        這樣,問題就解決了
      
另,Application.OnTime  修飾如下:
          If Time <= #2:30:00 PM# Then Application.OnTime  Now + #12:04:00 AM#, "Ex_yahoo"   '4分鐘後再度執行
      
          再次感恩 GBKEE 大大
作者: Scott090    時間: 2018-9-19 05:50

http://webrtqt.fortunengine.com.tw/rtdata/k-chart/1min-2330.txt?ts=1526775289018
這裡提供 1 分鐘盤中交易資料




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)