Board logo

標題: [發問] [已解決]利用EXCEL製作K線時遇到時間延遲問題 [打印本頁]

作者: jiuhtsair    時間: 2012-1-28 19:10     標題: [已解決]利用EXCEL製作K線時遇到時間延遲問題

本帖最後由 jiuhtsair 於 2012-1-31 20:00 編輯

各位大大好:[attach]9328[/attach][attach]9329[/attach]
     小弟為了製作K線已經困擾一段時間了!
     也曾努力爬文,論壇裡多位高手都曾對相關議題有許多寶貴方法..
       弟也利用網路上線有的資源修改後得到K線圖,但遇到一個問題...
       就是剛開始接收資料時OK...但慢慢的時間會延遲..
       原本應該在00秒開始新的K 線資料..卻慢慢變成01秒..02秒...03秒..
       弟猜想應該是地的計時方式是利用本身電腦而非DDE的系統時間的緣故..
       可是DDE的傳輸選項中也沒有系統時間可以校對...
       是否可以請大大們幫小弟解惑?
     感恩!
     並祝大家新年快樂、萬事如意、闔府平安!
作者: GBKEE    時間: 2012-1-29 10:52

回復 1# jiuhtsair
Private Sub ExeSelf()
    On Error Resume Next
    i = i + 1
    If i = 58 Then    '*至少要執行 ExeSelf 58次      
        Sheets(2).Cells(j, 1) = Time
        Sheets(2).Cells(j, 2) = O
        Sheets(2).Cells(j, 3) = H
        Sheets(2).Cells(j, 4) = L
        Sheets(2).Cells(j, 5) = C
        Sheets(2).Cells(j, 6) = V
        j = j + 1
        i = 0: V = 0                                          
       '可是這裡 i 歸零了 : 那前面的 If i = 58 Then 又要等執行 ExeSelf 58次        
        O = Sheets(1).Cells(2, 2)
        V = V + Sheets(1).Cells(2, 4)
        H = O: L = O: C = O
    Else
        '以下判斷迴圈讓投資權重與投資標的物名稱設定,僅執行一次
        C = Sheets(1).Cells(2, 2)
        If C > H Then H = C
        If C < L Then L = C
        V = V + Sheets(1).Cells(2, 4)
'        Sheets(2).Cells(i, 1) = Sheets(1).Cells(2, 2)
    End If
        Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkBook.ExeSelf"
End Sub
作者: jiuhtsair    時間: 2012-1-29 12:36

回復 2# GBKEE
謝謝GBKEE大大的指導...
就弟的了解...
程式一開始因為i不等於58
所以程式執行else以後的部份
也就是執行L、H的判定
當i=58時
才將數值寫入O、H、L、V、C等欄位
最後再將i歸0...形成迴圈的形態...
這是弟的不成熟看法..
尚請GBKEE大大指導..
謝謝!
作者: GBKEE    時間: 2012-1-29 19:15

回復 3# jiuhtsair
你明天試試便知了
作者: jiuhtsair    時間: 2012-1-30 20:45

回復 2# GBKEE

謝謝大大指導..
今天開始上班...所以..
這兩天抽個時間跑跑看;再向大大報告結果!
感恩!
作者: jiuhtsair    時間: 2012-1-31 17:38

回復 4# GBKEE
感謝GBKEE大大!
一試OK!
一解數月來的困擾!
感謝!
您....太...太厲害了!
作者: f3202    時間: 2012-4-28 22:53

請問版大
    j = 2
開始執行怎麼
j=1
作者: c_c_lai    時間: 2012-4-29 08:50

回復 6# jiuhtsair
請教一下,你既然是以一分鐘才寫入一筆資料,為何不用 60 而是 58?
我順手將股票圖玩了一下下,O、H、L、C 的處裡還蠻切實際的,因盤中券商之H、L 都不太......
[attach]10734[/attach]
[attach]10735[/attach]
作者: yue790513    時間: 2018-12-8 02:24

t=Time

Sub( )

if minute(Time)=mintute(t)  then
..
t=Dateadd("n",1,Time)
...
Else
..




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