返回列表 上一主題 發帖

[發問] 有關於自動交易系統怎樣觸發發單的問題

本帖最後由 GBKEE 於 2014-4-27 10:38 編輯

回復 8# flyflyduck1
一般的接收DEE的資料 時間,開盤價,最高價,最低價,收盤價,成交量,成交筆數
在固定的儲存格接收數值,使用者在1分鐘,或 5分鐘將資料導入指定的位置
可參考下面Sheet1模組程式 執行Ex()試試看
  1. Option Explicit '接收DEE的資料可使用 Worksheet_Calculate
  2. Private Sub Worksheet_Calculate()
  3.     Static DataLoad_Time As Single    'Static 關鍵字儲存變數
  4.     Static Ar()
  5.     'Static 陳述式  在程序層次中用來宣告變數並配置儲存空間。
  6.     '以 Static 陳述式宣告的變數,在程式執行期間,會一直保留內容

  7.     '這工作表: 假設Dee公式在[B2:I2],且他儲存格無公式存在
  8.     '意味任一個 Dee公式有變動會啟動這Calculate事件
  9.     If DataLoad_Time <> 0 And [b2] - DataLoad_Time > #12:00:59 AM# Then '在下一分鐘出現後
  10.         Range("B" & Rows.Count).End(xlUp).Offset(1).Resize(1, 8) = Ar '導入上一分鐘的資料
  11.         '可接下作你要的工作
  12.         '可接下作你要的工作
  13.     End If
  14.     Ar = [B2:I2].Value           '紀錄資料
  15.     DataLoad_Time = [b2]   '紀錄時間
  16. End Sub
  17. Sub Ex()  '這程序模擬Dee公式在Sheet2上的儲存格,進而觸發Worksheet_Calculate事件
  18.     Dim h, L
  19.     h = 50
  20.     L = 40
  21.     With Sheet2.[B2:I2]
  22.         .Cells(1) = Time                       '只有資料變動,才會觸發Worksheet_Calculate事件
  23.         .Cells(2) = Int((h - L + 1) * Rnd + L)  '50 - 40的亂數
  24.         .Cells(3) = Int((h - L + 1) * Rnd + L)
  25.         .Cells(4) = Int((h - L + 1) * Rnd + L)
  26.         .Cells(5) = Int((h - L + 1) * Rnd + L)
  27.         .Cells(6) = Int((h - L + 1) * Rnd + L)
  28.         .Cells(7) = Int((h - L + 1) * Rnd + L)
  29.         .Cells(8) = Int((h - L + 1) * Rnd + L)  '如變動8次就觸發8次的Worksheet_Calculate事件
  30.     End With
  31.     Application.OnTime Time + #12:01:00 AM#, "Sheet1.ex"
  32.     Debug.Print Time
  33. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 小事不做、大事難成。
返回列表 上一主題