Strasmore Research
Eğitim Matt ConnorYazan Matt Connor

Anchored VWAP: Formülü ve Kullanım Alanları

Anchored VWAP, seçilen bir çubukta başlayan ve sıfırlanmayan hareketli ortalamadır. Formülün Python ile açıklamasını ve anchor değişiminin sonucu nasıl etkilediğini inceleyin.

Anchored VWAP, seçilen bir çubukta toplamaya başlayan ve toplamlarını hiçbir zaman sıfırlamayan hacim ağırlıklı ortalama fiyat göstergesidir. Session VWAP her açılışta yeniden başlar. Bu nedenle yalnızca ortalama hissenin bugün hangi fiyattan el değiştirdiğini gösterir. Anchored VWAP ise farklı bir soruya yanıt verir: Seçilen başlangıç anından bu yana ortalama hissenin hangi fiyattan el değiştirdiğini gösterir.

Anchored VWAP nedir?

Her iki gösterge de aynı hesaplamayı kullanır. Başlangıçtan itibaren her çubuk için çubuk fiyatı ile çubuk hacmi çarpılır ve kümülatif toplam tutulur. Hacim için ayrıca ikinci bir kümülatif toplam tutulur. İlk toplam ikinci toplama bölünür. Formül olarak, n çubuğundaki anchored VWAP, anchor çubuğundan n çubuğuna kadar fiyat ile hacim çarpımlarının toplamının, aynı çubuklardaki hacim toplamına bölünmesiyle elde edilir.

Bir çubuğun fiyatı genellikle tipik fiyatıdır. Bu, en yüksek, en düşük ve kapanış fiyatının ortalamasıdır. Veri akışı çubuğun kendi VWAP değerini yayımlıyorsa bu değer de kullanılabilir.

Her iki toplamdan hiçbir veri çıkarılmaz. 50 günlük hareketli ortalama, yeni bir gözlem eklendiğinde en eski gözlemi çıkarır. Bu nedenle yön değiştirebilir. Anchored VWAP ise yalnızca veri ekler. Hafızası kalıcıdır. Session VWAP, her açılışta iki toplamın da sıfırlanmasıyla yapılan aynı hesaplamadır. Bu nedenle anchor noktası açılış zili olan bir anchored VWAP olarak düşünülebilir.

VWAP ile anchored VWAP arasındaki fark nedir?

Aşağıdaki panel, Apple’ın bir çeyreklik günlük çubukları üzerinde her iki göstergeyi hesaplar. session_vwap sütunu, her bir seans içindeki hacim ağırlıklı ortalama fiyatı gösterir. Bu değer her gün yeniden hesaplanır. anchored_vwap sütunu ise pencerenin ilk seansında başlar ve buradan itibaren birikimli olarak ilerler.

SorgulaGünlük seans VWAP’ı ile tek bir tarihe sabitlenmiş VWAP karşılaştırması (AAPL)
Her verinin arkasındaki tam SQL
SELECT
    toString(date)                AS session_date,
    formatDateTime(date, '%b %e') AS bar_label,
    round(toFloat64(vwap), 2)     AS session_vwap,
    round(
        sum(toFloat64(vwap) * toFloat64(volume)) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
      / sum(toFloat64(volume))                   OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
    , 2)                          AS anchored_vwap
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'AAPL'
  AND date >= '2026-04-01'
  AND date <= '2026-06-30'
ORDER BY date
Run this yourself

62 seans boyunca, Apr 1 ile Jun 30 arasında, günlük seri fiyat hareketini izlerken anchored seri yavaşça kıvrılır. İlk gün tek bir seans tüm geçmişi oluşturduğu için anchored çizgi 255.02 seviyesinde başlar. Pencerenin sonunda 286.86 seviyesine ulaşır. Son seans VWAP değeri ise 288.09 olur. Buradaki ders çizginin biçimindedir. Anchored çizgi başlangıçta günlük çizgiyi yakından izler. Ardından arkasındaki hacim biriktikçe yataylaşır.

Anchor noktası nereye konur?

Yaygın anchor noktaları bilanço açıklaması, gap’in ilk çubuğu, 52 haftalık dip veya yeni kote edilen bir hissenin ilk işlem fiyatıdır. Bu noktaların tümüne bağlanan iddia aynıdır. O andan sonra işlem yapan herkesin ortalama işlem fiyatı anchored VWAP’tır. Bu nedenle çizginin üzerindeki fiyat, ortalama yatırımcının gerçekleşmemiş kazançta olduğunu gösterir.

Genellikle söylenmeyen nokta şudur: Anchor seçimi bir değerlendirme kararıdır ve sonuç bu seçime göre değişir. Aşağıdaki panel, aynı hisseyi son on iki ayın her birinin başlangıcına anchor ederek, o aydan sabit bir bitiş tarihine kadar ödenen ortalama fiyatı hesaplar.

SorgulaAynı hisse ve aynı son fiyat, on iki farklı sabitleme noktası (AAPL)
Her verinin arkasındaki tam SQL
WITH
    monthly AS (
        SELECT
            toStartOfMonth(date)                     AS m,
            sum(toFloat64(vwap) * toFloat64(volume)) AS pv,
            sum(toFloat64(volume))                   AS vol
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'AAPL'
          AND date >= '2025-07-01'
          AND date <= '2026-06-30'
        GROUP BY m
    ),
    anchored AS (
        SELECT
            m,
            sum(pv)  OVER (ORDER BY m ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)
          / sum(vol) OVER (ORDER BY m ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS avwap
        FROM monthly
    ),
    final_close AS (
        SELECT toFloat64(argMax(close, date)) AS last_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'AAPL'
          AND date >= '2026-06-01'
          AND date <= '2026-06-30'
    )
SELECT
    formatDateTime(a.m, '%b %Y')                 AS anchor_from,
    round(a.avwap, 2)                            AS anchored_vwap,
    round(100 * (f.last_close / a.avwap - 1), 2) AS close_vs_avwap_pct
FROM anchored AS a
CROSS JOIN final_close AS f
ORDER BY a.m
Run this yourself

Anchor noktası Jul 2025 olarak seçildiğinde ödenen ortalama fiyat 259.52 olur. Pencerenin son kapanışı bununla karşılaştırıldığında 11.5% değerini verir. Kapanış çizginin üzerinde olduğunda bu değer pozitiftir. Anchor noktası Jun 2026 olarak seçildiğinde sonuçlar 294.07 ve -1.6% olur. Aynı hisse ve aynı son fiyat, anchor tarihinden beri pozisyon taşıyanların kârda olup olmadığı konusunda on iki farklı sonuç üretir. Hesaplama, anchor noktasını sizin için seçmez. Geçmişe bakılarak seçilen bir anchor, grafiğin desteklemesi istenen sonuca kadar değiştirilebilir. Bu nedenle okunan her anchored VWAP grafiğinin açıklamasında anchor tarihine yer verilmelidir.

Anchored VWAP Python’da nasıl hesaplanır?

Her iki seri de çubuklar üzerinde yapılan tek bir geçişle hesaplanabilir. Aşağıdaki betik, yalnızca standart Python 3 kütüphanesini kullanır. Paket veya ağ bağlantısı gerektirmez. Otuz çubuğu okur ve session serisini anchored seriyle yan yana yazdırır. Ardından fiyatın anchored çizgiyi yeniden kestiği ilk çubuğu bildirir. Çubuklar yalnızca gösterim amacıyla oluşturulmuştur. Aynı döngü gerçek çubuklara uygulandığında hesaplama değişmez.

"""Session VWAP and anchored VWAP from the same running totals. Standard library only."""
import csv
import io

# Illustrative bars, not market data: three sessions of ten 30 minute bars.
BARS = """bar,price,volume
2026-03-02 09:30,100.40,240000
2026-03-02 10:00,100.90,180000
2026-03-02 10:30,101.30,150000
2026-03-02 11:00,101.10,130000
2026-03-02 11:30,100.60,120000
2026-03-02 12:00,100.20,110000
2026-03-02 12:30,99.80,120000
2026-03-02 13:00,99.50,140000
2026-03-02 13:30,99.70,170000
2026-03-02 14:00,99.40,260000
2026-03-03 09:30,99.10,300000
2026-03-03 10:00,98.70,210000
2026-03-03 10:30,98.90,160000
2026-03-03 11:00,98.40,150000
2026-03-03 11:30,98.10,140000
2026-03-03 12:00,98.30,120000
2026-03-03 12:30,98.80,130000
2026-03-03 13:00,99.20,150000
2026-03-03 13:30,99.60,190000
2026-03-03 14:00,99.90,280000
2026-03-04 09:30,100.20,320000
2026-03-04 10:00,100.60,230000
2026-03-04 10:30,100.90,170000
2026-03-04 11:00,101.40,160000
2026-03-04 11:30,101.20,140000
2026-03-04 12:00,101.60,130000
2026-03-04 12:30,102.10,140000
2026-03-04 13:00,102.40,160000
2026-03-04 13:30,102.20,200000
2026-03-04 14:00,102.60,290000
"""

ANCHOR = "2026-03-02 10:30"   # the bar the anchored series starts on

session_pv = session_vol = 0.0
anchor_pv = anchor_vol = 0.0
current_day = None
anchored = False
start_side = None
crossover = None

print(f"{'bar':<18}{'price':>8}{'session':>10}{'anchored':>10}")

for row in csv.DictReader(io.StringIO(BARS)):
    stamp = row["bar"]
    day, price, vol = stamp[:10], float(row["price"]), float(row["volume"])

    if day != current_day:                  # the session totals reset at every open
        session_pv = session_vol = 0.0
        current_day = day
    session_pv += price * vol
    session_vol += vol
    session_vwap = session_pv / session_vol

    anchored = anchored or stamp == ANCHOR
    if not anchored:
        print(f"{stamp:<18}{price:>8.2f}{session_vwap:>10.2f}{'.':>10}")
        continue

    anchor_pv += price * vol                # the anchored totals never reset
    anchor_vol += vol
    anchored_vwap = anchor_pv / anchor_vol
    print(f"{stamp:<18}{price:>8.2f}{session_vwap:>10.2f}{anchored_vwap:>10.2f}")

    gap = price - anchored_vwap
    if start_side is None and abs(gap) > 1e-9:
        start_side = gap > 0
    elif start_side is not None and crossover is None and (gap > 0) != start_side:
        crossover = stamp

print("first bar back through the anchored VWAP:", crossover or "no crossing here")

İki sayaç çifti, yöntemin tamamını oluşturur. session_pv ve session_vol tarih değiştiğinde sıfırlanır. anchor_pv ve anchor_vol ise hiçbir zaman sıfırlanmaz. Bundan sonraki işlemler yalnızca sonuçların yazdırılmasıdır.

Anchored çizgi neden hareket etmeyi bırakır?

Anchored VWAP yaşlandıkça hareket ettirilmesi zorlaşır. Bunun nedeni mekaniktir. Her yeni çubuk, toplam anchor hacmine oranla kendi hacmine eşit bir ağırlıkla ortalamaya girer. İkinci günde tek bir seans toplam hacmin yarısını oluşturabilir. İki yüz seans sonra aynı seansın ağırlığı yüzde birin küçük bir bölümüne iner. Aşağıdaki panel, bu ağırlığı Apple çubuklarında on seanslık bloklar halinde ölçer.

SorgulaEn yeni seansın sabitlenmiş VWAP’ı ne ölçüde değiştirebildiği (AAPL)
Her verinin arkasındaki tam SQL
WITH running AS (
    SELECT
        row_number() OVER (ORDER BY date) AS n,
        toFloat64(volume)
      / sum(toFloat64(volume)) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS weight
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'AAPL'
      AND date >= '2026-01-02'
      AND date <= '2026-06-30'
)
SELECT
    intDiv(n - 1, 10) * 10 + 10 AS bars_since_anchor,
    round(100 * avg(weight), 2) AS newest_bar_weight_pct
FROM running
GROUP BY bars_since_anchor
ORDER BY bars_since_anchor
Run this yourself

İlk on seansta gelen çubuğun çizgi üzerindeki ortalama etkisi 30.09% olur. Anchor çubuğunun kendisi bu etkinin tamamını oluşturur. 130 numaralı seansta en yeni çubuğun etkisi 2.14% seviyesine iner. Bu grafikleri yorumlarken iki sonuç ortaya çıkar. Eski bir anchor, mevcut gelişmelere neredeyse tepki vermeyen yatay bir çizgi oluşturur. Yeni bir anchor ise fiyat çevresinde hızla dalgalanan ve fiyatı sık sık kesen bir çizgi oluşturur. Biri diğerinden daha doğru değildir. Bunlar, farklı yaşlardaki aynı formüldür. Gelen hacmin normal hacme göre ne kadar olduğunu doğrudan görmek için ortalama günlük hacim ve göreli hacim kullanılabilir.

Anchored VWAP neyi göstermeyi amaçlar?

Standart yorum, pozisyonlanmaya ilişkin bir ölçüm sunduğudur. Anchor bir olaya yerleştirildiğinde çizgi, o andan itibaren işlem yapan herkesin ödediği ortalama fiyatı gösterir. Çizginin üzerindeki fiyat, çoğunluğun gerçekleşmemiş kazançta olduğunu; altındaki fiyat ise bunun tersini ifade eder. Aşağıdaki panel, beş tanınmış hissenin her biri için son on iki ay içinde görülen en düşük günlük kapanış fiyatını anchor olarak alır. Ardından pencerenin son kapanışını ortaya çıkan ortalamayla karşılaştırır.

SorgulaHer hissenin son on iki aydaki en düşük kapanışına sabitlenmiş
Her verinin arkasındaki tam SQL
WITH
    bars AS (
        SELECT
            ticker,
            date,
            toFloat64(vwap)   AS px,
            toFloat64(volume) AS vol,
            toFloat64(close)  AS c
        FROM global_markets.stocks_daily_aggs
        WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'KO', 'SPY')
          AND date >= '2025-07-01'
          AND date <= '2026-06-30'
    ),
    lows AS (
        SELECT
            ticker,
            argMin(date, c) AS low_date
        FROM bars
        GROUP BY ticker
    )
SELECT
    b.ticker                                AS symbol,
    formatDateTime(l.low_date, '%b %e, %Y') AS anchored_at,
    round(sumIf(b.px * b.vol, b.date >= l.low_date) / sumIf(b.vol, b.date >= l.low_date), 2) AS anchored_vwap,
    round(argMax(b.c, b.date), 2)           AS last_close,
    round(100 * (argMax(b.c, b.date)
        / (sumIf(b.px * b.vol, b.date >= l.low_date) / sumIf(b.vol, b.date >= l.low_date)) - 1), 1) AS close_vs_avwap_pct
FROM bars AS b
INNER JOIN lows AS l ON b.ticker = l.ticker
GROUP BY b.ticker, l.low_date
ORDER BY close_vs_avwap_pct DESC
Run this yourself

Beş hisse, 10.4% seviyesindeki SPY değerinden 1.3% seviyesindeki MSFT değerine kadar dağılır. Her biri kendi anchor tarihiyle karşılaştırılır. Bu dağılım gerçekleşenleri gösterir. Ancak yöntemin sınırlarını açıkça belirtmek gerekir. Anchored VWAP, daha önce gerçekleşmiş fiyat ve hacimlerden hesaplanan tanımlayıcı bir istatistiktir. Tahmin değildir. Yayımlanmış araştırmalarda kanıtlanmış bir üstünlük sağlayan kural da değildir. Fiyat ve hacim geçmişinde zaten bulunmayan hiçbir bilgiyi içermez. Ayrıca sonucu üreten anchor, bir kişi tarafından seçilmiştir. Belirli bir tarihten bu yana gerçekleşen işlemlerin özeti olarak kullanıldığında dürüst bir göstergedir. Kesin bir hüküm olarak kullanıldığında ise konuşan şey anchor seçimidir.

Sık Sorulan Sorular

VWAP ile anchored VWAP arasındaki fark nedir?

Session VWAP, her piyasa açılışında kümülatif toplamlarını sıfırlar. Bu nedenle yalnızca mevcut günü gösterir. Anchored VWAP ise toplamlarını seçilen bir çubukta başlatır ve hiçbir zaman sıfırlamaz. Bu nedenle söz konusu çubuktan sonraki tüm seanslarda ödenen ortalama fiyatı gösterir.

Yatırımcılar VWAP için anchor noktasını nereye koyar?

Yaygın seçimler bilanço tarihi, gap’in ilk çubuğu, bir ara zirve veya ara dip ve yeni kote edilen bir hissenin ilk işlem günüdür. Her çubuk anchor olarak kullanılabilir. Çizgiyi yorumlayabilmek için bilinmesi gereken temel bilgi anchor tarihidir.

Anchored VWAP gece boyunca sıfırlanır mı?

Hayır. Bu, göstergenin temel özelliğidir. Fiyat ile hacim çarpımlarının kümülatif toplamı ve hacmin kümülatif toplamı seans kapanışında korunur. Sonraki seans, aradan kaç seans geçmiş olursa olsun, bu toplamların kaldığı yerden devam eder.

Anchored VWAP herhangi bir şeyi tahmin eder mi?

Anchored VWAP bir tahmin değil, tanımlayıcı bir istatistiktir. Anchor tarihinden bu yana ödenmiş fiyatları özetler. Anchor noktasının değiştirilmesi çizgiyi değiştirir ve görünen sonucu tersine çevirebilir. Bu nedenle anchored VWAP’a dayanan her iddianın gücü, seçilen anchor tarihinin gerekçesi kadar sağlamdır.

Anchored VWAP günlük çubuklarda hesaplanabilir mi?

Evet. Bu sayfadaki panellerde günlük çubuklar kullanılır. Her seansın VWAP değeri, çubuğun fiyatı olarak alınır. Gün içi grafiklerde bunun yerine dakika çubukları kullanılır. Formül her iki zaman çözünürlüğünde de aynıdır. Yalnızca artışların büyüklüğü değişir.


Yukarıdaki her panel, onu üreten SQL sorgusuyla birlikte sunulur. Böylece bir panel açılıp anchor tarihi değiştirilebilir. Aynı kümülatif toplamları belirli bir tarihten itibaren çalıştırmak için Strasmore terminalinde talep Türkçe olarak yazılabilir.