關於逐筆交易中儲存每筆單的array

  •   69 
  • 最後發表   YOHUA  2025 六月 27
YOHUA 發文於   2025/06/23

input: filterMode(1, "篩選方式", inputkind:=dict(["買盤",1], ["賣盤",-1]));
2input: filterVolume(100, "大單門檻");
3
4var: intrabarpersist readtick_cookie(0);// ReadTicks內部使用, 每次呼叫時請照實傳入
5array: tick_array[100, 11](0);// 需要宣告一個2維陣列來儲存Tick資料
6var: row_count(0), idx(0);
7
8// 讀取Tick資料
9row_count = ReadTicks(tick_array, readtick_cookie);
10for idx = 1 to row_count begin
11  if tick_array[idx, 5] = filterMode and tick_array[idx, 10] >= filterVolume then begin
12    ret=1;
13  end;
14end;

1, 上述是儲存每一筆成交的紀錄,請問上一筆資料的成交量是 tick_array[idx + 1, 10] 嗎? 謝謝
2, 有沒有方法能夠比較這一筆、前一筆和前第二筆的資料(ex:成交量)?

謝謝解答

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/06/23

ReadTicks函數會傳回readtick_cookie(序號)之後的所有Tick構成的陣列。陣列的第一筆是最新的一筆Tick,所以上一筆的單量是tick_array[idx + 1, 10],前兩筆的單量就是tick_array[idx + 2, 10]。若要比較單量增加,可以用If tick_array[idx, 10]>tick_array[idx + 1, 10] then...。

XS小編 發文於   2025/06/27

Hello YOHUA,

 

小編補充,如果您想使用的欄位有Tick頻率 (ex. 成交量),那麼可以透過 [n] 的方式直接取得 n 個 Tick 前的資訊。

舉例來說 GetField("Volume", "Tick") 會是當下tick的成交量, GetField("Volume", "Tick")[1] 會是前一筆Tick的成交量。

發表回覆
Close