"The Checklist" - 10 Execution - Order placement

10
The "Checklist"> 10. Execution > Order placement Order placement Goal : execute in practice a parent order of size Δh parent (one instrument). ARPM - Advanced Risk and Portfolio Management - arpm.co This update: Mar-28-2017 - Last update

Transcript of "The Checklist" - 10 Execution - Order placement

Page 1: "The Checklist" - 10 Execution - Order placement

The "Checklist"> 10. Execution > Order placement

Order placement

Goal: execute in practice a parent order of size ∆hparent (one instrument).

Since the time scale is in the order of a few minutes, tick time (1.103) is usedfor order placement.

Decisions are summarized in the outstanding order vector

∆hκ ≡ (. . . ,∆hbid−1κ ,∆hbid

κ ,∆hbid+1κ , . . . , . . . ,∆hask−1

κ ,∆haskκ ,∆hask+1

κ , . . .)′ (10.40)

tick-time limit order atthe bid price

limit order one tickabove the bid price

limit order atthe ask price

Market orders in the outstanding order vector

ARPM - Advanced Risk and Portfolio Management - arpm.co This update: Mar-28-2017 - Last update

Page 2: "The Checklist" - 10 Execution - Order placement

The "Checklist"> 10. Execution > Order placement

Order placement

Goal: execute in practice a parent order of size ∆hparent (one instrument).

Since the time scale is in the order of a few minutes, tick time (1.103) is usedfor order placement.

Decisions are summarized in the outstanding order vector

∆hκ ≡ (. . . ,∆hbid−1κ ,∆hbid

κ ,∆hbid+1κ , . . . , . . . ,∆hask−1

κ ,∆haskκ ,∆hask+1

κ , . . .)′ (10.40)

tick-time limit order atthe bid price

limit order one tickabove the bid price

limit order atthe ask price

Market orders in the outstanding order vector

ARPM - Advanced Risk and Portfolio Management - arpm.co This update: Mar-28-2017 - Last update

Page 3: "The Checklist" - 10 Execution - Order placement

The "Checklist"> 10. Execution > Order placement

Two loop algorithm (buy case)

0. Update parent order ∆hparent ← ∆hparent −∆hchild (∆hparent > 0)1a. Optimize schedule (volume time) h∗

1b. Compute first child order (volume time) ∆hchild ← h∗(E{∆Q})− hnow

2. Execute first child order (tick-time)2a. Update order vector2b. Update outstanding order2c. Repeat

∆hupdatedκ ← exec_algoφ(∆hκ,∆h

residκ ,Eκ{Kresid}, sκ) (10.46)

∆hresidκ ← ∆hresid

κ −∆hLastEventκ

if ∆hresidκ > 0 go to step 2a

3. repeat if ∆hparent −∆hchild > 0 go to step 0

Table 10.5: The two loop algorithm for execution

ARPM - Advanced Risk and Portfolio Management - arpm.co This update: Mar-28-2017 - Last update

Page 4: "The Checklist" - 10 Execution - Order placement

The "Checklist"> 10. Execution > Order placementOuter loop

Outer loop

0. Update parent order ∆hparent ← ∆hparent −∆hchild (∆hparent > 0)1a. Optimize schedule (volume time) h∗

1b. Compute first child order (volume time) ∆hchild ← h∗(E{∆Q})− hnow

2. Execute first child order (tick-time)2a. Update order vector2b. Update outstanding order2c. Repeat

∆hupdatedκ ← exec_algoφ(∆hκ,∆h

residκ ,Eκ{Kresid}, sκ) (10.46)

∆hresidκ ← ∆hresid

κ −∆hLastEventκ

if ∆hresidκ > 0 go to step 2a

3. repeat if ∆hparent −∆hchild > 0 go to step 0

Table 10.5: The two loop algorithm for execution

Step 1a: the optimal schedule h∗ is computed using the two-step mean-variance optimization (10.26)-(10.27)

Step 1b: the first child order is computed as

∆hchild ≡ h∗( E{∆Q} )− hnow (10.43)

expected volume time by which we want to execute ∆hchild

Child order computed from the Almgren-Chriss optimal trajectory

ARPM - Advanced Risk and Portfolio Management - arpm.co This update: Mar-28-2017 - Last update

Page 5: "The Checklist" - 10 Execution - Order placement

The "Checklist"> 10. Execution > Order placementOuter loop

Outer loop

0. Update parent order ∆hparent ← ∆hparent −∆hchild (∆hparent > 0)1a. Optimize schedule (volume time) h∗

1b. Compute first child order (volume time) ∆hchild ← h∗(E{∆Q})− hnow

2. Execute first child order (tick-time)2a. Update order vector2b. Update outstanding order2c. Repeat

∆hupdatedκ ← exec_algoφ(∆hκ,∆h

residκ ,Eκ{Kresid}, sκ) (10.46)

∆hresidκ ← ∆hresid

κ −∆hLastEventκ

if ∆hresidκ > 0 go to step 2a

3. repeat if ∆hparent −∆hchild > 0 go to step 0

Table 10.5: The two loop algorithm for execution

Step 1a: the optimal schedule h∗ is computed using the two-step mean-variance optimization (10.26)-(10.27)

Step 1b: the first child order is computed as

∆hchild ≡ h∗( E{∆Q} )− hnow (10.43)

expected volume time by which we want to execute ∆hchild

Child order computed from the Almgren-Chriss optimal trajectory

ARPM - Advanced Risk and Portfolio Management - arpm.co This update: Mar-28-2017 - Last update

Page 6: "The Checklist" - 10 Execution - Order placement

The "Checklist"> 10. Execution > Order placementInner loop

Inner loop

0. Update parent order ∆hparent ← ∆hparent −∆hchild (∆hparent > 0)1a. Optimize schedule (volume time) h∗

1b. Compute first child order (volume time) ∆hchild ← h∗(E{∆Q})− hnow

2. Execute first child order (tick-time)2a. Update order vector2b. Update outstanding order2c. Repeat

∆hupdatedκ ← exec_algoφ(∆hκ,∆h

residκ ,Eκ{Kresid}, sκ) (10.46)

∆hresidκ ← ∆hresid

κ −∆hLastEventκ

if ∆hresidκ > 0 go to step 2a

3. repeat if ∆hparent −∆hchild > 0 go to step 0

Table 10.5: The two loop algorithm for execution

Step 2a: an adaptive execution algorithm updates the outstandingorder vector

∆hupdatedκ = exec_algoφ(∆hκ , ∆hresid

κ , Eκ{Kresid}︸ ︷︷ ︸book info

, sκ↑

market info

) (10.46)

parameters

current outstandingorder vector (10.40)

residual amountof order to fill

expected residualtick-time left (10.45)

A simple adaptive execution algorithm

ARPM - Advanced Risk and Portfolio Management - arpm.co This update: Mar-28-2017 - Last update

Page 7: "The Checklist" - 10 Execution - Order placement

The "Checklist"> 10. Execution > Order placementInner loop

Inner loop

0. Update parent order ∆hparent ← ∆hparent −∆hchild (∆hparent > 0)1a. Optimize schedule (volume time) h∗

1b. Compute first child order (volume time) ∆hchild ← h∗(E{∆Q})− hnow

2. Execute first child order (tick-time)2a. Update order vector2b. Update outstanding order2c. Repeat

∆hupdatedκ ← exec_algoφ(∆hκ,∆h

residκ ,Eκ{Kresid}, sκ) (10.46)

∆hresidκ ← ∆hresid

κ −∆hLastEventκ

if ∆hresidκ > 0 go to step 2a

3. repeat if ∆hparent −∆hchild > 0 go to step 0

Table 10.5: The two loop algorithm for execution

Step 2a: an adaptive execution algorithm updates the outstandingorder vector

∆hupdatedκ = exec_algoφ(∆hκ , ∆hresid

κ , Eκ{Kresid}︸ ︷︷ ︸book info

, sκ↑

market info

) (10.46)

parameters

current outstandingorder vector (10.40)

residual amountof order to fill

expected residualtick-time left (10.45)

A simple adaptive execution algorithm

ARPM - Advanced Risk and Portfolio Management - arpm.co This update: Mar-28-2017 - Last update

Page 8: "The Checklist" - 10 Execution - Order placement

The "Checklist"> 10. Execution > Order placementInner loop

Inner loop

0. Update parent order ∆hparent ← ∆hparent −∆hchild (∆hparent > 0)1a. Optimize schedule (volume time) h∗

1b. Compute first child order (volume time) ∆hchild ← h∗(E{∆Q})− hnow

2. Execute first child order (tick-time)2a. Update order vector2b. Update outstanding order2c. Repeat

∆hupdatedκ ← exec_algoφ(∆hκ,∆h

residκ ,Eκ{Kresid}, sκ) (10.46)

∆hresidκ ← ∆hresid

κ −∆hLastEventκ

if ∆hresidκ > 0 go to step 2a

3. repeat if ∆hparent −∆hchild > 0 go to step 0

Table 10.5: The two loop algorithm for execution

Step 2a: an adaptive execution algorithm updates the outstandingorder vector

∆hupdatedκ = exec_algoφ(∆hκ , ∆hresid

κ , Eκ{Kresid}︸ ︷︷ ︸book info

, sκ↑

market info

) (10.46)

parameters

current outstandingorder vector (10.40)

residual amountof order to fill

expected residualtick-time left (10.45)

A simple adaptive execution algorithm

ARPM - Advanced Risk and Portfolio Management - arpm.co This update: Mar-28-2017 - Last update

Page 9: "The Checklist" - 10 Execution - Order placement

The "Checklist"> 10. Execution > Order placementInner loop

Inner loop

0. Update parent order ∆hparent ← ∆hparent −∆hchild (∆hparent > 0)1a. Optimize schedule (volume time) h∗

1b. Compute first child order (volume time) ∆hchild ← h∗(E{∆Q})− hnow

2. Execute first child order (tick-time)2a. Update order vector2b. Update outstanding order2c. Repeat

∆hupdatedκ ← exec_algoφ(∆hκ,∆h

residκ ,Eκ{Kresid}, sκ) (10.46)

∆hresidκ ← ∆hresid

κ −∆hLastEventκ

if ∆hresidκ > 0 go to step 2a

3. repeat if ∆hparent −∆hchild > 0 go to step 0

Table 10.5: The two loop algorithm for execution

Step 2b: at the next event the outstanding order is updated according to

∆hresidκ ← ∆hresid

κ −∆hLastEventκ

order executedat the κ-th event

• Steps 2a-2b are repeated once the child order is fully executed• once the inner loop ends, the parent order is updated (Step 0)

ARPM - Advanced Risk and Portfolio Management - arpm.co This update: Mar-28-2017 - Last update

Page 10: "The Checklist" - 10 Execution - Order placement

The "Checklist"> 10. Execution > Order placement

Two loop algorithm (sell case)

0. Update parent order ∆hparent ← ∆hparent −∆hchild (∆hparent < 0)1a. Optimize schedule (volume time) h∗

1b. Compute first child order (volume time) ∆hchild ← h∗(E{∆Q})− hnow

2. Execute first child order (tick-time)2a. Update order vector2b. Update outstanding order2c. Repeat

∆hupdatedκ ← exec_algoφ(∆hκ,∆h

residκ ,Eκ{Kresid}, sκ) (10.46)

∆hresidκ ← ∆hresid

κ −∆hLastEventκ

if ∆hresidκ < 0 go to step 2a

3. repeat if ∆hparent −∆hchild < 0 go to step 0

Table 10.5: The two loop algorithm for execution

ARPM - Advanced Risk and Portfolio Management - arpm.co This update: Mar-28-2017 - Last update