6.5.8HFT & Advanced Concepts

Learn about execution algorithms (TWAP, VWAP, POV)

2,188 words10 min readdifficulty · medium2 backlinks

WHY do we need them?

The three classic scheduling algorithms differ in what drives the schedule:

Algo Schedule driven by One-line idea
TWAP the clock trade equal amounts per equal time
VWAP the volume profile trade in proportion to expected market volume
POV live realized volume trade a fixed percentage of whatever is trading now
Figure — Learn about execution algorithms (TWAP, VWAP, POV)

1. TWAP — Time-Weighted Average Price

HOW — derive the slice size from first principles. Total quantity QQ, number of slices NN. We want each slice equal, call it qq.

i=1Nq=Q    Nq=Q    q=QN\sum_{i=1}^{N} q = Q \implies Nq = Q \implies q = \frac{Q}{N}

Why this step? Equal slices means the sum of NN copies of qq must equal the whole parent order QQ; solving gives q=Q/Nq=Q/N.

The benchmark price you're measured against is the simple average of prices sampled at each slice:

TWAP=1Ni=1NPi\text{TWAP} = \frac{1}{N}\sum_{i=1}^{N} P_i

Why this step? Since we traded equal quantities at times with price PiP_i, the average price paid equals the unweighted average of prices — hence "Time-Weighted."


2. VWAP — Volume-Weighted Average Price

HOW — derive the schedule. Let ui=VijVju_i = \dfrac{V_i}{\sum_j V_j} be the fraction of the day's expected volume in slice ii (the volume profile, estimated from historical data). To perfectly track VWAP, trade quantity:

qi=Quiq_i = Q \cdot u_i

Why this step? If in each slice you trade the same fraction of your order as the market trades of its total volume, then your participation is constant, and your volume-weighted average price equals the market's VWAP.

Proof that this matches VWAP. Your average price is Pˉ=iPiqiiqi=iPi(Qui)iQui=iPiuiiui.\bar P = \frac{\sum_i P_i q_i}{\sum_i q_i} = \frac{\sum_i P_i (Q u_i)}{\sum_i Q u_i} = \frac{\sum_i P_i u_i}{\sum_i u_i}. Since uiViu_i \propto V_i, this equals PiViVi=VWAP\dfrac{\sum P_i V_i}{\sum V_i} = \text{VWAP}. ✔ Why this step? The constant QQ cancels, leaving the same volume-weighted average that defines VWAP.


3. POV — Percentage of Volume (a.k.a. Participation)

HOW — the tradeoff. Your total time to finish depends on realized market volume. If total market volume over the window is VmktV_{\text{mkt}}, you complete Qfilled=ρVmkt.Q_{\text{filled}} = \rho \, V_{\text{mkt}}. Why this step? Summing qi=ρViq_i = \rho V_i gives ρVi=ρVmkt\rho \sum V_i = \rho V_{\text{mkt}}.

So to fully fill QQ you need VmktQ/ρV_{\text{mkt}} \ge Q/\rho of market volume to trade. You do NOT control completion time — that's the price of adaptivity.



Common Mistakes (Steel-manned)


Flashcards

What problem do execution algorithms solve?
They slice a large parent order into child orders to balance market impact (trading too fast) against timing risk (trading too slowly).
TWAP slice size formula and why
qi=Q/Nq_i = Q/N; equal quantity each equal time-slice because NN equal slices must sum to QQ.
VWAP benchmark formula
VWAP=iPiViiVi\text{VWAP} = \dfrac{\sum_i P_i V_i}{\sum_i V_i} — average price weighted by traded volume.
VWAP schedule (child size)
qi=Quiq_i = Q \cdot u_i where ui=Vi/jVju_i = V_i / \sum_j V_j is the expected fraction of volume in slice ii.
POV child order rule
qi=ρViq_i = \rho \, V_i — trade a fixed percentage ρ\rho of the volume actually trading now.
How long does POV take to fill Q?
Until cumulative market volume reaches Q/ρQ/\rho; completion time is NOT guaranteed.
When do TWAP and VWAP give the same schedule?
When market volume is uniform across time (ViV_i constant), so the volume weights equal the time weights.
Key drawback of VWAP vs POV
VWAP relies on a forecast volume profile; POV adapts to realized live volume.
Key drawback of POV vs TWAP/VWAP
POV may not complete the order on quiet days; it sacrifices completion certainty for low impact.
What is market impact?
The adverse price movement your own trading causes (buying pushes price up, selling pushes it down).

Recall Feynman: explain to a 12-year-old

Imagine you want to buy 100 chocolate bars from a school shop, but if you buy them all at once the shopkeeper notices you really want them and raises the price. So you buy a few at a time.

  • TWAP = buy the same number of bars every 10 minutes, no matter what.
  • VWAP = buy more bars during recess when everyone is buying (so nobody notices you) and fewer during class when the shop is empty.
  • POV = always be "one out of every ten kids" at the counter — buy more when the line is long, less when it's short. The catch: if nobody else buys today, you never finish!

Connections

  • Market Impact & Slippage — the cost these algos minimize.
  • Implementation Shortfall — an alternative benchmark that penalizes both impact and delay.
  • Order Book Dynamics — child orders interact with bid/ask depth.
  • Volume Profile & U-Shape — the intraday volume curve VWAP relies on.
  • HFT Market Making — the counterparty often filling these child orders.
  • Almgren-Chriss Optimal Execution — the math framework that generalizes TWAP/VWAP.

Concept Map

sliced into

schedule decides

dump all at once

wait too long

balances

balances

driven by clock

driven by expected volume

driven by live volume

equal slices q=Q/N

match U-shape liquidity

fixed pct of trading now

Parent order Q

Child orders

Trading schedule

Market impact

Timing risk

TWAP

VWAP

POV

Unweighted avg price

Volume-weighted avg

Adapts to real flow

Hinglish (regional understanding)

Intuition Hinglish mein samjho

Socho tumhe ek badi quantity — maan lo 10 lakh shares — kharidni hai. Agar tum ek saath pura order market me daal doge, to price tumhare against move kar jayega (buying pressure se price upar) — ise market impact kehte hain, aur tum mehenga khareedoge. Agar bahut dheere karoge to price kahin door drift kar jayega — ye timing risk hai. Execution algorithms bade "parent" order ko chhote "child" orders me tod ke time ke saath spread karte hain, taaki ye dono cost balance ho.

TWAP sabse simple hai — ghadi ke hisaab se chalo. Har equal time slice me equal quantity, yaani qi=Q/Nq_i = Q/N. Koi forecast nahi, bas even spread. VWAP thoda smart hai: market ka volume din bhar even nahi hota — open aur close pe zyada, lunch time pe kam (U-shape). To VWAP volume profile ke proportion me trade karta hai, qi=Quiq_i = Q \cdot u_i, jahan uiu_i us slice ka expected volume fraction hai. Isse tumhara child order hamesha total volume ka chhota, "invisible" hissa rehta hai.

POV (Percentage of Volume) live market ko react karta hai: "abhi jo bhi trade ho raha hai, main uska 10% rahunga", yaani qi=ρViq_i = \rho V_i. Market active to tum fast, market shaant to tum slow. Iska catch: agar aaj volume kam raha to tum apna pura order complete hi nahi kar paoge — completion guaranteed nahi. TWAP/VWAP time pe finish kar denge par POV low impact ke badle completion certainty chhod deta hai.

Yaad rakhne ka tareeka: "TVP — The Clock, The Plan, The Pulse." TWAP clock follow karta hai, VWAP plan (historical volume curve), POV pulse (live volume). Ye concepts HFT aur institutional trading me roz use hote hain — smart execution se crores ki impact-cost bachti hai.

Test yourself — HFT & Advanced Concepts

Connections