數據

上漲和下跌的淨交易量參考

  • February 28, 2021

我是金融新手,我一直在關注價格、交易量和淨交易量方面的市場數據。從我收集到的:

交易量 - 在指定時間內的交易(買賣)數量。

淨交易量 - 在此期間上漲和下跌之間的差異,在此處顯示的範例中,本質上是指“下行”交易和“上行”交易之間的差異。

因此,舉個例子,在同一小時內我有 900 筆交易量和 +500 筆淨交易量,這意味著 200 筆交易量是向下交易,而 700 筆是向上交易。我的問題是,相對於什麼向上/向下?到最初的購買價格還是到最近的交易?

經典的淨交易量指標在 OHLCV 柱上執行,而不是在原始交易上執行。

  • 當柱的收盤價高於開盤價時記錄上漲
  • 當柱的收盤價低於開盤價時記錄下跌
  • 有符號(定向)交易量在上漲時為正,在下跌時為負
  • 淨交易量是已簽署交易量的累計總和

讓我用一個使用 5 分鐘柱線的例子來說明這個概念。

| datetime |  open() | close() | tick | volume() | sign_volume | net_volume |
|----------|--------:|--------:|-----:|---------:|------------:|-----------:|
| 09:30:00 |   62.35 |   62.48 |    1 |    95611 |       95611 |      95611 |
| 09:35:00 |   62.42 |   62.97 |    1 |    50887 |       50887 |     146498 |
| 09:40:00 |   62.94 |   62.82 |   -1 |    45114 |      -45114 |     101384 |
| 09:45:00 |   62.90 |   62.30 |   -1 |    24267 |      -24267 |      77117 |
| 09:50:00 |   62.29 |   61.45 |   -1 |    72576 |      -72576 |       4541 |
| 09:55:00 |   61.45 |   61.43 |   -1 |    28622 |      -28622 |     -24081 |
| 10:00:00 |   61.48 |   61.98 |    1 |    28092 |       28092 |       4011 |
| 10:05:00 |   62.00 |   62.02 |    1 |    42849 |       42849 |      46860 |

下面的 SQL 查詢獲取原始交易,計算 OHLCV 柱線,按價格方向(tick列)對柱線進行分類,最後總結已簽署的交易量。

SELECT *, SUM(signed_volume) AS net_volume FROM (
SELECT symbol, datetime, open(), close(), 
 CASE 
   WHEN close()>open() THEN 1
   WHEN close()<open() THEN -1
   ELSE 0
 END AS tick,
 volume(), 
 tick*volume() AS signed_volume
FROM atsd_trade WHERE symbol = 'NTAP.US'
AND datetime BETWEEN '2021-02-26' AND '2021-02-27'
GROUP BY exchange, class, symbol, PERIOD(5 minute)
   ) WITH ROW_NUMBER(symbol ORDER BY datetime) > 0

OHLCV 柱的淨交易量對柱週期很敏感。

在此處輸入圖像描述

您也許可以通過使用 vwap 和/或通過收緊分時條件來穩定它,以便需要更大的價格變動來導致淨交易量的變化。

   WHEN vwap()>prev_vwap THEN 1
   WHEN vwap()<prev_vwap THEN -1
   ELSE 0
   WHEN close()>open()*1.001 THEN 1
   WHEN close()<open()*0.999 THEN -1
   ELSE 0

交易方向(買入或賣出)不是淨交易量的一部分計算。此外,它與訂單方向不同。在限價訂單簿中,當傳入的買單立即與正常賣單匹配時,交易被歸類為買入。如果傳入的買單不匹配,則將其放置在訂單簿中,當稍後的賣單接受時,該交易將被歸類為賣單。換句話說,正如@user47399 提到的,交易方向== 流動性接受者的訂單方向。在拍賣期間,當不使用限價訂單簿時,交易方向基於交易所分配的訂單號。在兩個參與的競價訂單中,交易方向是從後面的訂單中推斷出來的。要正確確定交易方向,需要訪問完整的訂單日誌或交易源,其中記錄由交易所預先分類。

買入交易可以是下跌交易,賣出交易可以是上漲交易。在下面的範例中,買入交易 3657601171 是下跌,而賣出交易 3657602494 導致上漲。

| datetime                   |  price | quantity | side | prev_price | tick |  trade_num |
|----------------------------|-------:|---------:|------|-----------:|-----:|-----------:|
| 2021-02-26 11:01:43.482121 | 35.251 |        1 | B    |            |    0 | 3657600807 |
| 2021-02-26 11:01:47.289811 | 35.243 |       90 | B    |     35.251 |   -1 | 3657601171 |
| 2021-02-26 11:01:47.289811 | 35.243 |       10 | B    |     35.243 |    0 | 3657601172 |
| 2021-02-26 11:01:51.535774 | 35.242 |       11 | B    |     35.243 |   -1 | 3657601628 |
| 2021-02-26 11:01:59.153104 | 35.270 |        1 | S    |     35.242 |    1 | 3657602494 |
| 2021-02-26 11:01:59.153104 | 35.260 |        1 | S    |     35.270 |   -1 | 3657602495 |
| 2021-02-26 11:01:59.153104 | 35.252 |       11 | S    |     35.260 |   -1 | 3657602496 |
| 2021-02-26 11:01:59.682744 | 35.252 |       79 | S    |     35.252 |    0 | 3657602528 |
| 2021-02-26 11:01:59.682744 | 35.252 |       21 | S    |     35.252 |    0 | 3657602529 |
SELECT * FROM (
SELECT datetime, price, quantity, side, LAG(price) AS prev_price, 
 CASE 
   WHEN price>prev_price THEN 1
   WHEN price<prev_price THEN -1
   ELSE 0
 END AS tick, trade_num
FROM atsd_trade WHERE symbol = '-- redacted
AND datetime BETWEEN '2021-02-26 11:01:40' AND '2021-02-26 11:02:00'
) --WHERE (side = 'B' AND tick = -1 OR side = 'S' AND tick = 1)

為了獲得有意義的結果,根據原始交易計算的淨交易量需要按確切的交易時間(和訂單號)對數量進行分組,以便將同一訂單觸發的同時交易視為一筆交易。

例如,您將如何對均源自同一個 SELL 訂單並同時註冊的 SELL 交易 3657602494、3657602495、3657602496 進行分類?我認為應該將其視為 13 手的上漲。

引用自:https://quant.stackexchange.com/questions/54599