Phân tích Volume theo Thời gian Trước TGE

Mục tiêu của báo cáo này là nhóm (bucket) toàn bộ lệnh theo khoảng thời gian trước TGE,
để xem dòng tiền phân bố như thế nào — tập trung ngắn hạn hay dồn từ sớm.


1️⃣ Chuẩn bị môi trường

library(dplyr)
library(ggplot2)
library(scales)
# Load dataset đã lưu sẵn
data_joined <- readRDS("data_joined.rds")

Đổi mốc tuần ra giờ


=> Khi R Markdown render, nó hiểu đây là **văn bản hiển thị ba dấu backtick (`) trong Markdown**, chứ không phải là **khối code R để chạy**.

---

## ✅ Cách sửa đúng
Bạn cần đảm bảo **code chunk được viết đúng cú pháp, không bị lồng trong Markdown text**:

```markdown
# Đổi mốc tuần ra giờ


``` r
bucket_breaks <- c(0, 1, 6, 12, 24, 48, 72,
                   168, 336, 672, 1008, 1344, 2016, 4032, 6048, 8064, Inf)

bucket_labels <- c("<1h", "1-6h", "6-12h", "12-24h", "24-48h", "48-72h",
                   "3d-1w", "1-2w", "2-4w", "4-6w", "6-8w", "8-12w",
                   "12-24w", "24-36w", "36-48w", ">48w")

data_bucket <- data_joined %>%
  mutate(
    time_bucket = cut(
      lead_time_hours,
      breaks = bucket_breaks,
      labels = bucket_labels,
      right = FALSE
    )
  ) %>%
  group_by(token_symbol, time_bucket) %>%
  summarise(
    total_volume_usd = sum(order_value_usd, na.rm = TRUE),
    order_count = n(),
    .groups = "drop"
  )
head(data_bucket)
## # A tibble: 6 × 4
##   token_symbol time_bucket total_volume_usd order_count
##   <chr>        <fct>                  <dbl>       <int>
## 1 0G           1-6h                  12788.          16
## 2 0G           6-12h                 15254.          16
## 3 0G           12-24h                 1120.           6
## 4 0G           24-48h                 1699.           6
## 5 0G           3d-1w                  3052.           6
## 6 2z           <1h                  159498.         150

Đảo trục để thời gian gần TGE nằm bên phải