返回列表 上一主題 發帖

[發問] API逐筆運算負擔大,可否精簡

本帖最後由 dreamsway 於 2018-11-9 16:12 編輯

回復 35# GBKEE
G大午安,那個↑↓指標的判斷是正確的,
我目前測到用這樣自動更新的方式,採用較之前您幫我修改的報價運算sub搭配多空紀錄sub,放在自動更新的sub內,報價及運算已測試兩天皆可順利運行,就是...盤中交易量大一點的瞬間會稍微頓一下(可能電腦該換了...)
雖然有點納悶為什麼自動更新可以,之前的重新整理就不行...
  1. Sub 執行()
  2. Call 共用參照
  3. Sht1.Range("J1") = "運行中.."
  4. uMode = "Start"

  5. Call 自動更新

  6. If uMode = "Stop" Then
  7. Sht1.Range("J1") = ">停止<"
  8. Exit Sub
  9. End If
  10. End Sub
複製代碼
  1. Sub 自動更新()
  2. On Error Resume Next
  3. ActiveWorkbook.RefreshAll
  4. If uMode = "Stop" Then Exit Sub
  5. Application.OnTime Now + TimeValue("00:00:15"), "自動更新"
  6. Call 報價運算 '裡面會再call 多空紀錄
  7. Call 高低更新
  8. Call K15
  9. Call 動態價
  10. End Sub
複製代碼
但若是我把自動更新sub裡面的call 報價運算改為K心態sub
若跑一輪沒在自動更新設定的15秒內跑完,就會開始之前的情況,導致報價一直更新但K心態也跑不完的狀況
另外,因為其他的sub都需要報價時間來做判斷,我試著在K心態內加上報價時間傳送到sht1.Range("C1") ,結果速度變得奇慢無比..
請問是不是這種寫法不適用這種逐筆更新另一個儲存格內容的狀況呢,因為目前的K心態是K棒時間收定後看到上一根運算的結果(例如現在09:49但只會看到09:45運算的結果)
不曉得能否看到即時的運算(例如報價時間09:49就看到運算到09:49的數據,而不用等到09:50過後)
如果不行的話就先採用目前已能順利運行的方式去跑,因為G大您幫我改過的多空紀錄,已經比我最原始的紀錄方式運行速度快非常多了

檔案

TOP

回復 37# GBKEE
謝謝G大這陣子的協助,我先用目前的版本就可以了,
這個代碼似乎只限於元大的EASYWIN軟體用的,但是元大的DDE/RTD/API都是綁這個。

TOP

        靜思自在 : 對父母要知恩,感恩、報恩。
返回列表 上一主題