Advancedflow

CVD و Cumulative Delta

15 min
CVD و Cumulative Delta

جریان خریداران vs فروشندگان.

CVD و Cumulative Delta: تحلیل جریان خریداران در برابر فروشندگان

هدف یادگیری

پس از مطالعه این درس، قادر خواهید بود CVD را از داده‌های tick-by-tick محاسبه کنید، واگرایی بین قیمت و delta را به‌صورت کمّی تفسیر کنید، و سیگنال‌های order flow را در استراتژی‌های معاملاتی خود ادغام کنید.

---

۱. Volume Delta: تعریف فنی و فرمول پایه

Volume Delta برای هر کندل یا بازه زمانی به‌صورت زیر تعریف می‌شود:

Δ = V_buy - V_sell

که در آن:
- V_buy: حجم معاملاتی که روی Ask اجرا شده‌اند (aggressive buyers)
- V_sell: حجم معاملاتی که روی Bid اجرا شده‌اند (aggressive sellers)

برای تفکیک سمت معامله از Tick Rule یا Lee-Ready Algorithm استفاده می‌شود:

اگر Price(t) > Price(t-1) → تخصیص به Buy
اگر Price(t) < Price(t-1) → تخصیص به Sell
اگر Price(t) = Price(t-1) → از آخرین تغییر قیمت پیروی می‌کند

در صرافی‌های مدرن مثل Binance و CME، فیلد side در trade stream مستقیماً این تفکیک را فراهم می‌کند و نیازی به تخمین نیست.

مثال محاسبه‌شده:
فرض کنید در یک کندل ۵ دقیقه‌ای بیت‌کوین، ۱۲۰ BTC روی Ask و ۸۵ BTC روی Bid معامله شده:

Δ = 120 - 85 = +35 BTC

خریداران تهاجمی ۳۵ BTC بیشتر از فروشندگان تهاجمی وارد بازار کرده‌اند.

---

۲. CVD: ساختار کمّی و نحوه محاسبه

Cumulative Volume Delta یا CVD جمع تجمعی مقادیر Delta در طول زمان است:

CVD(t) = Σ Δ(i) برای i از 1 تا t

یا به‌صورت بازگشتی:

CVD(t) = CVD(t-1) + Δ(t)

پیاده‌سازی در Python:

python
import pandas as pd

def compute_cvd(trades_df):
"""
trades_df باید ستون‌های: price, size, side ('buy'/'sell') داشته باشد
"""
trades_df['signed_volume'] = trades_df.apply(
lambda r: r['size'] if r['side'] == 'buy' else -r['size'], axis=1
)
trades_df['delta'] = trades_df['signed_volume']
trades_df['cvd'] = trades_df['delta'].cumsum()
return trades_df

خروجی این تابع یک سری زمانی از CVD است که با نمودار قیمت در کنار هم تحلیل می‌شود.

نکته مهم: CVD یک indicator مطلق نیست؛ مقدار عددی آن به نقطه شروع محاسبه بستگی دارد. آنچه اهمیت دارد شیب و واگرایی آن نسبت به قیمت است.

---

۳. تفسیر CVD: چهار وضعیت اصلی

وضعیت ۱: Bullish Confirmation

قیمت ↑ | CVD ↑

خریداران تهاجمی قیمت را بالا می‌برند. روند صعودی از پشتوانه order flow برخوردار است. این حالت نشان می‌دهد حرکت قیمت organic است نه ناشی از کمبود عرضه.

وضعیت ۲: Bearish Confirmation

قیمت ↓ | CVD ↓

فروشندگان تهاجمی در حال فشار هستند. روند نزولی با جریان واقعی سفارش‌ها هم‌راستاست.

وضعیت ۳: Bullish Divergence (واگرایی مثبت)

قیمت ↓ | CVD ↑ یا flat

قیمت پایین می‌آید اما خریداران تهاجمی همچنان فعال هستند. این سناریو معمولاً به‌معنای جذب (absorption) است: یک طرف بزرگ (often smart money) در حال خریدن از فروشندگان وحشت‌زده است. احتمال ریورسال بالاست.

وضعیت ۴: Bearish Divergence (واگرایی منفی)

قیمت ↑ | CVD ↓ یا flat

قیمت بالا می‌رود اما فروشندگان تهاجمی غالب هستند. این وضعیت نشان‌دهنده passive buying است؛ یعنی قیمت به‌خاطر عدم وجود فروشنده بالا رفته، نه به‌خاطر تقاضای قوی. در این حالت حرکت ضعیف و آسیب‌پذیر است.

---

۴. Delta Divergence: تحلیل کمّی با Z-Score

برای کمّی‌کردن واگرایی، می‌توان از Z-Score نرمال‌شده استفاده کرد:

python
def divergence_score(price_series, cvd_series, window=20):
price_returns = price_series.pct_change(window)
cvd_returns = cvd_series.diff(window)

# نرمال‌سازی
price_z = (price_returns - price_returns.mean()) / price_returns.std()
cvd_z = (cvd_returns - cvd_returns.mean()) / cvd_returns.std()

# واگرایی: اختلاف Z-Score
divergence = cvd_z - price_z
return divergence

مقادیر divergence > +2 نشان‌دهنده واگرایی مثبت قوی (احتمال صعود) و divergence < -2 نشان‌دهنده واگرایی منفی قوی (احتمال نزول) هستند.

مثال عددی:
فرض کنید در ۲۰ کندل گذشته، قیمت BTC از ۶۵,۰۰۰ به ۶۳,۵۰۰ رسیده (−۲.۳٪) اما CVD در همین بازه ۱,۲۰۰ BTC افزایش یافته. Z-Score قیمت: −۱.۸، Z-Score CVD: +۱.۴، پس divergence = +۳.۲ که سیگنال قوی صعودی است.

---

۵. Delta Footprint و تحلیل در سطح Price Level

عمیق‌ترین سطح تحلیل CVD، بررسی Delta به تفکیک Price Level است که در نمودار Footprint نمایش داده می‌شود:

Price Level | Buy Volume | Sell Volume | Delta
63,500 | 45.2 | 12.8 | +32.4
63,450 | 18.6 | 67.3 | -48.7 ← absorption
63,400 | 92.1 | 11.4 | +80.7 ← strong demand

مفاهیم کلیدی در Footprint:

- Absorption: سطحی که در آن یک طرف حجم بسیار بالایی را جذب می‌کند بدون اینکه قیمت تغییر زیادی کند. این سطوح معمولاً support/resistance قوی هستند.

- Exhaustion: سطحی که Delta در آن به شدت یک‌طرفه است اما قیمت دیگر حرکت نمی‌کند؛ نشان‌دهنده اتمام انرژی حرکت است.

- High Delta Candle با بسته شدن ضعیف: اگر Delta یک کندل بسیار مثبت باشد (+500 BTC) اما کندل در نزدیکی پایین‌ترین نقطه خود بسته شود، فروشندگان passive در حال جذب تمام خرید تهاجمی هستند.

---

۶. ادغام CVD با استراتژی‌های معاملاتی

استراتژی ۱: CVD Breakout Confirmation

هنگامی که قیمت یک سطح مقاومت را می‌شکند، CVD باید همزمان به سطح جدیدی برسد. اگر Breakout با CVD flat یا نزولی همراه باشد، احتمال Fakeout بسیار بالاست.

فیلتر کمّی:

شرط ورود به Long:

  • قیمت > High[20]

  • CVD(t) > CVD(t-20) × 1.15 (رشد حداقل ۱۵٪ نسبت به ۲۰ دوره قبل)

  • Volume(t) > Volume_SMA(20) × 1.2

استراتژی ۲: Divergence Reversal

برای ترید واگرایی به سه تأیید نیاز است:

  • واگرایی CVD قوی (Z-Score > 2)

  • Volume بالای میانگین

  • تأیید ساختار قیمتی (Higher Low برای bullish، Lower High برای bearish)

استراتژی ۳: Session CVD Reset

بسیاری از تریدرهای حرفه‌ای CVD را در ابتدای هر سشن (Asia/London/NY) ریست می‌کنند و جریان هر سشن را مستقل تحلیل می‌کنند. اگر سشن نیویورک با CVD منفی شدید شروع شود اما قیمت بالا باشد، احتمال فشار نزولی در ساعات بعد وجود دارد.

---

نتیجه‌گیری

CVD یکی از معدود ابزارهایی است که به تریدر امکان می‌دهد نیت واقعی بازار را از پشت حرکات قیمت ببیند. برخلاف اندیکاتورهای مبتنی بر قیمت که lagging هستند، CVD به‌صورت real-time جریان سفارش‌ها را نشان می‌دهد.

نکته مهم این است که CVD یک ابزار تأییدیه است، نه ابزار ورود مستقل. قدرت واقعی آن زمانی آشکار می‌شود که در ترکیب با تحلیل ساختار بازار، سطوح کلیدی، و Order Book استفاده شود.

---

خلاصه نقطه‌ای

- Delta = V_buy − V_sell و CVD جمع تجمعی آن در طول زمان است
- Bullish Divergence: قیمت پایین، CVD بالا = جذب و احتمال ریورسال صعودی
- Bearish Divergence: قیمت بالا، CVD پایین = ضعف ساختاری و خطر ریزش
- برای کمّی‌کردن واگرایی از Z-Score استفاده کنید (عتبه ±۲)
- در Footprint Chart، سطوح Absorption و Exhaustion را شناسایی کنید
- هرگز CVD را تنها به‌عنوان سیگنال ورود استفاده نکنید؛ همیشه با ساختار قیمت تأیید بگیرید
- ریست کردن CVD در ابتدای هر سشن معاملاتی برای تحلیل دقیق‌تر توصیه می‌شود
- Breakout بدون رشد CVD = Fakeout با احتمال بالا

CVD و Cumulative Delta | TradeyAR Academy | TradeyAR