Mục lục bài viết

Bằng chứng và phạm vi

Bài Reddit tự khai lợi nhuận và giữ kín một phần quy tắc; chưa có xác minh độc lập. Thuật toán dưới đây loại thành phần kín và là giả thuyết riêng, không tái lập track record đó.

Dữ liệu và thị trườngNguồn cộng đồng nói ES/NQ; cần historical trade classification và calendar hợp đồng. Bộ ví dụ chuẩn hóa giá không đại diện mức giá chỉ số.
Khung thời gian nghiên cứuVí dụ M1 hoặc M5; chờ ít nhất 20 bar sau anchor, nên thời gian sớm nhất khác nhau giữa hai khung.
Đáy giá sau thấp hơn nhưng CVD cao hơn; tín hiệu chỉ xuất hiện sau hai nến xác nhận và trước khi target 100 bị chạm.Mở hình kích thước đầy đủ
Giá sự kiện, volume và CVD chú thích là dữ liệu giả lập. Band và mean là snapshot trước event, không phải đường VWAP tương lai.

Quy trình thực hành

Sơ đồ quy trình VWAP mean reversion và CVD: kiểm định đảo chiều sau lệch band
Các bước được mô tả đầy đủ bên dưới. Tại mỗi bước, dữ liệu thiếu hoặc điều kiện sai phải có lý do loại bỏ.
  1. Lọc regime quá khứVWAP phẳng và crossing đủ.
  2. Reclaim bandKhóa band và mean trước event.
  3. Xác nhận CVDPivot giá có đủ nến bên phải.
  4. Kiểm cơ hội còn lạiTarget chưa chạm và RR đủ.
  5. Vào rồi thoátStop, target cố định và time-stop.

Tuyên bố có lãi và phần chưa thể tái lập

Rogue-seeker tự báo lãi YTD103.750 USD sau thuế và PF2,15, kết hợp VWAP bands, CVD và custom blocks [1]. Phần đã đọc không cung cấp chuỗi giao dịch kiểm toán; một số ngưỡng không công khai. Vì vậy chỉ nhận đây là nguồn phát sinh ý tưởng.

Điểm khó không nằm ở vẽ band mà ở câu “ngoài 2σ nên dễ hồi”. Giá trong phiên là chuỗi phụ thuộc thời gian, không phải các lần rút mẫu độc lập từ phân phối chuẩn cố định. Band 2σ không bảo đảm 95% xác suất hồi VWAP, càng không bảo đảm chạm target trước stop.

Bài thiết kế rõ ba tầng: regime không trend mạnh, sự kiện vượt và reclaim band, rồi divergence đã xác nhận. Không ghép thêm HVN/LVN hoặc block chưa định nghĩa; muốn thêm cần một phiên bản riêng với nguồn dữ liệu và thời điểm biết được ghi rõ.

Band và regime tính từ quá khứ

Dùng trade quantity làm trọng số: μ=Σqp/Σq và σ²=Σq(p−μ)²/Σq từ anchor phiên; dùng thuật toán online ổn định số. Đây là định nghĩa band của bài, không mặc định trùng mọi nền tảng. TradingView cho phép cấu hình anchor, source và band mode [2]; phải đối chiếu implementation trước khi so chart.

Đề xuất tại t−1 đã có 20 bar: |VWAP[t−1]−VWAP[t−6]|≤0,2A và ít nhất 3 lần close đổi phía VWAP trong 20 bar gần nhất. A=ATR14[t−1]. Giá bằng VWAP không tính crossing và kế thừa phía gần nhất. Khóa lower=μ[t−1]−2σ[t−1], target_ref=μ[t−1] khi event t có low<lower và close>lower.

Event low phải trở thành pivot trái 2/phải 2; pivot trước đó cùng phiên có giá cao hơn ít nhất b=max(2tick,0,1A), còn CVD tại event cao hơn CVD tại pivot trước. Signal chỉ sau khi pivot được xác nhận, trong 5 bar từ event, close vượt high bar trước và còn dưới target_ref. Nếu target đã bị chạm ở bất kỳ bar sau event trước signal, hủy vì cơ hội đã đi qua.

Khóa một event tại một thời điểm. Pivot không đủ hai bar trái, low mới phá low event trong giai đoạn xác nhận, CVD thiếu đoạn hoặc khác reset đều bị loại. Kiểm tính đầy đủ của flow từ pivot trước tới pivot event, không chỉ hai giá trị endpoint. Khi đã phát signal, tiêu thụ event ngay cả nếu quote kế tiếp không đạt RR; không chờ một entry đẹp hơn dưới cùng event_id.

at_event_close(t):
  if active_event or not complete_prior_band_ATR_regime_history: return
  if prior_range_regime and L[t]<lower[t-1] and C[t]>lower[t-1]:
    create_event(target=VWAP[t-1],event_low=L[t],A=ATR[t-1],
                 buffer=max(2*tick,0.10*ATR[t-1]),start=t,expiry=t+5,
                 session_id=session_id(t),anchor_id=anchor_id(t),
                 cutoff=session_end-5_minutes,state=AWAITING)
on_completed_bar(now):
  if event.state!=AWAITING: return
  if changed_session_or_anchor(event,now) or received_close_time(now)>=event.cutoff:
    event.state=EXPIRED; return
  if now>event.expiry or target_touched_after_event_through(now):
    event.state=CANCELED; return
  if event_low_no_longer_a_valid_pivot_candidate:
    event.state=CANCELED; return
  if not pivot_confirmed_left2_right2 or not previous_confirmed_pivot: return
  if not same_reset_and_complete_classified_CVD_segment_between_pivots:
    event.state=REJECTED; return
  if price_lower_low_by_frozen_buffer and cvd_higher_low
       and C[now]>H[now-1] and C[now]<event.target:
    stop=min_low_since_event-event.buffer
    event.state=CONSUMED
    check_expected_RR_then_order_on_next_quote_before_cutoff()
# A consumed event permits at most one submission; rejected quotes do not rearm it.
# Session-close and anchor-reset timers terminate pending events without another bar.

CVD cần so đúng điểm, đúng reset

CVD dùng cumulative buy-aggressive volume trừ sell-aggressive volume. Sierra Chart mô tả phiên bản AskVolume−BidVolume và yêu cầu dữ liệu phù hợp [3]. Nếu feed phân loại khác, lưu classification_method; không dùng tên CVD giống nhau để coi các đường giống nhau.

So CVD tại thời điểm hai pivot giá, không tìm hai đáy độc lập của CVD rồi ghép về chart. Mốc reset phải thống nhất; điểm trước reset không được so thẳng với điểm sau. CVD higher low không chứng minh riêng một tổ chức hấp thụ, cũng không loại bỏ khả năng bids sẽ rút ngay sau đó.

Regime filter chỉ quan sát quá khứ: không gọi phiên là range vì cuối ngày giá quay về open. Nếu cùng ngày chuyển sang trend, stop vẫn có thể liên tiếp xảy ra. Giới hạn số lần thử mỗi phía, cooldown và daily-risk budget cần có trước để đo tổng tail risk.

Ví dụ hồi về mean và ví dụ thất bại

Dữ liệu giả lập đã chuẩn hóa: trước event μ 100, σ 1 nên lower 98; A1, tick 0,01, b 0,1. Pivot trước giá 98,5 với CVD−800. Event xuống 97,5 rồi close 98,2, CVD tại đáy−650. Hai bar bên phải không có low thấp hơn; tại confirmation close 98,5 vượt high bar trước 98,4. Target 100 chưa bị chạm.

Quote mua 98,55, stop 97,4 tạo risk 1,15 và reward 1,45, khoảng 1,26R trước phí. Với minRR đề xuất 1,2 thì có thể nhận; nếu quote 98,8, risk 1,4 và reward 1,2 không đạt. Bài không ép mọi trade mean reversion phải có 2R khi mean nằm gần.

Thất bại sau signal: một làn sóng bán mới đưa giá xuống 97,3, stop 97,4 khớp 97,35, lỗ 1,20. Một trường hợp không vào: giá đã bật tới 100 ở bar t+1, rồi rơi về 98,5 khi pivot xác nhận. Không lấy cả lợi nhuận bật sớm lẫn entry xác nhận muộn; detector hủy vì target đã tới trước tín hiệu.

Target cố định giúp kiểm định nhân quả

Bản baseline giữ target_ref tại μ trước event, stop dưới low toàn event và time-stop 10 bar sau fill; đóng vị thế trước phiên kết thúc. Dynamic VWAP target là nhánh khác. Nếu vừa giá giảm vừa VWAP giảm, dời target xuống có thể làm hit-rate đẹp nhưng giảm reward; phải báo cùng P&L.

Order sau confirmation trả ask khi mua và nhận bid khi thoát. Với futures, chuyển khoảng giá sang tiền bằng contract multiplier, tính tick rounding đúng. Chi phí 0,1 điểm trên stop 0,5 điểm bằng 0,2R trước các phí khác; stop hẹp làm thống kê midprice đặc biệt dễ lạc quan.

Short đối xứng về hình học quanh upper band, nhưng giao dịch long/short phải báo riêng. Không bình quân tăng size mỗi khi giá đi xa hơn 2σ. Tăng đòn bẩy dựa vào mức lệch chưa được kiểm định có thể biến chuỗi lỗ nhỏ thành một lỗ lớn.

Baseline bổ sung giờ ngừng nhận entry là 5 phút trước giờ đóng phiên theo lịch sàn, kể cả phiên rút ngắn. Candidate giữ session_id, và nếu có VWAP thì giữ cả anchor_id; hết cutoff, sang phiên mới hoặc reset anchor đều hủy trạng thái chờ. Quote sau signal cũng phải tới trước cutoff. Timer cuối phiên vẫn hủy dù không có bar tiếp theo; không mang cửa sổ chờ sang sáng hôm sau. Đây là quy tắc nghiên cứu do bài lựa chọn.

Bóc từng thành phần thay vì tin vào tổ hợp

Tạo event từ price-only band reclaim, rồi so thêm regime, thêm CVD, và kết hợp. Giữ tất cả event không đạt filter để thấy selection. Đối chứng có cùng giờ/volatility giúp tránh việc chỉ lọc ra buổi trưa ít trend.

Gom các event chồng lấn thành cluster trong validation; tách năm và điều kiện thị trường. Báo số cơ hội đã hồi mean trước confirmation để định lượng cái giá của pivot delay, bên cạnh net expectancy, turnover, drawdown và chuỗi stop liên tiếp.

Forward paper trading phải giữ cả event time và receive time. Chỉ khi specification đầy đủ được khóa, out-of-sample qua phí và fill vẫn có giá trị mới có cơ sở nâng mức bằng chứng. Tuyên bố cộng đồng không thay được bước này.

Sai lầm thường gặp

Range theo cuối ngày

Nhãn tương lai làm filter biết trước ngày sẽ hồi.

Target di chuyển âm thầm

Dynamic VWAP và frozen mean là hai chiến lược khác.

Tái lập phần kín

Thiếu custom block/threshold thì không thể nhận đã sao chép kết quả tác giả.

Checklist trước khi dùng phương pháp

Tự đánh dấu khi đã kiểm tra trên dữ liệu của bạn. Trạng thái lưu trong trình duyệt này; đây không phải chứng nhận chiến lược có lãi.

0/7 mục

Câu hỏi thường gặp

Ngoài 2σ có phải quá bán chắc chắn?

Không. Nó mô tả độ lệch theo estimator đã chọn; một xu hướng mới có thể khiến phân phối tiếp tục dịch chuyển.

CVD không có dữ liệu thì dùng OBV thay được không?

OBV là feature khác, không tái tạo aggressive delta. Có thể thử price-only hoặc OBV như nhánh mới, với tên rõ.

Nguồn nghiên cứu

Các nguồn dưới đây hỗ trợ phần định nghĩa hoặc bằng chứng được ghi bên cạnh. Mã giả, ví dụ minh họa và tham số đề xuất trong bài cần được kiểm định riêng.

  1. Here's how being a dev helped me make YTD $104k (NET profit)Rogue-seeker trên r/Daytrading. Đọc bài và bình luận; tự khai, phần quy tắc kín, chưa xác minh P&L. Đối chiếu: .
  2. Volume Weighted Average PriceTradingView. Cấu hình VWAP/bands; không gán band formula riêng của bài cho nền tảng. Đối chiếu: .
  3. Cumulative Delta Bars – VolumeSierra Chart. Đọc định nghĩa Ask/Bid volume, dữ liệu và reset; không dựa vào quảng cáo độ chính xác. Đối chiếu: .

Đọc tiếp theo phương pháp

Lưu ý rủi ro

Nội dung phục vụ giáo dục và thiết kế nghiên cứu, không phải lời khuyên tài chính. Backtest là mô phỏng lịch sử, không bảo đảm hiệu quả tương lai và không đặt lệnh giao dịch thật. Các phương pháp trong thư viện không mặc nhiên là tính năng đã có trong ứng dụng. Xem phương pháp tính và trung tâm học.

Kiểm tra quy tắc trước khi dùng vốn thật

Đối chiếu khả năng hỗ trợ của ứng dụng, dữ liệu và từng giao dịch mô phỏng; các detector nâng cao có thể cần triển khai riêng.

Tải Backtest trên App Store